sw2at-ui 0.0.12 → 0.0.13

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/javascripts/swat/app/app.coffee +9 -0
  4. data/app/assets/javascripts/swat/app/controllers/global_nav.coffee +2 -0
  5. data/app/assets/javascripts/swat/app/controllers/management/configuration.coffee +13 -0
  6. data/app/assets/javascripts/swat/app/controllers/revision.coffee +3 -2
  7. data/app/assets/javascripts/swat/app/controllers/revisions.coffee +5 -1
  8. data/app/assets/javascripts/swat/app/controllers/root.coffee +3 -1
  9. data/app/assets/javascripts/swat/app/controllers/summary.coffee +5 -36
  10. data/app/assets/javascripts/swat/app/factories/global_control.coffee +23 -0
  11. data/app/assets/javascripts/swat/app/factories/summary/exception_groups.coffee +17 -0
  12. data/app/assets/javascripts/swat/app/factories/{fails_graph.coffee → summary/fails_graph.coffee} +0 -0
  13. data/app/assets/javascripts/swat/app/factories/summary/revision_metrics.coffee +26 -0
  14. data/app/assets/javascripts/swat/app/services/configuration.coffee +4 -0
  15. data/app/assets/javascripts/swat/bower_components.coffee +1 -0
  16. data/app/assets/javascripts/swat/lib/angular-cookies.js +321 -0
  17. data/app/assets/stylesheets/swat/application.scss +22 -6
  18. data/app/assets/stylesheets/swat/configuration.scss +35 -0
  19. data/app/assets/stylesheets/swat/header.scss +35 -1
  20. data/app/assets/stylesheets/swat/nav.scss +85 -0
  21. data/app/assets/stylesheets/swat/swat_theme.scss +60 -67
  22. data/app/assets/stylesheets/swat/vars.scss +54 -0
  23. data/app/controllers/swat/api/configuration_controller.rb +12 -0
  24. data/app/controllers/swat/api/revisions_controller.rb +1 -0
  25. data/app/controllers/swat/pages/management_controller.rb +6 -0
  26. data/app/views/layouts/swat/application.slim +6 -3
  27. data/app/views/swat/pages/management/configuration.slim +28 -0
  28. data/app/views/swat/pages/revisions/index.slim +4 -3
  29. data/app/views/swat/pages/revisions/partials/_revision_header.slim +13 -0
  30. data/app/views/swat/pages/revisions/show.slim +1 -13
  31. data/app/views/swat/pages/revisions/summary.slim +4 -17
  32. data/app/views/swat/shared/_header.slim +2 -0
  33. data/app/views/swat/shared/_nav.slim +22 -0
  34. data/config/routes.rb +10 -0
  35. data/sw2at-ui.gemspec +19 -5
  36. metadata +18 -4
  37. data/app/controllers/swat/revisions_controller.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cffde9d161f0600912286898a90e66714af2b7c
4
- data.tar.gz: 3949594b3e4c1ca123f016d2592009fd1f5aae18
3
+ metadata.gz: 655fd2fafeee27655f4b5b13af4683bd405ebfce
4
+ data.tar.gz: 15deb9efdec3e938c4cd6ffb58b0da29783b1150
5
5
  SHA512:
6
- metadata.gz: 300ea82224d56e73969ab919a5f1434fe7c5fc19eb5225c752465cad44cffc74afe0a52c15fe1af6568d079afce3c015cc41b1f9f5266e292f87a9fd7286b6c0
7
- data.tar.gz: 80d5b68a71caacf1b5b9cd8f83bdda7ab9ba330dc28aec54481506f8da3978bdff9ef78228930c4edf8573478575d88c9cf717e23ce852519f8dbe5f895254e1
6
+ metadata.gz: 2784cbbeb343c6dd4c048ba9d639672ab99ccffc8d98615506960801d4b6ceff41e42ccc551bc0f6c07919e1701ac854dc45ad2ed7140d068ab7739edd50791a
7
+ data.tar.gz: b58bc99d1850bd960d8c9798e02607b2609ad9cb72940018a83dc5cd30ab763f2b2bf0e8a37bd7ad2f7f4f02cf02f4ad43a35cc457302f2b2a374fb0e82d4fce
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.12
1
+ 0.0.13
@@ -19,6 +19,7 @@ App = angular.module 'SWAT', [
19
19
  'ngClipboard'
20
20
  'highcharts-ng'
21
21
  'ngtimeago'
22
+ 'ngCookies'
22
23
  ]
