ng-angularjs-rails 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +25 -0
- data/lib/ng/angularjs/rails.rb +11 -0
- data/lib/ng/angularjs/rails/version.rb +7 -0
- data/vendor/assets/javascripts/angular-bootstrap-prettify.js +1833 -0
- data/vendor/assets/javascripts/angular-bootstrap.js +166 -0
- data/vendor/assets/javascripts/angular-cookies.js +183 -0
- data/vendor/assets/javascripts/angular-loader.js +276 -0
- data/vendor/assets/javascripts/angular-mocks.js +1764 -0
- data/vendor/assets/javascripts/angular-resource.js +445 -0
- data/vendor/assets/javascripts/angular-sanitize.js +535 -0
- data/vendor/assets/javascripts/angular-scenario.js +26195 -0
- data/vendor/assets/javascripts/angular.js +14733 -0
- data/vendor/assets/javascripts/i18n/angular-locale_am-et.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_am.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ar-eg.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ar.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_bg-bg.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_bg.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_bn-bd.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_bn.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ca-es.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ca.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_cs-cz.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_cs.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_da-dk.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_da.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_de-at.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_de-be.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_de-ch.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_de-de.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_de-lu.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_de.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_el-gr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_el-polyton.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_el.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-as.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-au.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-dsrt-us.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-dsrt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-gb.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-gu.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-ie.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-iso.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-mh.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-mp.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-sg.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-um.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-us.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-vi.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-za.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en-zz.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_en.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_es-es.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_es.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_et-ee.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_et.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_eu-es.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_eu.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fa-ir.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fa.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fi-fi.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fi.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fil-ph.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fil.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-bl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-ca.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-fr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-gp.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-mc.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-mf.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-mq.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr-re.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_fr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_gl-es.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_gl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_gsw-ch.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_gsw.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_gu-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_gu.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_he-il.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_he.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_hi-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_hi.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_hr-hr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_hr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_hu-hu.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_hu.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_id-id.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_id.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_is-is.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_is.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_it-it.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_it.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_iw.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ja-jp.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ja.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_kn-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_kn.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ko-kr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ko.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ln-cd.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ln.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_lt-lt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_lt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_lv-lv.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_lv.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ml-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ml.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_mo.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_mr-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_mr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ms-my.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ms.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_mt-mt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_mt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_nl-nl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_nl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_no.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_or-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_or.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_pl-pl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_pl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_pt-br.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_pt-pt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_pt.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ro-ro.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ro.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ru-ru.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ru.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sk-sk.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sk.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sl-si.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sq-al.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sq.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sr-cyrl-rs.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sr-latn-rs.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sr-rs.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sv-se.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sv.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sw-tz.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_sw.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ta-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ta.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_te-in.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_te.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_th-th.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_th.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_tl-ph.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_tl.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_tr-tr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_tr.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_uk-ua.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_uk.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ur-pk.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_ur.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_vi-vn.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_vi.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_zh-cn.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_zh-hans-cn.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_zh-hans.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_zh-hk.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_zh-tw.js +4 -0
- data/vendor/assets/javascripts/i18n/angular-locale_zh.js +4 -0
- data/vendor/assets/javascripts/jstd-scenario-adapter-config.js +6 -0
- data/vendor/assets/javascripts/jstd-scenario-adapter.js +185 -0
- data/vendor/assets/javascripts/version.json +7 -0
- metadata +243 -0
@@ -0,0 +1,166 @@
|
|
1
|
+
/**
|
2
|
+
* @license AngularJS v1.0.5
|
3
|
+
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
|
+
* License: MIT
|
5
|
+
*/
|
6
|
+
(function(window, angular, undefined) {
|
7
|
+
'use strict';
|
8
|
+
|
9
|
+
var directive = {};
|
10
|
+
|
11
|
+
directive.dropdownToggle =
|
12
|
+
['$document', '$location', '$window',
|
13
|
+
function ($document, $location, $window) {
|
14
|
+
var openElement = null, close;
|
15
|
+
return {
|
16
|
+
restrict: 'C',
|
17
|
+
link: function(scope, element, attrs) {
|
18
|
+
scope.$watch(function dropdownTogglePathWatch(){return $location.path();}, function dropdownTogglePathWatchAction() {
|
19
|
+
close && close();
|
20
|
+
});
|
21
|
+
|
22
|
+
element.parent().bind('click', function(event) {
|
23
|
+
close && close();
|
24
|
+
});
|
25
|
+
|
26
|
+
element.bind('click', function(event) {
|
27
|
+
event.preventDefault();
|
28
|
+
event.stopPropagation();
|
29
|
+
|
30
|
+
var iWasOpen = false;
|
31
|
+
|
32
|
+
if (openElement) {
|
33
|
+
iWasOpen = openElement === element;
|
34
|
+
close();
|
35
|
+
}
|
36
|
+
|
37
|
+
if (!iWasOpen){
|
38
|
+
element.parent().addClass('open');
|
39
|
+
openElement = element;
|
40
|
+
|
41
|
+
close = function (event) {
|
42
|
+
event && event.preventDefault();
|
43
|
+
event && event.stopPropagation();
|
44
|
+
$document.unbind('click', close);
|
45
|
+
element.parent().removeClass('open');
|
46
|
+
close = null;
|
47
|
+
openElement = null;
|
48
|
+
}
|
49
|
+
|
50
|
+
$document.bind('click', close);
|
51
|
+
}
|
52
|
+
});
|
53
|
+
}
|
54
|
+
};
|
55
|
+
}];
|
56
|
+
|
57
|
+
|
58
|
+
directive.tabbable = function() {
|
59
|
+
return {
|
60
|
+
restrict: 'C',
|
61
|
+
compile: function(element) {
|
62
|
+
var navTabs = angular.element('<ul class="nav nav-tabs"></ul>'),
|
63
|
+
tabContent = angular.element('<div class="tab-content"></div>');
|
64
|
+
|
65
|
+
tabContent.append(element.contents());
|
66
|
+
element.append(navTabs).append(tabContent);
|
67
|
+
},
|
68
|
+
controller: ['$scope', '$element', function($scope, $element) {
|
69
|
+
var navTabs = $element.contents().eq(0),
|
70
|
+
ngModel = $element.controller('ngModel') || {},
|
71
|
+
tabs = [],
|
72
|
+
selectedTab;
|
73
|
+
|
74
|
+
ngModel.$render = function() {
|
75
|
+
var $viewValue = this.$viewValue;
|
76
|
+
|
77
|
+
if (selectedTab ? (selectedTab.value != $viewValue) : $viewValue) {
|
78
|
+
if(selectedTab) {
|
79
|
+
selectedTab.paneElement.removeClass('active');
|
80
|
+
selectedTab.tabElement.removeClass('active');
|
81
|
+
selectedTab = null;
|
82
|
+
}
|
83
|
+
if($viewValue) {
|
84
|
+
for(var i = 0, ii = tabs.length; i < ii; i++) {
|
85
|
+
if ($viewValue == tabs[i].value) {
|
86
|
+
selectedTab = tabs[i];
|
87
|
+
break;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
if (selectedTab) {
|
91
|
+
selectedTab.paneElement.addClass('active');
|
92
|
+
selectedTab.tabElement.addClass('active');
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
}
|
97
|
+
};
|
98
|
+
|
99
|
+
this.addPane = function(element, attr) {
|
100
|
+
var li = angular.element('<li><a href></a></li>'),
|
101
|
+
a = li.find('a'),
|
102
|
+
tab = {
|
103
|
+
paneElement: element,
|
104
|
+
paneAttrs: attr,
|
105
|
+
tabElement: li
|
106
|
+
};
|
107
|
+
|
108
|
+
tabs.push(tab);
|
109
|
+
|
110
|
+
attr.$observe('value', update)();
|
111
|
+
attr.$observe('title', function(){ update(); a.text(tab.title); })();
|
112
|
+
|
113
|
+
function update() {
|
114
|
+
tab.title = attr.title;
|
115
|
+
tab.value = attr.value || attr.title;
|
116
|
+
if (!ngModel.$setViewValue && (!ngModel.$viewValue || tab == selectedTab)) {
|
117
|
+
// we are not part of angular
|
118
|
+
ngModel.$viewValue = tab.value;
|
119
|
+
}
|
120
|
+
ngModel.$render();
|
121
|
+
}
|
122
|
+
|
123
|
+
navTabs.append(li);
|
124
|
+
li.bind('click', function(event) {
|
125
|
+
event.preventDefault();
|
126
|
+
event.stopPropagation();
|
127
|
+
if (ngModel.$setViewValue) {
|
128
|
+
$scope.$apply(function() {
|
129
|
+
ngModel.$setViewValue(tab.value);
|
130
|
+
ngModel.$render();
|
131
|
+
});
|
132
|
+
} else {
|
133
|
+
// we are not part of angular
|
134
|
+
ngModel.$viewValue = tab.value;
|
135
|
+
ngModel.$render();
|
136
|
+
}
|
137
|
+
});
|
138
|
+
|
139
|
+
return function() {
|
140
|
+
tab.tabElement.remove();
|
141
|
+
for(var i = 0, ii = tabs.length; i < ii; i++ ) {
|
142
|
+
if (tab == tabs[i]) {
|
143
|
+
tabs.splice(i, 1);
|
144
|
+
}
|
145
|
+
}
|
146
|
+
};
|
147
|
+
}
|
148
|
+
}]
|
149
|
+
};
|
150
|
+
};
|
151
|
+
|
152
|
+
|
153
|
+
directive.tabPane = function() {
|
154
|
+
return {
|
155
|
+
require: '^tabbable',
|
156
|
+
restrict: 'C',
|
157
|
+
link: function(scope, element, attrs, tabsCtrl) {
|
158
|
+
element.bind('$remove', tabsCtrl.addPane(element, attrs));
|
159
|
+
}
|
160
|
+
};
|
161
|
+
};
|
162
|
+
|
163
|
+
|
164
|
+
angular.module('bootstrap', []).directive(directive);
|
165
|
+
|
166
|
+
})(window, window.angular);
|
@@ -0,0 +1,183 @@
|
|
1
|
+
/**
|
2
|
+
* @license AngularJS v1.0.5
|
3
|
+
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
|
+
* License: MIT
|
5
|
+
*/
|
6
|
+
(function(window, angular, undefined) {
|
7
|
+
'use strict';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @ngdoc overview
|
11
|
+
* @name ngCookies
|
12
|
+
*/
|
13
|
+
|
14
|
+
|
15
|
+
angular.module('ngCookies', ['ng']).
|
16
|
+
/**
|
17
|
+
* @ngdoc object
|
18
|
+
* @name ngCookies.$cookies
|
19
|
+
* @requires $browser
|
20
|
+
*
|
21
|
+
* @description
|
22
|
+
* Provides read/write access to browser's cookies.
|
23
|
+
*
|
24
|
+
* Only a simple Object is exposed and by adding or removing properties to/from
|
25
|
+
* this object, new cookies are created/deleted at the end of current $eval.
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
<doc:example>
|
29
|
+
<doc:source>
|
30
|
+
<script>
|
31
|
+
function ExampleController($cookies) {
|
32
|
+
// Retrieving a cookie
|
33
|
+
var favoriteCookie = $cookies.myFavorite;
|
34
|
+
// Setting a cookie
|
35
|
+
$cookies.myFavorite = 'oatmeal';
|
36
|
+
}
|
37
|
+
</script>
|
38
|
+
</doc:source>
|
39
|
+
</doc:example>
|
40
|
+
*/
|
41
|
+
factory('$cookies', ['$rootScope', '$browser', function ($rootScope, $browser) {
|
42
|
+
var cookies = {},
|
43
|
+
lastCookies = {},
|
44
|
+
lastBrowserCookies,
|
45
|
+
runEval = false,
|
46
|
+
copy = angular.copy,
|
47
|
+
isUndefined = angular.isUndefined;
|
48
|
+
|
49
|
+
//creates a poller fn that copies all cookies from the $browser to service & inits the service
|
50
|
+
$browser.addPollFn(function() {
|
51
|
+
var currentCookies = $browser.cookies();
|
52
|
+
if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl
|
53
|
+
lastBrowserCookies = currentCookies;
|
54
|
+
copy(currentCookies, lastCookies);
|
55
|
+
copy(currentCookies, cookies);
|
56
|
+
if (runEval) $rootScope.$apply();
|
57
|
+
}
|
58
|
+
})();
|
59
|
+
|
60
|
+
runEval = true;
|
61
|
+
|
62
|
+
//at the end of each eval, push cookies
|
63
|
+
//TODO: this should happen before the "delayed" watches fire, because if some cookies are not
|
64
|
+
// strings or browser refuses to store some cookies, we update the model in the push fn.
|
65
|
+
$rootScope.$watch(push);
|
66
|
+
|
67
|
+
return cookies;
|
68
|
+
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Pushes all the cookies from the service to the browser and verifies if all cookies were stored.
|
72
|
+
*/
|
73
|
+
function push() {
|
74
|
+
var name,
|
75
|
+
value,
|
76
|
+
browserCookies,
|
77
|
+
updated;
|
78
|
+
|
79
|
+
//delete any cookies deleted in $cookies
|
80
|
+
for (name in lastCookies) {
|
81
|
+
if (isUndefined(cookies[name])) {
|
82
|
+
$browser.cookies(name, undefined);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
//update all cookies updated in $cookies
|
87
|
+
for(name in cookies) {
|
88
|
+
value = cookies[name];
|
89
|
+
if (!angular.isString(value)) {
|
90
|
+
if (angular.isDefined(lastCookies[name])) {
|
91
|
+
cookies[name] = lastCookies[name];
|
92
|
+
} else {
|
93
|
+
delete cookies[name];
|
94
|
+
}
|
95
|
+
} else if (value !== lastCookies[name]) {
|
96
|
+
$browser.cookies(name, value);
|
97
|
+
updated = true;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
//verify what was actually stored
|
102
|
+
if (updated){
|
103
|
+
updated = false;
|
104
|
+
browserCookies = $browser.cookies();
|
105
|
+
|
106
|
+
for (name in cookies) {
|
107
|
+
if (cookies[name] !== browserCookies[name]) {
|
108
|
+
//delete or reset all cookies that the browser dropped from $cookies
|
109
|
+
if (isUndefined(browserCookies[name])) {
|
110
|
+
delete cookies[name];
|
111
|
+
} else {
|
112
|
+
cookies[name] = browserCookies[name];
|
113
|
+
}
|
114
|
+
updated = true;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}]).
|
120
|
+
|
121
|
+
|
122
|
+
/**
|
123
|
+
* @ngdoc object
|
124
|
+
* @name ngCookies.$cookieStore
|
125
|
+
* @requires $cookies
|
126
|
+
*
|
127
|
+
* @description
|
128
|
+
* Provides a key-value (string-object) storage, that is backed by session cookies.
|
129
|
+
* Objects put or retrieved from this storage are automatically serialized or
|
130
|
+
* deserialized by angular's toJson/fromJson.
|
131
|
+
* @example
|
132
|
+
*/
|
133
|
+
factory('$cookieStore', ['$cookies', function($cookies) {
|
134
|
+
|
135
|
+
return {
|
136
|
+
/**
|
137
|
+
* @ngdoc method
|
138
|
+
* @name ngCookies.$cookieStore#get
|
139
|
+
* @methodOf ngCookies.$cookieStore
|
140
|
+
*
|
141
|
+
* @description
|
142
|
+
* Returns the value of given cookie key
|
143
|
+
*
|
144
|
+
* @param {string} key Id to use for lookup.
|
145
|
+
* @returns {Object} Deserialized cookie value.
|
146
|
+
*/
|
147
|
+
get: function(key) {
|
148
|
+
return angular.fromJson($cookies[key]);
|
149
|
+
},
|
150
|
+
|
151
|
+
/**
|
152
|
+
* @ngdoc method
|
153
|
+
* @name ngCookies.$cookieStore#put
|
154
|
+
* @methodOf ngCookies.$cookieStore
|
155
|
+
*
|
156
|
+
* @description
|
157
|
+
* Sets a value for given cookie key
|
158
|
+
*
|
159
|
+
* @param {string} key Id for the `value`.
|
160
|
+
* @param {Object} value Value to be stored.
|
161
|
+
*/
|
162
|
+
put: function(key, value) {
|
163
|
+
$cookies[key] = angular.toJson(value);
|
164
|
+
},
|
165
|
+
|
166
|
+
/**
|
167
|
+
* @ngdoc method
|
168
|
+
* @name ngCookies.$cookieStore#remove
|
169
|
+
* @methodOf ngCookies.$cookieStore
|
170
|
+
*
|
171
|
+
* @description
|
172
|
+
* Remove given cookie
|
173
|
+
*
|
174
|
+
* @param {string} key Id of the key-value pair to delete.
|
175
|
+
*/
|
176
|
+
remove: function(key) {
|
177
|
+
delete $cookies[key];
|
178
|
+
}
|
179
|
+
};
|
180
|
+
|
181
|
+
}]);
|
182
|
+
|
183
|
+
})(window, window.angular);
|
@@ -0,0 +1,276 @@
|
|
1
|
+
/**
|
2
|
+
* @license AngularJS v1.0.5
|
3
|
+
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
|
+
* License: MIT
|
5
|
+
*/
|
6
|
+
|
7
|
+
(
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @ngdoc interface
|
11
|
+
* @name angular.Module
|
12
|
+
* @description
|
13
|
+
*
|
14
|
+
* Interface for configuring angular {@link angular.module modules}.
|
15
|
+
*/
|
16
|
+
|
17
|
+
function setupModuleLoader(window) {
|
18
|
+
|
19
|
+
function ensure(obj, name, factory) {
|
20
|
+
return obj[name] || (obj[name] = factory());
|
21
|
+
}
|
22
|
+
|
23
|
+
return ensure(ensure(window, 'angular', Object), 'module', function() {
|
24
|
+
/** @type {Object.<string, angular.Module>} */
|
25
|
+
var modules = {};
|
26
|
+
|
27
|
+
/**
|
28
|
+
* @ngdoc function
|
29
|
+
* @name angular.module
|
30
|
+
* @description
|
31
|
+
*
|
32
|
+
* The `angular.module` is a global place for creating and registering Angular modules. All
|
33
|
+
* modules (angular core or 3rd party) that should be available to an application must be
|
34
|
+
* registered using this mechanism.
|
35
|
+
*
|
36
|
+
*
|
37
|
+
* # Module
|
38
|
+
*
|
39
|
+
* A module is a collocation of services, directives, filters, and configuration information. Module
|
40
|
+
* is used to configure the {@link AUTO.$injector $injector}.
|
41
|
+
*
|
42
|
+
* <pre>
|
43
|
+
* // Create a new module
|
44
|
+
* var myModule = angular.module('myModule', []);
|
45
|
+
*
|
46
|
+
* // register a new service
|
47
|
+
* myModule.value('appName', 'MyCoolApp');
|
48
|
+
*
|
49
|
+
* // configure existing services inside initialization blocks.
|
50
|
+
* myModule.config(function($locationProvider) {
|
51
|
+
'use strict';
|
52
|
+
* // Configure existing providers
|
53
|
+
* $locationProvider.hashPrefix('!');
|
54
|
+
* });
|
55
|
+
* </pre>
|
56
|
+
*
|
57
|
+
* Then you can create an injector and load your modules like this:
|
58
|
+
*
|
59
|
+
* <pre>
|
60
|
+
* var injector = angular.injector(['ng', 'MyModule'])
|
61
|
+
* </pre>
|
62
|
+
*
|
63
|
+
* However it's more likely that you'll just use
|
64
|
+
* {@link ng.directive:ngApp ngApp} or
|
65
|
+
* {@link angular.bootstrap} to simplify this process for you.
|
66
|
+
*
|
67
|
+
* @param {!string} name The name of the module to create or retrieve.
|
68
|
+
* @param {Array.<string>=} requires If specified then new module is being created. If unspecified then the
|
69
|
+
* the module is being retrieved for further configuration.
|
70
|
+
* @param {Function} configFn Optional configuration function for the module. Same as
|
71
|
+
* {@link angular.Module#config Module#config()}.
|
72
|
+
* @returns {module} new module with the {@link angular.Module} api.
|
73
|
+
*/
|
74
|
+
return function module(name, requires, configFn) {
|
75
|
+
if (requires && modules.hasOwnProperty(name)) {
|
76
|
+
modules[name] = null;
|
77
|
+
}
|
78
|
+
return ensure(modules, name, function() {
|
79
|
+
if (!requires) {
|
80
|
+
throw Error('No module: ' + name);
|
81
|
+
}
|
82
|
+
|
83
|
+
/** @type {!Array.<Array.<*>>} */
|
84
|
+
var invokeQueue = [];
|
85
|
+
|
86
|
+
/** @type {!Array.<Function>} */
|
87
|
+
var runBlocks = [];
|
88
|
+
|
89
|
+
var config = invokeLater('$injector', 'invoke');
|
90
|
+
|
91
|
+
/** @type {angular.Module} */
|
92
|
+
var moduleInstance = {
|
93
|
+
// Private state
|
94
|
+
_invokeQueue: invokeQueue,
|
95
|
+
_runBlocks: runBlocks,
|
96
|
+
|
97
|
+
/**
|
98
|
+
* @ngdoc property
|
99
|
+
* @name angular.Module#requires
|
100
|
+
* @propertyOf angular.Module
|
101
|
+
* @returns {Array.<string>} List of module names which must be loaded before this module.
|
102
|
+
* @description
|
103
|
+
* Holds the list of modules which the injector will load before the current module is loaded.
|
104
|
+
*/
|
105
|
+
requires: requires,
|
106
|
+
|
107
|
+
/**
|
108
|
+
* @ngdoc property
|
109
|
+
* @name angular.Module#name
|
110
|
+
* @propertyOf angular.Module
|
111
|
+
* @returns {string} Name of the module.
|
112
|
+
* @description
|
113
|
+
*/
|
114
|
+
name: name,
|
115
|
+
|
116
|
+
|
117
|
+
/**
|
118
|
+
* @ngdoc method
|
119
|
+
* @name angular.Module#provider
|
120
|
+
* @methodOf angular.Module
|
121
|
+
* @param {string} name service name
|
122
|
+
* @param {Function} providerType Construction function for creating new instance of the service.
|
123
|
+
* @description
|
124
|
+
* See {@link AUTO.$provide#provider $provide.provider()}.
|
125
|
+
*/
|
126
|
+
provider: invokeLater('$provide', 'provider'),
|
127
|
+
|
128
|
+
/**
|
129
|
+
* @ngdoc method
|
130
|
+
* @name angular.Module#factory
|
131
|
+
* @methodOf angular.Module
|
132
|
+
* @param {string} name service name
|
133
|
+
* @param {Function} providerFunction Function for creating new instance of the service.
|
134
|
+
* @description
|
135
|
+
* See {@link AUTO.$provide#factory $provide.factory()}.
|
136
|
+
*/
|
137
|
+
factory: invokeLater('$provide', 'factory'),
|
138
|
+
|
139
|
+
/**
|
140
|
+
* @ngdoc method
|
141
|
+
* @name angular.Module#service
|
142
|
+
* @methodOf angular.Module
|
143
|
+
* @param {string} name service name
|
144
|
+
* @param {Function} constructor A constructor function that will be instantiated.
|
145
|
+
* @description
|
146
|
+
* See {@link AUTO.$provide#service $provide.service()}.
|
147
|
+
*/
|
148
|
+
service: invokeLater('$provide', 'service'),
|
149
|
+
|
150
|
+
/**
|
151
|
+
* @ngdoc method
|
152
|
+
* @name angular.Module#value
|
153
|
+
* @methodOf angular.Module
|
154
|
+
* @param {string} name service name
|
155
|
+
* @param {*} object Service instance object.
|
156
|
+
* @description
|
157
|
+
* See {@link AUTO.$provide#value $provide.value()}.
|
158
|
+
*/
|
159
|
+
value: invokeLater('$provide', 'value'),
|
160
|
+
|
161
|
+
/**
|
162
|
+
* @ngdoc method
|
163
|
+
* @name angular.Module#constant
|
164
|
+
* @methodOf angular.Module
|
165
|
+
* @param {string} name constant name
|
166
|
+
* @param {*} object Constant value.
|
167
|
+
* @description
|
168
|
+
* Because the constant are fixed, they get applied before other provide methods.
|
169
|
+
* See {@link AUTO.$provide#constant $provide.constant()}.
|
170
|
+
*/
|
171
|
+
constant: invokeLater('$provide', 'constant', 'unshift'),
|
172
|
+
|
173
|
+
/**
|
174
|
+
* @ngdoc method
|
175
|
+
* @name angular.Module#filter
|
176
|
+
* @methodOf angular.Module
|
177
|
+
* @param {string} name Filter name.
|
178
|
+
* @param {Function} filterFactory Factory function for creating new instance of filter.
|
179
|
+
* @description
|
180
|
+
* See {@link ng.$filterProvider#register $filterProvider.register()}.
|
181
|
+
*/
|
182
|
+
filter: invokeLater('$filterProvider', 'register'),
|
183
|
+
|
184
|
+
/**
|
185
|
+
* @ngdoc method
|
186
|
+
* @name angular.Module#controller
|
187
|
+
* @methodOf angular.Module
|
188
|
+
* @param {string} name Controller name.
|
189
|
+
* @param {Function} constructor Controller constructor function.
|
190
|
+
* @description
|
191
|
+
* See {@link ng.$controllerProvider#register $controllerProvider.register()}.
|
192
|
+
*/
|
193
|
+
controller: invokeLater('$controllerProvider', 'register'),
|
194
|
+
|
195
|
+
/**
|
196
|
+
* @ngdoc method
|
197
|
+
* @name angular.Module#directive
|
198
|
+
* @methodOf angular.Module
|
199
|
+
* @param {string} name directive name
|
200
|
+
* @param {Function} directiveFactory Factory function for creating new instance of
|
201
|
+
* directives.
|
202
|
+
* @description
|
203
|
+
* See {@link ng.$compileProvider#directive $compileProvider.directive()}.
|
204
|
+
*/
|
205
|
+
directive: invokeLater('$compileProvider', 'directive'),
|
206
|
+
|
207
|
+
/**
|
208
|
+
* @ngdoc method
|
209
|
+
* @name angular.Module#config
|
210
|
+
* @methodOf angular.Module
|
211
|
+
* @param {Function} configFn Execute this function on module load. Useful for service
|
212
|
+
* configuration.
|
213
|
+
* @description
|
214
|
+
* Use this method to register work which needs to be performed on module loading.
|
215
|
+
*/
|
216
|
+
config: config,
|
217
|
+
|
218
|
+
/**
|
219
|
+
* @ngdoc method
|
220
|
+
* @name angular.Module#run
|
221
|
+
* @methodOf angular.Module
|
222
|
+
* @param {Function} initializationFn Execute this function after injector creation.
|
223
|
+
* Useful for application initialization.
|
224
|
+
* @description
|
225
|
+
* Use this method to register work which should be performed when the injector is done
|
226
|
+
* loading all modules.
|
227
|
+
*/
|
228
|
+
run: function(block) {
|
229
|
+
runBlocks.push(block);
|
230
|
+
return this;
|
231
|
+
}
|
232
|
+
};
|
233
|
+
|
234
|
+
if (configFn) {
|
235
|
+
config(configFn);
|
236
|
+
}
|
237
|
+
|
238
|
+
return moduleInstance;
|
239
|
+
|
240
|
+
/**
|
241
|
+
* @param {string} provider
|
242
|
+
* @param {string} method
|
243
|
+
* @param {String=} insertMethod
|
244
|
+
* @returns {angular.Module}
|
245
|
+
*/
|
246
|
+
function invokeLater(provider, method, insertMethod) {
|
247
|
+
return function() {
|
248
|
+
invokeQueue[insertMethod || 'push']([provider, method, arguments]);
|
249
|
+
return moduleInstance;
|
250
|
+
}
|
251
|
+
}
|
252
|
+
});
|
253
|
+
};
|
254
|
+
});
|
255
|
+
|
256
|
+
}
|
257
|
+
)(window);
|
258
|
+
|
259
|
+
/**
|
260
|
+
* Closure compiler type information
|
261
|
+
*
|
262
|
+
* @typedef { {
|
263
|
+
* requires: !Array.<string>,
|
264
|
+
* invokeQueue: !Array.<Array.<*>>,
|
265
|
+
*
|
266
|
+
* service: function(string, Function):angular.Module,
|
267
|
+
* factory: function(string, Function):angular.Module,
|
268
|
+
* value: function(string, *):angular.Module,
|
269
|
+
*
|
270
|
+
* filter: function(string, Function):angular.Module,
|
271
|
+
*
|
272
|
+
* init: function(Function):angular.Module
|
273
|
+
* } }
|
274
|
+
*/
|
275
|
+
angular.Module;
|
276
|
+
|