mno-enterprise-core 3.2.1 → 3.3.0

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/mno_enterprise/application_controller.rb +5 -5
  3. data/app/helpers/mno_enterprise/image_helper.rb +32 -0
  4. data/app/models/mno_enterprise/app.rb +11 -2
  5. data/app/models/mno_enterprise/base_resource.rb +2 -0
  6. data/app/models/mno_enterprise/credit_card.rb +7 -4
  7. data/app/models/mno_enterprise/impac/dashboard.rb +4 -1
  8. data/app/models/mno_enterprise/impac/widget.rb +10 -4
  9. data/app/models/mno_enterprise/org_invite.rb +7 -3
  10. data/app/models/mno_enterprise/shared_entity.rb +17 -0
  11. data/app/models/mno_enterprise/user.rb +7 -2
  12. data/app/pdf/mno_enterprise/invoice_pdf.rb +176 -183
  13. data/app/views/system_notifications/email-change.html.erb +1 -1
  14. data/app/views/system_notifications/email-change.text.erb +1 -1
  15. data/config/initializers/audit_log.rb +28 -1
  16. data/config/locales/templates/components/en.yml +29 -4
  17. data/config/locales/templates/dashboard/en.yml +2 -2
  18. data/config/locales/templates/dashboard/marketplace/en.yml +5 -5
  19. data/config/locales/templates/dashboard/organization/en.yml +14 -8
  20. data/config/locales/templates/dashboard/organization/id.yml +4 -4
  21. data/config/locales/templates/dashboard/organization/zh.yml +4 -4
  22. data/config/locales/templates/dashboard/teams/en.yml +3 -3
  23. data/config/locales/templates/dashboard/teams/id.yml +3 -3
  24. data/config/locales/templates/dashboard/teams/zh.yml +3 -3
  25. data/config/locales/templates/onboarding/en.yml +45 -0
  26. data/config/locales/views/auth/confirmations/en.yml +5 -3
  27. data/config/locales/views/webhook/o_auth/providers/en.yml +2 -2
  28. data/lib/generators/mno_enterprise/install/install_generator.rb +19 -1
  29. data/lib/generators/mno_enterprise/install/templates/Procfile.dev +1 -0
  30. data/lib/generators/mno_enterprise/install/templates/config/initializers/mno_enterprise.rb +7 -50
  31. data/lib/generators/mno_enterprise/install/templates/config/newrelic.yml +3 -3
  32. data/lib/generators/mno_enterprise/install/templates/config/settings.yml +49 -2
  33. data/lib/generators/mno_enterprise/install/templates/nginx.conf +71 -0
  34. data/lib/generators/mno_enterprise/install/templates/stylesheets/variables.less +148 -141
  35. data/lib/html_processor.rb +14 -14
  36. data/lib/mno_enterprise/concerns/controllers/auth/registrations_controller.rb +18 -15
  37. data/lib/mno_enterprise/concerns/models/ability.rb +6 -3
  38. data/lib/mno_enterprise/concerns/models/app_instance.rb +2 -3
  39. data/lib/mno_enterprise/concerns/models/intercom_user.rb +22 -0
  40. data/lib/mno_enterprise/concerns/models/organization.rb +8 -0
  41. data/lib/mno_enterprise/concerns/models/shared_entity.rb +36 -0
  42. data/lib/mno_enterprise/concerns/models/team.rb +7 -0
  43. data/lib/mno_enterprise/testing_support/common_rake.rb +1 -1
  44. data/lib/mno_enterprise/testing_support/factories/apps.rb +6 -0
  45. data/lib/mno_enterprise/testing_support/factories/audit_event.rb +2 -0
  46. data/lib/mno_enterprise/testing_support/mno_enterprise_api_test_helper.rb +47 -16
  47. data/lib/mno_enterprise/testing_support/organizations_shared_helpers.rb +6 -9
  48. data/lib/mno_enterprise/version.rb +1 -1
  49. data/spec/config/initializers/audit_log_spec.rb +5 -0
  50. data/spec/controllers/mno_enterprise/application_controller_spec.rb +4 -4
  51. data/spec/helpers/image_helper_spec.rb +69 -0
  52. data/spec/models/mno_enterprise/ability_spec.rb +5 -0
  53. data/spec/models/mno_enterprise/app_spec.rb +1 -1
  54. data/spec/models/mno_enterprise/base_resource_spec.rb +37 -0
  55. data/spec/models/mno_enterprise/credit_card_spec.rb +18 -0
  56. data/spec/models/mno_enterprise/organization_spec.rb +16 -0
  57. data/spec/models/mno_enterprise/shared_entity_spec.rb +7 -0
  58. data/spec/models/mno_enterprise/user_spec.rb +83 -15
  59. metadata +15 -2
@@ -1,2 +1,3 @@
1
1
  web: bundle exec puma
2
2
  gulp: cd ./tmp/build/frontend && node_modules/.bin/gulp serve
3
+ gulp-admin: cd ./tmp/build/admin_panel && npm run serve
@@ -3,7 +3,7 @@ MnoEnterprise.configure do |config|
3
3
  # General Configuration
