Skip to content
Snippets Groups Projects
Select Git revision
  • fa3717944a1e7f152dcf6d66e5660c632affba90
  • main default protected
  • step-3263
  • feature/plugins-cli
  • feature/vite
  • step-2484-peerreview
  • biest/issue-5051
  • tests/simplify-jsonapi-tests
  • fix/typo-in-1a70031
  • feature/broadcasting
  • database-seeders-and-factories
  • feature/peer-review-2
  • feature-feedback-jsonapi
  • feature/peerreview
  • feature/balloon-plus
  • feature/stock-images-unsplash
  • tic-2588
  • 5.0
  • 5.2
  • biest/unlock-blocks
  • biest-1514
21 results

MessageBox.php

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CoursewareViewWidget.vue 2.00 KiB
    <template>
        <ul class="widget-list widget-links sidebar-views cw-view-widget">
            <li :class="{ active: readView }">
                <button @click="setReadView">
                    <translate>Lesen</translate>
                </button>
            </li>
            <li
                v-if="canEdit"
                :class="{ active: editView }"
            >
                <button @click="setEditView">
                    <translate>Bearbeiten</translate>
                </button>
            </li>
            <li 
                v-if="context.type === 'courses' && canVisit"
                :class="{ active: discussView }"
            >
                <button @click="setDiscussView">
                    <translate>Kommentieren</translate>
                </button>
            </li>
        </ul>
    </template>
    
    <script>
    import { mapActions, mapGetters } from 'vuex';
    
    export default {
        name: 'courseware-view-widget',
        props: ['structuralElement', 'canVisit'],
        computed: {
            ...mapGetters({
                viewMode: 'viewMode',
                context: 'context',
            }),
            readView() {
                return this.viewMode === 'read';
            },
            editView() {
                return this.viewMode === 'edit';
            },
            discussView() {
                return this.viewMode === 'discuss';
            },
            canEdit() {
                if (!this.structuralElement) {
                    return false;
                }
                return this.structuralElement.attributes['can-edit'];
            },
        },
        methods: {
            ...mapActions({
                coursewareViewMode: 'coursewareViewMode',
                coursewareBlockAdder: 'coursewareBlockAdder',
                setToolbarItem: 'coursewareSelectedToolbarItem',
            }),
            setReadView() {
                this.coursewareViewMode('read');
                this.setToolbarItem('contents');
                this.coursewareBlockAdder({});
            },
            setEditView() {
                this.coursewareViewMode('edit');
            },
            setDiscussView() {
                this.$store.dispatch('coursewareViewMode', 'discuss');
            },
        },
    };
    </script>