Skip to content
Snippets Groups Projects
Select Git revision
  • a3da1483a9e689846179159355badfec8073dbec
  • main default protected
  • studip-rector
  • ci-opt
  • course-members-export-as-word
  • data-vue-app
  • pipeline-improvements
  • webpack-optimizations
  • rector
  • icon-renewal
  • http-client-and-factories
  • jsonapi-atomic-operations
  • vueify-messages
  • tic-2341
  • 135-translatable-study-areas
  • extensible-sorm-action-parameters
  • sorm-configuration-trait
  • jsonapi-mvv-routes
  • docblocks-for-magic-methods
19 results

CoursesByUserIndex.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>