103 lines
2.7 KiB
JavaScript
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); |