4
4
  #===============================================
5
5
  # Name of your company/application
6
- config.app_name = 'My Company'
6
+ config.app_name = '<%= @company_name || "My Company" %>'
7
7
 
8
8
  # Fallback default country.
9
9
  # Used as default in geolocalised fields (e.g.: country, phone number)
@@ -32,13 +32,14 @@ MnoEnterprise.configure do |config|
32
32
  # Default to :mandrill
33
33
  # config.mail_adapter = :mandrill
34
34
  # config.mail_adapter = :sparkpost
35
+ # config.mail_adapter = :smtp
35
36
 
36
37
  # Support email address
37
- config.support_email = 'support@example.com'
38
+ config.support_email = '<%= @support_email || "support@example.com" %>'
38
39
 
39
40
  # Default sender for system generated emails
40
- config.default_sender_name = 'My Company'
41
- config.default_sender_email = 'no-reply@example.com'
41
+ config.default_sender_name = '<%= @company_name || "My Company" %>'
42
+ config.default_sender_email = '<%= @system_email || "no-reply@example.com" %>'
42
43
 
43
44
  #===============================================
44
45
  # External Routes
@@ -97,55 +98,11 @@ MnoEnterprise.configure do |config|
97
98
  #===============================================
98
99
  # Marketplace Listing
99
100
  #===============================================
101
+ # [DEPRECATED] Please get in touch with our enterprise team
100
102
  # List of applications that should be offered on the marketplace
101
103
  # Set to nil to offer everything
102
104
  # config.marketplace_listing = nil
103
- # config.marketplace_listing = [
104
- # "allocpsa",
105
- # "boxsuite",
106
- # "bugzilla",
107
- # "collabtive",
108
- # "dolibarr",
109
- # "drupal",
110
- # "egroupware",
111
- # "eventbrite",
112
- # "feng-office",
113
- # "front-accounting",
114
- # "group-office",
115
- # "hummingbirdshare",
116
- # "interleave",
117
- # "jenkins",
118
- # "joomla",
119
- # "limesurvey",
120
- # "mantisbt",
121
- # "magento",
122
- # "megaventory",
123
- # "moodle",
124
- # "myob",
125
- # "office-365",
126
- # "opendocman",
127
- # "openerp",
128
- # "openx",
129
- # "orangehrm",
130
- # "pentaho-bi",
131
- # "phreedom",
132
- # "plandora",
133
- # "prestashop",
134
- # "processmaker",
135
- # "projectpier",
136
- # "quickbooks",
137
- # "ranqx",
138
- # "receipt-bank",
139
- # "signmee",
140
- # "simpleinvoices",
141
- # "so-planning",
142
- # "spotlight-reporting",
143
- # "sugarcrm",
144
- # "timetrex",
145
- # "vtiger6",
146
- # "xero",
147
- # "wordpress"
148
- # ]
105
+ # config.marketplace_listing = ["xero"]
149
106
 
150
107
  #====================================
151
108
  # Impac! widgets templates listing
@@ -12,7 +12,7 @@ common: &default_settings
12
12
 
13
13
  # Your application name. Renaming here affects where data displays in New
14
14
  # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
15
- app_name: <%= Rails.application.class.parent_name %>
15
+ app_name: <%= "#{@new_relic_app_name}-prd" %>
16
16
 
17
17
  # Logging level for log/newrelic_agent.log
18
18
  log_level: info
@@ -26,7 +26,7 @@ common: &default_settings
26
26
  # If your application has other named environments, configure them here.
27
27
  development:
28
28
  <<: *default_settings
29
- app_name: <%= Rails.application.class.parent_name %> (Development)
29
+ app_name: <%= "#{@new_relic_app_name}-dev" %>
30
30
 
31
31
  # NOTE: There is substantial overhead when running in developer mode.
32
32
  # Do not use for production or load testing.
@@ -40,7 +40,7 @@ test:
40
40
 
41
41
  uat:
42
42
  <<: *default_settings
43
- app_name: <%= Rails.application.class.parent_name %> (UAT)
43
+ app_name: <%= "#{@new_relic_app_name}-uat" %>
44
44
 
45
45
  production:
46
46
  <<: *default_settings
@@ -6,12 +6,16 @@ impac:
6
6
  mno:
7
7
  paths:
8
8
  root: /api/mnoe/v1
9
+ url_config:
10
+ after_sign_out_url: <%= ENV['AFTER_SIGN_OUT_URL']%>
9
11
  frontend_host:
10
12
 
11
13
  #===============================================
12
14
  # Feature Flags
13
15
  #===============================================
14
-
16
+ # Do not display Audit Log in Organization Panel
17
+ audit_log:
18
+ enabled: false
15
19
  # Display App Pricing on Marketplace
16
20
  pricing:
17
21
  enabled: false
@@ -21,10 +25,53 @@ dock:
21
25
  # Display the Developer section on "My Account"
22
26
  developer:
23
27
  enabled: false
28
+ # Display the onboarding wizard
29
+ onboarding_wizard:
30
+ enabled: false
24
31
  # Enable Reviews in the marketplace
