Skip to content
Snippets Groups Projects
Select Git revision
  • 8a73978122fd0558cd9a55212824df8388ce7cdc
  • main default protected
  • 5.5 protected
  • atlantis
  • 5.3 protected
  • 5.0 protected
  • issue-23
  • issue8-seat-logging-and-export
  • ticket-216
  • tickets-215-216-241-242
10 results

CoursewareActionWidget.vue

Blame
  • Forked from Stud.IP / Stud.IP
    3028 commits behind the upstream repository.
    Ron Lucke's avatar
    Ron Lucke authored and Marcus Eibrink-Lunzenauer committed
    Closes #1722
    
    Merge request studip/studip!1309
    8a739781
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CoursewareActionWidget.vue 1.80 KiB
    <template>
        <sidebar-widget id="courseware-action-widget" :title="$gettext('Aktionen')" v-if="structuralElement">
            <template #content>
                <ul class="widget-list widget-links cw-action-widget">
                    <li v-if="canEdit" class="cw-action-widget-add">
                        <button @click="addElement">
                            {{ $gettext('Seite hinzufügen') }}
                        </button>
                    </li>
                    <li v-if="inCourseContext && userIsTeacher" class="cw-action-widget-link">
                        <button @click="linkElement">
                            {{ $gettext('Seite verknüpfen') }}
                        </button>
                    </li>
                </ul>
            </template>
        </sidebar-widget>
    </template>
    
    <script>
    import SidebarWidget from '../SidebarWidget.vue';
    import { mapActions, mapGetters } from 'vuex';
    
    export default {
        name: 'courseware-action-widget',
        props: ['structuralElement'],
        components: {
            SidebarWidget,
        },
        computed: {
            ...mapGetters({
                context: 'context',
                userIsTeacher: 'userIsTeacher',
            }),
            canEdit() {
                if (!this.structuralElement) {
                    return false;
                }
                return this.structuralElement.attributes['can-edit'];
            },
            currentId() {
                return this.structuralElement?.id;
            },
            inCourseContext() {
                return this.context.type === 'courses';
            }
        },
        methods: {
            ...mapActions({
                showElementAddDialog: 'showElementAddDialog',
                showElementLinkDialog: 'showElementLinkDialog',
            }),
            addElement() {
                this.showElementAddDialog(true);
            },
            linkElement() {
                this.showElementLinkDialog(true);
            },
        },
    };
    </script>