Skip to content
Snippets Groups Projects
Commit 1d918961 authored by Ron Lucke's avatar Ron Lucke Committed by Marcus Eibrink-Lunzenauer
Browse files

fix #735

parent 41512382
No related branches found
No related tags found
No related merge requests found
......@@ -111,11 +111,10 @@ class Contents_CoursewareController extends AuthenticatedController
[$this->entry_element_id, $this->user_id]
);
}
$canExport = !empty($struct) ? $struct->canEdit($user) : false;
$this->setCoursewareSidebar($canExport);
$this->setCoursewareSidebar();
}
private function setCoursewareSidebar(bool $canExport)
private function setCoursewareSidebar()
{
$sidebar = \Sidebar::Get();
$actions = new TemplateWidget(
......@@ -130,13 +129,11 @@ class Contents_CoursewareController extends AuthenticatedController
);
$sidebar->addWidget($views)->addLayoutCSSClass('courseware-view-widget');
if ($canExport) {
$exports = new TemplateWidget(
_('Export '),
$this->get_template_factory()->open('course/courseware/export_widget')
);
$sidebar->addWidget($exports)->addLayoutCSSClass('courseware-export-widget');
}
$exports = new TemplateWidget(
_('Export '),
$this->get_template_factory()->open('course/courseware/export_widget')
);
$sidebar->addWidget($exports)->addLayoutCSSClass('courseware-export-widget');
}
private function getLicences()
......
......@@ -74,8 +74,7 @@ class Course_CoursewareController extends AuthenticatedController
Context::getId(),
]);
}
$canExport = !empty($struct) ? $struct->canEdit($GLOBALS['user']) : false;
$this->setIndexSidebar($canExport);
$this->setIndexSidebar();
}
public function dashboard_action(): void
......@@ -107,7 +106,7 @@ class Course_CoursewareController extends AuthenticatedController
$this->render_pdf($element->pdfExport($this->user), trim($element->title).'.pdf');
}
private function setIndexSidebar(bool $canExport): void
private function setIndexSidebar(): void
{
$sidebar = Sidebar::Get();
$actions = new TemplateWidget(
......@@ -122,13 +121,11 @@ class Course_CoursewareController extends AuthenticatedController
);
$sidebar->addWidget($views)->addLayoutCSSClass('courseware-view-widget');
if ($canExport) {
$exports = new TemplateWidget(
_('Export '),
$this->get_template_factory()->open('course/courseware/export_widget')
);
$sidebar->addWidget($exports)->addLayoutCSSClass('courseware-export-widget');
}
$exports = new TemplateWidget(
_('Export '),
$this->get_template_factory()->open('course/courseware/export_widget')
);
$sidebar->addWidget($exports)->addLayoutCSSClass('courseware-export-widget');
}
......
<template>
<ul class="widget-list widget-links cw-export-widget" v-if="structuralElement">
<li class="cw-export-widget-export">
<li v-if="showExportArchiv" class="cw-export-widget-export">
<a href="#" @click="exportElement">
<translate>Seite exportieren</translate>
</a>
</li>
<li v-if="canVisit" class="cw-export-widget-export-pdf">
<a :href="pdfExportURL">
<li v-if="showExportPdf" class="cw-export-widget-export-pdf">
<a :href="pdfExportURL" target="_blank">
<translate>Seite als pdf-Dokument exportieren</translate>
</a>
</li>
<li v-if="oerEnabled" class="cw-export-widget-oer">
<li v-if="showOer" class="cw-export-widget-oer">
<a href="#" @click="oerElement">
<translate>Seite auf %{oerTitle} veröffentlichen</translate>
</a>
</li>
<li v-if="!showExportArchiv && !showExportPdf && !showOer">
<translate>Keine Exportoptionen verfügbar</translate>
</li>
</ul>
</template>
......@@ -31,6 +34,7 @@ export default {
context: 'context',
oerEnabled: 'oerEnabled',
oerTitle: 'oerTitle',
userIsTeacher: 'userIsTeacher',
}),
pdfExportURL() {
if (this.context.type === 'users') {
......@@ -42,6 +46,21 @@ export default {
return '';
},
canEdit() {
if (!this.structuralElement) {
return false;
}
return this.structuralElement.attributes['can-edit'];
},
showExportArchiv() {
return this.canEdit;
},
showExportPdf() {
return this.canVisit;
},
showOer() {
return this.oerEnabled && this.userIsTeacher && this.canVisit
}
},
methods: {
...mapActions({
......
......@@ -10,7 +10,7 @@
<MountingPortal mountTo="#courseware-action-widget" name="sidebar-actions">
<courseware-action-widget :structural-element="selected" :canVisit="canVisit"></courseware-action-widget>
</MountingPortal>
<MountingPortal mountTo="#courseware-export-widget" name="sidebar-actions" v-if="canExport">
<MountingPortal mountTo="#courseware-export-widget" name="sidebar-actions">
<courseware-export-widget :structural-element="selected" :canVisit="canVisit"></courseware-export-widget>
</MountingPortal>
<MountingPortal mountTo="#courseware-view-widget" name="sidebar-views">
......@@ -75,18 +75,7 @@ export default {
default:
return this.$gettext('Beim Laden der Seite ist ein Fehler aufgetreten.');
}
},
canExport() {
if (!this.selected) {
return false;
}
if (this.context.type === 'users') {
return true;
}
return this.selected.attributes['can-edit'] && this.userIsTeacher;
},
}
},
methods: {
...mapActions({
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment