From b2f1ba44e9cf093114dc2ad3c09ad3544581dee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Wed, 18 Aug 2021 09:31:46 +0200 Subject: [PATCH 01/22] docker-compose for development --- .gitignore | 2 +- docker-compose.yml | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore index e54f2b3aaed62..4d817a8d362c9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ .idea .vscode .docker -/docker-compose.yml +# /docker-compose.yml /nbproject # Local System Files (i.e. cache, logs, etc.) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000..1c57bbe4b6d1c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,42 @@ +version: '3.8' + +services: + # joomla: + # image: joomla + # restart: always + # networks: + # - joomla + # ports: + # - "${APPLICATION_PORT:-10000}:80" + # volumes: + # - "./joomla-data:/var/www/html" + # environment: + # JOOMLA_DB_HOST: joomla-db + # JOOMLA_DB_USER: ${DATABASE_USER:-joomla} + # JOOMLA_DB_PASSWORD: ${DATABASE_PASS:-password} + # JOOMLA_DB_NAME: ${DATABASE_NAME:-joomla} + + joomla-db: + image: jbergstroem/mariadb-alpine:latest + command: mysqld --default-authentication-plugin=mysql_native_password + restart: always + ports: + - "${DATABASE_PORT:-3306}:3306" + environment: + MYSQL_DATABASE: ${DATABASE_NAME:-joomla} + MYSQL_USER: ${DATABASE_USER:-joomla} + MYSQL_PASSWORD: ${DATABASE_PASS:-password} + MYSQL_ROOT_PASSWORD: ${DATABASE_PASS:-password} + volumes: + - "mysql-data:/var/lib/mysql" + + db-admin: + image: adminer + restart: always + ports: + - "${DATABASE_ADMIN_PORT:-10100}:8080" + logging: + driver: none + +volumes: + mysql-data: \ No newline at end of file From d795d2539a2be61507e0cf8071be0269b7362274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Thu, 19 Aug 2021 11:17:13 +0200 Subject: [PATCH 02/22] added pdf component and query for pdfs --- .../components/browser/items/item.es6.js | 6 + .../scripts/components/browser/items/pdf.vue | 221 ++++++++++++++++++ 2 files changed, 227 insertions(+) create mode 100644 administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js b/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js index cea449a718017..e791e0cce8787 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js +++ b/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js @@ -4,6 +4,7 @@ import File from './file.vue'; import Image from './image.vue'; import Video from './video.vue'; import Audio from './audio.vue'; +import Pdf from './pdf.vue'; import Doc from './document.vue'; import * as types from '../../../store/mutation-types.es6'; import { api } from '../../../app/Api.es6'; @@ -38,6 +39,11 @@ export default { return Audio; } + // Render pdf items + if (this.item.extension && api.documentExtensions.includes(this.item.extension.toLowerCase()) && this.item.extension.toLowerCase() === api.documentExtensions[4]) { + return Pdf; + } + // Render document items if (this.item.extension && api.documentExtensions.includes(this.item.extension.toLowerCase())) { diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue new file mode 100644 index 0000000000000..b046b3e77624d --- /dev/null +++ b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue @@ -0,0 +1,221 @@ + + + From 5b781089d449bf2751e09d0c17f434ada6f6a320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Thu, 19 Aug 2021 12:07:51 +0200 Subject: [PATCH 03/22] added action items and created toggle --- .../browser/action_items/toggle.vue | 39 +++++++++++++++++++ .../scripts/components/browser/items/pdf.vue | 5 ++- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue diff --git a/administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue b/administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue new file mode 100644 index 0000000000000..4e060e9798d3d --- /dev/null +++ b/administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue @@ -0,0 +1,39 @@ + + + \ No newline at end of file diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue index b046b3e77624d..3c118c0daa10d 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue @@ -23,7 +23,7 @@ class="media-browser-actions" :class="{'active': showActions}" > - + --> +
Date: Thu, 19 Aug 2021 12:56:20 +0200 Subject: [PATCH 04/22] added action items and created toggle --- .../{action_items => actionItems}/toggle.vue | 2 +- .../scripts/components/browser/items/pdf.vue | 22 +++---------------- .../resources/scripts/mediamanager.es6.js | 2 ++ 3 files changed, 6 insertions(+), 20 deletions(-) rename administrator/components/com_media/resources/scripts/components/browser/{action_items => actionItems}/toggle.vue (95%) diff --git a/administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue similarity index 95% rename from administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue rename to administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue index 4e060e9798d3d..46b7b1bc5d1a5 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/action_items/toggle.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue @@ -28,7 +28,7 @@ export default { openActions: function() { this.openActions(); }, - focused: function(focused: bool) { + focused: function(focused) { this.focused(focused); }, openLastActions: function() { diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue index 3c118c0daa10d..ccb6ffbe5261d 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue @@ -23,25 +23,6 @@ class="media-browser-actions" :class="{'active': showActions}" > -
this.$refs.actionPreview.focus()); }, /* Open actions dropdown and focus on last element */ openLastActions() { this.showActions = true; + console.log(`openLastActions ${this.$refs.actionPreview}`) this.$nextTick(() => this.$refs.actionDelete.focus()); }, /* Hide actions dropdown */ hideActions() { this.showActions = false; + console.log(`hideActions ${this.$refs.actionPreview}`) this.$nextTick(() => this.$refs.actionToggle.focus()); }, }, diff --git a/administrator/components/com_media/resources/scripts/mediamanager.es6.js b/administrator/components/com_media/resources/scripts/mediamanager.es6.js index 2a9d16ce348c9..370b62bc2b6fb 100644 --- a/administrator/components/com_media/resources/scripts/mediamanager.es6.js +++ b/administrator/components/com_media/resources/scripts/mediamanager.es6.js @@ -20,6 +20,7 @@ import Infobar from './components/infobar/infobar.vue'; import Upload from './components/upload/upload.vue'; import translate from './plugins/translate.es6'; import store from './store/store.es6'; +import Toggle from './components/browser/actionItems/toggle.vue'; // Register MediaManager namespace window.MediaManager = window.MediaManager || {}; @@ -49,5 +50,6 @@ app.component('MediaShareModal', ShareModal); app.component('MediaConfirmDeleteModal', ConfirmDeleteModal); app.component('MediaInfobar', Infobar); app.component('MediaUpload', Upload); +app.component('MediaBrowserActionItemToggle', Toggle); app.mount('#com-media'); From 2a57795055864f285436acbce477ff06413c670e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Thu, 19 Aug 2021 14:48:56 +0200 Subject: [PATCH 05/22] fixed refs of vue components --- .../components/browser/actionItems/toggle.vue | 11 +- .../scripts/components/browser/items/pdf.vue | 10 +- package-lock.json | 10551 +++++++++++++++- target/npmlist.json | 1 + 4 files changed, 10536 insertions(+), 37 deletions(-) create mode 100644 target/npmlist.json diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue index 46b7b1bc5d1a5..0fefe1eeeb93e 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/toggle.vue @@ -1,6 +1,6 @@ @@ -42,7 +43,10 @@ export default { }, /* Edit an item */ editItem() { - this.$refs.container.editItem(); + // TODO should we use relative urls here? + const fileBaseUrl = `${Joomla.getOptions('com_media').editViewUrl}&path=`; + + window.location.href = fileBaseUrl + this.item.path; }, }, }; From 1a87a96d18181ccda6864ab51d3de17ce8777624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Mon, 23 Aug 2021 09:54:34 +0200 Subject: [PATCH 15/22] working can edit --- .../browser/actionItems/actionItemsContainer.vue | 6 ++++-- .../resources/scripts/components/browser/items/pdf.vue | 7 +++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue index 5ca5c286c3d4a..4d72458dbc1f5 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue @@ -52,6 +52,7 @@
  • @@ -30,13 +31,11 @@ export default { name: 'MediaBrowserItemPdf', // eslint-disable-next-line vue/require-prop-types props: ['item', 'focused'], - computed: { + methods: { /* Check if the item is an document to edit */ canEdit() { - return ['pdf'].includes(this.item.extension.toLowerCase()); + return [].includes(this.item.extension.toLowerCase()); }, - }, - methods: { /* Hide actions dropdown */ hideActions() { this.$refs.container.hideActions(); From 2fe083d0c85095c88ba522ad4edfbf9c3e71d461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Mon, 23 Aug 2021 15:15:11 +0200 Subject: [PATCH 16/22] final refactoring for pull request --- .../actionItems/actionItemsContainer.vue | 69 ++--- .../components/browser/actionItems/delete.vue | 20 +- .../browser/actionItems/download.vue | 68 +++-- .../components/browser/actionItems/edit.vue | 22 +- .../browser/actionItems/export.es6.js | 27 +- .../browser/actionItems/preview.vue | 66 +++-- .../components/browser/actionItems/rename.vue | 67 +++-- .../components/browser/actionItems/share.vue | 20 +- .../components/browser/actionItems/toggle.vue | 64 ++--- .../components/browser/items/audio.vue | 197 ++------------ .../components/browser/items/document.vue | 200 ++------------- .../scripts/components/browser/items/file.vue | 170 ++---------- .../components/browser/items/image.vue | 242 ++---------------- .../components/browser/items/item.es6.js | 127 +++++---- .../scripts/components/browser/items/pdf.vue | 52 ---- .../components/browser/items/video.vue | 197 ++------------ 16 files changed, 339 insertions(+), 1269 deletions(-) delete mode 100644 administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue index 4d72458dbc1f5..aff83885871f9 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue @@ -4,21 +4,15 @@ :aria-label="translate('COM_MEDIA_TOGGLE_SELECT_ITEM')" :title="translate('COM_MEDIA_TOGGLE_SELECT_ITEM')" /> -
    +
    -
    +
    • @@ -36,8 +30,8 @@ :focused="focused" :mainAction="download" :closingAction="hideActions" - :focusUp="$refs.actionPreview" - :focusDown="$refs.actionRename" + @keyup.up="$refs.actionPreview.$el.focus()" + @keyup.down="$refs.actionRename.$el.focus()" />
    • @@ -46,8 +40,12 @@ :focused="focused" :mainAction="openRenameModal" :closingAction="hideActions" - :focusUp="$refs.actionDownload" - :focusDown="canEdit ? $refs.actionEdit : $refs.actionShare" + @keyup.up="$refs.actionDownload.$el.focus()" + @keyup.down=" + canEdit + ? $refs.actionEdit.$el.focus() + : $refs.actionShare.$el.focus() + " />
    • @@ -57,8 +55,8 @@ :focused="focused" :mainAction="editItem" :closingAction="hideActions" - :focusUp="$refs.actionRename" - :focusDown="$refs.actionShare" + @keyup.up="$refs.actionRename.$el.focus()" + @keyup.down="$refs.actionShare.$el.focus()" />
    • @@ -66,9 +64,13 @@ ref="actionShare" :focused="focused" :mainAction="openShareUrlModal" - :focusUp="canEdit ? $refs.actionEdit : $refs.actionRename" - :focusDown="$refs.actionDelete" :closingAction="hideActions" + @keyup.up=" + canEdit + ? $refs.actionEdit.$el.focus() + : $refs.actionRename.$el.focus() + " + @keyup.down="$refs.actionDelete.$el.focus()" />
    • @@ -77,8 +79,8 @@ :focused="focused" :mainAction="openConfirmDeleteModal" :hideActions="hideActions" - :focusUp="$refs.actionShare" - :focusDown="$refs.actionPreview" + @keyup.up="$refs.actionShare.$el.focus()" + @keyup.down="$refs.actionPreview.$el.focus()" />
    @@ -87,12 +89,12 @@ diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/delete.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/delete.vue index f942aa71c760e..3bfae332bc2a5 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/delete.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/delete.vue @@ -1,6 +1,5 @@ diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js b/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js index e791e0cce8787..49a01e230007c 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js +++ b/administrator/components/com_media/resources/scripts/components/browser/items/item.es6.js @@ -1,16 +1,15 @@ -import { h } from 'vue'; -import Directory from './directory.vue'; -import File from './file.vue'; -import Image from './image.vue'; -import Video from './video.vue'; -import Audio from './audio.vue'; -import Pdf from './pdf.vue'; -import Doc from './document.vue'; -import * as types from '../../../store/mutation-types.es6'; -import { api } from '../../../app/Api.es6'; +import { h } from "vue"; +import Directory from "./directory.vue"; +import File from "./file.vue"; +import Image from "./image.vue"; +import Video from "./video.vue"; +import Audio from "./audio.vue"; +import Doc from "./document.vue"; +import * as types from "../../../store/mutation-types.es6"; +import { api } from "../../../app/Api.es6"; export default { - props: ['item'], + props: ["item"], data() { return { hoverActive: false, @@ -22,31 +21,37 @@ export default { */ itemType() { // Render directory items - if (this.item.type === 'dir') return Directory; + if (this.item.type === "dir") return Directory; // Render image items - if (this.item.extension && api.imagesExtensions.includes(this.item.extension.toLowerCase())) { + if ( + this.item.extension && + api.imagesExtensions.includes(this.item.extension.toLowerCase()) + ) { return Image; } // Render video items - if (this.item.extension && api.videoExtensions.includes(this.item.extension.toLowerCase())) { + if ( + this.item.extension && + api.videoExtensions.includes(this.item.extension.toLowerCase()) + ) { return Video; } // Render audio items - if (this.item.extension && api.audioExtensions.includes(this.item.extension.toLowerCase())) { + if ( + this.item.extension && + api.audioExtensions.includes(this.item.extension.toLowerCase()) + ) { return Audio; } - // Render pdf items - if (this.item.extension && api.documentExtensions.includes(this.item.extension.toLowerCase()) && this.item.extension.toLowerCase() === api.documentExtensions[4]) { - return Pdf; - } - // Render document items - if (this.item.extension - && api.documentExtensions.includes(this.item.extension.toLowerCase())) { + if ( + this.item.extension && + api.documentExtensions.includes(this.item.extension.toLowerCase()) + ) { return Doc; } @@ -69,7 +74,9 @@ export default { * @returns {boolean} */ isSelected() { - return this.$store.state.selectedItems.some((selected) => selected.path === this.item.path); + return this.$store.state.selectedItems.some( + (selected) => selected.path === this.item.path + ); }, /** @@ -99,36 +106,30 @@ export default { * @param event */ handleClick(event) { - if (this.item.path && this.item.type === 'file') { + if (this.item.path && this.item.type === "file") { window.parent.document.dispatchEvent( - new CustomEvent( - 'onMediaFileSelected', - { - bubbles: true, - cancelable: false, - detail: { - path: this.item.path, - thumb: this.item.thumb, - fileType: this.item.mime_type ? this.item.mime_type : false, - extension: this.item.extension ? this.item.extension : false, - width: this.item.width ? this.item.width : 0, - height: this.item.height ? this.item.height : 0, - }, + new CustomEvent("onMediaFileSelected", { + bubbles: true, + cancelable: false, + detail: { + path: this.item.path, + thumb: this.item.thumb, + fileType: this.item.mime_type ? this.item.mime_type : false, + extension: this.item.extension ? this.item.extension : false, + width: this.item.width ? this.item.width : 0, + height: this.item.height ? this.item.height : 0, }, - ), + }) ); } - if (this.item.type === 'dir') { + if (this.item.type === "dir") { window.parent.document.dispatchEvent( - new CustomEvent( - 'onMediaFileSelected', - { - bubbles: true, - cancelable: false, - detail: {}, - }, - ), + new CustomEvent("onMediaFileSelected", { + bubbles: true, + cancelable: false, + detail: {}, + }) ); } @@ -142,16 +143,13 @@ export default { this.$store.commit(types.SELECT_BROWSER_ITEM, this.item); return; } - this.$store.dispatch('toggleBrowserItemSelect', this.item); + this.$store.dispatch("toggleBrowserItemSelect", this.item); window.parent.document.dispatchEvent( - new CustomEvent( - 'onMediaFileSelected', - { - bubbles: true, - cancelable: false, - detail: {}, - }, - ), + new CustomEvent("onMediaFileSelected", { + bubbles: true, + cancelable: false, + detail: {}, + }) ); // If more than one item was selected and the user clicks again on the selected item, @@ -173,10 +171,10 @@ export default { }, render() { return h( - 'div', + "div", { class: { - 'media-browser-item': true, + "media-browser-item": true, selected: this.isSelected(), active: this.isHoverActive(), }, @@ -186,14 +184,11 @@ export default { onFocused: this.focused, }, [ - h( - this.itemType(), - { - item: this.item, - focused: this.focused, - }, - ), - ], + h(this.itemType(), { + item: this.item, + focused: this.focused, + }), + ] ); }, }; diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue b/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue deleted file mode 100644 index f3b23640c85b1..0000000000000 --- a/administrator/components/com_media/resources/scripts/components/browser/items/pdf.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/video.vue b/administrator/components/com_media/resources/scripts/components/browser/items/video.vue index 45623f42ac71d..c4548846bd153 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/video.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/video.vue @@ -14,152 +14,13 @@
    {{ item.name }} {{ item.filetype }}
    - -
    - -
    -
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    -
    -
    @@ -176,46 +37,20 @@ export default { }; }, methods: { - /* Preview an item */ - openPreview() { - this.$store.commit(types.SHOW_PREVIEW_MODAL); - this.$store.dispatch('getFullContents', this.item); - }, - /* Preview an item */ - download() { - this.$store.dispatch('download', this.item); - }, - /* Opening confirm delete modal */ - openConfirmDeleteModal() { - this.$store.commit(types.UNSELECT_ALL_BROWSER_ITEMS); - this.$store.commit(types.SELECT_BROWSER_ITEM, this.item); - this.$store.commit(types.SHOW_CONFIRM_DELETE_MODAL); - }, - /* Rename an item */ - openRenameModal() { - this.$store.commit(types.SELECT_BROWSER_ITEM, this.item); - this.$store.commit(types.SHOW_RENAME_MODAL); - }, - /* Open modal for share url */ - openShareUrlModal() { - this.$store.commit(types.SELECT_BROWSER_ITEM, this.item); - this.$store.commit(types.SHOW_SHARE_MODAL); - }, - /* Open actions dropdown */ - openActions() { - this.showActions = true; - this.$nextTick(() => this.$refs.actionPreview.focus()); - }, - /* Open actions dropdown and focus on last element */ - openLastActions() { - this.showActions = true; - this.$nextTick(() => this.$refs.actionDelete.focus()); + /* Check if the item is an document to edit */ + canEdit() { + return [].includes(this.item.extension.toLowerCase()); }, /* Hide actions dropdown */ hideActions() { - this.showActions = false; - this.$nextTick(() => this.$refs.actionToggle.focus()); + this.$refs.container.hideActions(); }, + /* Preview an item */ + openPreview() { + this.$ref.container.openPreview(); + } + /* Edit an item */ + editItem() {}, }, }; From 529c467bc08b2f77a6c481b772b8e4fbe15a1a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Mon, 23 Aug 2021 15:54:13 +0200 Subject: [PATCH 17/22] final refactoring for pull request --- .../actionItems/actionItemsContainer.vue | 11 +- .../components/browser/items/audio.vue | 17 +-- .../components/browser/items/directory.vue | 121 ++---------------- .../components/browser/items/document.vue | 2 +- .../scripts/components/browser/items/file.vue | 14 +- .../components/browser/items/image.vue | 9 +- .../components/browser/items/video.vue | 14 +- 7 files changed, 43 insertions(+), 145 deletions(-) diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue index aff83885871f9..b0151e38e7e2b 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue @@ -94,7 +94,16 @@ import * as types from "../../../store/mutation-types.es6"; export default { name: "MediaBrowserActionItemsContainer", // eslint-disable-next-line vue/require-prop-types - props: ["item", "focused", "editItem", "canEdit"], + // props: ["item", "focused", "editItem", "canEdit"], + props: { + item: Object, + focused: Function, + editItem: { type: Function, default: () => {} }, + canEdit: { type: Function, default: () => false }, + isPreviwable: { type: Boolean, default: false }, + isDownloadable: { type: Boolean, default: false }, + isShareable: { type: Boolean, default: false }, + }, data() { return { showActions: false, diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue b/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue index 1e84be110c75b..06b805fd2224a 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue @@ -20,27 +20,26 @@ :item="item" :editItem="editItem" :canEdit="canEdit" + :isPreviwable="true" + :isDownloadable="true" + :isShareable="true" />
    diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue b/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue index a74313732f063..c69ce7b23ff79 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue @@ -1,8 +1,5 @@ diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/image.vue b/administrator/components/com_media/resources/scripts/components/browser/items/image.vue index 3cac58d5f549f..fa504c2cdc23a 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/image.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/image.vue @@ -61,9 +61,14 @@ export default { /* Preview an item */ openPreview() { this.$ref.container.openPreview(); - } + }, /* Edit an item */ - editItem() {}, + editItem() { + // TODO should we use relative urls here? + const fileBaseUrl = `${Joomla.getOptions("com_media").editViewUrl}&path=`; + + window.location.href = fileBaseUrl + this.item.path; + }, }, }; diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/video.vue b/administrator/components/com_media/resources/scripts/components/browser/items/video.vue index c4548846bd153..1b69970481cc1 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/video.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/video.vue @@ -25,22 +25,18 @@ From 2d43627eb9b83c627ffacb1221fa941159dc5e10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Mon, 23 Aug 2021 23:29:43 +0200 Subject: [PATCH 18/22] final refactoring for pull request --- .gitignore | 2 +- docker-compose.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4d817a8d362c9..e54f2b3aaed62 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ .idea .vscode .docker -# /docker-compose.yml +/docker-compose.yml /nbproject # Local System Files (i.e. cache, logs, etc.) diff --git a/docker-compose.yml b/docker-compose.yml index 1c57bbe4b6d1c..0460b553ccf42 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,6 @@ services: # JOOMLA_DB_USER: ${DATABASE_USER:-joomla} # JOOMLA_DB_PASSWORD: ${DATABASE_PASS:-password} # JOOMLA_DB_NAME: ${DATABASE_NAME:-joomla} - joomla-db: image: jbergstroem/mariadb-alpine:latest command: mysqld --default-authentication-plugin=mysql_native_password From 4524703fb40c89b562902b9c1fe320b17edc62d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Tue, 24 Aug 2021 09:17:23 +0200 Subject: [PATCH 19/22] merged latest 4.1 dev --- docker-compose.yml | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 0460b553ccf42..0000000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,41 +0,0 @@ -version: '3.8' - -services: - # joomla: - # image: joomla - # restart: always - # networks: - # - joomla - # ports: - # - "${APPLICATION_PORT:-10000}:80" - # volumes: - # - "./joomla-data:/var/www/html" - # environment: - # JOOMLA_DB_HOST: joomla-db - # JOOMLA_DB_USER: ${DATABASE_USER:-joomla} - # JOOMLA_DB_PASSWORD: ${DATABASE_PASS:-password} - # JOOMLA_DB_NAME: ${DATABASE_NAME:-joomla} - joomla-db: - image: jbergstroem/mariadb-alpine:latest - command: mysqld --default-authentication-plugin=mysql_native_password - restart: always - ports: - - "${DATABASE_PORT:-3306}:3306" - environment: - MYSQL_DATABASE: ${DATABASE_NAME:-joomla} - MYSQL_USER: ${DATABASE_USER:-joomla} - MYSQL_PASSWORD: ${DATABASE_PASS:-password} - MYSQL_ROOT_PASSWORD: ${DATABASE_PASS:-password} - volumes: - - "mysql-data:/var/lib/mysql" - - db-admin: - image: adminer - restart: always - ports: - - "${DATABASE_ADMIN_PORT:-10100}:8080" - logging: - driver: none - -volumes: - mysql-data: \ No newline at end of file From 4ed2d73f5f0a5f6ee86d29fc1ed3a5d07bf02a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pl=C3=BCddemann?= Date: Tue, 24 Aug 2021 11:03:15 +0200 Subject: [PATCH 20/22] fixed eslint recommendations --- .../actionItems/actionItemsContainer.vue | 95 +++++++++++-------- .../components/browser/actionItems/delete.vue | 16 ++-- .../browser/actionItems/download.vue | 16 ++-- .../components/browser/actionItems/edit.vue | 18 ++-- .../browser/actionItems/export.es6.js | 20 ++-- .../browser/actionItems/preview.vue | 16 ++-- .../components/browser/actionItems/rename.vue | 16 ++-- .../components/browser/actionItems/share.vue | 16 ++-- .../components/browser/actionItems/toggle.vue | 13 ++- .../components/browser/items/audio.vue | 14 +-- .../components/browser/items/directory.vue | 12 ++- .../components/browser/items/document.vue | 13 +-- .../scripts/components/browser/items/file.vue | 16 ++-- .../components/browser/items/image.vue | 25 +++-- .../components/browser/items/item.es6.js | 64 ++++++------- .../components/browser/items/video.vue | 11 +-- .../resources/scripts/mediamanager.es6.js | 4 +- 17 files changed, 216 insertions(+), 169 deletions(-) diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue index b0151e38e7e2b..d35eb3fd7d839 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue @@ -4,32 +4,40 @@ :aria-label="translate('COM_MEDIA_TOGGLE_SELECT_ITEM')" :title="translate('COM_MEDIA_TOGGLE_SELECT_ITEM')" /> -
    +
    -
    +
    • @@ -37,14 +45,14 @@
    • @@ -52,19 +60,20 @@
    @@ -89,20 +98,18 @@