import { $gettext } from './lib/gettext'; jQuery(function ($) { $(document).on('click', 'a.mvv-load-in-new-row', function () { STUDIP.MVV.Content.loadRow($(this)); return false; }); $(document).on('click', '.loaded-details a.cancel', function () { $(this).closest('.loaded-details').prev().find('toggler').click(); return false; }); STUDIP.MVV.Sort.init($('.sortable')); $(document).on('change', '#mvv-chooser select', function(){ STUDIP.MVV.Chooser.create($(this)); return false; }); $(document).on('click', '.mvv-item-remove', function () { STUDIP.MVV.Content.removeItem(this); return false; }); $(document).on('click', '.mvv-item-edit', function () { STUDIP.MVV.Content.editAnnotation(this); return false; }); $(document).on('click', '.mvv-item-edit-properties', function () { $(this).parents("li").find(".mvv-item-document-comments").toggle(); return false; }); // get the quicksearch input $(document).on('click focus', '.ui-autocomplete-input', function() { STUDIP.MVV.Search.qs_input = this; return false; }); $('.with-datepicker').datepicker(); $(document).on('change', '.mvv-inst-chooser select', function() { STUDIP.MVV.LanguageChooser.showButtons($(this)); return false; }); $(document).on('click', '.mvv-show-original', function() { STUDIP.MVV.Content.showOriginal($(this)); return false; }); $(document).on('click', '.mvv-show-all-original', function() { STUDIP.MVV.Content.showAllOriginal(); return false; }); $(document).on('click', 'a.mvv-new-tab', function(event) { STUDIP.MVV.Diff.openNewTab(this); return false; }); $(document).on('click', 'input.mvv-qs-button', function($event) { STUDIP.MVV.Search.addSelect($(this)); return false; }); $(document).on('click', '.stgfile .remove_attachment', function($event) { STUDIP.Dialog.confirm($gettext('Soll die Datei wirklich gelöscht werden?')).done(() => { STUDIP.MVV.Document.remove_attachment(this); }); return false; }); $(document).on('click', '.stgfile .refresh_attachment', (event) => { STUDIP.MVV.Document.refresh_attachment(event.target); event.preventDefault(); }); STUDIP.dialogReady( function() { var contactSearchParams = $('#search-contact-params'); var contactSearchSelect = $('#search-contact-select'); if (contactSearchParams) { contactSearchSelect.select2({ placeholder: contactSearchSelect.data('placeholder'), minimumInputLength: 3, ajax: { url: STUDIP.URLHelper.getURL('dispatch.php/shared/contacts/search_' + contactSearchSelect.data('search_type')), data: function (params) { var query = { term: params.term, _type: params._type, contact_id: contactSearchParams.data('contact') } return query; }, dataType: 'json' } }); } $('#search-file-select').select2({ placeholder: $gettext('Dokument suchen'), minimumInputLength: 3, ajax: { url: STUDIP.URLHelper.getURL('dispatch.php/materialien/files/search_file'), dataType: 'json' } }); $('#search-file-studiengang-select').select2({ placeholder: $gettext('Studiengang suchen'), minimumInputLength: 3, ajax: { url: STUDIP.URLHelper.getURL('dispatch.php/materialien/files/search_studiengang'), dataType: 'json' } }); $('#search-file-modul-select').select2({ placeholder: $gettext('Modul suchen'), minimumInputLength: 3, ajax: { url: STUDIP.URLHelper.getURL('dispatch.php/materialien/files/search_modul'), dataType: 'json' } }); $('#search-file-abschlusskategorie-select').select2({ placeholder: $gettext('AbschlussKategorie suchen'), minimumInputLength: 3, ajax: { url: STUDIP.URLHelper.getURL('dispatch.php/materialien/files/search_abschlusskategorie'), dataType: 'json' } }); } ); }); /* ------------------------------------------------------------------------ * the local MVV namespace * ------------------------------------------------------------------------ */ window.STUDIP.MVV = window.STUDIP.MVV || {}; STUDIP.MVV.Search = { qs_input : null, qs_selected_name : null, getFocus: function (item_id, item_name) { var qs_input = jQuery(STUDIP.MVV.Search.qs_input), qs_item = jQuery('#'+qs_input.attr('id')); if (item_id == '') { STUDIP.MVV.Search.addSelect(qs_item); } else { qs_input.closest('form') .find('.mvv-submit') .show() .focus(); } return true; }, addButton: function (item_id, item_name) { var qs_input = jQuery(STUDIP.MVV.Search.qs_input), qs_item = jQuery('#'+qs_input.attr('id')); if (item_id == '') { STUDIP.MVV.Search.addSelect(qs_item); } else { STUDIP.MVV.Search.addTheButton(qs_item); } return true; }, addTheButton: function (qs_item) { var add_button = jQuery('').addClass('mvv-add-item'), qs_name = qs_item.attr('id'), target_name = qs_name.slice(0, qs_name.lastIndexOf('_')), item_id = jQuery('#'+qs_name+'_realvalue').val(); jQuery('') .attr('alt', $gettext("hinzufügen")) .appendTo(add_button); if (item_id == '') { qs_item.siblings('.mvv-add-button').find('.mvv-add-item') .fadeOut('slow', function () { qs_item.val('').focus(); jQuery(this).remove(); }); } else { add_button.click(function() { if (_.isNull(STUDIP.MVV.Search.qs_selected_name)) { STUDIP.MVV.Content.addItem(target_name, item_id, qs_item.val()); } else { STUDIP.MVV.Content.addItem(target_name, item_id, STUDIP.MVV.Search.qs_selected_name); } jQuery(this).fadeOut('slow', function () { qs_item.val('').focus(); jQuery(this).remove(); }); jQuery('#select_'+qs_name).fadeOut('fast', function(){ jQuery(this).next('.mvv-search-reset').fadeOut(); jQuery('#'+qs_name).fadeIn(); jQuery(this).remove(); }); return false; } ); qs_item.siblings('.mvv-add-button').first().children('.mvv-add-item') .fadeOut('slow').remove(); qs_item.siblings('.mvv-add-button').first().append(add_button); add_button.fadeIn('slow'); qs_item.siblings('.mvv-select-group').fadeIn(); add_button.focus(); qs_item.focus(function() { add_button.fadeOut(); qs_item.siblings('.mvv-select-group').fadeOut(); }); } return true; }, addSelect: function (qs_item) { var qs_input = jQuery('#' + qs_item.data('qs_name')), qs_real = qs_input.prev('input'), qs_name = qs_input.attr('id'), qs_select = jQuery(''); reset_button.attr({ src: STUDIP.ASSETS_URL+'images/icons/blue/decline.svg', title: $gettext("Suche zurücksetzen") }).addClass('mvv-search-reset'); if (!_.isUndefined(do_submit)) { qs_select.change(function() { var selected = qs_select.children('option:selected'); qs_real.val(selected.val()); if (do_submit === 'yes') { qs_input.closest('form').submit(); } }); } else { qs_select.change(function() { var selected = qs_select.children('option:selected'); STUDIP.MVV.Search.addSelected.call( qs_real, selected.val(), selected.text().trim() ); }); } jQuery.ajax({ url: STUDIP.URLHelper.getURL(STUDIP.MVV.CONTROLLER_URL + 'qs_result'), data: {'qs_id': qs_id, 'qs_term': qs_input.val()}, type: 'POST', success: function (data) { for (var i in data) { var d = data[i]; jQuery('
').html(item_name.replace(strip_tags, '')).text()); }, insertFachName: function (item_id, item_name) { $.get(STUDIP.URLHelper.getURL(STUDIP.MVV.CONTROLLER_URL + 'fach_data'), { fach_id: item_id }).done(function(d) { if (_.isNull(d.name)) { $('input[name="name"]').attr( 'placeholder', $gettext('Keine Angabe beim Fach') ); } else { $('input[name="name"]').attr({ value: d.name, placeholder: d.name, 'aria-label': d.name, }); } if (_.isNull(d.name_en)) { $('input[name="name_i18n[en_GB]"]').attr( 'placeholder', $gettext('Keine Angabe beim Fach') ); } else { $('input[name="name_i18n[en_GB]"]').attr('value', d.name_en); } if (_.isNull(d.name_kurz)) { $('input[name="name_kurz"]').attr( 'placeholder', $gettext('Keine Angabe beim Fach') ); } else { $('input[name="name_kurz"]').attr('value', d.name_kurz); } if (_.isNull(d.name_kurz_en)) { $('input[name="name_kurz_i18n[en_GB]"]').attr( 'placeholder', $gettext('Keine Angabe beim Fach') ); } else { $('input[name="name_kurz_i18n[en_GB]"]').attr('value', d.name_kurz_en); } }); } }; STUDIP.MVV.Sort = { i: null, start: function(event, ui) { STUDIP.MVV.Sort.i = jQuery(ui.item).index(); }, stop: function(event, ui) { var i = jQuery(ui.item).index(); if(STUDIP.MVV.Sort.i !== i){ var newOrder = jQuery(this).sortable('toArray'); var tableID = jQuery(this).closest('.sortable').attr('id'); STUDIP.MVV.Sort.save(newOrder, tableID); } }, save: function(newOrder, tableID) { jQuery.ajax({ url: STUDIP.URLHelper.getURL(STUDIP.MVV.CONTROLLER_URL + 'sort'), data:{ 'list_id':tableID, 'newOrder':newOrder }, type:'POST', success: function() {} }); }, init: function(target) { target.sortable({ items: '> .sort_items', cursor: 'move', containment: 'parent', tolerance: 'pointer', axis: 'y', start: STUDIP.MVV.Sort.start, stop: STUDIP.MVV.Sort.stop }); } }; STUDIP.MVV.Chooser = { create: function (element) { var parent = element.closest('form'); jQuery('#mvv-load-content').fadeOut().html(''); jQuery.ajax({ url: STUDIP.URLHelper.getURL(parent.attr('action')), data: parent.serializeArray(), type:'POST', success: function(data) { var next = parent.nextAll(); if (jQuery(data).is('form')) { if (next.length !== 0) { jQuery('.mvv-version-content').nextAll().fadeOut().remove(); jQuery('.mvv-version-content').fadeIn(); next.remove(); } parent.after(data); } else { location.reload(); } } }); } }; STUDIP.MVV.LanguageChooser = { showButtons: function (element) { var chooser = element.closest('.mvv-inst-chooser'); var sel = chooser.find(':selected'); chooser.find('.mvv-inst-add-button img').fadeOut(); if (!sel.hasClass('mvv-inst-chooser-level')) { var button = chooser.find('.mvv-inst-add-button img'); button.fadeIn('fast').unbind('click'); jQuery(button).click(function() { if (sel.data('fb') === '') { STUDIP.MVV.Content.addItem( chooser.find('select').attr('name'), sel.val(), sel.text()); } else { STUDIP.MVV.Content.addItem( chooser.find('select').attr('name'), sel.val(), sel.data('fb') + ' - ' + sel.text()); } }); } } }; STUDIP.MVV.Content = { deskriptor_data: null, get: function (id) { jQuery('#mvv-load-content').load( STUDIP.URLHelper.getURL(STUDIP.MVV.CONTROLLER_URL+'content/'+id), function() { jQuery('#mvv-load-content').fadeIn(); }); }, addItem: function (target_name, item_id, item_name) { var target = jQuery('#' + target_name + '_target'), group_id = '', li_id = item_id; if (target.hasClass('mvv-assign-group')) { group_id = target.siblings('.mvv-select-group').find(':selected').val(); li_id = target_name + '_' + group_id + '_' + li_id; } else { li_id = target_name + '_' + li_id; } if (jQuery('#' + li_id).length) { jQuery('#' + li_id) .effect('highlight', {color: '#ff0000'}, 1500); } else { var item = jQuery('
  • ').attr('id', li_id); jQuery('
    ') .text(item_name).appendTo(item); if (target.hasClass('sortable')) { item.addClass('drag-handle sort_items'); } target.children('.mvv-item-list-placeholder').hide(); if (target.hasClass('mvv-assign-single')) { target.children().not('.mvv-item-list-placeholder').remove(); jQuery('') .attr('name', target_name + '_item') .val(item_id).appendTo(item); } else { if (target.hasClass('mvv-assign-group')) { jQuery('') .attr('name', target_name+'_items_'+group_id+'[]') .val(item_id).appendTo(item); } else { jQuery('') .attr('name', target_name + '_items[]') .val(item_id).appendTo(item); } } var button_list = jQuery('
    ') .append('Trash'); button_list.appendTo(item); if (target.is('.mvv-with-annotations')) { var text_area = jQuery('