lesli 5.0.12 → 5.0.14
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.
- checksums.yaml +4 -4
- data/app/assets/config/lesli_manifest.js +3 -6
- data/app/assets/images/lesli/brand/app-icon.svg +45 -39
- data/app/assets/images/lesli/brand/app-logo.png +0 -0
- data/app/assets/javascripts/lesli/application.js +1 -0
- data/app/controllers/lesli/abouts_controller.rb +16 -14
- data/app/controllers/lesli/application_controller.rb +14 -0
- data/app/controllers/lesli/application_devise_controller.rb +10 -12
- data/app/controllers/lesli/application_lesli_controller.rb +12 -11
- data/app/controllers/lesli/apps_controller.rb +6 -0
- data/app/controllers/lesli/roles_controller.rb +2 -2
- data/app/helpers/lesli/assets_helper.rb +24 -6
- data/app/helpers/lesli/general_helper.rb +18 -5
- data/app/helpers/lesli/html_helper.rb +8 -0
- data/app/helpers/lesli/navigation_helper.rb +43 -20
- data/app/helpers/lesli/system_helper.rb +2 -2
- data/app/helpers/lesli/turbo_helper.rb +58 -0
- data/app/interfaces/lesli/customization_interface.rb +42 -0
- data/app/interfaces/lesli/requester_interface.rb +103 -0
- data/app/interfaces/lesli/responder_interface.rb +127 -0
- data/app/lib/date2.rb +1 -191
- data/app/lib/lesli/courier.rb +54 -0
- data/app/mailers/lesli/application_lesli_mailer.rb +32 -59
- data/app/mailers/lesli/devise_mailer.rb +16 -8
- data/app/models/concerns/account_initializer.rb +27 -68
- data/app/models/concerns/lesli/has_activities.rb +29 -0
- data/app/models/concerns/user_extensions.rb +34 -13
- data/app/models/concerns/user_security.rb +4 -4
- data/app/models/lesli/account.rb +13 -20
- data/{lib/scss/layouts/application-container.scss → app/models/lesli/item/activity.rb} +11 -8
- data/app/models/lesli/role/{power.rb → action.rb} +6 -4
- data/app/models/lesli/role.rb +7 -15
- data/app/models/lesli/shared/catalog.rb +20 -0
- data/app/models/lesli/shared/dashboard.rb +1 -1
- data/app/models/lesli/user/activity.rb +5 -0
- data/app/models/lesli/user/detail.rb +5 -5
- data/app/models/lesli/user/{log.rb → journal.rb} +3 -3
- data/app/models/lesli/user/{power.rb → role.rb} +2 -3
- data/app/models/lesli/user/session.rb +3 -4
- data/app/models/lesli/user.rb +50 -46
- data/app/operators/lesli/controller_operator.rb +7 -2
- data/app/operators/lesli/{role_descriptor_operator.rb → role_operator.rb} +51 -28
- data/app/operators/lesli/user_registration_operator.rb +3 -2
- data/app/services/lesli/application_lesli_service.rb +8 -4
- data/app/services/lesli/role/action_service.rb +58 -0
- data/app/services/lesli/role_service.rb +232 -0
- data/app/services/lesli/{user_session_service.rb → user/session_service.rb} +23 -14
- data/app/services/lesli/user_service.rb +86 -2
- data/app/views/lesli/apps/show.html.erb +52 -0
- data/app/views/lesli/layouts/application-devise.html.erb +5 -7
- data/app/views/lesli/layouts/application-lesli.html.erb +18 -22
- data/app/views/lesli/partials/_application-analytics.html.erb +2 -2
- data/app/views/lesli/partials/_application-data.html.erb +5 -79
- data/app/views/lesli/partials/_application-head.html.erb +7 -4
- data/app/views/lesli/partials/_application-lesli-annoouncements.html.erb +49 -0
- data/app/views/lesli/partials/_application-lesli-header.html.erb +88 -39
- data/app/views/lesli/partials/_application-lesli-javascript.html.erb +5 -18
- data/app/views/lesli/partials/_application-lesli-navigation.html.erb +17 -7
- data/app/views/lesli/partials/{_application-lesli-notices.html.erb → _application-lesli-notifications.html.erb} +10 -8
- data/app/views/lesli/partials/_application-lesli-scss.html.erb +3 -3
- data/app/views/lesli/partials/_application-lesli-sidebar.html.erb +1 -1
- data/app/views/lesli/partials/_application-public-javascript.html.erb +1 -4
- data/app/views/lesli/shared/dashboards/_show.html.erb +63 -0
- data/app/views/lesli/wrappers/_application-devise-simple.erb +1 -1
- data/app/views/lesli/wrappers/_application-devise.html.erb +4 -6
- data/config/importmap.rb +14 -0
- data/config/initializers/lesli.rb +27 -13
- data/config/initializers/lesli_migration_helpers.rb +61 -0
- data/config/locales/translations.en.yml +1 -24
- data/config/locales/translations.es.yml +1 -24
- data/config/locales/translations.fr.yml +1 -24
- data/config/locales/translations.it.yml +1 -24
- data/config/locales/translations.pt.yml +1 -24
- data/config/routes.rb +3 -1
- data/db/migrate/v1/{0010000110_create_lesli_accounts.rb → 0000000110_create_lesli_accounts.rb} +13 -12
- data/db/migrate/v1/0000000210_create_lesli_roles.rb +65 -0
- data/db/migrate/v1/0000000310_create_lesli_users.rb +99 -0
- data/db/migrate/v1/{0010000610_create_lesli_system_controllers.rb → 0000100110_create_lesli_system_controllers.rb} +3 -3
- data/db/migrate/v1/{0010000710_create_lesli_system_controller_actions.rb → 0000100210_create_lesli_system_controller_actions.rb} +3 -4
- data/db/{seed/production.rb → migrate/v1/0000110310_create_lesli_account_settings.rb} +6 -3
- data/{app/models/lesli/user/agent.rb → db/migrate/v1/0000110410_create_lesli_account_activities.rb} +3 -3
- data/db/migrate/v1/0000120210_create_lesli_role_actions.rb +45 -0
- data/db/migrate/v1/{0010001410_create_lesli_account_logs.rb → 0000120310_create_lesli_role_privileges.rb} +8 -8
- data/db/{tables/0010003810_create_user_shortcuts.rb → migrate/v1/0000130210_create_lesli_user_roles.rb} +9 -12
- data/db/migrate/v1/0000130310_create_lesli_user_sessions.rb +56 -0
- data/db/migrate/v1/0000130410_create_lesli_user_activities.rb +37 -0
- data/db/{tables/0010001110_create_account_locations.rb → migrate2/0000100510_create_lesli_account_locations.rb} +6 -6
- data/db/{tables/0010001510_create_account_currencies.rb → migrate2/0000100610_create_lesli_account_currencies.rb} +4 -4
- data/db/seed/{development/accounts.rb → accounts.rb} +6 -2
- data/db/seed/{production/users.rb → users.rb} +4 -10
- data/db/seed/{tools.rb → xyz.rb} +2 -7
- data/db/seeds.rb +3 -2
- data/db/structure/00000020_catalogs.json +0 -0
- data/lib/generators/application_lesli_generator_base.rb +164 -0
- data/lib/generators/lesli/spec/USAGE +8 -0
- data/lib/generators/lesli/spec/spec_generator.rb +25 -0
- data/lib/generators/lesli/spec/templates/spec-factory.template +17 -0
- data/lib/generators/lesli/spec/templates/spec-model.template +70 -0
- data/lib/generators/lesli/view/USAGE +8 -0
- data/lib/generators/lesli/view/templates/spec-factory.template +17 -0
- data/lib/generators/lesli/view/templates/spec-model.template +70 -0
- data/lib/generators/lesli/view/view_generator.rb +25 -0
- data/lib/lesli/configuration.rb +8 -11
- data/lib/lesli/engine.rb +24 -6
- data/lib/lesli/r_spec.rb +43 -0
- data/lib/lesli/routing.rb +90 -0
- data/lib/lesli/version.rb +2 -2
- data/lib/lesli.rb +13 -0
- data/lib/migrate/common.rb +94 -0
- data/lib/migrate/items/action_structure.rb +51 -0
- data/{db/migrate/v1/0010001210_create_lesli_account_activities.rb → lib/migrate/items/activity_structure.rb} +18 -16
- data/lib/migrate/items/attachment_structure.rb +62 -0
- data/{app/views/lesli/partials/_application-lesli-engines.html.erb → lib/migrate/items/discussion_structure.rb} +19 -27
- data/lib/migrate/items/subscriber_structure.rb +49 -0
- data/lib/migrate/items/version_structure.rb +53 -0
- data/lib/migrate/shared/account_structure.rb +21 -0
- data/lib/migrate/shared/catalog_structure.rb +30 -0
- data/lib/migrate/shared/dashboard_structure.rb +54 -0
- data/lib/migrate/shared/setting_structure.rb +20 -0
- data/lib/rspec/config/spec_coverage.rb +95 -0
- data/{db/migrate/v1/0010001110_create_lesli_account_settings.rb → lib/rspec/factories/lesli_account.rb} +10 -7
- data/{db/seed/development.rb → lib/rspec/factories/lesli_role.rb} +30 -3
- data/{db/seed/test.rb → lib/rspec/factories/lesli_user.rb} +32 -3
- data/lib/rspec/fixtures/files/lesli-icon.png +0 -0
- data/lib/rspec/fixtures/files/test_file_1.docx +0 -0
- data/{db/tables/0010001610_create_account_currency_exchange_rates.rb → lib/rspec/helpers/lesli_helper.rb} +21 -21
- data/lib/rspec/helpers/rails_helper.rb +134 -0
- data/lib/rspec/helpers/response_request_helper.rb +214 -0
- data/lib/rspec/helpers/response_service_helper.rb +66 -0
- data/lib/rspec/helpers/spec_helper.rb +99 -0
- data/lib/rspec/lesli_api_tester.rb +133 -0
- data/lib/rspec/lesli_service_tester.rb +46 -0
- data/{db/tables/0010001410_create_account_files.rb → lib/rspec/testers/controller.rb} +31 -20
- data/lib/rspec/testers/model.rb +36 -0
- data/lib/rspec/testers/request.rb +84 -0
- data/lib/tasks/lesli/db.rake +5 -3
- data/lib/tasks/lesli/git.rake +28 -32
- data/lib/tasks/lesli/github.rake +89 -0
- data/lib/tasks/lesli_tasks.rake +6 -6
- data/readme.md +28 -17
- metadata +132 -399
- data/app/assets/fonts/lesli/Domine/Domine-Variable.ttf +0 -0
- data/app/assets/fonts/lesli/Domine/OFL.txt +0 -97
- data/app/assets/fonts/lesli/MaterialDesign/icons.woff2 +0 -0
- data/app/assets/fonts/lesli/Montserrat/Montserrat-Variable.ttf +0 -0
- data/app/assets/fonts/lesli/OpenSans/OpenSans-Variable.ttf +0 -0
- data/app/assets/fonts/lesli/Remix/remixicon.eot +0 -0
- data/app/assets/fonts/lesli/Remix/remixicon.glyph.json +0 -1
- data/app/assets/fonts/lesli/Remix/remixicon.svg +0 -7633
- data/app/assets/fonts/lesli/Remix/remixicon.symbol.svg +0 -11
- data/app/assets/fonts/lesli/Remix/remixicon.ttf +0 -0
- data/app/assets/fonts/lesli/Remix/remixicon.woff +0 -0
- data/app/assets/fonts/lesli/Remix/remixicon.woff2 +0 -0
- data/app/assets/fonts/lesli/Roboto/LICENSE.txt +0 -202
- data/app/assets/fonts/lesli/Roboto/Roboto-Black.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-BlackItalic.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-Bold.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-BoldItalic.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-Italic.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-Light.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-LightItalic.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-Medium.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-MediumItalic.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-Regular.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-Thin.ttf +0 -0
- data/app/assets/fonts/lesli/Roboto/Roboto-ThinItalic.ttf +0 -0
- data/app/assets/icons/lesli/engine-admin.svg +0 -1
- data/app/assets/icons/lesli/engine-audit.svg +0 -1
- data/app/assets/icons/lesli/engine-babel.svg +0 -1
- data/app/assets/icons/lesli/engine-bell.svg +0 -1
- data/app/assets/icons/lesli/engine-books.svg +0 -1
- data/app/assets/icons/lesli/engine-calendar.svg +0 -1
- data/app/assets/icons/lesli/engine-dashboard.svg +0 -1
- data/app/assets/icons/lesli/engine-dispatcher.svg +0 -1
- data/app/assets/icons/lesli/engine-focus.svg +0 -1
- data/app/assets/icons/lesli/engine-kb.svg +0 -1
- data/app/assets/icons/lesli/engine-leaf.svg +0 -1
- data/app/assets/icons/lesli/engine-lesli.svg +0 -1
- data/app/assets/icons/lesli/engine-letter.svg +0 -1
- data/app/assets/icons/lesli/engine-mailer.svg +0 -1
- data/app/assets/icons/lesli/engine-one.svg +0 -1
- data/app/assets/icons/lesli/engine-profile.svg +0 -1
- data/app/assets/icons/lesli/engine-proposal.svg +0 -1
- data/app/assets/icons/lesli/engine-scraper.svg +0 -1
- data/app/assets/icons/lesli/engine-security.svg +0 -1
- data/app/assets/icons/lesli/engine-shared.svg +0 -1
- data/app/assets/icons/lesli/engine-shield.svg +0 -1
- data/app/assets/icons/lesli/engine-storage.svg +0 -1
- data/app/assets/icons/lesli/engine-support.svg +0 -1
- data/app/assets/icons/lesli/engine-talk.svg +0 -1
- data/app/assets/icons/lesli/engine-team.svg +0 -1
- data/app/assets/icons/lesli/engine-time.svg +0 -1
- data/app/assets/icons/lesli/locale-en.svg +0 -1
- data/app/assets/icons/lesli/locale-es.svg +0 -1
- data/app/assets/icons/lesli/locale-fr.svg +0 -1
- data/app/assets/icons/lesli/locale-it.svg +0 -1
- data/app/assets/icons/lesli/locale-pt.svg +0 -1
- data/app/assets/icons/readme.md +0 -10
- data/app/assets/stylesheets/lesli/templates/application.css +0 -23499
- data/app/assets/stylesheets/lesli/templates/public.css +0 -19098
- data/app/assets/stylesheets/lesli/users/confirmations.css +0 -19219
- data/app/assets/stylesheets/lesli/users/passwords.css +0 -19202
- data/app/assets/stylesheets/lesli/users/registrations.css +0 -19594
- data/app/assets/stylesheets/lesli/users/sessions.css +0 -19594
- data/app/controllers/lesli/interfaces/application/authorization.rb +0 -107
- data/app/controllers/lesli/interfaces/application/customization.rb +0 -46
- data/app/controllers/lesli/interfaces/application/logger.rb +0 -134
- data/app/controllers/lesli/interfaces/application/requester.rb +0 -84
- data/app/controllers/lesli/interfaces/application/responder.rb +0 -132
- data/app/controllers/lesli/interfaces/controllers/actions.rb +0 -250
- data/app/controllers/lesli/interfaces/controllers/activities.rb +0 -215
- data/app/controllers/lesli/interfaces/controllers/discussions.rb +0 -270
- data/app/controllers/lesli/interfaces/controllers/files.rb +0 -467
- data/app/controllers/lesli/interfaces/controllers/subscribers.rb +0 -234
- data/app/lib/lesli/system.rb +0 -98
- data/app/models/lesli/cloud_object/action.rb +0 -70
- data/app/models/lesli/cloud_object/activity.rb +0 -311
- data/app/models/lesli/cloud_object/custom_field.rb +0 -158
- data/app/models/lesli/cloud_object/discussion.rb +0 -219
- data/app/models/lesli/cloud_object/subscriber.rb +0 -186
- data/app/operators/lesli/descriptor_privilege_operator.rb +0 -75
- data/app/views/lesli/emails/devise_mailer/confirmation_instructions.html.erb +0 -23
- data/app/views/lesli/emails/devise_mailer/reset_password_instructions.html.erb +0 -23
- data/app/views/lesli/partials/_application-lesli-icons.html.erb +0 -1
- data/config/initializers/devise.rb +0 -336
- data/db/seed/development/users.rb +0 -52
- data/db/seed/production/accounts.rb +0 -50
- data/db/structure/00000000_people.json +0 -34
- data/db/structure/00000003_actions.json +0 -14
- data/db/structure/00000004_activities.json +0 -20
- data/db/structure/00000005_discussions.json +0 -8
- data/db/structure/00000006_files.json +0 -32
- data/db/structure/00000007_subscribers.json +0 -11
- data/db/structure/00000501_dashboards.json +0 -14
- data/db/structure/00000502_dashboard_components.json +0 -23
- data/db/tables/0010003410_create_user_activities.rb +0 -51
- data/db/tables/0010003710_create_user_codes.rb +0 -43
- data/db/tables/0010004110_create_user_tokens.rb +0 -45
- data/db/tables/0010005610_create_role_activities.rb +0 -50
- data/db/tables/0010009010_create_feedbacks.rb +0 -56
- data/lib/mailer_previews/devise_mailer_preview.rb +0 -49
- data/lib/scss/bulma/loader.scss +0 -92
- data/lib/scss/cloud-objects/discussion.scss +0 -80
- data/lib/scss/cloud-objects/file.scss +0 -138
- data/lib/scss/components/keypad.scss +0 -109
- data/lib/scss/elements/autocomplete.scss +0 -72
- data/lib/scss/elements/card.scss +0 -37
- data/lib/scss/elements/empty.scss +0 -43
- data/lib/scss/elements/file-uploader.scss +0 -74
- data/lib/scss/elements/gallery.scss +0 -98
- data/lib/scss/elements/input-tag.scss +0 -73
- data/lib/scss/elements/loading.scss +0 -63
- data/lib/scss/elements/map.scss +0 -107
- data/lib/scss/elements/navbar.scss +0 -115
- data/lib/scss/elements/table.scss +0 -118
- data/lib/scss/elements/toolbar.scss +0 -66
- data/lib/scss/fonts/families.scss +0 -47
- data/lib/scss/fonts/mdicons.scss +0 -82
- data/lib/scss/fonts/remixicons.scss +0 -2602
- data/lib/scss/helpers/display.scss +0 -44
- data/lib/scss/helpers/tooltip.scss +0 -91
- data/lib/scss/layouts/application-announcements.scss +0 -40
- data/lib/scss/layouts/application-component.scss +0 -39
- data/lib/scss/layouts/application-engines.scss +0 -125
- data/lib/scss/layouts/application-footer.scss +0 -102
- data/lib/scss/layouts/application-header.scss +0 -163
- data/lib/scss/layouts/application-navbar.scss +0 -62
- data/lib/scss/layouts/application-search.scss +0 -71
- data/lib/scss/layouts/application-sidebar.scss +0 -219
- data/lib/scss/overrides/notification.scss +0 -75
- data/lib/scss/overrides/sweetalert.scss +0 -106
- data/lib/scss/pages/devise-simple.scss +0 -89
- data/lib/scss/pages/devise.scss +0 -179
- data/lib/scss/pages/invites.scss +0 -81
- data/lib/scss/panels/panel-announcements.scss +0 -56
- data/lib/scss/panels/panel-notification.scss +0 -67
- data/lib/scss/panels/panel-profile.scss +0 -62
- data/lib/scss/panels/panel-support-ticket.scss +0 -56
- data/lib/scss/panels/panel-tasks.scss +0 -41
- data/lib/scss/settings/variables.scss +0 -148
- data/lib/scss/shared/workflow-status-progress.scss +0 -135
- data/lib/scss/templates/application.scss +0 -156
- data/lib/scss/templates/component.scss +0 -39
- data/lib/scss/templates/dashboards.scss +0 -53
- data/lib/scss/templates/empty.scss +0 -42
- data/lib/scss/templates/pdf.scss +0 -45
- data/lib/scss/templates/public.scss +0 -70
- data/lib/vue/application.js +0 -283
- data/lib/vue/cloudobjects/discussion/content.vue +0 -62
- data/lib/vue/cloudobjects/discussion/element.vue +0 -170
- data/lib/vue/cloudobjects/discussion/filters.vue +0 -108
- data/lib/vue/cloudobjects/discussion/new.vue +0 -134
- data/lib/vue/cloudobjects/discussion.vue +0 -99
- data/lib/vue/cloudobjects/stores/discussion.js +0 -212
- data/lib/vue/layouts/application-announcements.vue +0 -78
- data/lib/vue/layouts/application-component.vue +0 -38
- data/lib/vue/layouts/application-container.vue +0 -48
- data/lib/vue/layouts/application-engines.vue +0 -66
- data/lib/vue/layouts/application-footer.vue +0 -123
- data/lib/vue/layouts/application-header.vue +0 -231
- data/lib/vue/layouts/application-navbar.vue +0 -110
- data/lib/vue/layouts/application-search.vue +0 -86
- data/lib/vue/layouts/application-sidebar.vue +0 -63
- data/lib/vue/pages/errors/app.js +0 -32
- data/lib/vue/pages/invites/app.js +0 -76
- data/lib/vue/pages/mfas/application.js +0 -77
- data/lib/vue/pages/onboarding/application.js +0 -45
- data/lib/vue/pages/onboarding/components/address.vue +0 -120
- data/lib/vue/pages/onboarding/components/buttons.vue +0 -67
- data/lib/vue/pages/onboarding/components/contact.vue +0 -148
- data/lib/vue/pages/onboarding/components/date-time.vue +0 -265
- data/lib/vue/pages/onboarding/components/finish.vue +0 -62
- data/lib/vue/pages/onboarding/components/general-info.vue +0 -93
- data/lib/vue/pages/onboarding/components/indicators.vue +0 -78
- data/lib/vue/pages/onboarding/components/welcome.vue +0 -66
- data/lib/vue/pages/onboarding/show.vue +0 -67
- data/lib/vue/pages/onboarding/store.js +0 -165
- data/lib/vue/pages/otps/application.js +0 -90
- data/lib/vue/pages/passes/application.js +0 -80
- data/lib/vue/pages/websites/application.js +0 -34
- data/lib/vue/panels/panel-announcements.vue +0 -248
- data/lib/vue/panels/panel-bell-notifications.vue +0 -102
- data/lib/vue/panels/panel-files.vue +0 -281
- data/lib/vue/panels/panel-profile.vue +0 -76
- data/lib/vue/panels/panel-support-tickets.vue +0 -161
- data/lib/vue/panels/panel-tasks.vue +0 -124
- data/lib/vue/panels/stores/bell-notifications.js +0 -46
- data/lib/vue/panels/stores/support-tickets.js +0 -103
- data/lib/vue/public.js +0 -83
- data/lib/vue/refactor/shared/cloudobjects/action.vue +0 -193
- data/lib/vue/refactor/shared/cloudobjects/file/grid.vue +0 -215
- data/lib/vue/refactor/shared/cloudobjects/file/list.vue +0 -106
- data/lib/vue/refactor/shared/cloudobjects/file.vue +0 -145
- data/lib/vue/refactor/shared/workflows2/apps/actions/form.vue +0 -232
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/chatroom-form.vue +0 -103
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/cloud-object-clone-form.vue +0 -125
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/cloud-object-file-form.vue +0 -102
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/email-form.vue +0 -190
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/notification-form.vue +0 -124
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/send-cloud-object-file.vue +0 -170
- data/lib/vue/refactor/shared/workflows2/apps/actions/forms/task-form.vue +0 -258
- data/lib/vue/refactor/shared/workflows2/apps/actions/index.vue +0 -146
- data/lib/vue/refactor/shared/workflows2/apps/checks/form.vue +0 -200
- data/lib/vue/refactor/shared/workflows2/apps/checks/index.vue +0 -160
- data/lib/vue/refactor/shared/workflows2/apps/index.vue +0 -177
- data/lib/vue/refactor/shared/workflows2/apps/new.vue +0 -97
- data/lib/vue/refactor/shared/workflows2/apps/show.vue +0 -146
- data/lib/vue/refactor/shared/workflows2/components/associations.vue +0 -215
- data/lib/vue/refactor/shared/workflows2/components/chart.vue +0 -91
- data/lib/vue/refactor/shared/workflows2/components/workflow-form.vue +0 -466
- data/lib/vue/refactor/shared/workflows2/components/workflow-status-dropdown.vue +0 -129
- data/lib/vue/refactor/stores/cloudobjects/action.js +0 -181
- data/lib/vue/refactor/stores/cloudobjects/file.js +0 -205
- data/lib/vue/refactor/stores/entities/announcements.js +0 -75
- data/lib/vue/refactor/stores/entities/dashboard.js +0 -251
- data/lib/vue/refactor/stores/entities/workflow.js +0 -185
- data/lib/vue/refactor/stores/panels/announcements.js +0 -153
- data/lib/vue/refactor/stores/panels/notification.js +0 -114
- data/lib/vue/refactor/stores/panels/task.js +0 -66
- data/lib/vue/refactor/stores/panels/tickets.js +0 -129
- data/lib/vue/refactor/stores/role.js +0 -243
- data/lib/vue/refactor/stores/translations.json +0 -60
- data/lib/vue/refactor/stores/users.js +0 -98
- data/lib/vue/shared/dashboards/apps/edit.vue +0 -215
- data/lib/vue/shared/dashboards/apps/index.vue +0 -112
- data/lib/vue/shared/dashboards/apps/new.vue +0 -89
- data/lib/vue/shared/dashboards/apps/show.vue +0 -88
- data/lib/vue/shared/dashboards/components/form.vue +0 -246
- data/lib/vue/shared/services/firebase.js +0 -163
- data/lib/vue/shared/services/translator.js +0 -87
- data/lib/vue/shared/stores/command.js +0 -154
- data/lib/vue/shared/stores/dashboard.js +0 -253
- data/lib/vue/shared/stores/layout.js +0 -61
- data/lib/vue/shared/stores/systemController.js +0 -67
- data/lib/vue/shared/stores/users.js +0 -57
- data/lib/vue/stores/translations.json +0 -167
- data/lib/vue/translation.js +0 -45
- data/lib/webpack/base.js +0 -186
- data/lib/webpack/core.js +0 -91
- data/lib/webpack/engines.js +0 -165
- data/lib/webpack/version.js +0 -41
- data/vendor/bulma/LICENSE +0 -21
- data/vendor/bulma/bulma.sass +0 -10
- data/vendor/bulma/css/bulma-rtl.css +0 -11851
- data/vendor/bulma/css/bulma-rtl.min.css +0 -1
- data/vendor/bulma/css/bulma.css +0 -11851
- data/vendor/bulma/css/bulma.min.css +0 -1
- data/vendor/bulma/sass/base/_all.sass +0 -6
- data/vendor/bulma/sass/base/animations.sass +0 -5
- data/vendor/bulma/sass/base/generic.sass +0 -145
- data/vendor/bulma/sass/base/helpers.sass +0 -1
- data/vendor/bulma/sass/base/minireset.sass +0 -79
- data/vendor/bulma/sass/components/_all.sass +0 -15
- data/vendor/bulma/sass/components/breadcrumb.sass +0 -77
- data/vendor/bulma/sass/components/card.sass +0 -103
- data/vendor/bulma/sass/components/dropdown.sass +0 -83
- data/vendor/bulma/sass/components/level.sass +0 -79
- data/vendor/bulma/sass/components/media.sass +0 -59
- data/vendor/bulma/sass/components/menu.sass +0 -59
- data/vendor/bulma/sass/components/message.sass +0 -101
- data/vendor/bulma/sass/components/modal.sass +0 -117
- data/vendor/bulma/sass/components/navbar.sass +0 -446
- data/vendor/bulma/sass/components/pagination.sass +0 -167
- data/vendor/bulma/sass/components/panel.sass +0 -121
- data/vendor/bulma/sass/components/tabs.sass +0 -176
- data/vendor/bulma/sass/elements/_all.sass +0 -16
- data/vendor/bulma/sass/elements/box.sass +0 -26
- data/vendor/bulma/sass/elements/button.sass +0 -357
- data/vendor/bulma/sass/elements/container.sass +0 -29
- data/vendor/bulma/sass/elements/content.sass +0 -162
- data/vendor/bulma/sass/elements/form.sass +0 -1
- data/vendor/bulma/sass/elements/icon.sass +0 -46
- data/vendor/bulma/sass/elements/image.sass +0 -73
- data/vendor/bulma/sass/elements/notification.sass +0 -52
- data/vendor/bulma/sass/elements/other.sass +0 -31
- data/vendor/bulma/sass/elements/progress.sass +0 -73
- data/vendor/bulma/sass/elements/table.sass +0 -134
- data/vendor/bulma/sass/elements/tag.sass +0 -140
- data/vendor/bulma/sass/elements/title.sass +0 -70
- data/vendor/bulma/sass/form/_all.sass +0 -9
- data/vendor/bulma/sass/form/checkbox-radio.sass +0 -22
- data/vendor/bulma/sass/form/file.sass +0 -184
- data/vendor/bulma/sass/form/input-textarea.sass +0 -66
- data/vendor/bulma/sass/form/select.sass +0 -88
- data/vendor/bulma/sass/form/shared.sass +0 -60
- data/vendor/bulma/sass/form/tools.sass +0 -215
- data/vendor/bulma/sass/grid/_all.sass +0 -5
- data/vendor/bulma/sass/grid/columns.sass +0 -513
- data/vendor/bulma/sass/grid/tiles.sass +0 -36
- data/vendor/bulma/sass/helpers/_all.sass +0 -12
- data/vendor/bulma/sass/helpers/color.sass +0 -39
- data/vendor/bulma/sass/helpers/flexbox.sass +0 -35
- data/vendor/bulma/sass/helpers/float.sass +0 -10
- data/vendor/bulma/sass/helpers/other.sass +0 -14
- data/vendor/bulma/sass/helpers/overflow.sass +0 -2
- data/vendor/bulma/sass/helpers/position.sass +0 -7
- data/vendor/bulma/sass/helpers/spacing.sass +0 -31
- data/vendor/bulma/sass/helpers/typography.sass +0 -103
- data/vendor/bulma/sass/helpers/visibility.sass +0 -122
- data/vendor/bulma/sass/layout/_all.sass +0 -6
- data/vendor/bulma/sass/layout/footer.sass +0 -11
- data/vendor/bulma/sass/layout/hero.sass +0 -153
- data/vendor/bulma/sass/layout/section.sass +0 -17
- data/vendor/bulma/sass/utilities/_all.sass +0 -9
- data/vendor/bulma/sass/utilities/animations.sass +0 -1
- data/vendor/bulma/sass/utilities/controls.sass +0 -49
- data/vendor/bulma/sass/utilities/derived-variables.sass +0 -114
- data/vendor/bulma/sass/utilities/extends.sass +0 -25
- data/vendor/bulma/sass/utilities/functions.sass +0 -135
- data/vendor/bulma/sass/utilities/initial-variables.sass +0 -79
- data/vendor/bulma/sass/utilities/mixins.sass +0 -303
- data/vendor/lesli-css/_index.scss +0 -34
- data/vendor/lesli-css/lesli.scss +0 -51
- data/vendor/lesli-css/license +0 -28
- data/vendor/lesli-css/src/base/fonts.scss +0 -50
- data/vendor/lesli-css/src/base/normalize.scss +0 -118
- data/vendor/lesli-css/src/components/blockquote.scss +0 -61
- data/vendor/lesli-css/src/components/columns.scss +0 -92
- data/vendor/lesli-css/src/components/container.scss +0 -47
- data/vendor/lesli-css/src/components/navigation.scss +0 -59
- data/vendor/lesli-css/src/functions/colors.scss +0 -184
- data/vendor/lesli-css/src/helpers/units.scss +0 -44
- data/vendor/lesli-css/src/mixins/breakpoint.scss +0 -184
- data/vendor/lesli-css/src/mixins/flex.scss +0 -80
- data/vendor/lesli-css/src/mixins/scrollbar.scss +0 -46
- data/vendor/lesli-css/src/settings/variables.scss +0 -26
- data/vendor/lesli-css/tests/base/normalize.spec.scss +0 -125
- data/vendor/lesli-css/tests/functions/colors.spec.scss +0 -117
- data/vendor/lesli-css/tests/mixins/breakpoint.spec.scss +0 -429
- data/vendor/lesli-css/tests/mixins/scrollbar.spec.scss +0 -82
- data/vendor/lesli-css/vendor/normalize.scss +0 -351
- data/vendor/remixicon/License +0 -201
- data/vendor/remixicon/fonts/remixicon.css +0 -2583
- /data/{vendor/lesli-css/src/components/grid.scss → app/assets/stylesheets/lesli/application.css} +0 -0
- /data/db/migrate/v1/{0010001010_create_lesli_account_details.rb → 0000110210_create_lesli_account_details.rb} +0 -0
- /data/db/structure/{00000008_custom_fields.json → 00000300_custom_fields.json} +0 -0
- /data/lib/assets/javascripts/lesli/{i18n.js → i18n_js} +0 -0
@@ -1,9 +1,8 @@
|
|
1
|
-
|
2
|
-
=begin
|
1
|
+
<%#
|
3
2
|
|
4
3
|
Lesli
|
5
4
|
|
6
|
-
Copyright (c)
|
5
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
7
6
|
|
8
7
|
This program is free software: you can redistribute it and/or modify
|
9
8
|
it under the terms of the GNU General Public License as published by
|
@@ -20,7 +19,7 @@ along with this program. If not, see http://www.gnu.org/licenses/.
|
|
20
19
|
|
21
20
|
Lesli · Ruby on Rails SaaS Development Framework.
|
22
21
|
|
23
|
-
Made with ♥ by
|
22
|
+
Made with ♥ by LesliTech
|
24
23
|
Building a better future, one line of code at a time.
|
25
24
|
|
26
25
|
@contact hello@lesli.tech
|
@@ -29,44 +28,94 @@ Building a better future, one line of code at a time.
|
|
29
28
|
|
30
29
|
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
31
30
|
// ·
|
32
|
-
=end
|
33
31
|
%>
|
34
32
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
<div class="
|
51
|
-
<
|
52
|
-
|
53
|
-
|
54
|
-
|
33
|
+
<%# check if custom navigation partial exists, getting the path from application helper %>
|
34
|
+
<% custom_navigation_path = "partials/application-lesli-header" %>
|
35
|
+
|
36
|
+
<%# validate the path to be sure the partial exists when trying to render it %>
|
37
|
+
<% custom_navigation_exists = lookup_context.exists?(custom_navigation_path, nil, true) %>
|
38
|
+
|
39
|
+
<%# render navigation partial %>
|
40
|
+
<% if custom_navigation_exists %>
|
41
|
+
|
42
|
+
<%= render partial: custom_navigation_path %>
|
43
|
+
|
44
|
+
<% else %>
|
45
|
+
<header class="lesli-application-header">
|
46
|
+
<nav class="lesli-navbar navbar unresponsive" role="navigation" aria-label="main navigation">
|
47
|
+
<div class="container">
|
48
|
+
<div class="navbar-brand">
|
49
|
+
<a href="<%= defined?(LesliDashboard) ? '/dashboard' : '/' %>" class="application-navbar-brand">
|
50
|
+
<%= customization_instance_logo_tag(logo: "app-logo", options: { alt: "Lesli app logo" }) %>
|
51
|
+
</a>
|
52
|
+
<a class="navbar-burger" role="button" aria-label="menu" aria-expanded="false">
|
53
|
+
<span aria-hidden="true"></span>
|
54
|
+
<span aria-hidden="true"></span>
|
55
|
+
<span aria-hidden="true"></span>
|
56
|
+
</a>
|
57
|
+
</div>
|
58
|
+
<div class="navbar-menu">
|
59
|
+
<div class="navbar-start">
|
55
60
|
</div>
|
56
|
-
<div class="
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
<div class="navbar-end">
|
62
|
+
|
63
|
+
<div class="navbar-item">
|
64
|
+
<div class="header-icons field is-grouped is-justify-content-center">
|
65
|
+
<div class="control">
|
66
|
+
|
67
|
+
<!-- tasks -->
|
68
|
+
<% if defined?(LesliFocus) %>
|
69
|
+
<a v-if="props.showFocus" class="header-indicator"
|
70
|
+
@click="() => { storeLayout.showSuppor = true }">
|
71
|
+
<span class="ri-list-check-3">
|
72
|
+
</span>
|
73
|
+
<span class="count" v-if="storeLayout.header.support > 0">
|
74
|
+
</span>
|
75
|
+
</a>
|
76
|
+
<% end %>
|
77
|
+
|
78
|
+
<!-- tickets -->
|
79
|
+
<% if defined?(LesliSupport) %>
|
80
|
+
<%= link_to(
|
81
|
+
lesli_support.tickets_path,
|
82
|
+
:class => "header-indicator",
|
83
|
+
:data => { turbo_frame: '_top' }) do %>
|
84
|
+
<span class="ri-ticket-2-line"></span>
|
85
|
+
<% if @lesli[:tickets] > 0 %>
|
86
|
+
<span class="count"></span>
|
87
|
+
<% end %>
|
88
|
+
<% end %>
|
89
|
+
<% end %>
|
90
|
+
|
91
|
+
<!-- notifications -->
|
92
|
+
<% if defined?(LesliBell) %>
|
93
|
+
<%= link_to(
|
94
|
+
lesli_bell.notifications_path,
|
95
|
+
:class => "header-indicator",
|
96
|
+
:data => { turbo_frame: '_top' }) do %>
|
97
|
+
<% if @lesli[:notifications] > 0 %>
|
98
|
+
<span class="ri-notification-3-fill has-text-primary"></span>
|
99
|
+
<% else %>
|
100
|
+
<span class="ri-notification-3-line"></span>
|
101
|
+
<% end %>
|
102
|
+
<% end %>
|
103
|
+
<% end %>
|
104
|
+
|
105
|
+
<!-- module selector -->
|
106
|
+
<%= navigation_link(lesli.apps_path, nil, "ri-apps-2-line") %>
|
107
|
+
|
108
|
+
<!-- user profile -->
|
109
|
+
<%= navigation_link(lesli.apps_path, nil, "ri-user-smile-line") %>
|
110
|
+
|
111
|
+
<!-- logout from session -->
|
112
|
+
<%= navigation_link(main_app.destroy_user_session_path, nil, "ri-logout-circle-r-line") if defined?(LesliShield) %>
|
113
|
+
</div>
|
114
|
+
</div>
|
67
115
|
</div>
|
68
116
|
</div>
|
69
117
|
</div>
|
70
|
-
|
71
|
-
</
|
72
|
-
</
|
118
|
+
</div>
|
119
|
+
</nav>
|
120
|
+
</header>
|
121
|
+
<% end %>
|
@@ -18,9 +18,9 @@ GNU General Public License for more details.
|
|
18
18
|
You should have received a copy of the GNU General Public License
|
19
19
|
along with this program. If not, see http://www.gnu.org/licenses/.
|
20
20
|
|
21
|
-
Lesli · Ruby on Rails SaaS
|
21
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
22
22
|
|
23
|
-
Made with ♥ by
|
23
|
+
Made with ♥ by LesliTech
|
24
24
|
Building a better future, one line of code at a time.
|
25
25
|
|
26
26
|
@contact hello@lesli.tech
|
@@ -32,22 +32,9 @@ Building a better future, one line of code at a time.
|
|
32
32
|
=end
|
33
33
|
%>
|
34
34
|
|
35
|
-
|
36
|
-
<%= javascript_include_tag
|
37
|
-
|
38
|
-
|
39
|
-
<%# Including main Lesli application %>
|
40
|
-
<%= javascript_include_tag(lesli_application_javascript_path()) %>
|
41
|
-
|
42
|
-
|
43
|
-
<%# Set language for JavaScript apps %>
|
44
|
-
<script>
|
45
|
-
if (typeof i18n !== "undefined") {
|
46
|
-
i18n.locale = "<%#= I18n.locale %>"
|
47
|
-
}
|
48
|
-
</script>
|
49
|
-
|
50
|
-
|
35
|
+
<%= javascript_importmap_tags %>
|
36
|
+
<%= javascript_include_tag("lesli_assets/application.js", :defer => "defer") %>
|
37
|
+
<%= yield(:application_lesli_javascript) %>
|
51
38
|
<%#
|
52
39
|
<script src="https://js.honeybadger.io/v3.2/honeybadger.min.js" type="text/javascript"></script>
|
53
40
|
<script type="text/javascript">
|
@@ -33,20 +33,30 @@ Building a better future, one line of code at a time.
|
|
33
33
|
%>
|
34
34
|
|
35
35
|
<%# check if custom navigation partial exists, getting the path from application helper %>
|
36
|
-
<%
|
36
|
+
<%
|
37
|
+
engine = lesli_engine.dig(:code)
|
38
|
+
custom_sidebar_path = if engine == "root"
|
39
|
+
"partials/navigation"
|
40
|
+
else
|
41
|
+
"#{engine}/partials/navigation"
|
42
|
+
end
|
43
|
+
%>
|
37
44
|
|
38
45
|
|
39
46
|
<%# validate the path to be sure the partial exists when trying to render it %>
|
40
47
|
<% custom_sidebar_exists = lookup_context.exists?(custom_sidebar_path, nil, true) %>
|
41
48
|
|
42
|
-
|
43
49
|
<%# render navigation partial %>
|
44
50
|
<% if custom_sidebar_exists %>
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
51
|
+
<nav class="lesli-navbar navbar lesli-application-navigation" role="navigation" aria-label="main navigation">
|
52
|
+
<div class="container">
|
53
|
+
<div class="navbar-menu">
|
54
|
+
<div class="navbar-end">
|
55
|
+
<%= render partial: custom_sidebar_path %>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
</nav>
|
50
60
|
<% else %>
|
51
61
|
<!-- no navigation found -->
|
52
62
|
<% end %>
|
@@ -33,11 +33,13 @@ Building a better future, one line of code at a time.
|
|
33
33
|
%>
|
34
34
|
|
35
35
|
|
36
|
-
|
37
|
-
<% if
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
36
|
+
<section id="application-lesli-notifications" class="application-lesli-notifications">
|
37
|
+
<% if flash.any? %>
|
38
|
+
<% flash.each do |type, message| %>
|
39
|
+
<div class="notification is-<%= type %> is-light my-1 has-text-centered">
|
40
|
+
<%= message %>
|
41
|
+
</div>
|
42
|
+
<% end %>
|
43
|
+
<% flash.discard %>
|
44
|
+
<% end %>
|
45
|
+
</section>
|
@@ -18,9 +18,9 @@ GNU General Public License for more details.
|
|
18
18
|
You should have received a copy of the GNU General Public License
|
19
19
|
along with this program. If not, see http://www.gnu.org/licenses/.
|
20
20
|
|
21
|
-
Lesli · Ruby on Rails SaaS
|
21
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
22
22
|
|
23
|
-
Made with ♥ by
|
23
|
+
Made with ♥ by LesliTech
|
24
24
|
Building a better future, one line of code at a time.
|
25
25
|
|
26
26
|
@contact hello@lesli.tech
|
@@ -55,6 +55,6 @@ Building a better future, one line of code at a time.
|
|
55
55
|
|
56
56
|
|
57
57
|
<%# Loading stylesheets %>
|
58
|
-
<%= stylesheet_link_tag lesli_application_stylesheet_path(:
|
58
|
+
<%= stylesheet_link_tag lesli_application_stylesheet_path(:lesli_assets), media: "all" %>
|
59
59
|
<%= stylesheet_link_tag lesli_application_stylesheet_path(), media: "all" %>
|
60
60
|
|
@@ -33,7 +33,7 @@ Building a better future, one line of code at a time.
|
|
33
33
|
%>
|
34
34
|
|
35
35
|
<%# check if custom navigation partial exists, getting the path from application helper %>
|
36
|
-
<% custom_sidebar_path = "#{lesli_engine.dig(:code)}/partials/
|
36
|
+
<% custom_sidebar_path = "#{lesli_engine.dig(:code)}/partials/sidebar" %>
|
37
37
|
|
38
38
|
<%# validate the path to be sure the partial exists when trying to render it %>
|
39
39
|
<% custom_sidebar_exists = lookup_context.exists?(custom_sidebar_path, nil, true) %>
|
@@ -35,15 +35,12 @@ Building a better future, one line of code at a time.
|
|
35
35
|
|
36
36
|
<% is_devise = controller_path.split('/')[0] == "users" %>
|
37
37
|
|
38
|
-
|
39
38
|
<%# Load specific javascript files for devise actions (login,register,etc) %>
|
40
|
-
|
41
|
-
|
39
|
+
<%#= javascript_include_tag("lesli/#{controller_path}") if is_devise %>
|
42
40
|
|
43
41
|
<%# Load standard files %>
|
44
42
|
<%#= javascript_include_tag(application_javascript_path()) unless is_devise %>
|
45
43
|
|
46
|
-
|
47
44
|
<%# Set language for JavaScript apps %>
|
48
45
|
<script>
|
49
46
|
if (typeof i18n !== "undefined") {
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<%#
|
2
|
+
|
3
|
+
Lesli
|
4
|
+
|
5
|
+
Copyright (c) 2023, Lesli Technologies, S. A.
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
19
|
+
|
20
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
21
|
+
|
22
|
+
Made with ♥ by https://www.lesli.tech
|
23
|
+
Building a better future, one line of code at a time.
|
24
|
+
|
25
|
+
@contact hello@lesli.tech
|
26
|
+
@website https://www.lesli.tech
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
28
|
+
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
30
|
+
// ·
|
31
|
+
%>
|
32
|
+
|
33
|
+
<%
|
34
|
+
hour = Date2.new.date.get.hour # Returns the hour (0–23) based on the app's timezone
|
35
|
+
welcome_options = ["Good morning", "Good afternoon", "Good evening"]
|
36
|
+
welcome_text = ""
|
37
|
+
|
38
|
+
if hour < 12
|
39
|
+
welcome_text = welcome_options.first
|
40
|
+
elsif hour < 18
|
41
|
+
welcome_text = welcome_options.second
|
42
|
+
else
|
43
|
+
welcome_text = welcome_options.third
|
44
|
+
end
|
45
|
+
%>
|
46
|
+
|
47
|
+
<%= render(LesliView::Layout::Container.new("dashboards-show", :dashboard => true)) do %>
|
48
|
+
|
49
|
+
<section class="lesli-element-header is-flex mt-6 mb-6 pb-6 container">
|
50
|
+
<div class="lesli-element-header-title">
|
51
|
+
<h1 class="subtitle is-size-3 mb-0"><%= welcome_text %>, <%= current_user.full_name %>.</h1>
|
52
|
+
<p class=""><%= Date2.new.date_words_day %>.</p>
|
53
|
+
</div>
|
54
|
+
</section>
|
55
|
+
|
56
|
+
<%= render(LesliView::Elements::Empty.new(text: "Empty dashboard")) if @dashboard[:components].blank? %>
|
57
|
+
|
58
|
+
<div class="columns is-multiline is-variable is-4 dashboard-components">
|
59
|
+
<% @dashboard[:components].each do |component| %>
|
60
|
+
<%= render("#{controller.controller_path}/component-#{component}", { :component => component }) %>
|
61
|
+
<% end %>
|
62
|
+
</div>
|
63
|
+
<% end %>
|
@@ -44,7 +44,7 @@ Building a better future, one line of code at a time.
|
|
44
44
|
:class => "#{lesli_instance_code}-logo", # dynamic class according to the instance
|
45
45
|
:alt => "Main logo")
|
46
46
|
%>
|
47
|
-
<h1 class="title has-text-primary">
|
47
|
+
<h1 class="title is-size-4 has-text-primary">
|
48
48
|
<%#= I18n.t("core.users/sessions.view_text_welcome") %>
|
49
49
|
<%= title %>
|
50
50
|
</h1>
|
@@ -1,9 +1,8 @@
|
|
1
|
-
|
2
|
-
=begin
|
1
|
+
<%#
|
3
2
|
|
4
3
|
Lesli
|
5
4
|
|
6
|
-
Copyright (c)
|
5
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
7
6
|
|
8
7
|
This program is free software: you can redistribute it and/or modify
|
9
8
|
it under the terms of the GNU General Public License as published by
|
@@ -20,7 +19,7 @@ along with this program. If not, see http://www.gnu.org/licenses/.
|
|
20
19
|
|
21
20
|
Lesli · Ruby on Rails SaaS Development Framework.
|
22
21
|
|
23
|
-
Made with ♥ by
|
22
|
+
Made with ♥ by LesliTech
|
24
23
|
Building a better future, one line of code at a time.
|
25
24
|
|
26
25
|
@contact hello@lesli.tech
|
@@ -29,7 +28,6 @@ Building a better future, one line of code at a time.
|
|
29
28
|
|
30
29
|
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
31
30
|
// ·
|
32
|
-
=end
|
33
31
|
%>
|
34
32
|
|
35
33
|
<% title = defined?(title) ? title : "" %>
|
@@ -60,7 +58,7 @@ Building a better future, one line of code at a time.
|
|
60
58
|
:class => "#{lesli_instance_code}-logo mb-2", # dynamic class according to the instance
|
61
59
|
:alt => "Main logo")
|
62
60
|
%>
|
63
|
-
<h1 class="has-text-primary">
|
61
|
+
<h1 class="is-title is-size-3 has-text-primary">
|
64
62
|
<%#= I18n.t("core.users/sessions.view_text_welcome") %>
|
65
63
|
<%= title %>
|
66
64
|
</h1>
|
data/config/importmap.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Pin npm packages by running ./bin/importmap
|
2
|
+
|
3
|
+
pin "application", to: "lesli/application.js", preload: true
|
4
|
+
pin "@hotwired/turbo-rails", to: "turbo.min.js"
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
#pin "chart.js", to: "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.js"
|
9
|
+
#pin "chart.js", to: "https://ga.jspm.io/npm:chart.js@4.5.1/dist/chart.esm.js"
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
# my_engine/config/importmap.rb
|
14
|
+
#pin_all_from File.expand_path("../app/assets/javascripts", __dir__)
|
@@ -45,14 +45,14 @@ Lesli.configure do |config|
|
|
45
45
|
config.company = {
|
46
46
|
name: "Lesli",
|
47
47
|
email: "hello@lesli.tech",
|
48
|
-
tagline: "
|
48
|
+
tagline: "The Open SaaS Development Platform."
|
49
49
|
}
|
50
50
|
|
51
51
|
|
52
52
|
# Available languages globally (Requires LesliBabel)
|
53
53
|
config.locales = {
|
54
54
|
:en => "English", # English
|
55
|
-
|
55
|
+
:de => "Deutsch", # Deutsch/German
|
56
56
|
# :pl => "Polski", # Polski/Polish/Poland
|
57
57
|
# :nl => "Dutch", # Dutch/Nederlands/Netherlands
|
58
58
|
:es => "Español", # Español/Spanish
|
@@ -60,8 +60,8 @@ Lesli.configure do |config|
|
|
60
60
|
# :sr => "Српски", # Српски/Srpski/Serbian
|
61
61
|
:it => "Italiano", # Italiano/Italian
|
62
62
|
# :hr => "Hrvatski", # Hrvatski/Croatian
|
63
|
-
|
64
|
-
|
63
|
+
#:fr => "Français", # French
|
64
|
+
#:pt => "Português", # Portuguese
|
65
65
|
# :tr => "Türkçe", # Turkish
|
66
66
|
# :ro => "Română", # Romanian
|
67
67
|
# :bg => "български" # Bulgarian
|
@@ -70,21 +70,23 @@ Lesli.configure do |config|
|
|
70
70
|
|
71
71
|
# Time localization
|
72
72
|
config.datetime = {
|
73
|
-
time_zone
|
74
|
-
start_week_on
|
75
|
-
formats
|
76
|
-
date
|
77
|
-
time
|
78
|
-
date_time
|
79
|
-
date_words
|
80
|
-
date_time_words
|
73
|
+
:time_zone => "America/Guatemala",
|
74
|
+
:start_week_on => "monday",
|
75
|
+
:formats => {
|
76
|
+
:date => "%d/%m/%Y",
|
77
|
+
:time => "%H:%M",
|
78
|
+
:date_time => "%d/%m/%Y %H:%M",
|
79
|
+
:date_words => "%A, %B %d, %Y",
|
80
|
+
:date_time_words => "%A, %B %d, %Y, %H:%M", # 24 hours datetime in words format (default)
|
81
|
+
:date_time_words_pm => "%A, %B %d, %Y, %I:%M %p", # 12 hours datetime in words format
|
82
|
+
:date_time_words_day => "%A, %B %d, %Y, %H:%M", # 24 hours datetime in words format (default)
|
81
83
|
}
|
82
84
|
}
|
83
85
|
|
84
86
|
|
85
87
|
# Instance security settings
|
86
88
|
config.security = {
|
87
|
-
password: "
|
89
|
+
password: "Test123!",
|
88
90
|
enable_debug: false,
|
89
91
|
enable_becoming: false,
|
90
92
|
enable_analytics: true,
|
@@ -105,6 +107,18 @@ Lesli.configure do |config|
|
|
105
107
|
color_sidebar_hover: "#dee7ec"
|
106
108
|
}
|
107
109
|
|
110
|
+
|
111
|
+
#
|
112
|
+
config.layout = {
|
113
|
+
locale: false
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
#
|
118
|
+
config.mailer = {
|
119
|
+
templates: "lesli_mailer/emails/lesli"
|
120
|
+
}
|
121
|
+
|
108
122
|
config.path_after_login = "/"
|
109
123
|
config.path_after_login = "/dashboard" if defined?(LesliDashboard)
|
110
124
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
=begin
|
2
|
+
|
3
|
+
Lesli
|
4
|
+
|
5
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
19
|
+
|
20
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
21
|
+
|
22
|
+
Made with ♥ by LesliTech
|
23
|
+
Building a better future, one line of code at a time.
|
24
|
+
|
25
|
+
@contact hello@lesli.tech
|
26
|
+
@website https://www.lesli.tech
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
28
|
+
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
30
|
+
// ·
|
31
|
+
=end
|
32
|
+
|
33
|
+
require(Lesli::Engine.root.join("lib/migrate/common"))
|
34
|
+
|
35
|
+
require(Lesli::Engine.root.join("lib/migrate/items/action_structure"))
|
36
|
+
require(Lesli::Engine.root.join("lib/migrate/items/activity_structure"))
|
37
|
+
require(Lesli::Engine.root.join("lib/migrate/items/attachment_structure"))
|
38
|
+
require(Lesli::Engine.root.join("lib/migrate/items/discussion_structure"))
|
39
|
+
require(Lesli::Engine.root.join("lib/migrate/items/subscriber_structure"))
|
40
|
+
require(Lesli::Engine.root.join("lib/migrate/items/version_structure"))
|
41
|
+
|
42
|
+
require(Lesli::Engine.root.join("lib/migrate/shared/account_structure"))
|
43
|
+
require(Lesli::Engine.root.join("lib/migrate/shared/setting_structure"))
|
44
|
+
require(Lesli::Engine.root.join("lib/migrate/shared/catalog_structure"))
|
45
|
+
require(Lesli::Engine.root.join("lib/migrate/shared/dashboard_structure"))
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
ActiveRecord::Migration.include(MigrationHelpers::Common)
|
50
|
+
|
51
|
+
ActiveRecord::Migration.include(MigrationHelpers::Items::ActionStructure)
|
52
|
+
ActiveRecord::Migration.include(MigrationHelpers::Items::ActivityStructure)
|
53
|
+
ActiveRecord::Migration.include(MigrationHelpers::Items::AttachmentStructure)
|
54
|
+
ActiveRecord::Migration.include(MigrationHelpers::Items::DiscussionStructure)
|
55
|
+
ActiveRecord::Migration.include(MigrationHelpers::Items::SubscriberStructure)
|
56
|
+
ActiveRecord::Migration.include(MigrationHelpers::Items::VersionStructure)
|
57
|
+
|
58
|
+
ActiveRecord::Migration.include(MigrationHelpers::Shared::AccountStructure)
|
59
|
+
ActiveRecord::Migration.include(MigrationHelpers::Shared::SettingStructure)
|
60
|
+
ActiveRecord::Migration.include(MigrationHelpers::Shared::CatalogStructure)
|
61
|
+
ActiveRecord::Migration.include(MigrationHelpers::Shared::DashboardStructure)
|
@@ -1,28 +1,5 @@
|
|
1
1
|
---
|
2
2
|
:en:
|
3
3
|
lesli:
|
4
|
-
shared:
|
5
|
-
view_discussions: Discussions
|
6
|
-
button_add_new: Add new
|
7
|
-
button_reload: Reload
|
8
|
-
view_files: Files
|
9
|
-
view_quick_actions: Quick actions
|
10
|
-
button_list: List
|
11
|
-
button_save: Save
|
12
|
-
button_delete: Delete
|
13
|
-
button_edit: Edit
|
14
|
-
view_status_active: Active
|
15
|
-
view_status_inactive: Inactive
|
16
|
-
button_settings: Settings
|
17
|
-
button_show: Show
|
18
|
-
toolbar_search: Search...
|
19
4
|
users/sessions:
|
20
|
-
|
21
|
-
dashboards:
|
22
|
-
title: Dashboards
|
23
|
-
column_name: Name
|
24
|
-
column_default: Default
|
25
|
-
view_add_component: Add component
|
26
|
-
application:
|
27
|
-
navigation_logout: Logout
|
28
|
-
navigation_my_profile: My profile
|
5
|
+
message_invalid_credentials: Invalid credentials
|
@@ -1,28 +1,5 @@
|
|
1
1
|
---
|
2
2
|
:es:
|
3
3
|
lesli:
|
4
|
-
shared:
|
5
|
-
view_discussions: Discusiones
|
6
|
-
button_add_new: Agregar nuevo
|
7
|
-
button_reload: Recargar
|
8
|
-
view_files: Archivos
|
9
|
-
view_quick_actions: Acciones rapidas
|
10
|
-
button_list: Lista
|
11
|
-
button_save: Guardar
|
12
|
-
button_delete: Eliminar
|
13
|
-
button_edit: Editar
|
14
|
-
view_status_active: Activo
|
15
|
-
view_status_inactive: Inactivo
|
16
|
-
button_settings: Configuración
|
17
|
-
button_show: Ver
|
18
|
-
toolbar_search: Buscar...
|
19
4
|
users/sessions:
|
20
|
-
|
21
|
-
dashboards:
|
22
|
-
title: Dashboards
|
23
|
-
column_name: Nombre
|
24
|
-
column_default: Default
|
25
|
-
view_add_component: Agregar componente
|
26
|
-
application:
|
27
|
-
navigation_logout: Cerrar sesión
|
28
|
-
navigation_my_profile: Mi perfil
|
5
|
+
message_invalid_credentials: Credenciales no validas
|