mno-enterprise-api 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +1 -0
- data/Rakefile +12 -0
- data/app/assets/javascripts/mno_enterprise/angular/loading-page.app.js.coffee +156 -0
- data/app/assets/javascripts/mno_enterprise/application.js +13 -0
- data/app/controllers/devise/password_expired_controller.rb +55 -0
- data/app/controllers/mno_enterprise/auth/confirmations_controller.rb +5 -0
- data/app/controllers/mno_enterprise/auth/omniauth_callbacks_controller.rb +30 -0
- data/app/controllers/mno_enterprise/auth/passwords_controller.rb +5 -0
- data/app/controllers/mno_enterprise/auth/registrations_controller.rb +5 -0
- data/app/controllers/mno_enterprise/auth/sessions_controller.rb +7 -0
- data/app/controllers/mno_enterprise/auth/unlocks_controller.rb +5 -0
- data/app/controllers/mno_enterprise/deletion_requests_controller.rb +5 -0
- data/app/controllers/mno_enterprise/impersonate_controller.rb +48 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/audit_events_controller.rb +16 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/base_resource_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/cloud_apps_controller.rb +46 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/invoices_controller.rb +47 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb +27 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/tenant_invoices_controller.rb +14 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/users_controller.rb +63 -0
- data/app/controllers/mno_enterprise/jpi/v1/app_instances_controller.rb +24 -0
- data/app/controllers/mno_enterprise/jpi/v1/app_instances_sync_controller.rb +36 -0
- data/app/controllers/mno_enterprise/jpi/v1/base_resource_controller.rb +32 -0
- data/app/controllers/mno_enterprise/jpi/v1/current_users_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/deletion_requests_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/impac/dashboards_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/impac/kpis_controller.rb +80 -0
- data/app/controllers/mno_enterprise/jpi/v1/impac/widgets_controller.rb +63 -0
- data/app/controllers/mno_enterprise/jpi/v1/industry_bundle_controller.rb +25 -0
- data/app/controllers/mno_enterprise/jpi/v1/marketplace_controller.rb +22 -0
- data/app/controllers/mno_enterprise/jpi/v1/organizations_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/shopping_cart_controller.rb +93 -0
- data/app/controllers/mno_enterprise/jpi/v1/teams_controller.rb +88 -0
- data/app/controllers/mno_enterprise/org_invites_controller.rb +5 -0
- data/app/controllers/mno_enterprise/pages_controller.rb +5 -0
- data/app/controllers/mno_enterprise/provision_controller.rb +5 -0
- data/app/controllers/mno_enterprise/status_controller.rb +27 -0
- data/app/controllers/mno_enterprise/webhook/o_auth_controller.rb +5 -0
- data/app/mailers/mno_enterprise/system_notification_mailer.rb +5 -0
- data/app/models/mno_enterprise/health_check.rb +16 -0
- data/app/views/devise/password_expired/show.html.haml +32 -0
- data/app/views/mno_enterprise/auth/confirmations/default/_form.html.haml +49 -0
- data/app/views/mno_enterprise/auth/confirmations/default/_lounge.html.haml +34 -0
- data/app/views/mno_enterprise/auth/confirmations/default/_show.html.haml +10 -0
- data/app/views/mno_enterprise/auth/confirmations/lounge.html.haml +4 -0
- data/app/views/mno_enterprise/auth/confirmations/material/_form.html.haml +44 -0
- data/app/views/mno_enterprise/auth/confirmations/material/_lounge.html.haml +18 -0
- data/app/views/mno_enterprise/auth/confirmations/material/_show.html.haml +21 -0
- data/app/views/mno_enterprise/auth/confirmations/new.html.haml +31 -0
- data/app/views/mno_enterprise/auth/confirmations/show.html.haml +4 -0
- data/app/views/mno_enterprise/auth/mailer/confirmation_instructions.html.haml +4 -0
- data/app/views/mno_enterprise/auth/mailer/reset_password_instructions.html.haml +6 -0
- data/app/views/mno_enterprise/auth/mailer/unlock_instructions.html.haml +5 -0
- data/app/views/mno_enterprise/auth/passwords/edit.html.haml +53 -0
- data/app/views/mno_enterprise/auth/passwords/new.html.haml +34 -0
- data/app/views/mno_enterprise/auth/registrations/default/_form.html.haml +35 -0
- data/app/views/mno_enterprise/auth/registrations/default/_new.html.haml +11 -0
- data/app/views/mno_enterprise/auth/registrations/material/_form.html.haml +30 -0
- data/app/views/mno_enterprise/auth/registrations/material/_new.html.haml +10 -0
- data/app/views/mno_enterprise/auth/registrations/new.html.haml +4 -0
- data/app/views/mno_enterprise/auth/sessions/default/_form.html.haml +17 -0
- data/app/views/mno_enterprise/auth/sessions/default/_new.html.haml +11 -0
- data/app/views/mno_enterprise/auth/sessions/material/_form.html.haml +26 -0
- data/app/views/mno_enterprise/auth/sessions/material/_new.html.haml +11 -0
- data/app/views/mno_enterprise/auth/sessions/new.html.haml +4 -0
- data/app/views/mno_enterprise/auth/shared/_links.html.haml +24 -0
- data/app/views/mno_enterprise/auth/unlocks/new.html.haml +10 -0
- data/app/views/mno_enterprise/deletion_requests/show.html.haml +131 -0
- data/app/views/mno_enterprise/jpi/v1/admin/audit_events/_audit_event.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/admin/audit_events/index.json.jbuilder +4 -0
- data/app/views/mno_enterprise/jpi/v1/admin/cloud_apps/_cloud_app.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/cloud_apps/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/cloud_apps/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/invoices/_invoice.json.jbuilder +2 -0
- data/app/views/mno_enterprise/jpi/v1/admin/invoices/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/invoices/show.json.jbuilder +2 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_credit_card.json.jbuilder +7 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_invoices.json.jbuilder +8 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_member.json.jbuilder +14 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_organization.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/in_arrears.json.jbuilder +8 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/index.json.jbuilder +7 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/show.json.jbuilder +11 -0
- data/app/views/mno_enterprise/jpi/v1/admin/tenant_invoices/_tenant_invoice.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/admin/tenant_invoices/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/tenant_invoices/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/users/_user.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/users/index.json.jbuilder +2 -0
- data/app/views/mno_enterprise/jpi/v1/admin/users/show.json.jbuilder +9 -0
- data/app/views/mno_enterprise/jpi/v1/app_instances/_resource.json.jbuilder +23 -0
- data/app/views/mno_enterprise/jpi/v1/app_instances/index.json.jbuilder +9 -0
- data/app/views/mno_enterprise/jpi/v1/app_instances/show.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/billing/index.json.jbuilder +0 -0
- data/app/views/mno_enterprise/jpi/v1/current_users/show.json.jbuilder +37 -0
- data/app/views/mno_enterprise/jpi/v1/impac/dashboards/_dashboard.json.jbuilder +9 -0
- data/app/views/mno_enterprise/jpi/v1/impac/dashboards/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/dashboards/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/kpis/_kpi.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/kpis/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/widgets/_widget.json.jbuilder +6 -0
- data/app/views/mno_enterprise/jpi/v1/impac/widgets/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/marketplace/_app.json.jbuilder +14 -0
- data/app/views/mno_enterprise/jpi/v1/marketplace/index.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/marketplace/show.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_arrears.json.jbuilder +11 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_billing.json.jbuilder +4 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_credit_card.json.jbuilder +7 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_current_user.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_invoices.json.jbuilder +8 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_member.json.jbuilder +13 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_organization.json.jbuilder +13 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/credit_card.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/members.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/show.json.jbuilder +15 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/show_reduced.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/shopping_cart/organizations.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/shopping_cart/show.json.jbuilder +59 -0
- data/app/views/mno_enterprise/jpi/v1/shopping_cart/show_item.json.jbuilder +34 -0
- data/app/views/mno_enterprise/jpi/v1/teams/_team.json.jbuilder +20 -0
- data/app/views/mno_enterprise/jpi/v1/teams/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/teams/show.json.jbuilder +3 -0
- data/app/views/mno_enterprise/pages/app_access_unauthorized.html.haml +19 -0
- data/app/views/mno_enterprise/pages/app_logout.html.haml +18 -0
- data/app/views/mno_enterprise/pages/billing_details_required.html.haml +19 -0
- data/app/views/mno_enterprise/pages/loading.html.erb +69 -0
- data/app/views/mno_enterprise/provision/_provision_apps.html.haml +42 -0
- data/app/views/mno_enterprise/provision/_select_organization.html.haml +17 -0
- data/app/views/mno_enterprise/provision/new.html.haml +4 -0
- data/app/views/mno_enterprise/webhook/o_auth/authorize.html.haml +26 -0
- data/app/views/mno_enterprise/webhook/o_auth/providers/myob.html.haml +29 -0
- data/app/views/mno_enterprise/webhook/o_auth/providers/xero.html.haml +34 -0
- data/config/initializers/devise.rb +273 -0
- data/config/initializers/devise_extension.rb +9 -0
- data/config/initializers/devise_log.rb +12 -0
- data/config/initializers/health_check.rb +35 -0
- data/config/initializers/main_app_version.rb +6 -0
- data/config/routes.rb +152 -0
- data/lib/mno-enterprise-api.rb +1 -0
- data/lib/mno_enterprise/api.rb +14 -0
- data/lib/mno_enterprise/api/engine.rb +9 -0
- data/lib/mno_enterprise/concerns/controllers/deletion_requests_controller.rb +108 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/admin/base_resource_controller.rb +34 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/current_users_controller.rb +58 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/deletion_requests_controller.rb +69 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/impac/dashboards_controller.rb +76 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/organizations_controller.rb +180 -0
- data/lib/mno_enterprise/concerns/controllers/org_invites_controller.rb +44 -0
- data/lib/mno_enterprise/concerns/controllers/pages_controller.rb +78 -0
- data/lib/mno_enterprise/concerns/controllers/provision_controller.rb +71 -0
- data/lib/mno_enterprise/concerns/controllers/webhook/o_auth_controller.rb +107 -0
- data/lib/mno_enterprise/concerns/mailers/system_notification_mailer.rb +158 -0
- data/lib/mno_enterprise/event_logger.rb +32 -0
- data/spec/controllers/mno_enterprise/auth/confirmation_controller_spec.rb +68 -0
- data/spec/controllers/mno_enterprise/deletion_requests_controller_spec.rb +141 -0
- data/spec/controllers/mno_enterprise/impersonate_controller_spec.rb +48 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/audit_events_controller_spec.rb +51 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/cloud_apps_controller_spec.rb +92 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/invoices_controller_spec.rb +159 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/organizations_controller_spec.rb +116 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/tenant_invoices_controller_spec.rb +92 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/users_controller_spec.rb +136 -0
- data/spec/controllers/mno_enterprise/jpi/v1/app_instances_controller_spec.rb +76 -0
- data/spec/controllers/mno_enterprise/jpi/v1/app_instances_sync_controller_spec.rb +94 -0
- data/spec/controllers/mno_enterprise/jpi/v1/current_users_controller_spec.rb +128 -0
- data/spec/controllers/mno_enterprise/jpi/v1/deletion_requests_controller_spec.rb +72 -0
- data/spec/controllers/mno_enterprise/jpi/v1/impac/kpis_controller_spec.rb +80 -0
- data/spec/controllers/mno_enterprise/jpi/v1/marketplace_controller_spec.rb +115 -0
- data/spec/controllers/mno_enterprise/jpi/v1/organizations_controller_spec.rb +516 -0
- data/spec/controllers/mno_enterprise/jpi/v1/team_controller_spec.rb +86 -0
- data/spec/controllers/mno_enterprise/org_invites_controller_spec.rb +29 -0
- data/spec/controllers/mno_enterprise/pages_controller_spec.rb +49 -0
- data/spec/controllers/mno_enterprise/provision_controller_spec.rb +94 -0
- data/spec/controllers/mno_enterprise/status_controller_spec.rb +34 -0
- data/spec/controllers/mno_enterprise/webhook/o_auth_controller_spec.rb +104 -0
- data/spec/lib/mno_enterprise/event_logger_spec.rb +28 -0
- data/spec/mailer/mno_enterprise/system_notification_mailer_spec.rb +132 -0
- data/spec/rails_helper.rb +94 -0
- data/spec/requests/devise/authentication_spec.rb +43 -0
- data/spec/requests/devise/registration_spec.rb +64 -0
- data/spec/routing/devise/confirmation_routing_spec.rb +20 -0
- data/spec/routing/devise/passwords_routing_spec.rb +24 -0
- data/spec/routing/devise/registrations_routing_spec.rb +16 -0
- data/spec/routing/devise/sessions_routing_spec.rb +20 -0
- data/spec/routing/mno_enterprise/deletion_requests_controller_routing_spec.rb +20 -0
- data/spec/routing/mno_enterprise/impersonate_controller_routing.spec.rb +15 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/audit_events_controller_routing_spec.rb +11 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/cloud_apps_controller_routing_spec.rb +24 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/invoices_controller_routing_spec.rb +37 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/organizations_controller_routing_spec.rb +20 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/tenant_invoices_controller_routing_spec.rb +16 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/users_controller_routing_spec.rb +24 -0
- data/spec/routing/mno_enterprise/jpi/v1/app_instances_controller_routing_spec.rb +12 -0
- data/spec/routing/mno_enterprise/jpi/v1/app_instances_sync_controller_routing_spec.rb +15 -0
- data/spec/routing/mno_enterprise/jpi/v1/current_users_controller_routing_spec.rb +28 -0
- data/spec/routing/mno_enterprise/jpi/v1/deletion_requests_controller_routing_spec.rb +24 -0
- data/spec/routing/mno_enterprise/jpi/v1/impac/kpis_controller_routing_spec.rb +22 -0
- data/spec/routing/mno_enterprise/jpi/v1/marketplace_controller_routing_spec.rb +16 -0
- data/spec/routing/mno_enterprise/jpi/v1/organizations_controller_routing_spec.rb +44 -0
- data/spec/routing/mno_enterprise/jpi/v1/teams_controller_routing_spec.rb +36 -0
- data/spec/routing/mno_enterprise/org_invites_controller_routing_spec.rb +12 -0
- data/spec/routing/mno_enterprise/pages_controller_routing_spec.rb +29 -0
- data/spec/routing/mno_enterprise/provision_controller_routing_spec.rb +15 -0
- data/spec/routing/mno_enterprise/status_controller_routing_spec.rb +19 -0
- data/spec/routing/mno_enterprise/webhook/o_auth_controller_routing_spec.rb +27 -0
- data/spec/spec_helper.rb +88 -0
- metadata +402 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
.registration-material
|
2
|
+
.action-box{ layout: "row", 'layout-align' => "center center" }
|
3
|
+
|
4
|
+
.md-whiteframe-z1{ layout: "column", flex: '33' }
|
5
|
+
|
6
|
+
%md-toolbar.success
|
7
|
+
.md-toolbar-tools
|
8
|
+
%md-icon{ 'md-font-icon' => 'fa fa-check-circle', style: 'font-size: 28px; margin-right: 10px;' }
|
9
|
+
%h3 Thanks for signing up!
|
10
|
+
%span{ flex: '' }
|
11
|
+
|
12
|
+
%md-content{ "layout-padding" => "", style: 'min-height: 300px; padding: 40px; text-align: left;' }
|
13
|
+
%p
|
14
|
+
We have just sent an email to
|
15
|
+
= @resource.email
|
16
|
+
|
17
|
+
%p
|
18
|
+
Please check your email and click on the 'Verify my Account' link.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
.registration-material
|
2
|
+
.action-box{ layout: "row", 'layout-align' => "center center" }
|
3
|
+
%md-content.md-whiteframe-z1{ "layout-padding" => "", flex: '33' }
|
4
|
+
%div{ layout: 'row', 'layout-align' => 'center center' }
|
5
|
+
%h2 Verify my account
|
6
|
+
|
7
|
+
%div{ layout: 'column' }
|
8
|
+
= render "mno_enterprise/auth/confirmations/material/form"
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
/ .registration
|
13
|
+
/ .container
|
14
|
+
/ .row
|
15
|
+
/ //.col-md-6.col-md-offset-3
|
16
|
+
/ .login-box-wrapper
|
17
|
+
/ .login-box-title
|
18
|
+
/ %h2 Almost there
|
19
|
+
/ .login-box
|
20
|
+
/ .brand-logo
|
21
|
+
/ = render "mno_enterprise/auth/confirmations/material/form"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
%div{ 'ng-init' => "user = {}" }
|
2
|
+
|
3
|
+
.registration
|
4
|
+
.container
|
5
|
+
.row
|
6
|
+
.login-box-wrapper
|
7
|
+
.login-box-title
|
8
|
+
%h2 Confirmation
|
9
|
+
.login-box
|
10
|
+
.brand-logo
|
11
|
+
= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post, class: 'form-horizontal autofill-detect' }) do |f|
|
12
|
+
|
13
|
+
- unless devise_error_messages!.empty?
|
14
|
+
.row
|
15
|
+
.alert.alert-error
|
16
|
+
%button.close ×
|
17
|
+
= devise_error_messages!
|
18
|
+
|
19
|
+
.row
|
20
|
+
.col-sm-12
|
21
|
+
= f.email_field :email, placeholder: "*Email", autofocus: true, required: true, 'ng-model' => 'user.email', :class => 'form-control'
|
22
|
+
|
23
|
+
%br
|
24
|
+
|
25
|
+
.row
|
26
|
+
.col-sm-12
|
27
|
+
.text-center
|
28
|
+
%button{ :class => "btn btn-warning", :type => "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'form.$invalid', 'ng-hide' => 'hasClicked' } Resend confirmation instructions
|
29
|
+
%img.ng-hide{ 'ng-src' => asset_path('mno_enterprise/loader-32x32-bg-inverse.gif'), 'ng-show' => 'hasClicked' }
|
30
|
+
%hr
|
31
|
+
= render "devise/shared/links"
|
@@ -0,0 +1,6 @@
|
|
1
|
+
%p
|
2
|
+
Hello #{@resource.email}!
|
3
|
+
%p Someone has requested a link to change your password. You can do this through the link below.
|
4
|
+
%p= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token)
|
5
|
+
%p If you didn't request this, please ignore this email.
|
6
|
+
%p Your password won't change until you access the link above and create a new one.
|
@@ -0,0 +1,53 @@
|
|
1
|
+
%div{ 'ng-init' => "user = {}" }
|
2
|
+
|
3
|
+
.registration
|
4
|
+
.container
|
5
|
+
.row
|
6
|
+
.login-box-wrapper
|
7
|
+
.login-box-title
|
8
|
+
%h2 Change your password
|
9
|
+
.login-box
|
10
|
+
.brand-logo
|
11
|
+
= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put, class: 'form-horizontal autofill-detect' }) do |f|
|
12
|
+
|
13
|
+
- unless devise_error_messages!.empty?
|
14
|
+
.row
|
15
|
+
.alert.alert-error
|
16
|
+
%button.close ×
|
17
|
+
= devise_error_messages!
|
18
|
+
|
19
|
+
= f.hidden_field :reset_password_token
|
20
|
+
|
21
|
+
.row
|
22
|
+
.col-sm-12
|
23
|
+
= f.password_field :password, placeholder: "*Password", required: true, autofocus: true, autocomplete: "off", 'ng-model' => 'user.password', class: 'form-control'
|
24
|
+
|
25
|
+
%br
|
26
|
+
|
27
|
+
.row
|
28
|
+
.col-sm-12
|
29
|
+
= f.password_field :password_confirmation, placeholder: "*Confirm Password", required: true, autofocus: true, autocomplete: "off", 'ng-model' => 'user.password_confirmation', class: 'form-control'
|
30
|
+
|
31
|
+
%br
|
32
|
+
|
33
|
+
.row
|
34
|
+
.col-sm-12
|
35
|
+
.text-center
|
36
|
+
%button{ :class => "btn btn-warning", :type => "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'form.$invalid', 'ng-hide' => 'hasClicked' } Change my password
|
37
|
+
%img.ng-hide{ 'ng-src' => asset_path('mno_enterprise/loader-32x32-bg-inverse.gif'), 'ng-show' => 'hasClicked' }
|
38
|
+
|
39
|
+
|
40
|
+
/ .field
|
41
|
+
/ = f.label :password, "New password"
|
42
|
+
/ %br/
|
43
|
+
/ = f.password_field :password, autofocus: true, autocomplete: "off", 'ng-model' => 'user.company', class: 'form-control'
|
44
|
+
/ .field
|
45
|
+
/ = f.label :password_confirmation, "Confirm new password"
|
46
|
+
/ %br/
|
47
|
+
/ = f.password_field :password_confirmation, autocomplete: "off"
|
48
|
+
/ .actions
|
49
|
+
/ = f.submit "Change my password"
|
50
|
+
|
51
|
+
%hr
|
52
|
+
|
53
|
+
= render "devise/shared/links"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
%div{ 'ng-init' => "user = {}" }
|
2
|
+
|
3
|
+
.registration
|
4
|
+
.container
|
5
|
+
.row
|
6
|
+
.login-box-wrapper
|
7
|
+
.login-box-title
|
8
|
+
%h2 Password Recovery
|
9
|
+
.login-box
|
10
|
+
.brand-logo
|
11
|
+
|
12
|
+
= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post, class: 'form-horizontal autofill-detect' }) do |f|
|
13
|
+
|
14
|
+
- unless devise_error_messages!.empty?
|
15
|
+
.row
|
16
|
+
.alert.alert-error
|
17
|
+
%button.close ×
|
18
|
+
= devise_error_messages!
|
19
|
+
|
20
|
+
.row
|
21
|
+
.col-sm-12
|
22
|
+
= f.email_field :email, placeholder: "*Email", required: true, 'ng-model' => 'user.email', :class => 'form-control'
|
23
|
+
|
24
|
+
%br
|
25
|
+
|
26
|
+
.row
|
27
|
+
.col-sm-12
|
28
|
+
.text-center
|
29
|
+
%button{ :class => "btn btn-warning", :type => "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'form.$invalid', 'ng-hide' => 'hasClicked' } Recover my password
|
30
|
+
%img.ng-hide{ 'ng-src' => asset_path('mno_enterprise/loader-32x32-bg-inverse.gif'), 'ng-show' => 'hasClicked' }
|
31
|
+
|
32
|
+
%hr
|
33
|
+
|
34
|
+
= render "devise/shared/links"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
%div{ 'ng-init' => "user = { $pwdScore: {}, email: '#{params['email']}' }" }
|
2
|
+
|
3
|
+
= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { 'name' => 'form', :class => 'form-horizontal autofill-detect', :autocomplete => "off" }) do |f|
|
4
|
+
|
5
|
+
- unless devise_error_messages!.empty?
|
6
|
+
.row
|
7
|
+
.alert.alert-error
|
8
|
+
%button.close ×
|
9
|
+
= devise_error_messages!
|
10
|
+
|
11
|
+
.row
|
12
|
+
.col-sm-12
|
13
|
+
= f.email_field :email, placeholder: "*Email", :required => true, 'ng-model' => 'user.email', :class => 'form-control'
|
14
|
+
|
15
|
+
%br
|
16
|
+
|
17
|
+
.row
|
18
|
+
.col-sm-12
|
19
|
+
= f.text_field :company, placeholder: "Company", 'ng-model' => 'user.company', class: 'form-control'
|
20
|
+
|
21
|
+
%br
|
22
|
+
|
23
|
+
.row
|
24
|
+
.col-sm-12
|
25
|
+
.checkbox-section.text-center
|
26
|
+
= check_box_tag 'tos', 'accept', false, :required => true, :style => "margin-top: -3px;", 'ng-model' => 'acceptTos'
|
27
|
+
%label{for: 'tos'} I accept the
|
28
|
+
= link_to "Terms of Use", MnoEnterprise.router.terms_url, :target => '_blank'
|
29
|
+
|
30
|
+
%br
|
31
|
+
.row
|
32
|
+
.col-sm-12
|
33
|
+
.text-center
|
34
|
+
%button{ :class => "btn btn-warning", :type => "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'form.$invalid', 'ng-hide' => 'hasClicked' } Create my account!
|
35
|
+
%img.ng-hide{ 'ng-src' => asset_path('mno_enterprise/loader-32x32-bg-inverse.gif'), 'ng-show' => 'hasClicked' }
|
@@ -0,0 +1,30 @@
|
|
1
|
+
%div{ 'ng-init' => "user = { $pwdScore: {}, email: '#{params['email']}' }" }
|
2
|
+
|
3
|
+
= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { 'name' => 'form', :class => 'form-horizontal autofill-detect', :autocomplete => "off" }) do |f|
|
4
|
+
|
5
|
+
- unless devise_error_messages!.empty?
|
6
|
+
.row
|
7
|
+
.alert.alert-error
|
8
|
+
%button.close ×
|
9
|
+
= devise_error_messages!
|
10
|
+
|
11
|
+
%md-input-container
|
12
|
+
%label Email
|
13
|
+
= f.email_field :email, :placeholder => "Email", required: true, 'ng-model' => 'user.email'
|
14
|
+
|
15
|
+
%br
|
16
|
+
|
17
|
+
%md-input-container
|
18
|
+
%label Company
|
19
|
+
= f.text_field :company, placeholder: "Company", required: true, 'ng-model' => 'user.company'
|
20
|
+
|
21
|
+
%br/
|
22
|
+
%md-checkbox{ 'ng-model' => 'user.acceptTos', name: 'tos' }
|
23
|
+
I accept the
|
24
|
+
= link_to "Terms of Use", MnoEnterprise.router.terms_url, :target => '_blank'
|
25
|
+
|
26
|
+
%br
|
27
|
+
|
28
|
+
%div
|
29
|
+
%button{ class: "md-raised md-accent", 'md-button' => true, type: "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'form.$invalid' } Create my account!
|
30
|
+
%md-progress-linear{ 'md-mode' => "indeterminate", 'ng-show' => 'hasClicked' }
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.registration-material
|
2
|
+
.action-box{ layout: "row", 'layout-align' => "center center" }
|
3
|
+
%md-content.md-whiteframe-z1{ "layout-padding" => "", flex: '33' }
|
4
|
+
%div{ layout: 'row', 'layout-align' => 'center center' }
|
5
|
+
%h2 Sign Up
|
6
|
+
|
7
|
+
%div{ layout: 'column' }
|
8
|
+
= render "mno_enterprise/auth/registrations/material/form"
|
9
|
+
%hr
|
10
|
+
= render "mno_enterprise/auth/shared/links"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
= form_for(resource, :as => resource_name, :url => "#{session_path(resource_name)}?ltype=#{@login_type}", :html => { 'name' => 'loginForm', :class => 'autofill-detect text-center' }) do |f|
|
2
|
+
%div
|
3
|
+
= f.email_field :email, :placeholder => "Email", :required => true, 'ng-model' => 'email', :class => 'form-control'
|
4
|
+
%br
|
5
|
+
%div
|
6
|
+
= f.password_field :password, :placeholder => "Password", :required => true, 'ng-model' => 'password', :class => 'form-control', :autocomplete => "off"
|
7
|
+
|
8
|
+
%br/
|
9
|
+
%div
|
10
|
+
%button{ :class => "btn btn-warning btn-login", :type => "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'loginForm.$invalid', 'ng-hide' => 'hasClicked' } Sign in
|
11
|
+
%img.ng-hide{ 'ng-src' => asset_path('mno_enterprise/loader-32x32-bg-inverse.gif'), 'ng-show' => 'hasClicked' }
|
12
|
+
|
13
|
+
- if devise_mapping.rememberable? && MnoEnterprise.style.devise.remember_checkbox_shown
|
14
|
+
%br/
|
15
|
+
%div.form-inline.checkbox-section
|
16
|
+
= f.check_box :remember_me, { checked: true }
|
17
|
+
= f.label :remember_me
|
@@ -0,0 +1,26 @@
|
|
1
|
+
%div{ 'ng-init' => "user = { }" }
|
2
|
+
|
3
|
+
= form_for(resource, :as => resource_name, :url => "#{session_path(resource_name)}?ltype=#{@login_type}", :html => { 'name' => 'loginForm', :class => 'autofill-detect text-center' }) do |f|
|
4
|
+
|
5
|
+
%md-input-container
|
6
|
+
%label Email
|
7
|
+
= f.email_field :email, :placeholder => "Email", :required => true, 'ng-model' => 'user.email'
|
8
|
+
|
9
|
+
%br
|
10
|
+
|
11
|
+
%md-input-container
|
12
|
+
%label Password
|
13
|
+
= f.password_field :password, :placeholder => "Password", :required => true, 'ng-model' => 'user.password', :autocomplete => "off"
|
14
|
+
|
15
|
+
- if devise_mapping.rememberable? && MnoEnterprise.style.devise.remember_checkbox_shown
|
16
|
+
%br/
|
17
|
+
%md-checkbox{ 'ng-model' => 'user.rememberMe', name: 'user[remember_me]' }
|
18
|
+
Remember Me
|
19
|
+
|
20
|
+
%br
|
21
|
+
|
22
|
+
%div
|
23
|
+
%button{ class: "md-raised md-accent", 'md-button' => true, type: "submit", 'ng-click' => 'hasClicked = true', 'ng-disabled' => 'loginForm.$invalid' } Sign in
|
24
|
+
%md-progress-linear{ 'md-mode' => "indeterminate", 'ng-show' => 'hasClicked' }
|
25
|
+
|
26
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.registration-material
|
2
|
+
.action-box{ layout: "row", 'layout-align' => "center center" }
|
3
|
+
%md-content.md-whiteframe-z1{ "layout-padding" => "", flex: '33' }
|
4
|
+
%div{ layout: 'row', 'layout-align' => 'center center' }
|
5
|
+
%h2 Log in
|
6
|
+
|
7
|
+
%div{ layout: 'column' }
|
8
|
+
= render "mno_enterprise/auth/sessions/material/form"
|
9
|
+
%hr
|
10
|
+
= render "mno_enterprise/auth/shared/links"
|
11
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
- if controller_name != 'sessions'
|
2
|
+
= link_to "Already have an account? Log in", new_session_path(resource_name)
|
3
|
+
%br/
|
4
|
+
|
5
|
+
- if devise_mapping.registerable? && controller_name != 'registrations'
|
6
|
+
= link_to "Don't have an account? Sign up", new_registration_path(resource_name)
|
7
|
+
%br/
|
8
|
+
|
9
|
+
- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' && MnoEnterprise.style.devise.forgot_password_link_shown
|
10
|
+
= link_to "Forgot your password?", new_password_path(resource_name)
|
11
|
+
%br/
|
12
|
+
|
13
|
+
- if devise_mapping.confirmable? && controller_name != 'confirmations' && MnoEnterprise.style.devise.confirmation_link_shown
|
14
|
+
= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
|
15
|
+
%br/
|
16
|
+
|
17
|
+
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' && MnoEnterprise.style.devise.unlock_link_shown
|
18
|
+
= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
|
19
|
+
%br/
|
20
|
+
|
21
|
+
- if devise_mapping.omniauthable? && MnoEnterprise.style.devise.omniauth_link_shown
|
22
|
+
- resource_class.omniauth_providers.each do |provider|
|
23
|
+
= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
|
24
|
+
%br/
|
@@ -0,0 +1,10 @@
|
|
1
|
+
%h2 Resend unlock instructions
|
2
|
+
= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
|
3
|
+
= devise_error_messages!
|
4
|
+
.field
|
5
|
+
= f.label :email
|
6
|
+
%br/
|
7
|
+
= f.email_field :email, autofocus: true
|
8
|
+
.actions
|
9
|
+
= f.submit "Resend unlock instructions"
|
10
|
+
= render "devise/shared/links"
|
@@ -0,0 +1,131 @@
|
|
1
|
+
.container
|
2
|
+
.row
|
3
|
+
.col-md-8.col-md-offset-2
|
4
|
+
%div{ "mno-flash-msg" => true }
|
5
|
+
%h4 Account termination
|
6
|
+
%p You have requested the termination of your account. This page will proceed to the checkout of any amount due and delete your account permanently.
|
7
|
+
|
8
|
+
- if @deletion_request.status == 'pending'
|
9
|
+
.row
|
10
|
+
.col-md-8.col-md-offset-2
|
11
|
+
%hr
|
12
|
+
%h4 Step 1 - Freeze my account
|
13
|
+
%p
|
14
|
+
First we need to freeze your account. Upon clicking the button below
|
15
|
+
%strong all your apps (and apps from organizations you are the sole member) will be terminated.
|
16
|
+
The final invoices for your account and organizations you are the sole member will be generated and displayed.
|
17
|
+
%p After clicking the button below you will not be able to launch apps anymore or access your dashboard.
|
18
|
+
|
19
|
+
%h5 Termination Checklist
|
20
|
+
%ol
|
21
|
+
%li I have transferred all my personal critical apps to coworkers via organizations
|
22
|
+
%li I have transferred all critical apps from organizations I am the sole member to coworkers via organizations
|
23
|
+
%li I have verified that all my transfer requests of critical apps have been accepted
|
24
|
+
|
25
|
+
%label
|
26
|
+
%input{ type: 'checkbox', id: "deletion-request-before-freeze-checklist", 'ng-click' => 'checklistAccepted = !checklistAccepted' } I have verified all the items of the termination checklist
|
27
|
+
|
28
|
+
.align-center
|
29
|
+
= form_for @deletion_request, url: freeze_account_deletion_request_path(@deletion_request) do |f|
|
30
|
+
%button.btn.btn-danger{type: "submit", id: "deletion-request-freeze-button", 'ng-disabled' => '!checklistAccepted' }
|
31
|
+
%i.fa.fa-lock.fa-inverse
|
32
|
+
Freeze my account
|
33
|
+
|
34
|
+
- if @deletion_request.status == 'account_frozen'
|
35
|
+
.row
|
36
|
+
.col-md-8.col-md-offset-2
|
37
|
+
%hr
|
38
|
+
%h4 Step 2 - Pay your final invoices
|
39
|
+
%p The table below shows you the final invoices created for your personal account and organizations for which you are the sole member.
|
40
|
+
%p Please click on each invoice to review/update the credit card details that should be used for checkout. You do not need to provide credit card details for $0 invoices.
|
41
|
+
- # List of invoices with Credit Cards
|
42
|
+
= form_for @deletion_request, url: checkout_deletion_request_path(@deletion_request), html: { class: 'form-horizontal'} do |f|
|
43
|
+
.accordion{ accordion:true, 'close-others'=>'true' }
|
44
|
+
- @final_invoices.each_with_index do |record, index|
|
45
|
+
%div#invoices_list{ 'accordion-group'=>true }
|
46
|
+
%div{ 'accordion-heading'=>true }
|
47
|
+
= record[:invoice].total_due.format
|
48
|
+
= " - "
|
49
|
+
= record[:description]
|
50
|
+
= " - Paid" if record[:invoice].paid?
|
51
|
+
|
52
|
+
%h5 Invoice PDF
|
53
|
+
%p
|
54
|
+
%a.btn.btn-info{ href: invoice_path(record[:invoice]), target: '_blank' }
|
55
|
+
%i.fa.fa-file
|
56
|
+
View Invoice
|
57
|
+
%em.muted
|
58
|
+
Click this button to see/download a detailed PDF version of this final invoice
|
59
|
+
|
60
|
+
- unless record[:invoice].paid?
|
61
|
+
%hr
|
62
|
+
%h5 Edit Credit Card information
|
63
|
+
= f.fields_for "credit_card[#{index}]", record[:invoicable].credit_card || MnoEnteprise::CreditCard.new do |cc|
|
64
|
+
.hidden
|
65
|
+
= cc.hidden_field :owner_id, value: record[:invoicable].id
|
66
|
+
= cc.hidden_field :owner_type, value: record[:invoicable].class
|
67
|
+
.input-group
|
68
|
+
.input-group-addon Title
|
69
|
+
=# cc.select :title, CreditCard::VALID_TITLES, {}, :class => 'form-control'
|
70
|
+
%br
|
71
|
+
.input-group
|
72
|
+
.input-group-addon First Name
|
73
|
+
= cc.text_field :first_name, class: 'form-control'
|
74
|
+
%br
|
75
|
+
.input-group
|
76
|
+
.input-group-addon Last Name
|
77
|
+
= cc.text_field :last_name, class: 'form-control'
|
78
|
+
%br
|
79
|
+
.input-group
|
80
|
+
.input-group-addon Country
|
81
|
+
=# cc.select :country, Country::Data.map { |k,v| [v['name'],k] }, {}, {:class => 'form-control'}
|
82
|
+
%br
|
83
|
+
.input-group
|
84
|
+
.input-group-addon Number
|
85
|
+
= cc.text_field :number, value: cc.object.masked_number, class: 'form-control'
|
86
|
+
%br
|
87
|
+
.input-group
|
88
|
+
.input-group-addon Month
|
89
|
+
= cc.select :month, (1..12), {}, class: 'form-control'
|
90
|
+
%br
|
91
|
+
.input-group
|
92
|
+
.input-group-addon Year
|
93
|
+
= cc.select :year, ((Time.now.year)..(Time.now.year + 20)), {}, class: 'form-control'
|
94
|
+
%br
|
95
|
+
.input-group
|
96
|
+
.input-group-addon CVV
|
97
|
+
= cc.text_field :verification_value, value: 'cvv', class: 'form-control'
|
98
|
+
%br
|
99
|
+
%hr
|
100
|
+
%h6 Billing Address
|
101
|
+
.input-group
|
102
|
+
.input-group-addon Address
|
103
|
+
= cc.text_field :billing_address, class: 'form-control'
|
104
|
+
%br
|
105
|
+
.input-group
|
106
|
+
.input-group-addon City
|
107
|
+
= cc.text_field :billing_city, class: 'form-control'
|
108
|
+
%br
|
109
|
+
.input-group
|
110
|
+
.input-group-addon Postcode
|
111
|
+
= cc.text_field :billing_postcode, class: 'form-control'
|
112
|
+
%br
|
113
|
+
.input-group
|
114
|
+
.input-group-addon Country
|
115
|
+
=# cc.select :billing_country, Country::Data.map { |k,v| [v['name'],k] }, {}, :class => 'form-control'
|
116
|
+
%br
|
117
|
+
|
118
|
+
.align-center
|
119
|
+
%button.btn.btn-success{type: "submit"}
|
120
|
+
%i.fa.fa-shopping-cart.fa-inverse
|
121
|
+
Checkout
|
122
|
+
|
123
|
+
|
124
|
+
.row
|
125
|
+
.col-md-8.col-md-offset-2
|
126
|
+
%hr
|
127
|
+
%p.muted
|
128
|
+
/ = image_tag('question_pic.png')
|
129
|
+
%i.fa.fa-question-circle.fa-lg
|
130
|
+
Need help during the termination process? Just send us an email at:
|
131
|
+
= mail_to support_email
|