Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 449c6bf

Browse files
committed
Merge remote-tracking branch 'upstream/master' into add-offset-to-$anchorScroll
2 parents e6cace0 + f294244 commit 449c6bf

File tree

19 files changed

+632
-88
lines changed

19 files changed

+632
-88
lines changed

CHANGELOG.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,128 @@
1+
<a name="1.3.0-rc.4"></a>
2+
# 1.3.0-rc.4 unicorn-hydrafication (2014-10-01)
3+
4+
5+
## Bug Fixes
6+
7+
- **$compile:**
8+
- get $$observe listeners array as own property
9+
([a27d827c](https://github.com/angular/angular.js/commit/a27d827c22b0b6b3ba6b7495cf4fc338c6934b37),
10+
[#9343](https://github.com/angular/angular.js/issues/9343), [#9345](https://github.com/angular/angular.js/issues/9345))
11+
- Resolve leak with asynchronous compilation
12+
([6303c3dc](https://github.com/angular/angular.js/commit/6303c3dcf64685458fc84aa12289f5c9d57f4e47),
13+
[#9199](https://github.com/angular/angular.js/issues/9199), [#9079](https://github.com/angular/angular.js/issues/9079), [#8504](https://github.com/angular/angular.js/issues/8504), [#9197](https://github.com/angular/angular.js/issues/9197))
14+
- connect transclude scopes to their containing scope to prevent memory leaks
15+
([fb0c77f0](https://github.com/angular/angular.js/commit/fb0c77f0b66ed757a56af13f81b943419fdcbd7f),
16+
[#9095](https://github.com/angular/angular.js/issues/9095), [#9281](https://github.com/angular/angular.js/issues/9281))
17+
- sanitize srcset attribute
18+
([ab80cd90](https://github.com/angular/angular.js/commit/ab80cd90661396dbb1c94c5f4dd2d11ee8f6b6af))
19+
- **input:**
20+
- register builtin parsers/formatters before anyone else
21+
([10644432](https://github.com/angular/angular.js/commit/10644432ca9d5da69ce790a8d9e691640f333711),
22+
[#9218](https://github.com/angular/angular.js/issues/9218), [#9358](https://github.com/angular/angular.js/issues/9358))
23+
- correctly handle invalid model values for `input[date/time/…]`
24+
([a0bfdd0d](https://github.com/angular/angular.js/commit/a0bfdd0d60882125f614a91c321f12f730735e7b),
25+
[#8949](https://github.com/angular/angular.js/issues/8949), [#9375](https://github.com/angular/angular.js/issues/9375))
26+
- **ngModel:** do not parse undefined viewValue when validating
27+
([92f05e5a](https://github.com/angular/angular.js/commit/92f05e5a5900713301e64373d7b7daa45a88278b),
28+
[#9106](https://github.com/angular/angular.js/issues/9106), [#9260](https://github.com/angular/angular.js/issues/9260))
29+
- **ngView:** use animation promises ensure that only one leave animation occurs at a time
30+
([3624e380](https://github.com/angular/angular.js/commit/3624e3800fb3ccd2e9ea361a763e20131fd42c29),
31+
[#9355](https://github.com/angular/angular.js/issues/9355), [#7606](https://github.com/angular/angular.js/issues/7606), [#9374](https://github.com/angular/angular.js/issues/9374))
32+
- **select:** make ctrl.hasOption method consistent
33+
([2bcd02dc](https://github.com/angular/angular.js/commit/2bcd02dc1a6b28b357d47c83be3bed5c9a38417c),
34+
[#8761](https://github.com/angular/angular.js/issues/8761))
35+
36+
37+
## Features
38+
39+
- **$compile:** optionally get controllers from ancestors only
40+
([07e3abc7](https://github.com/angular/angular.js/commit/07e3abc7dda872adc3fb25cb3e133f86f494b35d),
41+
[#4518](https://github.com/angular/angular.js/issues/4518), [#4540](https://github.com/angular/angular.js/issues/4540), [#8240](https://github.com/angular/angular.js/issues/8240), [#8511](https://github.com/angular/angular.js/issues/8511))
42+
- **Scope:** allow the parent of a new scope to be specified on creation
43+
([6417a3e9](https://github.com/angular/angular.js/commit/6417a3e9eb7ab0011cefada8db855aa929a64ff8))
44+
45+
46+
## Performance Improvements
47+
48+
- **$rootScope:** moving internal queues out of the Scope instances
49+
([b1192518](https://github.com/angular/angular.js/commit/b119251827cea670051198e1b48af7ee0c9f2a1b),
50+
[#9071](https://github.com/angular/angular.js/issues/9071))
51+
- **benchmark:** add ngBindOnce benchmarks to largetable-bp
52+
([2c8b4648](https://github.com/angular/angular.js/commit/2c8b4648526acf5c2645de8408a6d9ace2144b5f))
53+
- **ngForm,ngModel:** move initial addClass to the compile phase
54+
([b1ee5386](https://github.com/angular/angular.js/commit/b1ee5386d584f208bce6d3b613afdb3bae9df76a),
55+
[#8268](https://github.com/angular/angular.js/issues/8268))
56+
57+
58+
## Breaking Changes
59+
60+
- **$compile:** due to [fb0c77f0](https://github.com/angular/angular.js/commit/fb0c77f0b66ed757a56af13f81b943419fdcbd7f),
61+
62+
63+
`$transclude` functions no longer attach `$destroy` event handlers to the
64+
transcluded content, and so the associated transclude scope will not automatically
65+
be destroyed if you remove a transcluded element from the DOM using direct DOM
66+
manipulation such as the jquery `remove()` method.
67+
68+
If you want to explicitly remove DOM elements inside your directive that have
69+
been compiled, and so potentially contain child (and transcluded) scopes, then
70+
it is your responsibility to get hold of the scope and destroy it at the same time.
71+
72+
The suggested approach is to create a new child scope of your own around any DOM
73+
elements that you wish to manipulate in this way and destroy those scopes if you
74+
remove their contents - any child scopes will then be destroyed and cleaned up
75+
automatically.
76+
77+
Note that all the built-in directives that manipulate the DOM (ngIf, ngRepeat,
78+
ngSwitch, etc) already follow this best practice, so if you only use these for
79+
manipulating the DOM then you do not have to worry about this change.
80+
81+
Closes #9095
82+
Closes #9281
83+
84+
- **$parse:** due to [5572b40b](https://github.com/angular/angular.js/commit/5572b40b15ed06969c8e0e92866c5afd088484b4),
85+
86+
- $scope['this'] no longer exits on the $scope object
87+
- $parse-ed expressions no longer allow chaining 'this' such as this['this'] or $parent['this']
88+
- 'this' in $parse-ed expressions can no longer be overriden, if a variable named 'this' is put on the scope it must be accessed using this['this']
89+
90+
Closes #9105
91+
92+
- **input:** due to [1eda1836](https://github.com/angular/angular.js/commit/1eda18365a348c9597aafba9d195d345e4f13d1e),
93+
94+
(Note: this change landed in 1.3.0-rc.3, but was not considered a breaking change at the time).
95+
96+
For text based inputs (text, email, url), the `$viewValue` will now always be converted to a string,
97+
regardless of what type the value is on the model.
98+
99+
To migrate, any code or expressions that expect the `$viewValue` to be anything other than string
100+
should be updated to expect a string.
101+
102+
103+
- **input:** due to a0bfdd0d60882125f614a91c321f12f730735e7b (see #8949),
104+
105+
Similar to `input[number]` Angular will now throw if the model value
106+
for a `input[date]` is not a `Date` object. Previously, Angular only
107+
showed an empty string instead.
108+
Angular does not set validation errors on the `<input>` in this case
109+
as those errors are shown to the user, but the erroneous state was
110+
caused by incorrect application logic and not by the user.
111+
112+
<a name="1.2.26"></a>
113+
# 1.2.26 captivating-disinterest (2014-10-01)
114+
115+
## Bug Fixes
116+
117+
118+
- **$compile:** Resolve leak with asynchronous compilation
119+
([5c9c1973](https://github.com/angular/angular.js/commit/5c9c19730526d5df6f16c523e578e5305f3796d0),
120+
[#9199](https://github.com/angular/angular.js/issues/9199), [#9079](https://github.com/angular/angular.js/issues/9079), [#8504](https://github.com/angular/angular.js/issues/8504), [#9197](https://github.com/angular/angular.js/issues/9197))
121+
- **select:** make ctrl.hasOption method consistent
122+
([11d2242d](https://github.com/angular/angular.js/commit/11d2242df65b2ade0dabe366a0c42963b6d37df5),
123+
[#8761](https://github.com/angular/angular.js/issues/8761))
124+
125+
1126
<a name="1.3.0-rc.3"></a>
2127
# 1.3.0-rc.3 aggressive-pacification (2014-09-23)
3128

docs/config/templates/indexPage.template.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,6 @@
146146
</div>
147147
<div class="search-results-container" ng-show="hasResults">
148148
<div class="container">
149-
<a href="" ng-click="hideResults()" class="search-close">
150-
<span class="glyphicon glyphicon-remove search-close-icon"></span> Close
151-
</a>
152149
<div class="search-results-frame">
153150
<div ng-repeat="(key, value) in results" class="search-results-group" ng-class="colClassName + ' col-group-' + key">
154151
<h4 class="search-results-group-heading">{{ key }}</h4>
@@ -159,6 +156,9 @@ <h4 class="search-results-group-heading">{{ key }}</h4>
159156
</div>
160157
</div>
161158
</div>
159+
<a href="" ng-click="hideResults()" class="search-close">
160+
<span class="glyphicon glyphicon-remove search-close-icon"></span> Close
161+
</a>
162162
</div>
163163
</div>
164164
</section>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@ngdoc error
2+
@name ngModel:datefmt
3+
@fullName Model is not a date object
4+
@description
5+
6+
All date-related inputs like `<input type="date">` require the model to be a `Date` object.
7+
If the model is something else, this error will be thrown.
8+
Angular does not set validation errors on the `<input>` in this case
9+
as those errors are shown to the user, but the erroneous state was
10+
caused by incorrect application logic and not by the user.
11+

docs/content/guide/accessibility.ngdoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@ngdoc overview
22
@name Accessibility
3+
@sortOrder 530
34
@description
45

56

scripts/angular.js/untag-release.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash
2+
3+
# Untags a release.
4+
5+
echo "###################################"
6+
echo "## Untag angular.js for a release #"
7+
echo "###################################"
8+
9+
ARG_DEFS=(
10+
"--action=(prepare|publish)"
11+
# the version number of the release.
12+
# e.g. 1.2.12 or 1.2.12-rc.1
13+
"--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
14+
)
15+
16+
function init {
17+
TMP_DIR=$(resolveDir ../../tmp)
18+
TAG_NAME="v$VERSION_NUMBER"
19+
}
20+
21+
function prepare() {
22+
:
23+
}
24+
25+
function publish() {
26+
# push the tag deletion to github
27+
tags=`git ls-remote --tags git@github.com:angular/angular.js`
28+
if [[ $tags =~ "refs/tags/v$VERSION_NUMBER^" ]]; then
29+
echo "-- Creating dummy git repo for angular.js with origin remote"
30+
mkdir $TMP_DIR/empty-angular.js
31+
cd $TMP_DIR/empty-angular.js
32+
git init
33+
git remote add origin git@github.com:angular/angular.js.git
34+
git push origin ":$TAG_NAME"
35+
else
36+
echo "-- Tag v$VERSION_NUMBER does not exist on remote. Moving on"
37+
fi
38+
}
39+
40+
source $(dirname $0)/../utils.inc

scripts/bower/unpublish.sh

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/bin/bash
2+
3+
# Script for removing tags from the Angular bower repos
4+
5+
echo "#################################"
6+
echo "#### Untag bower ################"
7+
echo "#################################"
8+
9+
ARG_DEFS=(
10+
"--action=(prepare|publish)"
11+
"--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
12+
)
13+
14+
function init {
15+
TMP_DIR=$(resolveDir ../../tmp)
16+
REPOS=(
17+
angular
18+
angular-animate
19+
angular-cookies
20+
angular-i18n
21+
angular-loader
22+
angular-mocks
23+
angular-route
24+
angular-resource
25+
angular-sanitize
26+
angular-scenario
27+
angular-touch
28+
)
29+
}
30+
31+
function prepare {
32+
:
33+
}
34+
35+
function publish {
36+
for repo in "${REPOS[@]}"
37+
do
38+
tags=`git ls-remote --tags git@github.com:angular/bower-$repo`
39+
if [[ $tags =~ "refs/tags/v$VERSION_NUMBER" ]]; then
40+
echo "-- Creating dummy git repo for bower-$repo with origin remote"
41+
mkdir $TMP_DIR/bower-$repo
42+
cd $TMP_DIR/bower-$repo
43+
git init
44+
git remote add origin git@github.com:angular/bower-$repo.git
45+
git push origin :v$VERSION_NUMBER
46+
echo "-- Deleting v$VERSION_NUMBER tag from bower-$repo"
47+
cd $SCRIPT_DIR
48+
else
49+
echo "-- No remote tag matching v$VERSION_NUMBER exists on bower-$repo"
50+
fi
51+
done
52+
}
53+
54+
source $(dirname $0)/../utils.inc
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
3+
# Script for removing specified release dir from code.angularjs.org.
4+
5+
echo "################################################"
6+
echo "## Remove a version from code.angular.js.org ###"
7+
echo "################################################"
8+
9+
ARG_DEFS=(
10+
"--action=(prepare|publish)"
11+
"--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
12+
)
13+
14+
function init {
15+
TMP_DIR=$(resolveDir ../../tmp)
16+
REPO_DIR=$TMP_DIR/code.angularjs.org
17+
echo "code tmp $TMP_DIR"
18+
}
19+
20+
function prepare {
21+
echo "-- Cloning code.angularjs.org"
22+
git clone git@github.com:angular/code.angularjs.org.git $REPO_DIR
23+
24+
#
25+
# Remove the files from the repo
26+
#
27+
echo "-- Removing $VERSION_NUMBER from code.angularjs.org"
28+
cd $REPO_DIR
29+
if [ -d "$VERSION_NUMBER" ]; then
30+
git rm -r $VERSION_NUMBER
31+
echo "-- Committing removal to code.angularjs.org"
32+
git commit -m "removing v$VERSION_NUMBER"
33+
else
34+
echo "-- Version: $VERSION_NUMBER does not exist in code.angularjs.org!"
35+
fi
36+
}
37+
38+
function publish {
39+
cd $REPO_DIR
40+
41+
echo "-- Pushing code.angularjs.org to github"
42+
git push origin master
43+
}
44+
45+
source $(dirname $0)/../utils.inc

scripts/jenkins/undo-release.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/bash
2+
3+
echo "#################################"
4+
echo "#### undo a release ############"
5+
echo "#################################"
6+
7+
ARG_DEFS=(
8+
# require the git dryrun flag so the script can't be run without
9+
# thinking about this!
10+
"--git-push-dryrun=(true|false)"
11+
# the version number of the release.
12+
# e.g. 1.2.12 or 1.2.12-rc.1
13+
"--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
14+
)
15+
16+
function init {
17+
if [[ ! $VERBOSE ]]; then
18+
VERBOSE=false
19+
fi
20+
VERBOSE_ARG="--verbose=$VERBOSE"
21+
}
22+
23+
function phase {
24+
ACTION_ARG="--action=$1"
25+
VERSION_NUMBER_ARG="--version-number=$VERSION_NUMBER"
26+
../angular.js/untag-release.sh $ACTION_ARG $VERBOSE_ARG\
27+
--version-number=$VERSION_NUMBER
28+
29+
../code.angularjs.org/unpublish.sh $ACTION_ARG $VERSION_NUMBER_ARG $VERBOSE_ARG
30+
../bower/unpublish.sh $ACTION_ARG $VERSION_NUMBER_ARG $VERBOSE_ARG
31+
}
32+
33+
function run {
34+
# First prepare all scripts (build, commit, tag, ...),
35+
# so we are sure everything is all right
36+
phase prepare
37+
# only then publish to github
38+
phase publish
39+
}
40+
41+
source $(dirname $0)/../utils.inc

0 commit comments

Comments
 (0)