25
32
  reviews:
26
33
  enabled: false
27
-
34
+ # Enable Questions in the marketplace
35
+ questions:
36
+ enabled: false
37
+ # Disable payment
38
+ payment:
39
+ disabled: false
40
+ # Marketplace config
28
41
  marketplace:
42
+ # Enable the marketplace
43
+ enabled: true
44
+ # Enable comparison of apps
29
45
  comparison:
30
46
  enabled: false
47
+ # Allow user to create and manage Organizations
48
+ organization_management:
49
+ enabled: true
50
+ # Display the billing tab
51
+ billing:
52
+ enabled: true
53
+ # Allow user to edit their information and password
54
+ user_management:
55
+ enabled: true
56
+ # Disable user registration
57
+ devise:
58
+ registration:
59
+ disabled: false
60
+
61
+ # Admin Panel Config
62
+ admin_panel:
63
+ apps_management:
64
+ enabled: true
65
+ audit_log:
66
+ enabled: true
67
+ customer_management:
68
+ organization:
69
+ enabled: true
70
+ user:
71
+ enabled: true
72
+ finance:
73
+ enabled: true
74
+ impersonation:
75
+ disabled: false
76
+ staff:
77
+ enabled: true
@@ -0,0 +1,71 @@
1
+ # Default MNOE nginx configuration for the web-ruby docker image used by Nex!™:
2
+ # https://github.com/maestrano/docker-web-ruby
3
+ server {
4
+ listen 80 default_server;
5
+ server_name _;
6
+
7
+ root /app/public;
8
+ try_files $uri/index.html $uri @app;
9
+
10
+ #-----------------------------------------------------------
11
+ # Mnoe custom caching configuration
12
+ #-----------------------------------------------------------
13
+ # Empty location block to force the html block to trigger
14
+ location ~* ^/(admin|dashboard)/$ {
15
+ }
16
+
17
+ # Revalidate html pages on each request and fetch the latest version if the content change
18
+ location ~* \.(html?|json)$ {
19
+ add_header Cache-Control "max-age=0, must-revalidate";
20
+ }
21
+
22
+ # Same for config.js
23
+ location ~* config\.js$ {
24
+ add_header Cache-Control "max-age=0, must-revalidate";
25
+ }
26
+
27
+ # CSS and Javascript
28
+ # "far future expires" of 1 year as the assets are fingerprinted
29
+ location ~* \.(?:css|js)$ {
30
+ add_header Cache-Control "max-age=31536000";
31
+ # access_log off;
32
+ }
33
+
34
+ #-----------------------------------------------------------
35
+ # Proxy to Puma
36
+ #-----------------------------------------------------------
37
+ location @app {
38
+ # # Wide-open CORS config
39
+ # if ($request_method = 'OPTIONS') {
40
+ # add_header 'Access-Control-Allow-Origin' '*';
41
+ # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
42
+ # add_header 'Access-Control-Allow-Headers' 'Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,x-csrf-token,Authorization';
43
+ # add_header 'Access-Control-Max-Age' 1728000;
44
+ # add_header 'Content-Type' 'text/plain charset=UTF-8';
45
+ # add_header 'Content-Length' 0;
46
+ # return 204;
47
+ # }
48
+ # if ($request_method = 'POST') {
49
+ # add_header 'Access-Control-Allow-Origin' '*';
50
+ # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
51
+ # add_header 'Access-Control-Allow-Headers' 'Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,x-csrf-token,Authorization';
52
+ # }
53
+ # if ($request_method = 'GET') {
54
+ # add_header 'Access-Control-Allow-Origin' '*';
55
+ # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
56
+ # add_header 'Access-Control-Allow-Headers' 'Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
57
+ # }
58
+
59
+ proxy_pass http://127.0.0.1:3000;
60
+ proxy_redirect off;
61
+
62
+ proxy_connect_timeout 600;
63
+ proxy_send_timeout 600;
64
+ proxy_read_timeout 600;
65
+ send_timeout 600;
66
+ }
67
+
68
+ error_page 500 502 503 504 /500.html;
69
+ client_max_body_size 4G;
70
+ keepalive_timeout 10;
71
+ }
@@ -10,10 +10,11 @@
10
10
  /*-----------------------------------------------------------------------*/
11
11
  /* Fonts & Text */
12
12
  /*-----------------------------------------------------------------------*/
13
- @font-family-sans-serif: Arial, "Helvetica Neue", Helvetica, sans-serif;
14
- @font-family-base: @font-family-sans-serif;
15
- @small: 11px;
16
- @normal: 13px;
13
+ @font-family-sans-serif: 'Lato Regular', Arial, "Helvetica Neue", Helvetica, sans-serif;
14
+ @font-family-base: @font-family-sans-serif;
15
+ @font-path: '/dashboard/fonts';
16
+ @small: 11px;
17
+ @normal: 13px;
17
18
 
18
19
  /*-----------------------------------------------------------------------*/
19
20
  /* Public Page Header */
@@ -28,11 +29,12 @@
28
29
  /*-----------------------------------------------------------------------*/
