mno-enterprise-frontend 2.0.9 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mno_enterprise/angular/app.js.coffee.erb +0 -120
  3. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/maestrano-components.js.coffee +0 -11
  4. data/app/assets/javascripts/mno_enterprise/application.js +0 -2
  5. data/app/assets/javascripts/mno_enterprise/lib/xeditable.js +0 -0
  6. data/app/assets/stylesheets/mno_enterprise/main.less +0 -28
  7. data/app/views/layouts/mno_enterprise/_application_js.html.haml +0 -4
  8. data/app/views/layouts/mno_enterprise/_common_cdn_lib_js.html.haml +0 -5
  9. data/app/views/layouts/mno_enterprise/_header_files.html.haml +0 -3
  10. data/app/views/layouts/mno_enterprise/application.html.haml +1 -1
  11. data/app/views/mno_enterprise/provision/_provision_apps.html.haml +7 -8
  12. data/config/routes.rb +1 -10
  13. data/lib/mno_enterprise/frontend/engine.rb +12 -0
  14. data/lib/mno_enterprise/frontend/locales_generator.rb +57 -0
  15. data/lib/tasks/mnoe_admin_tasks.rake +67 -0
  16. data/lib/tasks/mnoe_frontend_tasks.rake +138 -0
  17. data/lib/tasks/mnoe_locales.rake +14 -0
  18. data/lib/tasks/templates/bower.json +10 -0
  19. data/spec/controllers/mno_enterprise/auth/confirmations_controller_spec.rb +2 -2
  20. data/spec/controllers/mno_enterprise/webhook/o_auth_controller_spec.rb +1 -1
  21. data/spec/lib/mno_enterprise/locales_generator_spec.rb +14 -0
  22. data/spec/lib/tasks/mnoe_locales_rake_spec.rb +25 -0
  23. metadata +35 -145
  24. data/app/assets/images/mno_enterprise/impac/close-widget-pink.png +0 -0
  25. data/app/assets/images/mno_enterprise/impac/close-widget.png +0 -0
  26. data/app/assets/javascripts/mno_enterprise/angular/controllers/maestrano-controllers.js.coffee +0 -4
  27. data/app/assets/javascripts/mno_enterprise/angular/controllers/modals/modals-ctrl.js.coffee +0 -62
  28. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-account.js.coffee +0 -157
  29. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-app-deletion-request.js.coffee +0 -62
  30. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-apps-list.js.coffee +0 -127
  31. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-components.js.coffee +0 -25
  32. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-marketplace-app.js.coffee +0 -77
  33. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-marketplace.js.coffee +0 -51
  34. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/dashboard-menu.js.coffee +0 -174
  35. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/arrears.js.coffee +0 -70
  36. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/billing.js.coffee +0 -48
  37. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/credit-card.js.coffee +0 -142
  38. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/index.js.coffee +0 -61
  39. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/invoices.js.coffee +0 -42
  40. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/members.js.coffee +0 -280
  41. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/settings.js.coffee +0 -91
  42. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/team-list.js.coffee +0 -179
  43. data/app/assets/javascripts/mno_enterprise/angular/directives/dashboard/organization/teams.js.coffee +0 -268
  44. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/file-model.js.coffee +0 -33
  45. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-autostop-app.js.coffee +0 -123
  46. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-currency-widget.js.coffee +0 -43
  47. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-current-currency.js.coffee +0 -22
  48. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-editable.js.coffee +0 -68
  49. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-helptext.js.coffee +0 -38
  50. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-match.js.coffee +0 -14
  51. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-message-modal.js.coffee +0 -56
  52. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-partner-code-popup.js.coffee +0 -74
  53. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-partner-contact.js.coffee +0 -59
  54. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-price-converter.js.coffee +0 -49
  55. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-scroll-to.js.coffee +0 -14
  56. data/app/assets/javascripts/mno_enterprise/angular/directives/maestrano-components/mno-typeahead.js.coffee +0 -89
  57. data/app/assets/javascripts/mno_enterprise/angular/directives/user-setup/components.js.coffee +0 -7
  58. data/app/assets/javascripts/mno_enterprise/angular/directives/user-setup/index.js.coffee +0 -256
  59. data/app/assets/javascripts/mno_enterprise/angular/filters/maestrano-app-by-category.js.coffee +0 -5
  60. data/app/assets/javascripts/mno_enterprise/angular/filters/maestrano-currency.js.coffee +0 -30
  61. data/app/assets/javascripts/mno_enterprise/angular/filters/maestrano-filters.js.coffee +0 -7
  62. data/app/assets/javascripts/mno_enterprise/angular/filters/maestrano-replace-underscore-with-space.js.coffee +0 -4
  63. data/app/assets/javascripts/mno_enterprise/angular/filters/maestrano-titleize.js.coffee +0 -7
  64. data/app/assets/javascripts/mno_enterprise/angular/filters/maestrano-truncate.js.coffee +0 -24
  65. data/app/assets/javascripts/mno_enterprise/angular/services/dashboard/maestrano-app-instance.js.coffee +0 -15
  66. data/app/assets/javascripts/mno_enterprise/angular/services/dashboard/maestrano-apps-document.js.coffee +0 -83
  67. data/app/assets/javascripts/mno_enterprise/angular/services/dashboard/maestrano-user.js.coffee +0 -27
  68. data/app/assets/javascripts/mno_enterprise/angular/services/dashboard/organization-svc.js.coffee +0 -318
  69. data/app/assets/javascripts/mno_enterprise/angular/services/dashboard/team-svc.js.coffee +0 -180
  70. data/app/assets/javascripts/mno_enterprise/angular/services/dashboard/tickets-svc.js.coffee +0 -109
  71. data/app/assets/javascripts/mno_enterprise/angular/services/impac-config.svc.js.coffee +0 -35
  72. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-apps-list-helper.js.coffee +0 -337
  73. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-current-currency.js.coffee +0 -7
  74. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-current-user-svc.js.coffee +0 -99
  75. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-exchange-rates.js.coffee +0 -102
  76. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-miscellaneous.js.coffee.erb +0 -46
  77. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-modal.js.coffee +0 -67
  78. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-services.js.coffee +0 -21
  79. data/app/assets/javascripts/mno_enterprise/angular/services/maestrano-shopping-cart.js.coffee +0 -361
  80. data/app/assets/javascripts/mno_enterprise/angular/services/marketplace-svc.js.coffee +0 -59
  81. data/app/assets/javascripts/mno_enterprise/lib/angular-really-click.js +0 -17
  82. data/app/assets/javascripts/ng-performance/ngPerformance.html +0 -109
  83. data/app/assets/javascripts/ng-performance/ngPerformance.js +0 -211
  84. data/app/assets/stylesheets/mno_enterprise/custom/impac-variables-override.less +0 -65
  85. data/app/assets/stylesheets/mno_enterprise/custom/utility/app-presentation.less +0 -77
  86. data/app/assets/stylesheets/mno_enterprise/custom/utility/banners.less +0 -145
  87. data/app/assets/stylesheets/mno_enterprise/custom/utility/carousel.less +0 -68
  88. data/app/assets/stylesheets/mno_enterprise/custom/utility/helptext.less +0 -40
  89. data/app/assets/stylesheets/mno_enterprise/custom/utility/miscellaneous.less +0 -134
  90. data/app/assets/stylesheets/mno_enterprise/custom/utility/testimonial.less +0 -118
  91. data/app/assets/stylesheets/mno_enterprise/custom/views/apps.less +0 -243
  92. data/app/assets/stylesheets/mno_enterprise/custom/views/myspace.less +0 -477
  93. data/app/assets/stylesheets/mno_enterprise/custom/views/pages/home.less +0 -57
  94. data/app/assets/stylesheets/mno_enterprise/custom/views/star.less +0 -18
  95. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/dashboard/bootstrap-wizard.less +0 -63
  96. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/dashboard/dashboard-marketplace.less +0 -187
  97. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/dashboard/dashboard-organization.less +0 -149
  98. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/dashboard/dashboard-teams.less +0 -119
  99. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/dashboard/support.less +0 -42
  100. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/dashboard/tickets.less +0 -80
  101. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/mno-editable.less +0 -60
  102. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/shopping-cart.less +0 -333
  103. data/app/assets/stylesheets/mno_enterprise/custom/views/templates/star-wizard.less +0 -49
  104. data/app/assets/stylesheets/mno_enterprise/custom/views/user-setup.less +0 -10
  105. data/app/assets/templates/mno_enterprise/dashboard/account.html +0 -131
  106. data/app/assets/templates/mno_enterprise/dashboard/app_deletion.html +0 -36
  107. data/app/assets/templates/mno_enterprise/dashboard/apps_list.html +0 -103
  108. data/app/assets/templates/mno_enterprise/dashboard/horizontal_menu.html +0 -85
  109. data/app/assets/templates/mno_enterprise/dashboard/marketplace/index.html +0 -60
  110. data/app/assets/templates/mno_enterprise/dashboard/marketplace/show.html +0 -133
  111. data/app/assets/templates/mno_enterprise/dashboard/menu.html +0 -161
  112. data/app/assets/templates/mno_enterprise/dashboard/organization/arrears.html +0 -37
  113. data/app/assets/templates/mno_enterprise/dashboard/organization/billing.html +0 -37
  114. data/app/assets/templates/mno_enterprise/dashboard/organization/credit-card.html +0 -156
  115. data/app/assets/templates/mno_enterprise/dashboard/organization/index.full.html +0 -181
  116. data/app/assets/templates/mno_enterprise/dashboard/organization/index.html +0 -173
  117. data/app/assets/templates/mno_enterprise/dashboard/organization/invoices.html +0 -27
  118. data/app/assets/templates/mno_enterprise/dashboard/organization/members.html +0 -288
  119. data/app/assets/templates/mno_enterprise/dashboard/organization/settings.html +0 -55
  120. data/app/assets/templates/mno_enterprise/dashboard/teams/index.html +0 -175
  121. data/app/assets/templates/mno_enterprise/dashboard/teams/member-add-modal.html +0 -60
  122. data/app/assets/templates/mno_enterprise/dashboard/teams/member-removal-modal.html +0 -35
  123. data/app/assets/templates/mno_enterprise/dashboard/teams/team-add-modal.html +0 -35
  124. data/app/assets/templates/mno_enterprise/dashboard/teams/team-delete-modal.html +0 -35
  125. data/app/assets/templates/mno_enterprise/dashboard/teams/team-list.html +0 -107
  126. data/app/assets/templates/mno_enterprise/default_template.html +0 -20
  127. data/app/assets/templates/mno_enterprise/maestrano-components/autostop_app.html +0 -42
  128. data/app/assets/templates/mno_enterprise/maestrano-components/currency_widget.html +0 -1
  129. data/app/assets/templates/mno_enterprise/maestrano-components/editable.html +0 -28
  130. data/app/assets/templates/mno_enterprise/maestrano-components/modal-messages/congratulations.html +0 -8
  131. data/app/assets/templates/mno_enterprise/maestrano-components/modal-messages/default.html +0 -1
  132. data/app/assets/templates/mno_enterprise/maestrano-components/modal-messages/information.html +0 -8
  133. data/app/assets/templates/mno_enterprise/maestrano-components/star_wizard.html +0 -254
  134. data/app/assets/templates/mno_enterprise/maestrano-components/upload_spreadsheet.html +0 -191
  135. data/app/assets/templates/mno_enterprise/modals/new-organization-reseller-req.html +0 -35
  136. data/app/assets/templates/mno_enterprise/modals/new-organization.html +0 -35
  137. data/app/assets/templates/mno_enterprise/user-setup/index.html +0 -312
  138. data/app/controllers/mno_enterprise/pages_controller.rb +0 -9
  139. data/app/controllers/mno_enterprise/user_setup_controller.rb +0 -11
  140. data/app/views/layouts/mno_enterprise/_impersonate_header.html.haml +0 -7
  141. data/app/views/layouts/mno_enterprise/application_dashboard.html.haml +0 -22
  142. data/app/views/mno_enterprise/pages/myspace.html.haml +0 -6
  143. data/app/views/mno_enterprise/user_setup/index.html.haml +0 -2
  144. data/config/initializers/ng-performance.rb +0 -3
  145. data/lib/assets/javascripts/impac-angular.js +0 -8719
  146. data/lib/assets/stylesheets/impac-angular.less +0 -2352
  147. data/lib/mno_enterprise/frontend/concerns/README.md +0 -6
  148. data/lib/mno_enterprise/frontend/concerns/controllers/pages_controller.rb +0 -25
  149. data/spec/controllers/mno_enterprise/pages_controller_spec.rb +0 -42
  150. data/spec/controllers/mno_enterprise/user_setup_controller_spec.rb +0 -33
  151. data/spec/routing/mno_enterprise/pages_controller_routing_spec.rb +0 -18
  152. data/spec/routing/mno_enterprise/user_setup_controller_routing_spec.rb +0 -11
