mno-enterprise-core 3.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
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;