materio-base-legacy/js/materio_flag.js
bachy 1d11663ec4 début de modal sans ctools
Signed-off-by: bachy <git@g-u-i.net>
2012-11-01 01:10:02 +01:00

103 lines
2.7 KiB
JavaScript

// @codekit-prepend "gui.js"
(function($) {
MaterioFlag = function(){
/**
* init()
*/
function init(){
trace('init MaterioFlag');
$(document).bind('flagGlobalAfterLinkUpdate', onFlaging);
$(document).bind('resultscompleted', onResultsUpdated);
ajaxifyLinks();
};
function onFlaging(event){
trace('onFlaging', event);
if($('#block-materio-flag-materio-flag-mybookmarks').length){
$.getJSON('/materioflag/refresh/block/bookmarks', function(json){
trace('json', json);
$('#block-materio-flag-materio-flag-mybookmarks').replaceWith(json.block);
Drupal.flagLink('#block-materio-flag-materio-flag-mybookmarks');
// TODO: update flags stars on search results after unflaging from block
$.event.trigger('mybookmarks-block-updated');
});
}
if($('#block-materio-flag-materio-flag-mylists').length){
$.getJSON('/materioflag/refresh/block/mylists', function(json){
trace('json', json);
$('#block-materio-flag-materio-flag-mylists').replaceWith(json.block);
Drupal.flagLink('#block-materio-flag-materio-flag-mylists');
// TODO: update flags stars on search results after unflaging from block
$.event.trigger('mylists-block-updated');
});
}
};
function onResultsUpdated(event){
trace('onResultsUpdated', event);
ajaxifyLinks(event.container);
};
function ajaxifyLinks(cont){
trace('ajaxifyLinks');
var container = cont || 'body';
$('a.flag-lists-create:not(.ajax)', container)
.bind('click', onClickCreatLink)
.addClass('ajax');
};
function onClickCreatLink(event){
event.preventDefault();
var $link = $(event.currentTarget);
var type = $link.attr('href').match(/[^\/]*$/);
// trace('type', type);
var url = 'materioflag/createlist/form/'+type[0];
$.getJSON(url, function(json){
trace('json', json);
showCreateListForm(json);
});
return false;
}
function showCreateListForm(json){
var $modal = $('<div id="modal"/>').appendTo('body');
$modal
.css({
position:'absolute',
top:'40%', left:'50%',
marginLeft:'-200px', width:'400px',
zIndex:"99999"
})
.append(json.return);
// .find('#flag-lists-form').bind('submit', function(event) {
// trace('submit',event);
// var title = $(this).find('input[name*="title"]').val();
// createList(title);
// return false;
// });
};
function createList(title){
var url = 'materioflag/createlist/'+title;
$.getJSON(url, function(json){
trace('json', json);
});
};
init();
};
var materioflag = new MaterioFlag();
})(jQuery);