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,134 +0,0 @@
|
|
1
|
-
<script setup>
|
2
|
-
/*
|
3
|
-
|
4
|
-
Lesli
|
5
|
-
|
6
|
-
Copyright (c) 2023, Lesli Technologies, S. A.
|
7
|
-
|
8
|
-
This program is free software: you can redistribute it and/or modify
|
9
|
-
it under the terms of the GNU General Public License as published by
|
10
|
-
the Free Software Foundation, either version 3 of the License, or
|
11
|
-
(at your option) any later version.
|
12
|
-
|
13
|
-
This program is distributed in the hope that it will be useful,
|
14
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
-
GNU General Public License for more details.
|
17
|
-
|
18
|
-
You should have received a copy of the GNU General Public License
|
19
|
-
along with this program. If not, see http://www.gnu.org/licenses/.
|
20
|
-
|
21
|
-
Lesli · Your Smart Business Assistant.
|
22
|
-
|
23
|
-
Made with ♥ by https://www.lesli.tech
|
24
|
-
Building a better future, one line of code at a time.
|
25
|
-
|
26
|
-
@contact hello@lesli.tech
|
27
|
-
@website https://lesli.tech
|
28
|
-
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
29
|
-
|
30
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
31
|
-
// ·
|
32
|
-
|
33
|
-
*/
|
34
|
-
|
35
|
-
|
36
|
-
// · import vue tools
|
37
|
-
import { ref, computed } from "vue"
|
38
|
-
|
39
|
-
// · import store
|
40
|
-
import { useCloudObjectDiscussionStore } from "../stores/discussion.js"
|
41
|
-
|
42
|
-
// · defining props
|
43
|
-
const props = defineProps({
|
44
|
-
isReply: {
|
45
|
-
type: Boolean,
|
46
|
-
default: false,
|
47
|
-
},
|
48
|
-
mainDiscussion: {
|
49
|
-
type: Object,
|
50
|
-
default: null,
|
51
|
-
},
|
52
|
-
});
|
53
|
-
|
54
|
-
// · defining emits
|
55
|
-
const emit = defineEmits(["onAddComment"])
|
56
|
-
|
57
|
-
// · defining translations
|
58
|
-
const translations = {
|
59
|
-
core: {
|
60
|
-
shared: I18n.t("core.shared"),
|
61
|
-
}
|
62
|
-
}
|
63
|
-
|
64
|
-
// · implement stores
|
65
|
-
const discussionStore = useCloudObjectDiscussionStore()
|
66
|
-
|
67
|
-
// · comment to add a new discussion
|
68
|
-
const comment = ref(null)
|
69
|
-
|
70
|
-
// · component's title
|
71
|
-
const title = computed(() => props.isReply ? translations.core.shared.view_text_reply : translations.core.shared.view_text_add_new_comment)
|
72
|
-
|
73
|
-
// · button's text
|
74
|
-
const buttonText = computed(() => props.isReply ? translations.core.shared.view_btn_add_reply : translations.core.shared.view_btn_add_comment)
|
75
|
-
|
76
|
-
/**
|
77
|
-
* @description function to be called when the user clicks on the 'Add Comment' or 'Add Reply' button
|
78
|
-
*/
|
79
|
-
const onAddComment = () => {
|
80
|
-
if (!comment.value) return
|
81
|
-
|
82
|
-
// · the discussion model to be used for adding a new discussion
|
83
|
-
let discussionModel = `${discussionStore.utils.singularize(discussionStore.cloudObject)}_discussion`
|
84
|
-
|
85
|
-
const payload = {}
|
86
|
-
|
87
|
-
if (props.isReply) {
|
88
|
-
// · add the discussion id to the payload when is a reply
|
89
|
-
payload[discussionModel] = {
|
90
|
-
content: comment.value,
|
91
|
-
discussion_parent_id: props.mainDiscussion.id
|
92
|
-
}
|
93
|
-
} else {
|
94
|
-
// · payload for a basic discussion
|
95
|
-
payload[discussionModel] = {
|
96
|
-
content: comment.value
|
97
|
-
}
|
98
|
-
}
|
99
|
-
|
100
|
-
// · add a new discussion
|
101
|
-
discussionStore.createDiscussion(payload)
|
102
|
-
|
103
|
-
// · emit event after adding a new discussion
|
104
|
-
emit("onAddComment")
|
105
|
-
|
106
|
-
// · clear the comment
|
107
|
-
comment.value = null
|
108
|
-
}
|
109
|
-
</script>
|
110
|
-
|
111
|
-
<template>
|
112
|
-
<div>
|
113
|
-
<div class="field">
|
114
|
-
<label class="label">{{ title }} Add new comment</label>
|
115
|
-
<div class="control">
|
116
|
-
<textarea
|
117
|
-
name="comment"
|
118
|
-
rows="2"
|
119
|
-
maxlength="1000"
|
120
|
-
class="textarea has-fixed-size"
|
121
|
-
:placeholder="translations.core.shared.view_placeholder_enter_comment + 'Type your comments :)'"
|
122
|
-
v-model="comment">
|
123
|
-
</textarea>
|
124
|
-
</div>
|
125
|
-
</div>
|
126
|
-
<div class="field is-grouped is-grouped-right">
|
127
|
-
<div class="control">
|
128
|
-
<lesli-button solid icon="save" @click="onAddComment">
|
129
|
-
{{ buttonText }} Add comment
|
130
|
-
</lesli-button>
|
131
|
-
</div>
|
132
|
-
</div>
|
133
|
-
</div>
|
134
|
-
</template>
|
@@ -1,99 +0,0 @@
|
|
1
|
-
<script setup>
|
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 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
|
-
*/
|
32
|
-
|
33
|
-
|
34
|
-
// · import vue tools
|
35
|
-
import { onMounted, watch } from "vue"
|
36
|
-
|
37
|
-
|
38
|
-
// · import components
|
39
|
-
import DiscussionNew from "./discussion/new.vue"
|
40
|
-
import DiscussionContent from "./discussion/content.vue"
|
41
|
-
import DiscussionFilters from "./discussion/filters.vue"
|
42
|
-
|
43
|
-
|
44
|
-
// · import store
|
45
|
-
import { useCloudObjectDiscussionStore } from "./stores/discussion.js"
|
46
|
-
|
47
|
-
|
48
|
-
// · implement store
|
49
|
-
const discussionStore = useCloudObjectDiscussionStore()
|
50
|
-
|
51
|
-
|
52
|
-
// · defining translations
|
53
|
-
const translations = {
|
54
|
-
core: {
|
55
|
-
shared: I18n.t("core.shared"),
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
|
60
|
-
// · defining props
|
61
|
-
const props = defineProps({
|
62
|
-
// · prop that indicates the cloud module that will be used for interacting with the backend.
|
63
|
-
cloudModule: {
|
64
|
-
type: String,
|
65
|
-
required: true,
|
66
|
-
},
|
67
|
-
// · prop that indicates the resource that you need to interact with.
|
68
|
-
cloudObject: {
|
69
|
-
type: String,
|
70
|
-
required: true,
|
71
|
-
},
|
72
|
-
// · prop that indicates the object id of the resource that you need to interact with.
|
73
|
-
cloudObjectId: {
|
74
|
-
type: [String, Number],
|
75
|
-
required: true,
|
76
|
-
},
|
77
|
-
onlyDiscussions: {
|
78
|
-
type: Boolean,
|
79
|
-
required: false,
|
80
|
-
default: false
|
81
|
-
}
|
82
|
-
});
|
83
|
-
|
84
|
-
|
85
|
-
onMounted(() => {
|
86
|
-
discussionStore.cloudModule = props.cloudModule
|
87
|
-
discussionStore.cloudObject = props.cloudObject
|
88
|
-
discussionStore.cloudObjectId = props.cloudObjectId
|
89
|
-
discussionStore.fetchDiscussions()
|
90
|
-
})
|
91
|
-
</script>
|
92
|
-
<template>
|
93
|
-
<div class="lesli-cloud-object-discussion m-auto py-6">
|
94
|
-
<discussion-new></discussion-new>
|
95
|
-
<!-- lesli-toolbar @search="discussionStore.search" :search-placeholder="translations.core.shared.view_placeholder_discussion_search" class="mt-4"></lesli-toolbar -->
|
96
|
-
<!-- discussion-filters v-if="!props.onlyDiscussions"></discussion-filters -->
|
97
|
-
<discussion-content></discussion-content>
|
98
|
-
</div>
|
99
|
-
</template>
|
@@ -1,212 +0,0 @@
|
|
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 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
|
-
*/
|
32
|
-
|
33
|
-
|
34
|
-
// ·
|
35
|
-
import { defineStore } from "pinia"
|
36
|
-
|
37
|
-
|
38
|
-
// ·
|
39
|
-
export const useCloudObjectDiscussionStore = defineStore("cloudObjectDiscussion", {
|
40
|
-
state: () => {
|
41
|
-
return {
|
42
|
-
discussions: [],
|
43
|
-
activityLogs: [],
|
44
|
-
loading: false,
|
45
|
-
cloudModule: null,
|
46
|
-
cloudObject: null,
|
47
|
-
cloudObjectId: null,
|
48
|
-
stringToFind: null,
|
49
|
-
isBuilderEngine: null,
|
50
|
-
currentUserId: lesli.current_user.id,
|
51
|
-
index: {
|
52
|
-
pagination: {},
|
53
|
-
records: []
|
54
|
-
},
|
55
|
-
pagination: {
|
56
|
-
page: 1,
|
57
|
-
pages: 1,
|
58
|
-
total: 0,
|
59
|
-
results: 0
|
60
|
-
},
|
61
|
-
filters: {
|
62
|
-
per_page: 10,
|
63
|
-
showDiscussion: true,
|
64
|
-
showActivityLog: false,
|
65
|
-
}
|
66
|
-
}
|
67
|
-
},
|
68
|
-
getters: {
|
69
|
-
/**
|
70
|
-
*
|
71
|
-
* @param {*} state has the state of the store
|
72
|
-
* @returns {Array} merged array of discussions and activity logs
|
73
|
-
*/
|
74
|
-
mergedArray: (state) => {
|
75
|
-
// · Array of elements to be displayed in the discussion section
|
76
|
-
const elements = []
|
77
|
-
|
78
|
-
// · Verify length of the discussion array
|
79
|
-
if (state.discussions.length > 0) {
|
80
|
-
// · Add the discussion array to the merged array
|
81
|
-
elements.push(...state.discussions.map(discussion => {
|
82
|
-
// · Return the discussion object with a similar structure to the activity log
|
83
|
-
return {
|
84
|
-
type: "discussion",
|
85
|
-
responses: discussion.responses,
|
86
|
-
...discussion.data
|
87
|
-
}
|
88
|
-
}))
|
89
|
-
}
|
90
|
-
|
91
|
-
// · Verify length of the activity log array
|
92
|
-
if (state.activityLogs.length > 0) {
|
93
|
-
// · Add the activity log array to the merged array
|
94
|
-
elements.push(...state.activityLogs.map(activityLog => {
|
95
|
-
// · Return the activity log object with a similar structure to the discussion
|
96
|
-
return {
|
97
|
-
type: "activityLog",
|
98
|
-
...activityLog
|
99
|
-
}
|
100
|
-
}))
|
101
|
-
}
|
102
|
-
|
103
|
-
return elements.sort((a, b) => {
|
104
|
-
return a.created_at < b.created_at ? 1 : -1
|
105
|
-
}, 0)
|
106
|
-
}
|
107
|
-
},
|
108
|
-
actions: {
|
109
|
-
|
110
|
-
paginateDiscussions(page){
|
111
|
-
this.pagination.page = page
|
112
|
-
this.fetchDiscussions()
|
113
|
-
},
|
114
|
-
|
115
|
-
fetchDiscussions(url) {
|
116
|
-
this.loading = true
|
117
|
-
|
118
|
-
if (!url) url = this.url[this.cloudModule](`${this.cloudObject}/:id/discussions`, this.cloudObjectId)
|
119
|
-
|
120
|
-
this.http.get(url.paginate(this.pagination.page, this.filters.per_page)).then(result => {
|
121
|
-
this.pagination = result.pagination
|
122
|
-
this.discussions = result.records
|
123
|
-
}).catch(error => {
|
124
|
-
console.log(error)
|
125
|
-
this.msg.danger(I18n.t("core.shared").messages_danger_getting_discussions)
|
126
|
-
}).finally(() => {
|
127
|
-
this.loading = false
|
128
|
-
})
|
129
|
-
},
|
130
|
-
|
131
|
-
/**
|
132
|
-
*
|
133
|
-
* @param {string} stringToFind String to search for
|
134
|
-
* @description This action is used to search for a string in the cloud object's discussions and activity logs
|
135
|
-
*/
|
136
|
-
search(stringToFind) {
|
137
|
-
|
138
|
-
// · It's necessary to set the string to find in the state
|
139
|
-
// · if the filters change and the toolbar is not empty
|
140
|
-
// · the search will be performed again
|
141
|
-
this.stringToFind = stringToFind
|
142
|
-
|
143
|
-
if (this.filters.showDiscussion) {
|
144
|
-
const discussionsUrl = this.url[this.cloudModule](`${this.cloudObject}/:id/discussions`, this.cloudObjectId).search(this.stringToFind)
|
145
|
-
this.fetchDiscussions(discussionsUrl)
|
146
|
-
}
|
147
|
-
|
148
|
-
if (this.filters.showActivityLog) {
|
149
|
-
const activityLogsUrl = this.url[this.cloudModule](`${this.cloudObject}/:id/activities`, this.cloudObjectId).search(this.stringToFind)
|
150
|
-
this.fetchActivityLogs(activityLogsUrl)
|
151
|
-
}
|
152
|
-
},
|
153
|
-
|
154
|
-
/**
|
155
|
-
* @description This action is used to create a discussion
|
156
|
-
* @param {Object} payload contains the data of the discussion
|
157
|
-
*/
|
158
|
-
createDiscussion(payload) {
|
159
|
-
|
160
|
-
const url = this.url[this.cloudModule](`${this.cloudObject}/:id/discussions`, {
|
161
|
-
id: this.cloudObjectId,
|
162
|
-
})
|
163
|
-
|
164
|
-
this.http.post(url, payload
|
165
|
-
).then(() => {
|
166
|
-
this.msg.success(I18n.t("core.shared").messages_success_creating_discussion)
|
167
|
-
this.fetchDiscussions()
|
168
|
-
}).catch(error => {
|
169
|
-
this.msg.danger(I18n.t("core.shared").messages_danger_creating_discussion)
|
170
|
-
})
|
171
|
-
},
|
172
|
-
|
173
|
-
/**
|
174
|
-
* @description This action is used to delete a discussion.
|
175
|
-
*/
|
176
|
-
deleteDiscussion(discussionId) {
|
177
|
-
|
178
|
-
if (!discussionId) return
|
179
|
-
|
180
|
-
const url = this.url[this.cloudModule](`${this.cloudObject}/:id/discussions/:discussionId`, {
|
181
|
-
id: this.cloudObjectId,
|
182
|
-
discussionId: discussionId,
|
183
|
-
})
|
184
|
-
|
185
|
-
this.http.delete(url).then(() => {
|
186
|
-
this.msg.success(I18n.t("core.shared").messages_success_deleting_discussion)
|
187
|
-
this.fetchDiscussions()
|
188
|
-
}).catch(error => {
|
189
|
-
this.msg.danger(I18n.t("core.shared").messages_danger_deleting_discussion)
|
190
|
-
})
|
191
|
-
},
|
192
|
-
|
193
|
-
/**
|
194
|
-
* @description This action is used to get the activity logs of the cloud object.
|
195
|
-
* @param {String} url to fetch the activity logs
|
196
|
-
*/
|
197
|
-
fetchActivityLogs(url) {
|
198
|
-
this.loading = true
|
199
|
-
|
200
|
-
if (!url) url = this.url[this.cloudModule](`${this.cloudObject}/:id/activities`, this.cloudObjectId)
|
201
|
-
|
202
|
-
this.http.get(url).then(result => {
|
203
|
-
this.activityLogs = result
|
204
|
-
}).catch(error => {
|
205
|
-
console.log(error)
|
206
|
-
this.msg.danger(I18n.t("core.shared").messages_danger_getting_activity_logs)
|
207
|
-
}).finally(() => {
|
208
|
-
this.loading = false
|
209
|
-
})
|
210
|
-
}
|
211
|
-
}
|
212
|
-
})
|
@@ -1,78 +0,0 @@
|
|
1
|
-
|
2
|
-
<script setup>
|
3
|
-
/*
|
4
|
-
|
5
|
-
Lesli
|
6
|
-
|
7
|
-
Copyright (c) 2023, Lesli Technologies, S. A.
|
8
|
-
|
9
|
-
This program is free software: you can redistribute it and/or modify
|
10
|
-
it under the terms of the GNU General Public License as published by
|
11
|
-
the Free Software Foundation, either version 3 of the License, or
|
12
|
-
(at your option) any later version.
|
13
|
-
|
14
|
-
This program is distributed in the hope that it will be useful,
|
15
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
GNU General Public License for more details.
|
18
|
-
|
19
|
-
You should have received a copy of the GNU General Public License
|
20
|
-
along with this program. If not, see http://www.gnu.org/licenses/.
|
21
|
-
|
22
|
-
Lesli · Your Smart Business Assistant.
|
23
|
-
|
24
|
-
Made with ♥ by https://www.lesli.tech
|
25
|
-
Building a better future, one line of code at a time.
|
26
|
-
|
27
|
-
@contact hello@lesli.tech
|
28
|
-
@website https://lesli.tech
|
29
|
-
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
30
|
-
|
31
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
32
|
-
// ·
|
33
|
-
|
34
|
-
*/
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
// ·
|
39
|
-
import {onMounted} from 'vue'
|
40
|
-
|
41
|
-
|
42
|
-
// · import stores
|
43
|
-
import { useAnnouncements } from "Lesli/vue/stores/announcements"
|
44
|
-
import { editorRichTextViewer } from "lesli-vue/components"
|
45
|
-
|
46
|
-
|
47
|
-
// ·
|
48
|
-
const storeAnnouncements = useAnnouncements()
|
49
|
-
|
50
|
-
|
51
|
-
// · initializing
|
52
|
-
onMounted(() => {
|
53
|
-
|
54
|
-
// IMPORTANT: here we have to watch for Router changes, due vue router
|
55
|
-
// does not reload the entire window, so ouMounted is executed only once
|
56
|
-
// due rightnow we have to manage two different vue applications (vue2 & vue3)
|
57
|
-
// we reload the window everytime, this works... but the best way is to use
|
58
|
-
// only the vue3 router
|
59
|
-
setTimeout(() => storeAnnouncements.getAnnouncements(), 2000)
|
60
|
-
})
|
61
|
-
|
62
|
-
|
63
|
-
</script>
|
64
|
-
<template>
|
65
|
-
<section class="application-announcements" v-if="storeAnnouncements.announcements.length > 0">
|
66
|
-
<div v-for="announcement in storeAnnouncements.announcements" :key="announcement.id" class="block">
|
67
|
-
<div
|
68
|
-
:class="['notification', `is-${announcement.category}`]"
|
69
|
-
v-if="announcement.status!='closed'">
|
70
|
-
<button class="delete" aria-label="delete"
|
71
|
-
v-if="announcement.can_be_closed"
|
72
|
-
@click="storeAnnouncements.closeAnnouncement(announcement)">
|
73
|
-
</button>
|
74
|
-
<richtext-viewer v-model="announcement.message"></richtext-viewer>
|
75
|
-
</div>
|
76
|
-
</div>
|
77
|
-
</section>
|
78
|
-
</template>
|
@@ -1,38 +0,0 @@
|
|
1
|
-
<script setup>
|
2
|
-
/*
|
3
|
-
|
4
|
-
Lesli
|
5
|
-
|
6
|
-
Copyright (c) 2023, Lesli Technologies, S. A.
|
7
|
-
|
8
|
-
This program is free software: you can redistribute it and/or modify
|
9
|
-
it under the terms of the GNU General Public License as published by
|
10
|
-
the Free Software Foundation, either version 3 of the License, or
|
11
|
-
(at your option) any later version.
|
12
|
-
|
13
|
-
This program is distributed in the hope that it will be useful,
|
14
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
-
GNU General Public License for more details.
|
17
|
-
|
18
|
-
You should have received a copy of the GNU General Public License
|
19
|
-
along with this program. If not, see http://www.gnu.org/licenses/.
|
20
|
-
|
21
|
-
Lesli · Ruby on Rails SaaS Development Framework.
|
22
|
-
|
23
|
-
Made with ♥ by https://www.lesli.tech
|
24
|
-
Building a better future, one line of code at a time.
|
25
|
-
|
26
|
-
@contact hello@lesli.tech
|
27
|
-
@website https://www.lesli.tech
|
28
|
-
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
29
|
-
|
30
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
31
|
-
// ·
|
32
|
-
*/
|
33
|
-
</script>
|
34
|
-
<template>
|
35
|
-
<div class="lesli-application-component">
|
36
|
-
<slot></slot>
|
37
|
-
</div>
|
38
|
-
</template>
|
@@ -1,48 +0,0 @@
|
|
1
|
-
<script setup>
|
2
|
-
/*
|
3
|
-
|
4
|
-
Lesli
|
5
|
-
|
6
|
-
Copyright (c) 2023, Lesli Technologies, S. A.
|
7
|
-
|
8
|
-
This program is free software: you can redistribute it and/or modify
|
9
|
-
it under the terms of the GNU General Public License as published by
|
10
|
-
the Free Software Foundation, either version 3 of the License, or
|
11
|
-
(at your option) any later version.
|
12
|
-
|
13
|
-
This program is distributed in the hope that it will be useful,
|
14
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
-
GNU General Public License for more details.
|
17
|
-
|
18
|
-
You should have received a copy of the GNU General Public License
|
19
|
-
along with this program. If not, see http://www.gnu.org/licenses/.
|
20
|
-
|
21
|
-
Lesli · Your Smart Business Assistant.
|
22
|
-
|
23
|
-
Made with ♥ by https://www.lesli.tech
|
24
|
-
Building a better future, one line of code at a time.
|
25
|
-
|
26
|
-
@contact hello@lesli.tech
|
27
|
-
@website https://lesli.tech
|
28
|
-
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
29
|
-
|
30
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
31
|
-
// ·
|
32
|
-
*/
|
33
|
-
|
34
|
-
// · defining props
|
35
|
-
const props = defineProps({
|
36
|
-
dashboard: {
|
37
|
-
type: Boolean,
|
38
|
-
default: false,
|
39
|
-
required: false
|
40
|
-
}
|
41
|
-
})
|
42
|
-
|
43
|
-
</script>
|
44
|
-
<template>
|
45
|
-
<section class="lesli-application-container container" :class="{ 'is-fluid':dashboard }">
|
46
|
-
<slot></slot>
|
47
|
-
</section>
|
48
|
-
</template>
|
@@ -1,66 +0,0 @@
|
|
1
|
-
<script setup>
|
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.dev
|
27
|
-
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
28
|
-
|
29
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
30
|
-
// ·
|
31
|
-
*/
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
// · import vue tools
|
36
|
-
import { ref, reactive, onMounted, inject } from "vue"
|
37
|
-
|
38
|
-
|
39
|
-
// · import stores
|
40
|
-
import { useLayout } from "Lesli/vue/shared/stores/layout"
|
41
|
-
|
42
|
-
|
43
|
-
// ·
|
44
|
-
const storeLayout = useLayout()
|
45
|
-
|
46
|
-
</script>
|
47
|
-
<template>
|
48
|
-
<Transition>
|
49
|
-
<section
|
50
|
-
v-if="storeLayout.showEngines"
|
51
|
-
class="lesli-application-engines"
|
52
|
-
@click="storeLayout.toggleEngines()">
|
53
|
-
<div class="engines-container">
|
54
|
-
<div class="engines">
|
55
|
-
<slot></slot>
|
56
|
-
</div>
|
57
|
-
<button class="button is-hidden-tablet">
|
58
|
-
<span class="icon">
|
59
|
-
<i class="ri-close-line"></i>
|
60
|
-
</span>
|
61
|
-
<span>close</span>
|
62
|
-
</button>
|
63
|
-
</div>
|
64
|
-
</section>
|
65
|
-
</Transition>
|
66
|
-
</template>
|