29
30
  /* Login Page */
30
31
  /*-----------------------------------------------------------------------*/
31
- @login-bg-color: @bg-main-color;
32
- @login-bg-img: "";
33
- @login-box-grid-position: { margin-top: 80px; .make-sm-column(4); .make-sm-column-offset(4); };
32
+ @login-bg-img: "mno_enterprise/login-background.jpg";
33
+ @login-bg-color: @bg-main-color;
34
+ @login-box-grid-position: { margin-top: 80px; .make-sm-column(4); .make-sm-column-offset(4); };
34
35
 
35
- @login-box-title-color: @decorator-main-color;
36
+ @login-box-corners: 0px;
37
+ @login-box-title-color: @text-inverse-color;
36
38
  @login-box-title: { text-transform: uppercase; };
37
39
  @login-box-title-display-box-arrow: false;
38
40
 
@@ -43,6 +45,11 @@
43
45
  @login-box-btn-login: { width: 100%; };
44
46
 
45
47
  @login-box-sso-intuit-logo: "mno_enterprise/logo-intuit.png";
48
+ @login-box-oauth-text-color: #fff;
49
+ @login-box-oauth-bg-color-facebook: #3b5998;
50
+ @login-box-oauth-bg-color-google: #dd4b39;
51
+ @login-box-oauth-bg-color-linkedin: #0074C4;
52
+ @login-box-oauth-bg-color-intuit: #fff;
46
53
 
47
54
  /*-----------------------------------------------------------------------*/
48
55
  /* Dashboard Layout */
@@ -51,15 +58,14 @@
51
58
 
52
59
  @dashboard-section-title-color: @text-strong-color;
53
60
  @dashboard-section-title-alignment: center;
54
- @dashboard-section-title-display-subline: false;
61
+ @dashboard-section-title-display-subline: true;
55
62
 
56
63
  // Side navbar menu
57
64
  //--------------------------------------
58
65
  @dashboard-side-menu-padding: 30px 0px 0px 14px;
59
66
  @dashboard-side-menu-bg-color: @bg-inverse-color;
60
- @dashboard-side-menu-horizontal: { min-width:550px; };
61
67
 
62
- @dashboard-side-menu-brand-logo-img: "mno_enterprise/main-logo.png";
68
+ @dashboard-side-menu-brand-logo-img: "../images/main-logo.png";
63
69
  @dashboard-side-menu-brand-logo: { background-size: 204px; width: 51px; margin-left: 5px; };
64
70
  @dashboard-side-menu-brand-logo-expanded: { width: 201px; background-size: 100%; };
65
71
 
@@ -76,6 +82,8 @@
76
82
  @_default_style_active: { @_default_style(); color: @dashboard-side-menu-link-active-color; };
77
83
  @dashboard-side-menu-btn-dashboard: { .icon-fa(th); @_default_style(); };
78
84
  @dashboard-side-menu-btn-dashboard-active: { .icon-fa(th); @_default_style_active(); };
85
+ @dashboard-side-menu-btn-impac: { .icon-fa(pie-chart); @_default_style(); };
86
+ @dashboard-side-menu-btn-impac-active: { .icon-fa(pie-chart); @_default_style_active(); };
79
87
  @dashboard-side-menu-btn-account: { .icon-fa(user); @_default_style(); margin-left: 5px; };
80
88
  @dashboard-side-menu-btn-account-active: { .icon-fa(user); @_default_style_active(); margin-left: 5px; };
81
89
  @dashboard-side-menu-btn-company: { .icon-fa(briefcase); @_default_style(); };
@@ -87,25 +95,26 @@
87
95
 
88
96
  // Company select box (top right)
89
97
  //--------------------------------------
90
- @dashboard-cpy-select-bg-color: @bg-inverse-intense-color;
91
- @dashboard-cpy-select-border-radius: 0px;
92
- @dashboard-cpy-select-padding: 15px 25px;
93
-
94
- @dashboard-cpy-select-header-text-color: @bg-inverse-color;
98
+ @dashboard-cpy-select-width: 280px;
99
+ @dashboard-cpy-select-pic-width: 50px;
100
+ @dashboard-cpy-select-bg-color: @bg-inverse-color;
101
+ @dashboard-cpy-select-border-radius: 0 0 0 6px;
102
+ @dashboard-cpy-select-border-color: @text-inverse-color;
103
+
104
+ @dashboard-cpy-select-header-text-bold-color: @text-inverse-color;
105
+ @dashboard-cpy-select-header-text-color: @text-inverse-color;
95
106
  @dashboard-cpy-select-header-text-size: 13px;
96
107
 
97
- @dashboard-cpy-select-link-color: @dashboard-cpy-select-header-text-color;
98
-
99
- @dashboard-cpy-select-link-hover-color: @dashboard-cpy-select-link-color;
100
- @dashboard-cpy-select-link-hover-bg-color: lighten(@dashboard-cpy-select-bg-color,10%);
108
+ @dashboard-cpy-select-link-icon-color: @decorator-touch-color;
101
109
 
