aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/course/files.php25
-rw-r--r--app/controllers/files.php24
-rw-r--r--resources/assets/javascripts/bootstrap/files.js9
-rw-r--r--resources/assets/javascripts/lib/files.js12
4 files changed, 39 insertions, 31 deletions
diff --git a/app/controllers/course/files.php b/app/controllers/course/files.php
index 2cb69a8..91d1918 100644
--- a/app/controllers/course/files.php
+++ b/app/controllers/course/files.php
@@ -59,16 +59,6 @@ class Course_FilesController extends AuthenticatedController
);
}
- $actions->addLink(
- _('Bildergalerie öffnen'),
- '#g',
- Icon::create('file-pic', 'clickable'),
- [
- 'onClick' => "STUDIP.Files.openGallery(); return false;",
- 'v-if' => "hasFilesOfType('image')"
- ]
- );
-
if ($this->topFolder && $this->topFolder->isSubfolderAllowed($GLOBALS['user']->id)) {
$actions->addLink(
_('Neuer Ordner'),
@@ -93,9 +83,18 @@ class Course_FilesController extends AuthenticatedController
)->asDialog();
}
- $sidebar->addWidget($actions);
+ $actions->addLink(
+ _('Bildergalerie öffnen'),
+ '#g',
+ Icon::create('file-pic'),
+ [
+ 'onClick' => "STUDIP.Files.openGallery(); return false;",
+ 'style' => 'display: none',
+ ]
+ );
+ $sidebar->addWidget($actions);
if ($this->topFolder->isWritable($GLOBALS['user']->id)) {
$uploadArea = new LinksWidget();
@@ -172,10 +171,10 @@ class Course_FilesController extends AuthenticatedController
$actions->addLink(
_('Bildergalerie öffnen'),
'#g',
- Icon::create('file-pic', 'clickable'),
+ Icon::create('file-pic'),
[
'onClick' => "STUDIP.Files.openGallery(); return false;",
- 'v-if' => "hasFilesOfType('image')"
+ 'style' => 'display: none',
]
);
if ($GLOBALS['user']->id !== 'nobody') {
diff --git a/app/controllers/files.php b/app/controllers/files.php
index 555e788..46a67e6 100644
--- a/app/controllers/files.php
+++ b/app/controllers/files.php
@@ -100,15 +100,6 @@ class FilesController extends AuthenticatedController
);
}
- $actions->addLink(
- _('Bildergalerie öffnen'),
- '#g',
- Icon::create('file-pic', 'clickable'),
- [
- 'onClick' => "STUDIP.Files.openGallery(); return false;"
- ]
- );
-
if ($folder->isWritable($GLOBALS['user']->id)) {
$actions->addLink(
_('Dokument hinzufügen'),
@@ -146,6 +137,17 @@ class FilesController extends AuthenticatedController
)->asDialog();
}
}
+
+ $actions->addLink(
+ _('Bildergalerie öffnen'),
+ '#g',
+ Icon::create('file-pic'),
+ [
+ 'onClick' => "STUDIP.Files.openGallery(); return false;",
+ 'style' => 'display: none',
+ ]
+ );
+
$sidebar->addWidget($actions);
if ($folder->isWritable($GLOBALS['user']->id)) {
@@ -612,10 +614,10 @@ class FilesController extends AuthenticatedController
$actions->addLink(
_('Bildergalerie öffnen'),
'#g',
- Icon::create('file-pic', 'clickable'),
+ Icon::create('file-pic'),
[
'onClick' => "STUDIP.Files.openGallery(); return false;",
- 'v-if' => "hasFilesOfType('image')"
+ 'style' => 'display: none',
]
);
$sidebar->addWidget($actions);
diff --git a/resources/assets/javascripts/bootstrap/files.js b/resources/assets/javascripts/bootstrap/files.js
index 72a2a6e..6caef6d 100644
--- a/resources/assets/javascripts/bootstrap/files.js
+++ b/resources/assets/javascripts/bootstrap/files.js
@@ -17,6 +17,10 @@ function searchMoreFiles (button) {
return false;
}
+STUDIP.eventBus.on('files-vue-app-updated', ({hasImages}) => {
+ $('#sidebar-actions a[onclick*="Files.openGallery"]').toggle(hasImages);
+});
+
STUDIP.domReady(() => {
STUDIP.Files.init();
@@ -49,11 +53,6 @@ STUDIP.domReady(() => {
});
});
-$(document).on('files-vue-app-loaded', () => {
- const lightboxImages = $('.lightbox-image');
- $('#sidebar-actions a[onclick*="Files.openGallery"]').attr('disabled', lightboxImages.length === 0);
-});
-
jQuery(document).on('ajaxComplete', (event, xhr) => {
if (!xhr.getResponseHeader('X-Filesystem-Changes')) {
return;
diff --git a/resources/assets/javascripts/lib/files.js b/resources/assets/javascripts/lib/files.js
index d02486d..f806787 100644
--- a/resources/assets/javascripts/lib/files.js
+++ b/resources/assets/javascripts/lib/files.js
@@ -29,11 +29,19 @@ const Files = {
},
removeFile(id) {
this.files = this.files.filter(file => file.id != id)
+ },
+ onUpdated() {
+ STUDIP.eventBus.emit('files-vue-app-updated', {
+ hasImages: this.hasFilesOfType('image'),
+ });
}
},
components: { FilesTable, },
- mounted () {
- $(document).trigger('files-vue-app-loaded');
+ updated () {
+ this.onUpdated();
+ },
+ created () {
+ this.onUpdated();
}
});
});