lesli 5.0.13 → 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/javascripts/lesli/application.js +1 -0
- data/app/controllers/lesli/abouts_controller.rb +16 -14
- data/app/controllers/lesli/application_controller.rb +13 -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/general_helper.rb +18 -5
- data/app/helpers/lesli/html_helper.rb +8 -0
- data/app/helpers/lesli/navigation_helper.rb +30 -11
- 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 -199
- 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 -19
- 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 +3 -1
- 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 +85 -1
- 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 -24
- data/app/views/lesli/partials/_application-analytics.html.erb +2 -2
- data/app/views/lesli/partials/_application-data.html.erb +3 -77
- 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 +73 -49
- data/app/views/lesli/partials/_application-lesli-javascript.html.erb +3 -16
- data/app/views/lesli/partials/_application-lesli-navigation.html.erb +12 -9
- 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 +1 -1
- 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.html.erb +4 -6
- data/config/importmap.rb +14 -0
- data/config/initializers/lesli.rb +20 -12
- data/config/initializers/lesli_migration_helpers.rb +61 -0
- data/config/locales/translations.en.yml +1 -26
- data/config/locales/translations.es.yml +1 -26
- data/config/locales/translations.fr.yml +1 -26
- data/config/locales/translations.it.yml +1 -26
- data/config/locales/translations.pt.yml +1 -26
- 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/{lib/scss/layouts/application-content.scss → db/migrate/v1/0000110310_create_lesli_account_settings.rb} +8 -6
- 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/{seed/production.rb → migrate/v1/0000130410_create_lesli_user_activities.rb} +7 -4
- 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.rb → application_lesli_generator_base.rb} +4 -4
- data/lib/generators/lesli/spec/spec_generator.rb +2 -2
- 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 +7 -10
- data/lib/lesli/engine.rb +22 -3
- data/lib/lesli/r_spec.rb +5 -2
- data/lib/lesli/routing.rb +42 -9
- data/lib/lesli/version.rb +2 -2
- data/lib/lesli.rb +11 -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 +3 -3
- data/readme.md +28 -17
- metadata +134 -394
- 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/javascripts/lesli/templates/application.js +0 -14
- data/app/assets/javascripts/lesli/templates/public.js +0 -14
- data/app/assets/stylesheets/lesli/templates/application.css +0 -2918
- data/app/assets/stylesheets/lesli/templates/public.css +0 -1
- 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 -110
- 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/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 -91
- data/lib/scss/layouts/application-navigation.scss +0 -79
- 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 -127
- 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 -72
- data/lib/vue/application.js +0 -285
- 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 -252
- 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 -163
- 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 -177
- data/lib/vue/translation.js +0 -45
- data/lib/webpack/base.js +0 -191
- data/lib/webpack/core.js +0 -93
- data/lib/webpack/engines.js +0 -167
- data/lib/webpack/root.js +0 -105
- data/lib/webpack/version.js +0 -78
- 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,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
|
<%# check if custom navigation partial exists, getting the path from application helper %>
|
@@ -44,54 +42,80 @@ Building a better future, one line of code at a time.
|
|
44
42
|
<%= render partial: custom_navigation_path %>
|
45
43
|
|
46
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">
|
60
|
+
</div>
|
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 %>
|
47
77
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
<span class="icon is-size-5">
|
74
|
-
<%= lesli_svg("locale-#{locale}") %>
|
75
|
-
</span>
|
76
|
-
</button>
|
77
|
-
</div>
|
78
|
-
<div class="dropdown-menu" id="dropdown-menu-locale" role="menu">
|
79
|
-
<div class="dropdown-content">
|
80
|
-
<% I18n.available_locales.each do |locale| %>
|
81
|
-
<% next if locale == I18n.locale %>
|
82
|
-
<%= link_to language_url(locale), { :class => "dropdown-item" } do %>
|
83
|
-
<span class="icon has-text-grey-light">
|
84
|
-
<%= lesli_svg("locale-#{locale}") %>
|
85
|
-
</span>
|
86
|
-
<span><%= language_name(locale) %></span>
|
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 %>
|
87
103
|
<% end %>
|
88
|
-
|
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>
|
89
114
|
</div>
|
90
115
|
</div>
|
91
116
|
</div>
|
92
117
|
</div>
|
93
|
-
|
94
|
-
</
|
95
|
-
</
|
96
|
-
|
118
|
+
</div>
|
119
|
+
</nav>
|
120
|
+
</header>
|
97
121
|
<% end %>
|
@@ -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">
|
@@ -36,9 +36,9 @@ Building a better future, one line of code at a time.
|
|
36
36
|
<%
|
37
37
|
engine = lesli_engine.dig(:code)
|
38
38
|
custom_sidebar_path = if engine == "root"
|
39
|
-
"partials/
|
40
|
-
|
41
|
-
"#{engine}/partials/
|
39
|
+
"partials/navigation"
|
40
|
+
else
|
41
|
+
"#{engine}/partials/navigation"
|
42
42
|
end
|
43
43
|
%>
|
44
44
|
|
@@ -46,14 +46,17 @@ Building a better future, one line of code at a time.
|
|
46
46
|
<%# validate the path to be sure the partial exists when trying to render it %>
|
47
47
|
<% custom_sidebar_exists = lookup_context.exists?(custom_sidebar_path, nil, true) %>
|
48
48
|
|
49
|
-
|
50
49
|
<%# render navigation partial %>
|
51
50
|
<% if custom_sidebar_exists %>
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
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>
|
57
60
|
<% else %>
|
58
61
|
<!-- no navigation found -->
|
59
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>
|
@@ -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 %>
|
@@ -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__)
|
@@ -52,7 +52,7 @@ Lesli.configure do |config|
|
|
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,
|
@@ -111,6 +113,12 @@ Lesli.configure do |config|
|
|
111
113
|
locale: false
|
112
114
|
}
|
113
115
|
|
116
|
+
|
117
|
+
#
|
118
|
+
config.mailer = {
|
119
|
+
templates: "lesli_mailer/emails/lesli"
|
120
|
+
}
|
121
|
+
|
114
122
|
config.path_after_login = "/"
|
115
123
|
config.path_after_login = "/dashboard" if defined?(LesliDashboard)
|
116
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,30 +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
|
-
message_operation_success: Operation completed successfully
|
20
|
-
message_operation_error: Operation failed. Please try again.
|
21
|
-
application:
|
22
|
-
navigation_logout: Logout
|
23
|
-
navigation_my_profile: My profile
|
24
4
|
users/sessions:
|
25
|
-
|
26
|
-
dashboards:
|
27
|
-
title: Dashboards
|
28
|
-
column_name: Name
|
29
|
-
column_default: Default
|
30
|
-
view_add_component: Add component
|
5
|
+
message_invalid_credentials: Invalid credentials
|
@@ -1,30 +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
|
-
message_operation_success: Operacion realizada satisfactoriamente
|
20
|
-
message_operation_error: Operación fallida. Por favor, inténtelo de nuevo.
|
21
|
-
application:
|
22
|
-
navigation_logout: Cerrar sesión
|
23
|
-
navigation_my_profile: Mi perfil
|
24
4
|
users/sessions:
|
25
|
-
|
26
|
-
dashboards:
|
27
|
-
title: Dashboards
|
28
|
-
column_name: Nombre
|
29
|
-
column_default: Default
|
30
|
-
view_add_component: Agregar componente
|
5
|
+
message_invalid_credentials: Credenciales no validas
|
@@ -1,30 +1,5 @@
|
|
1
1
|
---
|
2
2
|
:fr:
|
3
3
|
lesli:
|
4
|
-
shared:
|
5
|
-
view_discussions: ":lesli.shared.view_discussions:"
|
6
|
-
button_add_new: ":lesli.shared.button_add_new:"
|
7
|
-
button_reload: ":lesli.shared.button_reload:"
|
8
|
-
view_files: ":lesli.shared.view_files:"
|
9
|
-
view_quick_actions: ":lesli.shared.view_quick_actions:"
|
10
|
-
button_list: ":lesli.shared.button_list:"
|
11
|
-
button_save: ":lesli.shared.button_save:"
|
12
|
-
button_delete: ":lesli.shared.button_delete:"
|
13
|
-
button_edit: ":lesli.shared.button_edit:"
|
14
|
-
view_status_active: ":lesli.shared.view_status_active:"
|
15
|
-
view_status_inactive: ":lesli.shared.view_status_inactive:"
|
16
|
-
button_settings: ":lesli.shared.button_settings:"
|
17
|
-
button_show: ":lesli.shared.button_show:"
|
18
|
-
toolbar_search: ":lesli.shared.toolbar_search:"
|
19
|
-
message_operation_success: ":lesli.shared.message_operation_success:"
|
20
|
-
message_operation_error: ":lesli.shared.message_operation_error:"
|
21
|
-
application:
|
22
|
-
navigation_logout: ":lesli.application.navigation_logout:"
|
23
|
-
navigation_my_profile: ":lesli.application.navigation_my_profile:"
|
24
4
|
users/sessions:
|
25
|
-
|
26
|
-
dashboards:
|
27
|
-
title: ":lesli.dashboards.title:"
|
28
|
-
column_name: ":lesli.dashboards.column_name:"
|
29
|
-
column_default: ":lesli.dashboards.column_default:"
|
30
|
-
view_add_component: ":lesli.dashboards.view_add_component:"
|
5
|
+
message_invalid_credentials: ":lesli.users/sessions.message_invalid_credentials:"
|
@@ -1,30 +1,5 @@
|
|
1
1
|
---
|
2
2
|
:it:
|
3
3
|
lesli:
|
4
|
-
shared:
|
5
|
-
view_discussions: ":lesli.shared.view_discussions:"
|
6
|
-
button_add_new: ":lesli.shared.button_add_new:"
|
7
|
-
button_reload: ":lesli.shared.button_reload:"
|
8
|
-
view_files: ":lesli.shared.view_files:"
|
9
|
-
view_quick_actions: ":lesli.shared.view_quick_actions:"
|
10
|
-
button_list: ":lesli.shared.button_list:"
|
11
|
-
button_save: ":lesli.shared.button_save:"
|
12
|
-
button_delete: ":lesli.shared.button_delete:"
|
13
|
-
button_edit: ":lesli.shared.button_edit:"
|
14
|
-
view_status_active: ":lesli.shared.view_status_active:"
|
15
|
-
view_status_inactive: ":lesli.shared.view_status_inactive:"
|
16
|
-
button_settings: ":lesli.shared.button_settings:"
|
17
|
-
button_show: ":lesli.shared.button_show:"
|
18
|
-
toolbar_search: ":lesli.shared.toolbar_search:"
|
19
|
-
message_operation_success: ":lesli.shared.message_operation_success:"
|
20
|
-
message_operation_error: ":lesli.shared.message_operation_error:"
|
21
|
-
application:
|
22
|
-
navigation_logout: ":lesli.application.navigation_logout:"
|
23
|
-
navigation_my_profile: ":lesli.application.navigation_my_profile:"
|
24
4
|
users/sessions:
|
25
|
-
|
26
|
-
dashboards:
|
27
|
-
title: ":lesli.dashboards.title:"
|
28
|
-
column_name: ":lesli.dashboards.column_name:"
|
29
|
-
column_default: ":lesli.dashboards.column_default:"
|
30
|
-
view_add_component: ":lesli.dashboards.view_add_component:"
|
5
|
+
message_invalid_credentials: ":lesli.users/sessions.message_invalid_credentials:"
|