102
- @dashboard-cpy-select-link-create-color: @decorator-alt-color;
103
- @dashboard-cpy-select-link-admin-color: @elem-positive-color;
110
+ @dashboard-cpy-select-link-color: @text-inverse-strong-color;
111
+ @dashboard-cpy-select-link-hover-color: @text-strong-color;
112
+ @dashboard-cpy-select-link-hover-bg-color: @text-inverse-strong-color;
104
113
 
105
- @dashboard-cpy-select-switch-btn-color: @dashboard-cpy-select-header-text-color;
106
- @dashboard-cpy-select-switch-btn-bg-color: @dashboard-cpy-select-bg-color;
107
- @dashboard-cpy-select-switch-btn-icon: { .icon-fa(caret-down); }; //pass a ruleset
108
- @dashboard-cpy-select-switch-btn-icon-active: { .icon-fa(caret-up); }; //pass a ruleset
114
+ // Loaders
115
+ //--------------------------------------
116
+ @dashboard-loader-color: @text-strong-color;
117
+ @dashboard-loader-icon: { .icon-fa(refresh); .fa-2x; .fa-spin; }; //pass a ruleset
109
118
 
110
119
  /*-----------------------------------------------------------------------*/
111
120
  /* Dashboard > Apps Section */
@@ -119,11 +128,23 @@
119
128
  @dashboard-apps-tile-settings-color: @dashboard-apps-tile-text-color;
120
129
  @dashboard-apps-tile-settings-bg-color: @dashboard-apps-tile-bg-color;
121
130
 
122
- @dashboard-apps-tile-settings-hover-color: @dashboard-apps-tile-bg-color;
123
- @dashboard-apps-tile-settings-hover-bg-color: @dashboard-apps-tile-text-color;
131
+ @dashboard-apps-tile-settings-hover-color: @dashboard-apps-tile-text-color;
132
+ @dashboard-apps-tile-settings-hover-bg-color: @dashboard-apps-tile-bg-color;
124
133
 
125
134
  @dashboard-apps-tile-add-color: @dashboard-apps-tile-text-color;
126
- @dashboard-apps-tile-add-bg-color: @dashboard-apps-tile-text-color;
135
+ @dashboard-apps-tile-add-bg-color: @dashboard-apps-tile-bg-color;
136
+
137
+ /*-----------------------------------------------------------------------*/
138
+ /* Dashboard > My account Section */
139
+ /*-----------------------------------------------------------------------*/
140
+ @dashboard-account-tabs-bg-color: @bg-on-bg-inverse-color;
141
+ @dashboard-account-tabs-text-color: @text-inverse-color;
142
+ @dashboard-account-panel-header-bg-color: @bg-inverse-color;
143
+ @dashboard-account-panel-header-text-color: @text-inverse-color;
144
+ @dashboard-account-panel-body-bg-color: @bg-on-bg-inverse-color;
145
+ @dashboard-account-panel-text-color: @text-strong-color;
146
+ @dashboard-account-inline-text-color-checked: @brand-success;
147
+ @dashboard-account-inline-text-color-unchecked: @decorator-inverse-color;
127
148
 
128
149
  /*-----------------------------------------------------------------------*/
129
150
  /* Dashboard > Company Section */
@@ -131,35 +152,76 @@
131
152
  // Tab Heading
132
153
  //--------------------------------------
133
154
  @dashboard-cpy-tabs-bg-color: @decorator-main-color;
134
- @dashboard-cpy-tabs-text-color: @text-inverse-color;
155
+ @dashboard-cpy-tabs-text-color: @text-strong-color;
135
156
  @dashboard-cpy-tabs-border-radius: 2px;
136
157
 
137
158
  @dashboard-cpy-tabs-subline-size: 0px;
138
159
  @dashboard-cpy-tabs-subline-color: transparent;
139
160
 
140
- @dashboard-cpy-tabs-active-text-color: @decorator-alt-color;
161
+ @dashboard-cpy-tabs-active-text-color: @decorator-main-color;
141
162
  @dashboard-cpy-tabs-active-bg-color: @bg-inverse-color;
142
163
 
143
- @dashboard-cpy-tabs-hover-text-color: @bg-inverse-color;
144
- @dashboard-cpy-tabs-hover-bg-color: @decorator-alt-color;
164
+ @dashboard-cpy-tabs-hover-text-color: @decorator-main-color;
165
+ @dashboard-cpy-tabs-hover-bg-color: @bg-inverse-color;
145
166
 
146
167
  // Tab Content
147
168
  //--------------------------------------
148
- @dashboard-cpy-tabcontent-bg-color: @dashboard-cpy-tabs-bg-color;
169
+ @dashboard-cpy-tabcontent-header-bg-color: @bg-inverse-color;
170
+ @dashboard-cpy-tabcontent-body-bg-color: @bg-on-bg-inverse-color;
171
+ @dashboard-cpy-tabcontent-bg-color: @bg-inverse-color;
172
+ @dashboard-cpy-tabcontent-text-color: @text-inverse-strong-color;
149
173
 
150
174
  // Teams section
151
175
  //--------------------------------------