23
24
 
24
25
  App.config ($urlRouterProvider, $stateProvider) ->
@@ -44,6 +45,14 @@ App.config ($urlRouterProvider, $stateProvider) ->
44
45
  templateUrl: "/swat/pages/revisions/summary.html"
45
46
  controller: 'SummaryCtrl'
46
47
  )
48
+ .state("configuration",
49
+ url: "/swat/configuration"
50
+ views:
51
+ content:
52
+ templateUrl: "/swat/pages/management/configuration.html"
53
+ controller: 'ConfigurationCtrl'
54
+
55
+ )
47
56
  App.config(['ngClipProvider', (ngClipProvider)->
48
57
  ngClipProvider.setPath("/assets/swat/bower_components/zeroclipboard/dist/ZeroClipboard.swf")
49
58
  ])
@@ -0,0 +1,2 @@
1
+ angular.module("SWAT").controller "GlobalNavController", ($rootScope, $scope, $state, $stateParams) ->
2
+ $scope.init = ->
@@ -0,0 +1,13 @@
1
+ angular.module("SWAT").controller "ConfigurationCtrl", ($rootScope, $scope, $state, $stateParams
2
+ ConfigurationService) ->
3
+ $scope.init = ->
4
+ setTimeout($scope.reloadConfig, 1000);
5
+ $rootScope.globalControl.setReloader($scope.reloadConfig)
6
+
7
+ $scope.reloadConfig = ->
8
+ $scope.configPromise = ConfigurationService.get()
9
+ $scope.configPromise.$promise.then((resp)->
10
+ $scope.config = resp
11
+ )
12
+
13
+ $scope.init()
@@ -2,12 +2,13 @@ angular.module("SWAT").controller "RevisionCtrl", ($rootScope, $scope, $state, $
2
2
  RevisionService) ->
3
3
 
4
4
  $scope.init = ->
5
+ $scope.currentState = $state.current.name
5
6
  $scope.reloadData()
6
-
7
+ $rootScope.globalControl.setReloader($scope.reloadData)
7
8
 
8
9
  $scope.reloadData = ->
9
10
  return if $scope.revisionPromise && !$scope.revisionPromise.$resolved
10
- params = { branch: $stateParams.branch, user: $stateParams.user, time: $stateParams.time }
11
+ params = { branch: decodeURI($stateParams.branch), user: $stateParams.user, time: $stateParams.time }
11
12
  $scope.revisionPromise = RevisionService.get(params)
12
13
  $scope.revisionPromise.$promise.then($scope.initTabs)
13
14
 
@@ -3,9 +3,13 @@ angular.module("SWAT").controller "RevisionsCtrl", ($rootScope, $scope, $state,
3
3
  $scope.init = ->
4
4
  window.Swat.log('Revisions Controller initalized!')
5
5
  $scope.initRevisions()
6
+ $rootScope.globalControl.setReloader($scope.initRevisions)
6
7
 
7
8
  $scope.initRevisions = ->
8
- $scope.revisions = RevisionService.query()
9
+ $scope.revisionsPromise = RevisionService.query()
10
+ $scope.revisionsPromise.$promise.then((resp)->
11
+ $scope.revisions = resp
12
+ )
9
13
 
10
14
  $scope.testsProgress = (revision)->
11
15
 
@@ -1,9 +1,11 @@
1
- angular.module("SWAT").controller "RootCtrl", ($rootScope, $scope, $state, SwatHelpers) ->
1
+ angular.module("SWAT").controller "RootCtrl", ($rootScope, $scope, $state, SwatHelpers, GlobalControl) ->
2
2
 
3
3
  $scope.init = ->
4
4
  $scope.helpers = SwatHelpers
5
5
  window.Swat.log 'Swat Root initialized.'
6
6
 
7
+ $rootScope.globalControl = new GlobalControl()
8
+
7
9
  $scope.init()
8
10
 
9
11
 
@@ -1,9 +1,11 @@
1
1
  angular.module("SWAT").controller "SummaryCtrl", ($rootScope, $scope, $state, $stateParams
2
- RevisionService, FailsGraph, SwatHelpers) ->
2
+ RevisionService, FailsGraph, RevisionMetrics, ExceptionGroups) ->
3
3
 
