diff --git a/sites/all/modules/figli/edlp_studio/assets/js/edlp_studio.js b/sites/all/modules/figli/edlp_studio/assets/js/edlp_studio.js index c066de377..9477beecd 100644 --- a/sites/all/modules/figli/edlp_studio/assets/js/edlp_studio.js +++ b/sites/all/modules/figli/edlp_studio/assets/js/edlp_studio.js @@ -1,22 +1,25 @@ (function ($, Drupal, drupalSettings) { var settings = drupalSettings.edlp_studio; + var composer; function init(){ console.log('Studio Init'); initEvents(); - initAjaxLinks(); + initStudio(); }; function initEvents(){ $('body') .on('new-audio-cartel-loaded', initAjaxChutierLinks) - .on('new-content-ajax-loaded', initAjaxLinks); + .on('new-content-ajax-loaded', initStudio); }; - function initAjaxLinks(){ + function initStudio(){ + $composer = $('.composition_ui .composer', '#studio-ui'); initAjaxChutierLinks(); initAjaxCompoLinks(); + initDragAndDropUI(); } // ___ _ _ _ _ _ _ _ _ _ // / __| |_ _ _| |_(_)___ _ _ | \| |___ __| |___ | | (_)_ _ | |__ ___ @@ -29,14 +32,12 @@ .addClass('ajax-enabled') .on('click', onClickChutierAjaxLink); }; - function onClickChutierAjaxLink(e){ console.log('studio onClickAjaxLink chutier'); e.preventDefault(); addRemoveToChutier($(this)); return false; }; - function addRemoveToChutier($link){ // var ajax_path = 'edlp_studio/ajax/chutier/add/'+id; // + '/' +cid; var ajax_path = $link.attr('data-drupal-link-system-path'); @@ -50,7 +51,6 @@ onErrorActionToChutier(jqxhr, textStatus, error, $link); }); }; - function onActionToChutierDone($link, data){ console.log('onActionToChutierDone',data); $('body').trigger({ @@ -64,7 +64,6 @@ // reload Studio chutier_ui's documents list updateStudioChutier(); }; - function onErrorActionToChutier(jqxhr, textStatus, error, $link){ console.warn('action to chuttier load failed : '+error, jqxhr.responseText); }; @@ -77,18 +76,16 @@ function initAjaxCompoLinks(){ console.log('studio initAjaxCompoLinks'); $('.new-composition-link:not(.ajax-enabled)') - .addClass('ajax-enabled') - .on('click', onClickNewCompoLink); + .on('click', onClickNewCompoLink) + .addClass('ajax-enabled'); $('.composition-link:not(.ajax-enabled)') - .addClass('ajax-enabled') - .on('click', onClickCompoLink); + .on('click', onClickCompoLink) + .addClass('ajax-enabled'); $('.delete-composition-link:not(.ajax-enabled)') - .addClass('ajax-enabled') - .on('click', onClickDeleteCompoLink); + .on('click', onClickDeleteCompoLink) + .addClass('ajax-enabled'); }; - - // ___ ___ // / _ \ _ __ ___ _ _ / __|___ _ __ _ __ ___ // | (_) | '_ \/ -_) ' \ | (__/ _ \ ' \| '_ \/ _ \ @@ -97,21 +94,46 @@ function onClickCompoLink(e){ e.preventDefault(); console.log('onClickCompoLink'); - + openCompo($(this)); return false; }; + function openCompo($link){ + var cid = $link.attr('cid'); + var ajax_path = settings.open_compo_ajax_url+'/'+cid; + var path = window.location.origin + Drupal.url(ajax_path); + $link.addClass('ajax-loading'); + $composer.addClass('ajax-loading'); + $.getJSON(path, {}) + .done(function(data){ + onOpenCompoDone(data, $link); + }) + .fail(function(jqxhr, textStatus, error){ + onErrorOpenCompo(jqxhr, textStatus, error, $link); + }); + }; + function onOpenCompoDone(data, $link){ + console.log('onActionToCompoDone',data); + $('.composition-link').removeClass('is-active'); + $link.removeClass('ajax-loading').addClass('is-active'); + + $composer.html(data.compo); + $composer.removeClass('ajax-loading'); + initDragAndDropUI(); + }; + function onErrorOpenCompo(jqxhr, textStatus, error, $link){ + $link.removeClass('ajax-loading'); + console.warn('open compo load failed : '+error, jqxhr.responseText); + }; // _ _ _____ __ __ __ ___ _ __ _ __ ___ // | ' \/ -_) V V / / _/ _ \ ' \| '_ \/ _ \ // |_||_\___|\_/\_/ \__\___/_|_|_| .__/\___/ // |_| - function onClickNewCompoLink(e){ e.preventDefault(); setInputForNewCompoName($(this)); return false; }; - function setInputForNewCompoName($link){ var $form = $('