152
176
  @dashboard-cpy-teams-matrix-bg-color: @bg-inverse-color;
153
- @dashboard-cpy-teams-matrix-border-color: lighten(@bg-main-color,30%);
177
+ @dashboard-cpy-teams-matrix-border-color: @bg-inverse-color;
178
+ @dashboard-cpy-teams-matrix-text-color: @text-inverse-color;
179
+ @dashboard-cpy-teams-matrix-text-hover-color: @text-inverse-color;
180
+ @dashboard-cpy-teams-matrix-text-edit-color: @text-strong-color;
154
181
 
155
182
  /*-----------------------------------------------------------------------*/
156
- /* IMPAC */
183
+ /* Dock */
157
184
  /*-----------------------------------------------------------------------*/
158
- @impac-positive: green;
159
- @impac-negative: @pink;
160
- @impac-positive2: #3fc4ff; // lighter colors used for payables-receivables
161
- @impac-negative2: #1de9b6; // lighter colors used for payables-receivables
185
+ @mno-dock-bg-color: @decorator-inverse-color;
186
+
187
+ @mno-dock-add-app-border-color: white;
188
+ @mno-dock-add-app-text-color: white;
189
+ @mno-dock-expand-arrow-color: white;
190
+ @mno-dock-expand-arrow-color-hover: darken(@mno-dock-expand-arrow-color, 5%);
191
+ @mno-dock-expand-left-border-color: white;
192
+ @mno-dock-app-title-color: white;
193
+ @mno-dock-app-logo-square-width: 70px;
194
+ @mno-dock-app-logo-minimized-square-width: 50px;
195
+ @mno-dock-app-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
196
+ @mno-dock-app-box-border: 1px solid rgba(0, 0, 0, 0.15);
197
+
198
+ @mno-dock-sub-menu-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
199
+ @mno-dock-sub-menu-bg-color: @bg-inverse-color;
200
+ @mno-dock-sub-menu-hover: @decorator-main-color;
201
+ @mno-dock-sub-menu-icon: @decorator-touch-color;
202
+ @mno-dock-sub-menu-text-color: @text-inverse-color;
203
+ @mno-dock-sub-menu-text-hover-color: darken(@mno-dock-sub-menu-text-color, 10%);
204
+
205
+ // Mobile dock
206
+ @mno-dock-mobile-bg-color: @bg-on-bg-inverse-color;
207
+ @mno-dock-mobile-button-color: @text-inverse-strong-color;
208
+ @mno-dock-mobile-button-bg-color: @decorator-inverse-color;
209
+ @mno-dock-mobile-app-active-color: lighten(@mno-dock-mobile-button-bg-color, 20%);
210
+ @mno-dock-mobile-app-border-bottom: 1px solid darken(@mno-dock-bg-color, 10%);
211
+ @mno-dock-mobile-add-app-color: @text-strong-color;
212
+ @mno-dock-mobile-app-name-color: @text-strong-color;
162
213
 
214
+ /*-----------------------------------------------------------------------*/
215
+ /* Dock Settings */
216
+ /*-----------------------------------------------------------------------*/
217
+ @mno-dock-settings-app-running: #33d375;
218
+ @mno-dock-settings-app-terminating: #ffe6ea;
219
+ @mno-dock-settings-app-upgrading: #ffdb99;
220
+ @mno-dock-settings-app-neutral: #E0FFFF;
221
+
222
+ /*-----------------------------------------------------------------------*/
223
+ /* IMPAC */
224
+ /*-----------------------------------------------------------------------*/
163
225
  // Dashboard
164
226
  //--------------------------------------
165
227
  @impac-dashboard-padding-top: 33px;
@@ -167,138 +229,103 @@
167
229
 
168
230
  // Title
169
231
  @impac-dashboard-title-label-color: @text-strong-color;
170
- @impac-dashboard-title-color: @elem-cozy-color;
232
+ @impac-dashboard-title-color: @decorator-inverse-color;
171
233
  @impac-dashboard-source-color: @impac-dashboard-title-label-color;
172
234
  @impac-dashboard-buttons-border-radius: 4px;
173
- @impac-dashboard-title-label-create-color: white;
174
-
175
- // Dashboard Selector
176
- // Tabs
177
- @impac-dashboard-selector-border: 1px solid @lightblue;
178
- @impac-dashboard-selector-tabs-margin: 0 2px 0 0;
179
- @impac-dashboard-selector-tabs-padding: 10px 8px 10px 15px;
180
- @impac-dashboard-selector-tabs-background-color: transparent;
181
- @impac-dashboard-selector-tabs-active-background-color: #ffffff;
182
- @impac-dashboard-selector-tabs-color: black;
183
- @impac-dashboard-selector-tabs-active-color: @purple;
184
-
185
- // Widget selector
186
- @impac-dashboard-widget-selector-bg: #233845;
187
- @impac-dashboard-widget-selector-text-color: white;
188
235
 
189
236
  // Widgets container
190
237
  @impac-placeholder-border: 2px dashed @bg-inverse-color;
191
238
  @impac-padding-between-widgets: 12px;
