production page can now filter the cospus map
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
start:0,
|
||||
end:0
|
||||
};
|
||||
var _corpus_promise;
|
||||
|
||||
// ___ _ _
|
||||
// |_ _|_ _ (_) |_
|
||||
@@ -23,6 +24,11 @@
|
||||
function init(){
|
||||
console.log("EdlpTheme init()");
|
||||
|
||||
if(!drupalSettings.path.isFront)
|
||||
return;
|
||||
|
||||
_deferred = initEvents();
|
||||
|
||||
_audioPlayer = new AudioPlayer();
|
||||
_compoPlayer = new CompoPlayer();
|
||||
|
||||
@@ -30,11 +36,10 @@
|
||||
|
||||
initHistory();
|
||||
|
||||
if(!drupalSettings.path.isFront)
|
||||
return;
|
||||
|
||||
initEvents();
|
||||
|
||||
// if(!drupalSettings.path.isFront)
|
||||
// return;
|
||||
//
|
||||
// initEvents();
|
||||
};
|
||||
|
||||
// ___ _
|
||||
@@ -42,8 +47,15 @@
|
||||
// | _|\ V / -_) ' \ _(_-<
|
||||
// |___|\_/\___|_||_\__/__/
|
||||
function initEvents(){
|
||||
// https://www.html5rocks.com/en/tutorials/async/deferred/
|
||||
var $corpus_df = $.Deferred();
|
||||
_corpus_promise = $corpus_df.promise();
|
||||
|
||||
_$body
|
||||
.on('corpus-map-ready', onCorpusMapReady)
|
||||
.on('corpus-map-ready', function(e){
|
||||
onCorpusMapReady(e);
|
||||
$corpus_df.resolve();
|
||||
})
|
||||
.on('on-studio-chutier-updated', initAjaxLinks)
|
||||
.on('studio-initialized', function(e){
|
||||
_compoPlayer.newCompo();
|
||||
@@ -247,6 +259,22 @@
|
||||
$('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)
|
||||
// not used anymore as production block is always present (but not visible)
|
||||
@@ -378,12 +406,7 @@
|
||||
}
|
||||
// remove the col
|
||||
$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){
|
||||
//console.log('theme : onCorpusReady', e);
|
||||
_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('');
|
||||
_$ajaxLinks.removeClass('is-active');
|
||||
_$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'});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// _ _ _
|
||||
|
||||
Reference in New Issue
Block a user