Promise.all(promises).then(function() { indexed_array.files = files_array; helper.callHandler(view.model.id, 'exercise_submit', indexed_array) .then(function (resp) { if(resp.is_nobody) { var $ex =view.$("#exercise"+resp.exercise_index); $ex.find(".cw-test-content").first().html('<form class="studip_form"><fieldset><legend>'+resp.title+'</legend>'+resp.solution+'</fieldset></form>'); } else { return view.renderServerSide(); } }).then(function () { $block.find('.exercise').hide(); $block.find('#exercise' + $exercise_index).show(); $block.find('.submitinfo').slideDown(250).delay(1500).slideUp(250); $(window).trigger('resize'); }) .catch(function () { console.log('failed to store the solution'); }); });
'click button[name=reset-exercise]': function (event) { var $form = this.$(event.target).closest('form'), view = this, $exercise_index = $form.find('input[name="exercise_index"]').val(), $block = this.$el.parent(); if (confirm('Soll die Antwort zurückgesetzt werden?')) { helper.callHandler(this.model.id, 'exercise_reset', $form.serialize()) .then(function () { return view.renderServerSide(); }).catch(function () { console.log('failed to reset the exercise'); }).then(function () { $block.find('.exercise').hide(); $block.find('#exercise' + $exercise_index).show(); $(window).trigger('resize'); }); } return false; },
var $code_lang = this.$(".code_lang").val(); var $preview_block = this.$('.code-content-preview > pre > code'); $preview_block.html($code_content); $preview_block.removeAttr('class'); $preview_block.addClass("hljs"); if ($code_lang !== "") { $preview_block.addClass($code_lang); } hljs.highlightBlock($preview_block[0]); }, onSave(event) { var view = this; var $code_content = this.$('textarea').val(); var $code_lang = this.$(".code_lang").val(); helper .callHandler(this.model.id, 'save', { code_content: $code_content, code_lang: $code_lang }) .then(function () { jQuery(event.target).addClass('accept'); view.switchBack(); }).catch(function (error) { var errorMessage = 'Could not update the block: ' + jQuery.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); }, escapeHtml(text) { var map = { '&': '&', '<': '<', '>': '>',
onNavigate(event){ if (!$('section .block-content button[name=save]').length) { return; } if (event.isUserInputHandled) { return; } event.isUserInputHandled = true; Backbone.trigger('preventnavigateto', !confirm('Es gibt nicht gespeicherte Änderungen. Möchten Sie die Seite trotzdem verlassen?')); }, onSave(event) { var area = this.$('select[name=area]').val(), view = this; helper .callHandler(this.model.id, 'save', { area_id: area }) .then(function () { $(event.target).addClass('accept'); view.switchBack(); }).catch(function (error) { var errorMessage = 'Could not update the block: ' + $.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); }, onModeSwitch(toView, event) { if (toView != 'student') { return; }
return; } // another listener already handled the user's feedback if (event.isUserInputHandled) { return; } event.isUserInputHandled = true; Backbone.trigger('preventviewswitch', !confirm('Es gibt nicht gespeicherte Änderungen. Möchten Sie trotzdem fortfahren?')); }, onSave(event) { var $view = this; var $audio_gallery_content = ''; helper .callHandler(this.model.id, 'save', { audio_gallery_content: $audio_gallery_content }) .then( // success function () { $(event.target).addClass('accept'); $view.switchBack(); }, // error function (error) { var errorMessage = 'Could not update the block: '+$.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); }
var errorMessage = 'Could not add the section: ' + jQuery.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); } li_wrapper.remove(); $controls.show(); }); }, _addStructure(parent_id, model) { var data = { parent: parent_id, title: model.get('title') }; return helper.callHandler(this.model.id, 'add_structure', data); }, _sortable: null, _original_positions: null, _get_positions() { return this.$el.sortable('toArray', { attribute: 'data-blockid' }); }, initSorting() { if (this._sortable) { throw 'Already sorting!'; } this._sortable = this.$el;
_addStructure(parent_id, model) { if (model.attributes.type !='section') { var data = { parent: parent_id, title: model.get('title'), publication_date: model.get('publication_date') }; } else if (model.attributes.type =='section') { var data = { parent: parent_id, title: model.get('title'), }; } return helper.callHandler(this.model.id, 'add_structure', data); }, editStructure(event) { var $parent = jQuery(event.target).closest('[data-blockid]'), model = this._modelFromElement($parent), $title_el, orig_model, view, updateListItem; if (model.isNew()) { return; } if (!model.get('type')) { throw 'ERROR'; }
$view.$el.find('input[name="gallery-autoplay"]').prop( "checked", true) } if ($stored_hidenav == 1) { $view.$el.find('input[name="gallery-hidenav"]').prop( "checked", true) } }, onSave(event) { var view = this; var $folder = this.$el.find('.gallery-folder'); var $autoplay = this.$el.find('input[name="gallery-autoplay"]').prop( "checked") ? 1 : 0; var $autoplaytimer = this.$el.find('input[name="gallery-autoplay-timer"]').val(); var $height = this.$el.find('input[name="gallery-height"]').val(); var $hidenav = this.$el.find('input[name="gallery-hidenav"]').prop( "checked") ? 1 : 0; var $gallery_folder_id = $folder.find('option:selected').attr('folder_id'); helper .callHandler(this.model.id, 'save', {gallery_folder_id: $gallery_folder_id, gallery_height: $height, gallery_autoplay: $autoplay, gallery_autoplay_timer: $autoplaytimer, gallery_hidenav: $hidenav}) .then(function () { jQuery(event.target).addClass('accept'); view.switchBack(); }).catch(function (error) { var errorMessage = 'Could not update the block: ' + jQuery.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); }, onModeSwitch(toView, event) { if (toView != 'student') { return; }
onSave(event) { var view = this; var $assorttype = this.$('input[name="assorttype"]:checked').val(); var $assortblocksarray = new Array(); this.$('input[name="assortblocks"]:checked').each(function(){ var $id = $(this).val(); var $name = $("#blockname-"+$id) .val() .replace(/[\u00A0-\u9999<>\&]/gim, function(i){ return '&#'+i.charCodeAt(0)+';'; }); $assortblocksarray.push({id : $id , name : $name, hash: ''}); }); helper .callHandler(this.model.id, "save", {assortblocks: $assortblocksarray, assorttype: $assorttype}) .then( // success function () { jQuery(event.target).addClass("accept"); view.switchBack(); }, // error function (error) { var errorMessage = 'Could not update the block: '+jQuery.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }) .done(); },
card_content.back_img_file_id = $(this).find('.cw-dialogcards-back-img-file option:selected').attr('file_id'); card_content.back_img_file_name = $(this).find('.cw-dialogcards-back-img-file option:selected').attr('file_name'); card_content.back_img = true; card_content.back_external_file = false; break; case 'none': card_content.back_external_file = false; card_content.back_img = false; } card_content.back_text = $(this).find('.cw-dialogcards-back-text').val(); card_content.index = index; dialogcards_content.push(card_content); }); dialogcards_content = JSON.stringify(dialogcards_content); helper .callHandler(this.model.id, 'save', { dialogcards_content : dialogcards_content }) .then( // success function () { $(event.target).addClass('accept'); $view.switchBack(); }, // error function (error) { console.log(error); } ); },
store(){ var $view = this; var draw = {}; draw.clickX = JSON.stringify(this.clickX); draw.clickY = JSON.stringify(this.clickY); draw.clickDrag = JSON.stringify(this.clickDrag); draw.clickColor = JSON.stringify(this.clickColor); draw.clickSize = JSON.stringify(this.clickSize); draw.clickTool = JSON.stringify(this.clickTool); draw.Text = JSON.stringify(this.Text); draw = JSON.stringify(draw); helper .callHandler(this.model.id, 'store_draw', { canvas_draw: draw }) .then( // success function () { }, // error function (error) { var errorMessage = 'Could not store drawing: '+$.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); }, reset() {
var view = this; var $file = this.$el.find('.download-file'); var $folder = this.$el.find('.download-folder'); var $file_val = $file.val(); var $file_id = $file.find('option:selected').attr('file_id'); var $file_name = $file.find('option:selected').attr('file_name'); var $folder_id = $folder.find('option:selected').attr('folder_id'); var $download_title = this.$('input[name="download-title"]').val(); var $download_info = this.$('input[name="download-info"]').val(); var $download_success = this.$('input[name="download-success"]').val(); helper .callHandler(this.model.id, 'save', { file: $file_val, file_id: $file_id, file_name: $file_name, folder_id: $folder_id, download_title: $download_title, download_info: $download_info, download_success: $download_success }) .then(function () { $(event.target).addClass('accept'); view.switchBack(); }).catch(function (error) { var errorMessage = 'Could not update the block: ' + $.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); }, selectFolder() {
if ($linktype == 'internal') { var $linktarget = $view.$('select.cw-link-target option:selected').val(); } if ($linktype == 'external') { var $linkprotocol = $view.$('select.cw-link-protocol option:selected').val(); var $linktarget = $view.$('input.cw-link-target').val().replace('http://','').replace('https://',''); $linktarget = $linkprotocol+$linktarget; } var $linktitle = $view.$('.cw-link-title').val(); if ($linktitle == '') { $linktitle = $linktarget; } helper .callHandler(this.model.id, 'save', { link_type : $linktype, link_target: $linktarget, link_title: $linktitle }) .then( // success function () { $(event.target).addClass('accept'); $view.switchBack(); }, // error function (error) { console.log(error); } ); },
} $view.$('.cw-iav-stop-content').hide('fade', 800); $view.$('.cw-iav-test-content').hide('fade', 800); }, submitExercise(event) { var $form = this.$(event.target).closest('form'), view = this, top = document.body.scrollTop, $player = view.$('.cw-iav-player'), $current = $player.prop('currentTime'), $test_json = view.$('.test-json').val(), $stop_json = view.$('.stop-json').val(), $block = this.$el.parent(); helper.callHandler(this.model.id, 'exercise_submit', $form.serialize()) .then(function (resp) { return view.renderServerSide(); }).then(function () { view.$('.test-json').val($test_json); view.$('.stop-json').val($stop_json); $player.prop('currentTime', $current); document.body.scrollTop = top; }) .catch(function () { console.log('failed to store the solution'); }); return false; },
tests_json.push(json); }); tests_json = JSON.stringify(tests_json); let iav_source = {}; if (this.$('.cw-iav-source').val() == 'url') { iav_source.url = this.$(".cw-iav-url").val(); iav_source.external = true; } else { iav_source.file_id = this.$('.cw-iav-video-file option:selected').attr('file_id'); iav_source.file_name = this.$('.cw-iav-video-file option:selected').attr('file_name'); iav_source.external = false; } iav_source = JSON.stringify(iav_source); helper .callHandler(this.model.id, "save", {iav_source: iav_source, iav_overlays: overlay_json, iav_stops: stop_json, iav_tests: tests_json, assignment_id: $assignment_id}) .then( // success function () { jQuery(event.target).addClass("accept"); $view.switchBack(); }, // error function (error) { var errorMessage = 'Could not update the block: '+jQuery.parseJSON(error.responseText).reason; alert(errorMessage); console.log(errorMessage, arguments); }); },