192
239
  @impac-minimum-widget-size: 258px;
193
- @impac-widgets-container-side-padding: 0px;
194
- @impac-big-widget-size: 581px;
195
-
196
- // Buttons
197
- @impac-btn-shadded-bg: @darkblue;
198
- @impac-btn-shadded-color: @mediumblue;
199
-
200
- // Dashboard Modals
201
- @impac-dashboard-loading-spinner: white;
202
240
 
203
241
  // Widgets
204
242
  //--------------------------------------
205
243
  // Global
206
- @impac-widget-background-color: @bg-inverse-color;
207
- @impac-widget-text-color: @text-inverse-color;
208
- @impac-widget-text-color-medium: lighten(@impac-widget-text-color,25%);
244
+ @impac-widget-background-color: @bg-on-bg-inverse-color;
245
+ @impac-widget-text-color: black;
209
246
  @impac-widget-text-color-light: lighten(@impac-widget-text-color,70%);
210
247
  @impac-widget-borders-color: lighten(@impac-widget-text-color-light,10%);
211
248
  @impac-widget-link-color: @decorator-inverse-color;
212
- @impac-widget-buttons-color: @impac-widget-link-color;
213
- @impac-widget-tile-selected-color: @impac-widget-link-color;
214
- @impac-widget-border: solid 1px darken(@lightgray,10%);
215
- @impac-widget-scrollbar-color: #233845;
216
- @impac-widget-loading-spinner: #67BBE9;
217
249
 
218
250
  // Title
219
- @impac-widget-title-text-color: darken(@impac-widget-text-color,5%);
220
- @impac-widget-title-bg: @impac-widget-background-color;
251
+ @impac-widget-title-text-color: white;
252
+ @impac-widget-title-bg: @bg-inverse-color;
221
253
  @impac-widget-title-border: solid 1px @impac-widget-borders-color;
222
254
  @impac-widget-title-text-transform: uppercase;
223
255
  @impac-widget-title-text-size: 12px;
224
256
  @impac-widget-title-border-radius: 5px 5px 0px 0px;
225
- @impac-widget-top-buttons-color: @impac-widget-text-color-light;
226
257
 
227
258
  // Content
228
259
  @impac-widget-content-border-radius: 0px 0px 5px 5px;
229
- @impac-widget-lines-container-max-height: 210px;
260
+ @impac-widget-lines-container-max-height: 210px;
230
261
 
231
- // Settings
232
- // Param selector
233
- @impac-widget-param-selector-color: @impac-widget-link-color;
234
262
  // Hist Mode Choser
235
- @impac-widget-hist-text-transform: uppercase;
236
- @impac-widget-hist-text-size: 12px;
237
- @impac-widget-hist-text-color: @impac-widget-text-color-light;
238
- // Params picker
239
- @impac-widget-params-picker-bg: #1E303B;
240
- @impac-widget-params-picker-unchecked-bg: #c2c4c4;
241
- // Limit emtries
242
- @impac-widget-limit-entries-color: #1E303B;
243
-
244
- // Globals and Mixins
245
- @impac-widget-selectable-color: @impac-widget-link-color;
263
+ @impac-widget-hist-text-transform: uppercase;
264
+ @impac-widget-hist-text-size: 12px;
265
+ @impac-widget-hist-text-color: @impac-widget-text-color-light;
266
+
267
+ // Price
268
+ @impac-widget-price-color: @impac-widget-text-color;
269
+ @impac-widget-price-positive-color: @brand-success;
270
+ @impac-widget-price-negative-color: @brand-danger;
271
+ @impac-widget-currency-color: @impac-widget-text-color-light;
272
+ @impac-widget-legend-color: lighten(@impac-widget-text-color,30%);
246
273
 
247
274
  // Edit settings
248
- @impac-widget-sub-bg-color: darken(@impac-widget-background-color,10%);
249
- @impac-widget-sub-bg-color-light: lighten(@impac-widget-sub-bg-color,5%); //f3f4f4
275
+ @impac-widget-sub-bg-color: darken(@impac-widget-background-color,10%);
276
+ @impac-widget-sub-bg-color-light: lighten(@impac-widget-sub-bg-color,5%);
277
+
278
+ // Invoices list
279
+ @impac-widget-line-hover-bg: lighten(@bg-inverse-color,10%);
280
+ @impac-widget-line-hover-text: @text-inverse-color;
250
281
 
251
282
  // Accounts Comparison
283
+ @impac-big-widget-size: 581px;
284
+ @impac-big-widget-bottom-padding: 30px;
252
285
  @impac-widget-accounts-comparison-lines-container-max-height: 250px;
253
286
 
254
- // Sales break-even
255
- @impac-widget-sales-break-even-bg: rgb(25,40,49);
256
- @impac-widget-sales-break-even-text-color: #1de9b6;
257
-
258
-
259
287
  /*-----------------------------------------------------------------------*/
260
288
  /* Mno Enterprise > Marketplace Section */
261
289
  /*-----------------------------------------------------------------------*/