@@ -1,59 +0,0 @@
1
- angular.module('maestrano.services.marketplace-svc', []).factory('MarketplaceSvc', ['$http','$q', ($http,$q) ->
2
- # Configuration
3
- service = {}
4
- service.routes = {
5
- indexPath: -> "/mnoe/jpi/v1/marketplace"
6
- showPath: (id) -> "#{service.routes.indexPath()}/#{id}"
7
- }
8
-
9
- # No default config for the moment
10
- service.defaultConfig = {}
11
-
12
- service.config = {
13
- $q: null # The current service promise
14
- }
15
-
16
- service.data = {}
17
-
18
- #======================================
19
- # Data Management
20
- #======================================
21
- # Configure the service
22
- service.configure = (opts) ->
23
- angular.copy(opts,service.config)
24
- angular.extend(service.config,service.defaultConfig)
25
-
26
- # Load the organization details
27
- # Document structure
28
- # :categories(all app categories)
29
- # :apps
30
- # [{
31
- # :id, :name, :stack, :key_benefits,
32
- # :is_responsive, :is_star_ready, :is_connec_ready,
33
- # :description, :testimonials, :pictures, :tutorial_page
34
- # }]
35
- #
36
- service.load = (force = false) ->
37
- self = service
38
- if !self.config.$q? || force
39
- self.config.$q = $http.get(self.routes.indexPath()).then (success) ->
40
- angular.copy(success.data,self.data)
41
-
42
- return self.config.$q
43
-
44
- # Force the service to reload
45
- service.reload = ->
46
- self.load(true).then(self.startAutoRefresh)
47
-
48
- # Setup the service
49
- # A load is only triggered if the service does not have
50
- # a promise already
51
- # To force a service reload, use the 'reload' function
52
- service.setup = (configOpts = {})->
53
- self = service
54
- if !self.config.$q?
55
- self.configure(configOpts)
56
- self.load(true)
57
-
58
- return service
59
- ])
@@ -1,17 +0,0 @@
1
- /**
2
- * A generic confirmation for risky actions.
3
- * Usage: Add attributes: ng-really-message="Are you sure"? ng-really-click="takeAction()" function
4
- */
5
- angular.module('ngReallyClick',[]).directive('ngReallyClick', [function() {
6
- return {
7
- restrict: 'A',
8
- link: function(scope, element, attrs) {
9
- element.bind('click', function() {
10
- var message = attrs.ngReallyMessage;
11
- if (message && confirm(message)) {
12
- scope.$apply(attrs.ngReallyClick);
13
- }
14
- });
15
- }
16
- }
17
- }]);
@@ -1,109 +0,0 @@
1
- <div>
2
- <style>
3
- #perfStats {
4
- position: fixed;
5
- right: 0;
6
- bottom: 15px;
7
- z-index: 100000;
8
- background-color: rgba(250, 249, 244, 0.97);
9
- border: 3px solid #843376;
10
- border-right: none;
11
- border-radius: 5px 0 0 5px;
12
- box-shadow: 0 1px 4px black;
13
- padding: 0 15px 15px;
14
- font-size: 0.65em;
15
- }
16
- #perfStats h3 {
17
- margin-bottom: 0;
18
- }
19
- #perfStats td:last-child {
20
- text-align: right;
21
- }
22
- </style>
23
- <div id="perfStats">
24
- <div id="perfStatsPanel">
25
- <h3>ANGULAR STATS</h3>
26
- <table class="table table-condensed">
27
- <tbody>
28
- <tr>
29
- <td>Total Scopes:</td>
30
- <td><span id="scopes">-</span></td>
31
- </tr>
32
- <tr>
33
- <td>Total Watchers:</td>
34
- <td><span id="watchers">-</span></td>
35
- </tr>
36
- <tr>
37
- <td>Dirty Checks:</td>
38
- <td><span id="dirty-checks">-</span></td>
39
- </tr>
40
- <tr>
41
- <td>Digest Cycles:</td>
42
- <td><span id="digest-cycles">-</span></td>
43
- </tr>
44
- <tr>
45
- <td>Digest Cycle (last):</td>
46
- <td>
47
- <span id="digest-ms">-</span> ms<br>
48
- <span id="digest-fps">-</span> FPS
49
- </td>
50
- </tr>
51
- <tr>
52
- <td>Digest Cycle (avg):</td>
53
- <td>
54
- <span id="avg-digest-ms">-</span> ms<br>
55
- <span id="avg-digest-fps">-</span> FPS
56
- </td>
57
- </tr>
58
- <tr>
59
- <td>Digest Cycle (max):</td>
60
- <td>
61
- <span id="max-digest-ms">-</span> ms<br>
62
- <span id="max-digest-fps">-</span> FPS
63
- </td>
64
- </tr>
65
- </tbody>
66
- </table>
67
-
68
- <h3>PAGELOAD STATS</h3>
69
- <table class="table table-condensed">
70
- <tbody>
71
- <tr>
72
- <td>Head Load:</td>
73
- <td><span id="head-load">-</span> ms</td>
74
- </tr>
75
- <tr>
76
- <td>Body Load:</td>
77
- <td><span id="body-load">-</span> ms</td>
78
- </tr>
79
- <tr>
80
- <td>Footer Load:</td>
81
- <td><span id="footer-load">-</span> ms</td>
82
- </tr>
83
- <tr>
84
- <td>Vendor Script Load:</td>
85
- <td><span id="vendor-load">-</span> ms</td>
86
- </tr>
87
- <tr>
88
- <td>App Load:</td>
89
- <td><span id="app-load">-</span> ms</td>
90
- </tr>
91
- <tr>
92
- <td>Metrics Load:</td>
93
- <td><span id="metrics-load">-</span> ms</td>
94
- </tr>
95
- <tr>
96
- <td>Time To End-of-Page:</td>
97
- <td><span id="time-to-eop">-</span> ms</td>
98
- </tr>
99
- <tr>
100
- <td>Time To Angular:</td>
101
- <td><span id="time-to-ng">-</span> ms</td>
102
- </tr>
103
- </tbody>
104
- </table>
105
- </div>
106
- </div>
107
- </div>
108
-
109
-
@@ -1,211 +0,0 @@
1
- (function (angular) {
2
-
3
- 'use strict';
4
-
5
- /**
6
- * @ngdoc directive
7
- * @name ngPerformanceApp.directive:ngPerformance
8
- * @description
9
- * # ngPerformance
10
- */
11
-
12
- var _el;
13
-
14
- function _setText(id, text) {
15
- if (_el[id]) {
16
- _el[id].textContent = text;
17
- }
18
- }
19
-
20
- var ngPerformanceModule = angular.module('blndspt.ngPerformance', []);
21
-
22
- ngPerformanceModule.directive('ngPerformance', [
23
- '$log',
24
- '$window',
25
- '$document',
26
- '$rootScope',
27
- function ($log, $window, $document, $rootScope) {
28
-
29
- //Initialize performance stats variables
30
- var ngStart = (performance != null) ? performance.now() : 0;
31
- var stats = ($window.perfStats) ? $window.perfStats :
32
- {
33
- TTLB: 0,
34
- appLoad: 0,
35
- bodyLoad: 0,
36
- footerLoad: 0,
37
- headLoad: 0,
38
- headStart: 0,
39
- metricsLoad: 0,
40
- timeToAngular: 0,
41
- vendorScriptLoad: 0
42
- };
43
-
44
- stats.timeToAngular = (ngStart - stats.headStart);
45
-
46
- //Count Scopes and Watchers
47
- var _countScopesWatchers = function () {
48
- // This logic is borrowed from $digest(). Keep it in sync!
49
- var next, current, target = $rootScope;
50
- var scopes = 0,
51
- watchers = 0;
52
-
53
- current = target;
54
- do {
55
- scopes += 1;
56
-
57
- if (current.$$watchers) {
58
- watchers += current.$$watchers.length;
59
- }
60
-
61
- // Insanity Warning: scope depth-first traversal
62
- // yes, this code is a bit crazy, but it works and we have tests to prove it!
63
- // this piece should be kept in sync with the traversal in $broadcast
64
- if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) {
65
- while (current !== target && !(next = current.$$nextSibling)) {
66
- current = current.$parent;
67
- }
68
- }
69
- } while ((current = next));
70
-
71
- return [scopes, watchers];
72
- };
73
-
74
- return {
75
- templateUrl: '/assets/ng-performance/ngPerformance.html',
76
- restrict: 'EA',
77
- link: function (/*scope, element, attrs*/) {
78
-
79
- // Cache DOM elements
80
- _el = {
81
- '#scopes': $document[0].querySelector('#scopes'),
82
- '#watchers': $document[0].querySelector('#watchers'),
83
- '#dirty-checks': $document[0].querySelector('#dirty-checks'),
84
- '#digest-cycles': $document[0].querySelector('#digest-cycles'),
85
- '#digest-ms': $document[0].querySelector('#digest-ms'),
86
- '#digest-fps': $document[0].querySelector('#digest-fps'),
87
- '#avg-digest-ms': $document[0].querySelector('#avg-digest-ms'),
88
- '#avg-digest-fps': $document[0].querySelector('#avg-digest-fps'),
89
- '#max-digest-ms': $document[0].querySelector('#max-digest-ms'),
90
- '#max-digest-fps': $document[0].querySelector('#max-digest-fps'),
91
-
92
- '#head-load': $document[0].querySelector('#head-load'),
93
- '#body-load': $document[0].querySelector('#body-load'),
94
- '#footer-load': $document[0].querySelector('#footer-load'),
95
- '#vendor-load': $document[0].querySelector('#vendor-load'),
96
- '#app-load': $document[0].querySelector('#app-load'),
97
- '#metrics-load': $document[0].querySelector('#metrics-load'),
98
- '#time-to-eop': $document[0].querySelector('#time-to-eop'),
99
- '#time-to-ng': $document[0].querySelector('#time-to-ng'),
100
- };
101
-
102
- _setText('#head-load', stats.headLoad.toFixed(1));
103
- _setText('#body-load', stats.bodyLoad.toFixed(1));
104
- _setText('#footer-load', stats.footerLoad.toFixed(1));
105
- _setText('#vendor-load', stats.vendorScriptLoad.toFixed(1));
106
- _setText('#app-load', stats.appLoad.toFixed(1));
107
- _setText('#metrics-load', stats.metricsLoad.toFixed(1));
108
- _setText('#time-to-eop', stats.TTLB.toFixed(1));
109
- _setText('#time-to-ng', stats.timeToAngular.toFixed(1));
110
-
111
-
112
- // If the browser doesn't support Web Performance API
113
- // (I'm looking at you, Safari), don't even try.
114
- if (performance != null) {
115
- var digestCycles = 0,
116
- digestStart = 0,
117
- sumDigestMs = 0,
118
- maxDigestMs = 0,
119
- dirtyChecks = 0;
120
-
121
- // $digest loop uses a reverse while.
122
- // Pushing onto the end of $$watchers array makes this run first...
123
- $rootScope.$$watchers.push({
124
- eq: false,
125
- last: null,
126
- fn: function () {
127
- },
128
- exp: function () {
129
- },
130
- get: function () {
131
- dirtyChecks++;
132
-
133
- // Only update digestStart if not set. This allows for multiple
134
- // iterations inside the "dirty loop."
135
- //
136
- // NOTE: This technique for timing the $digest cycles
137
- // DOES NOT capture time spent processing the asyncQueue!
138
- if (digestStart === 0) {
139
- // $log.debug('$rootScope.$watch: digestStart');
140
- digestStart = performance.now();
141
- digestCycles++;
142
- }
143
-
144
- // Schedules a one-shot callback after digest loop is clean
145
- $rootScope.$$postDigest(function () {
146
- if (digestStart !== 0) {
147
- var digestEnd = performance.now();
148
- var digestMs = (digestEnd - digestStart);
149
- _setText('#digest-ms', digestMs.toFixed(1));
150
- _setText('#digest-fps', (1000 / digestMs).toFixed(0));
151
-
152
- maxDigestMs = Math.max(digestMs, maxDigestMs);
153
- _setText('#max-digest-ms', maxDigestMs.toFixed(1));
154
- _setText('#max-digest-fps', (1000 / maxDigestMs).toFixed(0));
155
-
156
- sumDigestMs += digestMs;
157
- if (digestCycles > 0) {
158
- var avgDigestMs = sumDigestMs / digestCycles;
159
- _setText('#avg-digest-ms', avgDigestMs.toFixed(1));
160
- _setText('#avg-digest-fps', (1000 / avgDigestMs).toFixed(0));
161
- }
162
-
163
- _setText('#dirty-checks', dirtyChecks);
164
- _setText('#digest-cycles', digestCycles);
165
-
166
- var count = _countScopesWatchers();
167
- var scopes = count[0],
168
- watchers = count[1];
169
-
170
- _setText('#scopes', scopes);
171
- _setText('#watchers', watchers);
172
-
173
- var log = 'NG-PERF: Digest Cycle #' + digestCycles + ': ' + digestMs.toFixed(1) + ' ms, ' +
174
- 'Scopes: ' + scopes + ', Watchers: ' + watchers +
175
- ' [Overhead: ' + (performance.now() - digestEnd).toPrecision(3) + ' ms]';
176
- $log.debug(log);
177
- if ($window.console.timeStamp) {
178
- $window.console.timeStamp(log);
179
- }
180
-
181
- // Register an async function to run first.
182
- //
183
- // NOTE: This technique for timing the $digest cycles
184
- // DOES capture time spent processing the asyncQueue!
185
- // $rootScope.$$asyncQueue.unshift({
186
- // scope: $rootScope,
187
- // expression: function (scope) {
188
- // // $log.debug('$rootScope.$evalAsync: digestStart');
189
- // digestStart = performance.now();
190
- // digestCycles++;
191
- // }
192
- // });
193
-
194
- // Clear digestStart for next "dirty loop."
195
- digestStart = 0;
196
- }
197
- });
198
-
199
- return null;
200
- }
201
- });
202
- }
203
-
204
- }
205
-
206
- };
207
- }]);
208
-
209
- })
210
-
211
- (angular);
@@ -1,65 +0,0 @@
1
- /*-----------------------------------------------------------------------*/
2
- /* IMPAC */
3
- /*-----------------------------------------------------------------------*/
4
-
5
- // Dashboard
6
- //--------------------------------------
7
- @impac-dashboard-padding-top: 33px;
8
- @impac-dashboard-margin-left: 0px;
9
-
10
- // Title
11
- @impac-dashboard-title-label-color: @text-strong-color;
12
- @impac-dashboard-title-color: @elem-cozy-color;
13
- @impac-dashboard-source-color: @impac-dashboard-title-label-color;
14
- @impac-dashboard-buttons-border-radius: 4px;
15
-
16
- // Widgets container
17
- @impac-placeholder-border: 2px dashed @bg-inverse-color;
18
- @impac-padding-between-widgets: 12px;
19
- @impac-minimum-widget-size: 258px;
20
-
21
- // Widgets
22
- //--------------------------------------
23
- // Global
24
- @impac-widget-background-color: @bg-inverse-color;
25
- @impac-widget-text-color: @text-inverse-color;
26
- @impac-widget-text-color-light: lighten(@impac-widget-text-color,70%);
27
- @impac-widget-borders-color: lighten(@impac-widget-text-color-light,10%);
28
- @impac-widget-link-color: @decorator-inverse-color;
29
-
30
- // Title
31
- @impac-widget-title-text-color: darken(@impac-widget-text-color,5%);
32
- @impac-widget-title-bg: @impac-widget-background-color;
33
- @impac-widget-title-border: solid 1px @impac-widget-borders-color;
34
- @impac-widget-title-text-transform: uppercase;
35
- @impac-widget-title-text-size: 12px;
36
- @impac-widget-title-border-radius: 5px 5px 0px 0px;
37
-
38
- // Content
39
- @impac-widget-content-border-radius: 0px 0px 5px 5px;
40
- @impac-widget-lines-container-max-height: 210px;
41
-
42
- // Hist Mode Choser
43
- @impac-widget-hist-text-transform: uppercase;
44
- @impac-widget-hist-text-size: 12px;
45
- @impac-widget-hist-text-color: @impac-widget-text-color-light;
46
-
47
- // Price
48
- @impac-widget-price-color: @impac-widget-text-color;
49
- @impac-widget-price-positive-color: @elem-positive-color;
50
- @impac-widget-price-negative-color: @elem-cozy-color;
51
- @impac-widget-currency-color: @impac-widget-text-color-light;
52
- @impac-widget-legend-color: lighten(@impac-widget-text-color,30%);
53
-
54
- // Edit settings
55
- @impac-widget-sub-bg-color: darken(@impac-widget-background-color,10%);
56
- @impac-widget-sub-bg-color-light: lighten(@impac-widget-sub-bg-color,5%);
57
-
58
- // Invoices list
59
- @impac-widget-line-hover-bg: lighten(@bg-inverse-color,10%);
60
- @impac-widget-line-hover-text: @text-inverse-color;
61
-
62
- // Accounts Comparison
63
- @impac-big-widget-size: 581px;
64
- @impac-big-widget-bottom-padding: 30px;
65
- @impac-widget-accounts-comparison-lines-container-max-height: 250px;