4
4
  $scope.init = ->
5
+ $scope.currentState = $state.current.name
5
6
  $scope.summary = {}
6
7
  $scope.reloadData()
8
+ $rootScope.globalControl.setReloader($scope.reloadData)
7
9
 
8
10
  $scope.reloadData = ->
9
11
  return if $scope.revisionPromise && !$scope.revisionPromise.$resolved
@@ -24,46 +26,13 @@ angular.module("SWAT").controller "SummaryCtrl", ($rootScope, $scope, $state, $s
24
26
  $scope.summary.fails = _.select($scope.tests, (t)->(t.exception) )
25
27
 
26
28
  $scope.initExceptions = ->
27
- groups = _.groupBy($scope.summary.fails, (f)->(f.exception.message) )
28
- window.Swat.log(groups)
29
-
30
- result = []
31
- for exMessage in _.keys(groups)
32
- exception =
33
- message: exMessage
34
- backtrace: groups[exMessage][0].exception.backtrace
35
- tests: groups[exMessage]
36
- result.push(exception)
37
-
38
- window.Swat.log(result)
39
- $scope.summary.exceptions = result
29
+ $scope.summary.exceptions = new ExceptionGroups($scope.summary.fails).data()
40
30
 
41
31
  $scope.initFailsStatsGraph = ->
42
32
  $scope.failsStats = new FailsGraph($scope.tests, $scope.summary.fails)
43
33
 
44
34
  $scope.initMetrics = ->
45
- result = []
46
- totalTests = $scope.tests.length
47
- totalFailedTests = $scope.summary.fails.length
48
- totalDuration = _.sum($scope.tests, 'run_time')
49
- totalThreadDuration = _.sum($scope.revision.data.threads, 'total_runtime')
50
- successPercentage = (($scope.tests.length - $scope.summary.fails.length) / $scope.tests.length*100)
51
-
52
- result.push({ name: 'Revision Name', value: $scope.revision.data.name })
53
- result.push({ name: 'Revision Status', value: $scope.revision.data.status.name })
54
- result.push({ name: 'Revision Branch', value: $scope.revision.data.branch })
55
- result.push({ name: 'Revisor', value: $scope.revision.data.user })
56
- result.push({ name: 'Threads Count', value: $scope.revision.data.threads_count })
57
-
58
- result.push({ name: 'Total Tests', value: totalTests })
59
- result.push({ name: 'Total Failed Tests', value: totalFailedTests })
60
-
61
- result.push({ name: 'Total Tests Duration', value: SwatHelpers.formatTime(totalDuration) })
62
- result.push({ name: 'Total Threads Duration', value: SwatHelpers.formatTime(totalThreadDuration) })
63
-
64
- result.push({ name: 'Success Percentage', value: (successPercentage.toFixed(2)+'%') })
65
-
66
- $scope.summary.metrics = result
35
+ $scope.summary.metrics = new RevisionMetrics($scope.revision, $scope.tests, $scope.summary.fails).data()
67
36
 
68
37
  $scope.init()
69
38
 
@@ -0,0 +1,23 @@
1
+ angular.module("SWAT").factory "GlobalControl", ($cookies)->
2
+ class GlobalControl
3
+ constructor: ->
4
+ @initStatus()
5
+ @setReloader(->{})
6
+
7
+ initStatus: ->
8
+ status = $cookies.get('MainMenuStatus') || 'closed';
9
+ @setStatus(status)
10
+
11
+ toggle: ->
12
+ @setStatus(if @status == 'closed' then 'opened' else 'closed')
13
+
14
+ setStatus: (value)->
15
+ $cookies.put('MainMenuStatus', value);
16
+ @status = value
17
+
18
+ setReloader: (func)->
19
+ @reloader = func
20
+
21
+ reload: ->
22
+ @reloader()
23
+
@@ -0,0 +1,17 @@
1
+ angular.module("SWAT").factory "ExceptionGroups", ->
2
+ class ExceptionGroups
3
+ constructor: (@fails)->
4
+
5
+ data: ->
6
+ groups = _.groupBy(@fails, (f)->(f.exception.message) )
7
+ window.Swat.log(groups)
8
+
9
+ result = []
10
+ for exMessage in _.keys(groups)
11
+ exception =
12
+ message: exMessage
13
+ backtrace: groups[exMessage][0].exception.backtrace
14
+ tests: groups[exMessage]
15
+ result.push(exception)
16
+ window.Swat.log(result)
17
+ result
@@ -0,0 +1,26 @@
1
+ angular.module("SWAT").factory "RevisionMetrics", (SwatHelpers)->
2
+ class RevisionMetrics
3
+ constructor: (@revision, @tests, @fails)->
4
+
5
+ data: ->
6
+ result = []
7
+ totalTests = @tests.length
8
+ totalFailedTests = @fails.length
9
+ totalDuration = _.sum(@tests, 'run_time')
10
+ totalThreadDuration = _.sum(@revision.data.threads, 'total_runtime')
11
+ successPercentage = ((@tests.length - @fails.length) / @tests.length*100)
12
+
13
+ result.push({ name: 'Revision Name', value: @revision.data.name })
14
+ result.push({ name: 'Revision Status', value: @revision.data.status.name })
15
+ result.push({ name: 'Revision Branch', value: @revision.data.branch })
16
+ result.push({ name: 'Revisor', value: @revision.data.user })
17
+ result.push({ name: 'Threads Count', value: @revision.data.threads_count })
18
+
19
+ result.push({ name: 'Total Tests', value: totalTests })
20
+ result.push({ name: 'Total Failed Tests', value: totalFailedTests })
21
+
22
+ result.push({ name: 'Total Tests Duration', value: SwatHelpers.formatTime(totalDuration) })
23
+ result.push({ name: 'Total Threads Duration', value: SwatHelpers.formatTime(totalThreadDuration) })
24
+
25
+ result.push({ name: 'Success Percentage', value: (successPercentage.toFixed(2)+'%') })
26
+ result
@@ -0,0 +1,4 @@
1
+ angular.module("SWAT").factory "ConfigurationService", ($resource, GlResponse) ->
2
+ $resource "/swat/api/configuration", {},
3
+ get:
4
+ method: 'GET'
@@ -17,3 +17,4 @@
17
17
  #= require swat/lib/highcharts.src.js
18
18
  #= require swat/lib/highcharts-ng.js
19
19
  #= require swat/lib/ngtimeago.js
20
+ #= require swat/lib/angular-cookies.js
@@ -0,0 +1,321 @@
1
+ /**
2
+ * @license AngularJS v1.4.2-build.4091+sha.fe0af2c
3
+ * (c) 2010-2015 Google, Inc. http://angularjs.org
4
+ * License: MIT
5
+ */
6
+ (function(window, angular, undefined) {'use strict';
7
+
8
+ /**
9
+ * @ngdoc module
10
+ * @name ngCookies
11
+ * @description
12
+ *
13
+ * # ngCookies
14
+ *
15
+ * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies.
16
+ *
17
+ *
18
+ * <div doc-module-components="ngCookies"></div>
19
+ *
20
+ * See {@link ngCookies.$cookies `$cookies`} for usage.
21
+ */
22
+
23
+
24
+ angular.module('ngCookies', ['ng']).
25
+ /**
26
+ * @ngdoc provider
27
+ * @name $cookiesProvider
28
+ * @description
29
+ * Use `$cookiesProvider` to change the default behavior of the {@link ngCookies.$cookies $cookies} service.
30
+ * */
31
+ provider('$cookies', [function $CookiesProvider() {
32
+ /**
33
+ * @ngdoc property
34
+ * @name $cookiesProvider#defaults
35
+ * @description
36
+ *
37
+ * Object containing default options to pass when setting cookies.
38
+ *
39
+ * The object may have following properties:
40
+ *
41
+ * - **path** - `{string}` - The cookie will be available only for this path and its
42
+ * sub-paths. By default, this would be the URL that appears in your base tag.
43
+ * - **domain** - `{string}` - The cookie will be available only for this domain and
44
+ * its sub-domains. For obvious security reasons the user agent will not accept the
45
+ * cookie if the current domain is not a sub domain or equals to the requested domain.
46
+ * - **expires** - `{string|Date}` - String of the form "Wdy, DD Mon YYYY HH:MM:SS GMT"
47
+ * or a Date object indicating the exact date/time this cookie will expire.
48
+ * - **secure** - `{boolean}` - The cookie will be available only in secured connection.
49
+ *
50
+ * Note: by default the address that appears in your `<base>` tag will be used as path.
51
+ * This is import so that cookies will be visible for all routes in case html5mode is enabled
52
+ *
53
+ **/
54
+ var defaults = this.defaults = {};
55
+
56
+ function calcOptions(options) {
57
+ return options ? angular.extend({}, defaults, options) : defaults;
58
+ }
59
+
60
+ /**
61
+ * @ngdoc service
62
+ * @name $cookies
63
+ *
64
+ * @description
65
+ * Provides read/write access to browser's cookies.
66
+ *
67
+ * <div class="alert alert-info">
68
+ * Up until Angular 1.3, `$cookies` exposed properties that represented the
69
+ * current browser cookie values. In version 1.4, this behavior has changed, and
70
+ * `$cookies` now provides a standard api of getters, setters etc.
71
+ * </div>
72
+ *
73
+ * Requires the {@link ngCookies `ngCookies`} module to be installed.
74
+ *
75
+ * @example
76
+ *
77
+ * ```js
78
+ * angular.module('cookiesExample', ['ngCookies'])
79
+ * .controller('ExampleController', ['$cookies', function($cookies) {
80
+ * // Retrieving a cookie
81
+ * var favoriteCookie = $cookies.get('myFavorite');
82
+ * // Setting a cookie
83
+ * $cookies.put('myFavorite', 'oatmeal');
84
+ * }]);
85
+ * ```
86
+ */
87
+ this.$get = ['$$cookieReader', '$$cookieWriter', function($$cookieReader, $$cookieWriter) {
88
+ return {
89
+ /**
90
+ * @ngdoc method
91
+ * @name $cookies#get
92
+ *
93
+ * @description
94
+ * Returns the value of given cookie key
95
+ *
96
+ * @param {string} key Id to use for lookup.
97
+ * @returns {string} Raw cookie value.
98
+ */
99
+ get: function(key) {
100
+ return $$cookieReader()[key];
101
+ },
102
+
103
+ /**
104
+ * @ngdoc method
105
+ * @name $cookies#getObject
106
+ *
107
+ * @description
108
+ * Returns the deserialized value of given cookie key
109
+ *
110
+ * @param {string} key Id to use for lookup.
111
+ * @returns {Object} Deserialized cookie value.
112
+ */
113
+ getObject: function(key) {
114
+ var value = this.get(key);
115
+ return value ? angular.fromJson(value) : value;
116
+ },
117
+
118
+ /**
119
+ * @ngdoc method
120
+ * @name $cookies#getAll
121
+ *
122
+ * @description
123
+ * Returns a key value object with all the cookies
124
+ *
125
+ * @returns {Object} All cookies
126
+ */
127
+ getAll: function() {
128
+ return $$cookieReader();
129
+ },
130
+
131
+ /**
132
+ * @ngdoc method
133
+ * @name $cookies#put
134
+ *
135
+ * @description
136
+ * Sets a value for given cookie key
137
+ *
138
+ * @param {string} key Id for the `value`.
139
+ * @param {string} value Raw value to be stored.
140
+ * @param {Object=} options Options object.
141
+ * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults}
142
+ */
143
+ put: function(key, value, options) {
144
+ $$cookieWriter(key, value, calcOptions(options));
145
+ },
146
+
147
+ /**
148
+ * @ngdoc method
149
+ * @name $cookies#putObject
150
+ *
151
+ * @description
152
+ * Serializes and sets a value for given cookie key
153
+ *
154
+ * @param {string} key Id for the `value`.
155
+ * @param {Object} value Value to be stored.
156
+ * @param {Object=} options Options object.
157
+ * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults}
158
+ */
159
+ putObject: function(key, value, options) {
160
+ this.put(key, angular.toJson(value), options);
161
+ },
162
+
163
+ /**
164
+ * @ngdoc method
165
+ * @name $cookies#remove
166
+ *
167
+ * @description
168
+ * Remove given cookie
169
+ *
170
+ * @param {string} key Id of the key-value pair to delete.
171
+ * @param {Object=} options Options object.
172
+ * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults}
173
+ */
174
+ remove: function(key, options) {
175
+ $$cookieWriter(key, undefined, calcOptions(options));
176
+ }
177
+ };
178
+ }];
179
+ }]);
180
+
181
+ angular.module('ngCookies').
182
+ /**
183
+ * @ngdoc service
184
+ * @name $cookieStore
185
+ * @deprecated
186
+ * @requires $cookies
187
+ *
188
+ * @description
189
+ * Provides a key-value (string-object) storage, that is backed by session cookies.
190
+ * Objects put or retrieved from this storage are automatically serialized or
191
+ * deserialized by angular's toJson/fromJson.
192
+ *
193
+ * Requires the {@link ngCookies `ngCookies`} module to be installed.
194
+ *
195
+ * <div class="alert alert-danger">
196
+ * **Note:** The $cookieStore service is **deprecated**.
197
+ * Please use the {@link ngCookies.$cookies `$cookies`} service instead.
198
+ * </div>
199
+ *
200
+ * @example
201
+ *
202
+ * ```js
203
+ * angular.module('cookieStoreExample', ['ngCookies'])
204
+ * .controller('ExampleController', ['$cookieStore', function($cookieStore) {
205
+ * // Put cookie
206
+ * $cookieStore.put('myFavorite','oatmeal');
207
+ * // Get cookie
208
+ * var favoriteCookie = $cookieStore.get('myFavorite');
209
+ * // Removing a cookie
210
+ * $cookieStore.remove('myFavorite');
211
+ * }]);
212
+ * ```
213
+ */
214
+ factory('$cookieStore', ['$cookies', function($cookies) {
215
+
216
+ return {
217
+ /**
218
+ * @ngdoc method
219
+ * @name $cookieStore#get
220
+ *
221
+ * @description
222
+ * Returns the value of given cookie key
223
+ *
224
+ * @param {string} key Id to use for lookup.
225
+ * @returns {Object} Deserialized cookie value, undefined if the cookie does not exist.
226
+ */
227
+ get: function(key) {
228
+ return $cookies.getObject(key);
229
+ },
230
+
231
+ /**
232
+ * @ngdoc method
233
+ * @name $cookieStore#put
234
+ *
235
+ * @description
236
+ * Sets a value for given cookie key
237
+ *
238
+ * @param {string} key Id for the `value`.
239
+ * @param {Object} value Value to be stored.
240
+ */
241
+ put: function(key, value) {
242
+ $cookies.putObject(key, value);
243
+ },
244
+
245
+ /**
246
+ * @ngdoc method
247
+ * @name $cookieStore#remove
248
+ *
249
+ * @description
250
+ * Remove given cookie
251
+ *
252
+ * @param {string} key Id of the key-value pair to delete.
253
+ */
254
+ remove: function(key) {
255
+ $cookies.remove(key);
256
+ }
257
+ };
258
+
259
+ }]);
260
+
261
+ /**
262
+ * @name $$cookieWriter
263
+ * @requires $document
264
+ *
265
+ * @description
266
+ * This is a private service for writing cookies
267
+ *
268
+ * @param {string} name Cookie name
269
+ * @param {string=} value Cookie value (if undefined, cookie will be deleted)
270
+ * @param {Object=} options Object with options that need to be stored for the cookie.
271
+ */
272
+ function $$CookieWriter($document, $log, $browser) {
273
+ var cookiePath = $browser.baseHref();
274
+ var rawDocument = $document[0];
275
+
276
+ function buildCookieString(name, value, options) {
277
+ var path, expires;
278
+ options = options || {};
279
+ expires = options.expires;
280
+ path = angular.isDefined(options.path) ? options.path : cookiePath;
281
+ if (value === undefined) {
282
+ expires = 'Thu, 01 Jan 1970 00:00:00 GMT';
283
+ value = '';
284
+ }
285
+ if (angular.isString(expires)) {
286
+ expires = new Date(expires);
287
+ }
288
+
289
+ var str = encodeURIComponent(name) + '=' + encodeURIComponent(value);
290
+ str += path ? ';path=' + path : '';
291
+ str += options.domain ? ';domain=' + options.domain : '';
292
+ str += expires ? ';expires=' + expires.toUTCString() : '';
293
+ str += options.secure ? ';secure' : '';
294
+
295
+ // per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum:
296
+ // - 300 cookies
297
+ // - 20 cookies per unique domain
298
+ // - 4096 bytes per cookie
299
+ var cookieLength = str.length + 1;
300
+ if (cookieLength > 4096) {
301
+ $log.warn("Cookie '" + name +
302
+ "' possibly not set or overflowed because it was too large (" +
303
+ cookieLength + " > 4096 bytes)!");
304
+ }
305
+
306
+ return str;
307
+ }
308
+
309
+ return function(name, value, options) {
310
+ rawDocument.cookie = buildCookieString(name, value, options);
311
+ };
312
+ }
313
+
314
+ $$CookieWriter.$inject = ['$document', '$log', '$browser'];
315
+
316
+ angular.module('ngCookies').provider('$$cookieWriter', function $$CookieWriterProvider() {
317
+ this.$get = $$CookieWriter;
318
+ });
319
+
320
+
321
+ })(window, window.angular);
@@ -2,9 +2,7 @@
2
2
  //= require_self
3
3
 
4
4
  @import "bootstrap";
5
-
6
- $greyBg: #9f9f9f;
7
- $greenMain: greenyellow;
5
+ @import "vars";
8
6
 
9
7
  #swat {
10
8
  font-size: 13px;
@@ -20,9 +18,27 @@ $greenMain: greenyellow;
20
18
  }
