|
@@ -15,6 +15,7 @@
|
|
start:0,
|
|
start:0,
|
|
end:0
|
|
end:0
|
|
};
|
|
};
|
|
|
|
+ var _corpus_promise;
|
|
|
|
|
|
// ___ _ _
|
|
// ___ _ _
|
|
// |_ _|_ _ (_) |_
|
|
// |_ _|_ _ (_) |_
|
|
@@ -23,6 +24,11 @@
|
|
function init(){
|
|
function init(){
|
|
console.log("EdlpTheme init()");
|
|
console.log("EdlpTheme init()");
|
|
|
|
|
|
|
|
+ if(!drupalSettings.path.isFront)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ _deferred = initEvents();
|
|
|
|
+
|
|
_audioPlayer = new AudioPlayer();
|
|
_audioPlayer = new AudioPlayer();
|
|
_compoPlayer = new CompoPlayer();
|
|
_compoPlayer = new CompoPlayer();
|
|
|
|
|
|
@@ -30,11 +36,10 @@
|
|
|
|
|
|
initHistory();
|
|
initHistory();
|
|
|
|
|
|
- if(!drupalSettings.path.isFront)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- initEvents();
|
|
|
|
-
|
|
|
|
|
|
+ // if(!drupalSettings.path.isFront)
|
|
|
|
+ // return;
|
|
|
|
+ //
|
|
|
|
+ // initEvents();
|
|
};
|
|
};
|
|
|
|
|
|
// ___ _
|
|
// ___ _
|
|
@@ -42,8 +47,15 @@
|
|
// | _|\ V / -_) ' \ _(_-<
|
|
// | _|\ V / -_) ' \ _(_-<
|
|
// |___|\_/\___|_||_\__/__/
|
|
// |___|\_/\___|_||_\__/__/
|
|
function initEvents(){
|
|
function initEvents(){
|
|
|
|
+ // https://www.html5rocks.com/en/tutorials/async/deferred/
|
|
|
|
+ var $corpus_df = $.Deferred();
|
|
|
|
+ _corpus_promise = $corpus_df.promise();
|
|
|
|
+
|
|
_$body
|
|
_$body
|
|
- .on('corpus-map-ready', onCorpusMapReady)
|
|
|
|
|
|
+ .on('corpus-map-ready', function(e){
|
|
|
|
+ onCorpusMapReady(e);
|
|
|
|
+ $corpus_df.resolve();
|
|
|
|
+ })
|
|
.on('on-studio-chutier-updated', initAjaxLinks)
|
|
.on('on-studio-chutier-updated', initAjaxLinks)
|
|
.on('studio-initialized', function(e){
|
|
.on('studio-initialized', function(e){
|
|
_compoPlayer.newCompo();
|
|
_compoPlayer.newCompo();
|
|
@@ -247,6 +259,22 @@
|
|
$('a[data-drupal-link-system-path="'+menu_sys_path+'"]').addClass('is-active-trail');
|
|
$('a[data-drupal-link-system-path="'+menu_sys_path+'"]').addClass('is-active-trail');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // if entity has corpus-map's linked document call a filter to corpus map
|
|
|
|
+ if(typeof data.documents_lies != 'undefined'){
|
|
|
|
+ if(_corpus_ready){
|
|
|
|
+ _$body.trigger({
|
|
|
|
+ type:'ajax-node-loaded-linked-documents',
|
|
|
|
+ nids:data.documents_lies
|
|
|
|
+ });
|
|
|
|
+ }else{
|
|
|
|
+ _corpus_promise.done(function(){
|
|
|
|
+ _$body.trigger({
|
|
|
|
+ type:'ajax-node-loaded-linked-documents',
|
|
|
|
+ nids:data.documents_lies
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
// if block attached (eg : from edlp_productions module)
|
|
// if block attached (eg : from edlp_productions module)
|
|
// not used anymore as production block is always present (but not visible)
|
|
// not used anymore as production block is always present (but not visible)
|
|
@@ -378,12 +406,7 @@
|
|
}
|
|
}
|
|
// remove the col
|
|
// remove the col
|
|
$col.remove();
|
|
$col.remove();
|
|
- // if row is empty and we are not in productions or entree notice|index call closeAllModals()
|
|
|
|
- if(!$('.col', _$row).length
|
|
|
|
- && !_$body.is('.entity-type-node.bundle-page')
|
|
|
|
- && !_$body.is('.entity-type-taxonomy_term.bundle-entrees')){
|
|
|
|
- backToFrontPage();
|
|
|
|
- }
|
|
|
|
|
|
+ checkRowEmpty();
|
|
};
|
|
};
|
|
|
|
|
|
// _ _ ___ _ _
|
|
// _ _ ___ _ _
|
|
@@ -625,6 +648,7 @@
|
|
// | (__/ _ \ '_| '_ \ || (_-<
|
|
// | (__/ _ \ '_| '_ \ || (_-<
|
|
// \___\___/_| | .__/\_,_/__/
|
|
// \___\___/_| | .__/\_,_/__/
|
|
// |_|
|
|
// |_|
|
|
|
|
+
|
|
function onCorpusMapReady(e){
|
|
function onCorpusMapReady(e){
|
|
//console.log('theme : onCorpusReady', e);
|
|
//console.log('theme : onCorpusReady', e);
|
|
_corpus_ready = true;
|
|
_corpus_ready = true;
|
|
@@ -1335,53 +1359,6 @@
|
|
// }
|
|
// }
|
|
};
|
|
};
|
|
|
|
|
|
- // ___ _ ___
|
|
|
|
- // | __| _ ___ _ _| |_| _ \__ _ __ _ ___
|
|
|
|
- // | _| '_/ _ \ ' \ _| _/ _` / _` / -_)
|
|
|
|
- // |_||_| \___/_||_\__|_| \__,_\__, \___|
|
|
|
|
- // |___/
|
|
|
|
- function backToFrontPage(pop_state){
|
|
|
|
- console.log('backToFrontPage', pop_state);
|
|
|
|
- closeAllModals();
|
|
|
|
- // assume we are going back to front page
|
|
|
|
- $('body').removeClass().addClass('path-frontpage');
|
|
|
|
- $('a[data-drupal-link-system-path="<front>"]').addClass('is-active');
|
|
|
|
- // close entrees
|
|
|
|
- _$corpus_canvas.trigger({'type':'close-all-entree'});
|
|
|
|
-
|
|
|
|
- if(typeof pop_state == "undefined" || !pop_state){
|
|
|
|
- console.log('backToFrontPage push state');
|
|
|
|
- history.pushState({home:true}, null, drupalSettings.path.baseUrl+drupalSettings.path.currentLanguage);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- function initHome(){
|
|
|
|
- addCloseModalBtnToCols();
|
|
|
|
- // console.log('theme : initHome');
|
|
|
|
- // console.log('theme : initProductions');
|
|
|
|
- var $grid = $('.grid',_$row).masonry({
|
|
|
|
- itemSelector:'.col',
|
|
|
|
- columnWidth:'.col-2',
|
|
|
|
- horizontalOrder: true,
|
|
|
|
- containerStyle: null,
|
|
|
|
- // disable initial layout
|
|
|
|
- // initLayout: false,
|
|
|
|
- });
|
|
|
|
- // bind event
|
|
|
|
- // $grid.masonry( 'on', 'layoutComplete', function() {
|
|
|
|
- // console.log('layout is complete');
|
|
|
|
- // });
|
|
|
|
-
|
|
|
|
- // layout Masonry after each image loads
|
|
|
|
- $grid.imagesLoaded().progress( function() {
|
|
|
|
- $grid.masonry('layout');
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- $grid.imagesLoaded(function(){
|
|
|
|
- $grid.masonry('layout');
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
// ___ _ _ _
|
|
// ___ _ _ _
|
|
// | _ \_ _ ___ __| |_ _ __| |_(_)___ _ _ ___
|
|
// | _ \_ _ ___ __| |_ _ __| |_(_)___ _ _ ___
|
|
// | _/ '_/ _ \/ _` | || / _| _| / _ \ ' \(_-<
|
|
// | _/ '_/ _ \/ _` | || / _| _| / _ \ ' \(_-<
|
|
@@ -1434,6 +1411,54 @@
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ // ___ _ ___
|
|
|
|
+ // | __| _ ___ _ _| |_| _ \__ _ __ _ ___
|
|
|
|
+ // | _| '_/ _ \ ' \ _| _/ _` / _` / -_)
|
|
|
|
+ // |_||_| \___/_||_\__|_| \__,_\__, \___|
|
|
|
|
+ // |___/
|
|
|
|
+ function backToFrontPage(pop_state){
|
|
|
|
+ console.log('backToFrontPage', pop_state);
|
|
|
|
+ closeAllModals();
|
|
|
|
+ // assume we are going back to front page
|
|
|
|
+ $('body').removeClass().addClass('path-frontpage');
|
|
|
|
+ $('a[data-drupal-link-system-path="<front>"]').addClass('is-active');
|
|
|
|
+ // close entrees
|
|
|
|
+ _$corpus_canvas.trigger({'type':'close-all-entree'});
|
|
|
|
+ _$corpus_canvas.trigger({'type':'scramble-collection'});
|
|
|
|
+
|
|
|
|
+ if(typeof pop_state == "undefined" || !pop_state){
|
|
|
|
+ console.log('backToFrontPage push state');
|
|
|
|
+ history.pushState({home:true}, null, drupalSettings.path.baseUrl+drupalSettings.path.currentLanguage);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function initHome(){
|
|
|
|
+ addCloseModalBtnToCols();
|
|
|
|
+ // console.log('theme : initHome');
|
|
|
|
+ // console.log('theme : initProductions');
|
|
|
|
+ var $grid = $('.grid',_$row).masonry({
|
|
|
|
+ itemSelector:'.col',
|
|
|
|
+ columnWidth:'.col-2',
|
|
|
|
+ horizontalOrder: true,
|
|
|
|
+ containerStyle: null,
|
|
|
|
+ // disable initial layout
|
|
|
|
+ // initLayout: false,
|
|
|
|
+ });
|
|
|
|
+ // bind event
|
|
|
|
+ // $grid.masonry( 'on', 'layoutComplete', function() {
|
|
|
|
+ // console.log('layout is complete');
|
|
|
|
+ // });
|
|
|
|
+
|
|
|
|
+ // layout Masonry after each image loads
|
|
|
|
+ $grid.imagesLoaded().progress( function() {
|
|
|
|
+ $grid.masonry('layout');
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ $grid.imagesLoaded(function(){
|
|
|
|
+ $grid.masonry('layout');
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
// __ __ _ _
|
|
// __ __ _ _
|
|
// | \/ |___ __| |__ _| |___
|
|
// | \/ |___ __| |__ _| |___
|
|
// | |\/| / _ \/ _` / _` | (_-<
|
|
// | |\/| / _ \/ _` / _` | (_-<
|
|
@@ -1444,6 +1469,21 @@
|
|
_$row.html('');
|
|
_$row.html('');
|
|
_$ajaxLinks.removeClass('is-active');
|
|
_$ajaxLinks.removeClass('is-active');
|
|
_$body.trigger({'type':'all-modal-closed'});
|
|
_$body.trigger({'type':'all-modal-closed'});
|
|
|
|
+ // checkRowEmpty();
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ function checkRowEmpty(){
|
|
|
|
+ // TODO: remove is-active class from index or notice entree links
|
|
|
|
+ // if row is empty and we are not in productions or entree notice|index call closeAllModals()
|
|
|
|
+ if(!$('.col', _$row).length && !_$body.is('.entity-type-taxonomy_term.bundle-entrees')){
|
|
|
|
+ if(!_$body.is('.entity-type-node.bundle-page')){
|
|
|
|
+ // we weren't on production or entree, so go back to front page
|
|
|
|
+ backToFrontPage();
|
|
|
|
+ }else{
|
|
|
|
+ // if we were on production page just scramble collection in case of map was filtered
|
|
|
|
+ _$corpus_canvas.trigger({'type':'scramble-collection'});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
};
|
|
};
|
|
|
|
|
|
// _ _ _
|
|
// _ _ _
|