From 8df3fa64c4cd2cd07d46dd6cfda149a21a12f6a5 Mon Sep 17 00:00:00 2001 From: "LDFOUR\\luisd" Date: Thu, 20 Feb 2025 15:49:54 -0300 Subject: [PATCH 01/10] WN-146, Partial commit. Implemented design for Message Editor. Added the setCurrentLanguages action to the content store (Vuex). --- .../Entities/OrganisationTranslation.php | 14 +- package-lock.json | 42 +- package.json | 2 + resources/assets/js/app.js | 7 + resources/assets/js/pages/content/whatnow.vue | 595 +++++++++--------- .../js/pages/content/whatnowContentItem.vue | 339 +++++----- .../assets/js/pages/content/whatnowList.vue | 46 +- resources/assets/js/store/modules/content.js | 6 + resources/assets/js/store/mutation-types.js | 1 + resources/lang/en.json | 8 + 10 files changed, 586 insertions(+), 474 deletions(-) diff --git a/app/Classes/RcnApi/Entities/OrganisationTranslation.php b/app/Classes/RcnApi/Entities/OrganisationTranslation.php index adb07e6..c7be455 100644 --- a/app/Classes/RcnApi/Entities/OrganisationTranslation.php +++ b/app/Classes/RcnApi/Entities/OrganisationTranslation.php @@ -18,6 +18,8 @@ class OrganisationTranslation implements \JsonSerializable, Arrayable protected $isPublished; + protected $contributors = []; + public static function createFromResponse(array $array) { @@ -26,6 +28,7 @@ public static function createFromResponse(array $array) $translation->attributionMessage = $array['attributionMessage']; $translation->languageCode = $array['languageCode']; $translation->isPublished = $array['published']; + $translation->contributors = $array['contributors']; return $translation; } @@ -53,6 +56,11 @@ public function isPublished(): bool return $this->isPublished; } + public function getContributors(): array + { + return $this->contributors; + } + public function toArray() { @@ -60,7 +68,8 @@ public function toArray() 'languageCode' => $this->languageCode, 'name' => $this->name, 'attributionMessage' => $this->attributionMessage, - 'published' => $this->isPublished + 'published' => $this->isPublished, + 'contributors' => $this->contributors ]; } @@ -71,7 +80,8 @@ public function jsonSerialize(): array 'languageCode' => $this->languageCode, 'name' => $this->name, 'attributionMessage' => $this->attributionMessage, - 'published' => $this->isPublished + 'published' => $this->isPublished, + 'contributors' => $this->contributors ]; } } diff --git a/package-lock.json b/package-lock.json index abda9a6..f818000 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "WhatNow Codebase", + "name": "whatnow", "lockfileVersion": 3, "requires": true, "packages": { @@ -9,6 +9,8 @@ "@fortawesome/fontawesome-free-brands": "^5.0.0", "@fortawesome/fontawesome-free-regular": "^5.0.0", "@fortawesome/fontawesome-free-solid": "^5.0.0", + "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/vue-fontawesome": "^0.0.21", "@sentry/browser": "^5.4.0", "@sentry/integrations": "^5.4.1", @@ -1962,6 +1964,44 @@ "node": ">=6" } }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", + "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core/node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", + "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", + "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", + "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", + "engines": { + "node": ">=6" + } + }, "node_modules/@fortawesome/vue-fontawesome": { "version": "0.0.21", "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-0.0.21.tgz", diff --git a/package.json b/package.json index f6c459a..4ce1f77 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,8 @@ "@fortawesome/fontawesome-free-brands": "^5.0.0", "@fortawesome/fontawesome-free-regular": "^5.0.0", "@fortawesome/fontawesome-free-solid": "^5.0.0", + "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/vue-fontawesome": "^0.0.21", "@sentry/browser": "^5.4.0", "@sentry/integrations": "^5.4.1", diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index a094891..84a0c21 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -20,6 +20,12 @@ import * as Integrations from '@sentry/integrations' import '~/plugins' import '~/components' +import { library } from '@fortawesome/fontawesome-svg-core' +import { faPencil, faPen, faSpinner, faTrash, faXmark } from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' + +library.add(faPencil, faSpinner, faPen, faTrash, faXmark) + Sentry.init({ dsn: window.config.sentry_dsn, integrations: [new Integrations.Vue({ Vue, attachProps: true })] @@ -28,6 +34,7 @@ Sentry.init({ Vue.use(BootstrapVue) Vue.component('v-select', vSelect) Vue.component('v-gravatar', Gravatar) +Vue.component('font-awesome-icon', FontAwesomeIcon) Vue.use(VueNoty, { theme: 'sunset' }) diff --git a/resources/assets/js/pages/content/whatnow.vue b/resources/assets/js/pages/content/whatnow.vue index 734d039..4bf5506 100644 --- a/resources/assets/js/pages/content/whatnow.vue +++ b/resources/assets/js/pages/content/whatnow.vue @@ -1,274 +1,135 @@ -