21
19
  }
22
20
  #content {
23
- background: rgb(240, 240, 240);
21
+
24
22
  }
25
- #container {
26
- padding: 0px 15px 15px 15px;
23
+
24
+
25
+ table.info {
26
+ font-size: 14px;
27
+ background: $greyBg;
28
+ width: 100%;
29
+ tr {
30
+ border-bottom: 1px solid $whiteColor;
31
+ td {
32
+ padding: 12px;
33
+ &.name {
34
+ width: 200px;
35
+ padding-left: 21px;
36
+ color: $lightBlueColor;
37
+ }
38
+ }
39
+ }
27
40
  }
41
+
28
42
  }
43
+
44
+
@@ -0,0 +1,35 @@
1
+ @import "vars";
2
+
3
+ #swat {
4
+
5
+ #configuration {
6
+
7
+ .title {
8
+
9
+ }
10
+ .configuration-info-container {
11
+ display: block;
12
+ width: 100%;
13
+ }
14
+ #configuration-info {
15
+ background: $whiteColor;
16
+ border: 1px solid $containerBorder;
17
+ margin: 20px;
18
+ padding: 28px 38px;
19
+ width: 800px;
20
+ margin: auto;
21
+
22
+ .heading {
23
+ text-align: left;
24
+ margin: 0;
25
+ color: rgba(60, 56, 55, 0.68);
26
+ }
27
+
28
+ table {
29
+ margin-bottom: 18px;
30
+ }
31
+
32
+ }
33
+ }
34
+
35
+ }