aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/lib/folders.js
blob: a7f5833f22ba328c3c974fe08162002f342b6a2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { $gettext } from './gettext';
import Dialog from './dialog.js';

const Folders = {
    openAddFoldersWindow: function(folder_id, range_id) {
        Dialog.fromURL(
            STUDIP.ABSOLUTE_URI_STUDIP +
                'dispatch.php/folder/new?rangeId=' +
                range_id +
                '&parent_folder_id=' +
                folder_id +
                '&js=1',
            {
                title: $gettext('Dokument hinzufügen')
            }
        );
    },

    sendNewFolderForm: function() {
        var new_folder_form = jQuery('#new_folder_form');

        //get form fields to check if the required fields are set:
        var folder_name = jQuery(new_folder_form)
            .find('input[name="name"]')
            .val();
        var folder_type = jQuery(new_folder_form)
            .find('input[name="folder_type"]')
            .val();
        var parent_folder_id = jQuery(new_folder_form)
            .find('input[name="parent_folder_id"]')
            .val();

        if (folder_name && folder_type && parent_folder_id) {
            jQuery.ajax({
                method: 'POST',
                url: STUDIP.ABSOLUTE_URI_STUDIP + 'dispatch.php/folder/new',
                data: new_folder_form.serialize(),
                cache: false,
                success: function(data) {
                    Folders.updateFolderListEntry(data.folder_id, data.tr);
                    Dialog.close();
                }
            });
        }
    },

    updateFolderListEntry: function(folder_id, html) {
        //updates the folder entry in the folder list
        var documents_table = jQuery('.documents[data-folder_id]');

        if (jQuery('#row_folder_' + folder_id).length > 0) {
            //row with folder-ID was found:
            jQuery('#row_folder_' + folder_id).replaceWith(html);
        } else {
            jQuery(documents_table).append(html);
        }
    },

    removeFolderListEntry: function(folder_id) {
        //removes a row from the folder list:
        if (jQuery('#row_folder_' + folder_id).length > 0) {
            //row with folder-ID was found:
            jQuery('#row_folder_' + folder_id).remove();
        }
    },

    delete: function(folder_id) {
        if (!folder_id) {
            return false;
        }

        jQuery.ajax({
            method: 'GET',
            url: STUDIP.ABSOLUTE_URI_STUDIP + 'dispatch.php/folder/delete/' + folder_id,
            data: null,
            cache: false,
            success: function(data) {
                if ($(data).hasClass('messagebox_success')) {
                    Folders.removeFolderListEntry(folder_id);
                }
                $('#content').prepend(data);
            }
        });
    }
};

export default Folders;