262
- @dashboard-marketplace-search-text-color: @bg-inverse-color;
263
- @dashboard-marketplace-search-border-color: @bg-inverse-intense-color;
290
+ @dashboard-marketplace-search-text-color: @text-strong-color;
291
+ @dashboard-marketplace-search-border-color: @text-strong-color;
264
292
 
265
- @dashboard-marketplace-tile-bg-color: @bg-inverse-color;
293
+ @dashboard-marketplace-tile-bg-color: @bg-on-bg-inverse-color;
266
294
  @dashboard-marketplace-tile-text-color: @text-strong-color;
267
- @dashboard-marketplace-tile-img-border-color: @dashboard-marketplace-tile-bg-color;
295
+ @dashboard-marketplace-tile-img-border-color: @decorator-main-color;
268
296
 
269
297
  @dashboard-marketplace-tile-hover-bg-color: @decorator-main-color;
270
298
  @dashboard-marketplace-tile-hover-text-color: @dashboard-marketplace-tile-text-color;
271
299
  @dashboard-marketplace-tile-hover-img-border-color: darken(@decorator-main-color,10%);
272
300
  @dashboard-marketplace-tile-hover-arrow-color: @text-strong-color;
273
301
 
274
- @dashboard-marketplace-show-header-text-color: @bg-inverse-color;
302
+ @dashboard-marketplace-show-header-text-color: @text-strong-color;
303
+ @dashboard-marketplace-show-sections-bg-color: @bg-on-bg-inverse-color;
304
+ @dashboard-marketplace-show-sections-text-color: @text-strong-color;
275
305
 
276
306
  @dashboard-marketplace-app-card: { display: block; padding: 10px; height: 120px; margin-bottom: 10px; font-weight: 300; };
277
307
 
278
308
  /*-----------------------------------------------------------------------*/
279
309
  /* Responsive Table (cell table) */
280
310
  /*-----------------------------------------------------------------------*/
281
- @table-cell-row-spacing: 10px;
311
+ @table-cell-header-row-spacing: 10px;
312
+ @table-cell-header-row-padding: 3px;
313
+ @table-cell-row-spacing: 0px;
282
314
  @table-cell-row-padding: 3px;
283
315
 
284
316
  @table-cell-header-text-size: 12px;
285
- @table-cell-header-text-color: @bg-inverse-color;
286
- @table-cell-header-bg-color: @bg-main-color;
317
+ @table-cell-header-text-color: @text-inverse-strong-color;
318
+ @table-cell-header-bg-color: lighten(@bg-inverse-color, 5%);
287
319
  @table-cell-header-additional-rule: { text-transform: uppercase; };
288
320
 
289
321
  @table-cell-row-text-size: 13px;
290
- @table-cell-row-odd-bg-color: fade(@bg-main-color,30%);
291
- @table-cell-row-even-bg-color: fade(@bg-main-color,10%);
322
+ @table-cell-row-odd-bg-color: darken(@bg-main-color,4%);
323
+ @table-cell-row-even-bg-color: darken(@bg-main-color,0%);
292
324
 
293
-
294
- /*-----------------------------------------------------------------------*/
295
- /* Twitter Bootstrap colors */
296
- /*-----------------------------------------------------------------------*/
297
- @brand-success: @elem-positive-color;
298
- @brand-warning: @decorator-alt-color;
299
- @brand-info: @text-inverse-color;
300
- @brand-danger: @text-inverse-color;
301
- @brand-primary: @text-inverse-color;
325
+ @table-inverse-cell-header-text-color: @text-inverse-strong-color;
326
+ @table-inverse-cell-header-bg-color: lighten(@bg-inverse-color, 5%);
327
+ @table-inverse-cell-row-odd-bg-color: darken(@bg-main-color,4%);
328
+ @table-inverse-cell-row-even-bg-color: darken(@bg-main-color,0%);
302
329
 
303
330
  /*-----------------------------------------------------------------------*/
304
331
  /* Navbar Customization */
@@ -314,27 +341,7 @@
314
341
  /*-----------------------------------------------------------------------*/
315
342
  /* Form Customization */
316
343
  /*-----------------------------------------------------------------------*/
317
- @input-bg: @bg-on-bg-inverse-color;
318
- @input-color: @text-inverse-color;
319
- @input-color-placeholder: @input-color;
320
-
321
- @input-label-color: @text-inverse-color;
322
-
323
- /*-----------------------------------------------------------------------*/
324
- /* Buttons Customization */
325
- /*-----------------------------------------------------------------------*/
326
-
327
- // General
328
- @btn-font-weight: 500;
329
-
330
- // Warning
331
- @btn-warning-color: #fff;
332
-
333
- // Success
334
- @btn-success-color: #fff;
335
-
336
- /*-----------------------------------------------------------------------*/
337
- /* Footer */
338
- /*-----------------------------------------------------------------------*/
339
-
340
- @footer-bg: @bg-main-color;
344
+ @input-bg: @bg-on-bg-inverse-color;
345
+ @input-color: @text-strong-color;
346
+ @input-color-placeholder: @input-color;
347
+ @input-label-color: @text-inverse-color;