flags update

Signed-off-by: bachy <git@g-u-i.net>
This commit is contained in:
bachy 2013-03-12 12:46:56 +01:00
parent 763ce99b95
commit 5b845da277
2 changed files with 44 additions and 19 deletions

File diff suppressed because one or more lines are too long

View File

@ -21,7 +21,7 @@ MaterioFlag = function(){
.bind('view-mode-changed', onViewModeChanged) .bind('view-mode-changed', onViewModeChanged)
.bind('history-state-change', onHistoryStateChange); .bind('history-state-change', onHistoryStateChange);
ajaxifyLinks(); // ajaxifyLinks();
// trigger updated event for direct html loading // trigger updated event for direct html loading
if(isList()){ if(isList()){
@ -42,7 +42,7 @@ MaterioFlag = function(){
}; };
function buildBlocks(activename){ function buildBlocks(activename){
//trace('MaterioFlag :: buildBlocks', activename); //trace('MaterioFlag :: buildBlocks | activename', activename);
if($('#block-materio-flag-materio-flag-mybookmarks').length){ if($('#block-materio-flag-materio-flag-mybookmarks').length){
var type = 'bookmarks'; var type = 'bookmarks';
@ -66,6 +66,7 @@ MaterioFlag = function(){
case 'lists': case 'lists':
// nav block // nav block
$('a.open-list:not(.ajax-processed)', '#block-materio-flag-materio-flag-mylists-nav').each(function(index){ $('a.open-list:not(.ajax-processed)', '#block-materio-flag-materio-flag-mylists-nav').each(function(index){
//trace('nav block a.open-list this', this);
$this = $(this) $this = $(this)
.bind('click', onClickOpenLink) .bind('click', onClickOpenLink)
.addClass('ajax-processed'); .addClass('ajax-processed');
@ -75,6 +76,16 @@ MaterioFlag = function(){
$('<span class="preview"><i class="icon-eye-open"></i></span>').attr('name', name).insertAfter($this).bind('click', onClickShowPreview); $('<span class="preview"><i class="icon-eye-open"></i></span>').attr('name', name).insertAfter($this).bind('click', onClickShowPreview);
}); });
$('a.edit-list:not(.ajax-processed)', '#block-materio-flag-materio-flag-mylists-nav')
.bind('click', onCLickEditList)
.addClass('ajax-processed');
$('a.flag-lists-create:not(.ajax-processed)', '#block-materio-flag-materio-flag-mylists-nav')
.bind('click', onClickCreatLink)
.addClass('ajax-processed');
// preview block // preview block
$('section.flag-list:not(.ajax-processed)', '#block-materio-flag-materio-flag-mylists').each(function(index){ $('section.flag-list:not(.ajax-processed)', '#block-materio-flag-materio-flag-mylists').each(function(index){
var name = $(this).attr('class').match(/flag_lists_[^_]+_[0-9]+/); var name = $(this).attr('class').match(/flag_lists_[^_]+_[0-9]+/);
@ -86,6 +97,7 @@ MaterioFlag = function(){
break; break;
} }
// trigger refresh block event for enabling lazyload images // trigger refresh block event for enabling lazyload images
setTimeout(function(){ setTimeout(function(){
$.event.trigger({ $.event.trigger({
@ -130,7 +142,6 @@ MaterioFlag = function(){
}); });
} }
ajaxifyLinks();
}; };
function ajaxifyLinks(container){ function ajaxifyLinks(container){
@ -154,9 +165,6 @@ MaterioFlag = function(){
.bind('click', onClickCreatLink) .bind('click', onClickCreatLink)
.addClass('ajax-processed'); .addClass('ajax-processed');
$('a.edit-list:not(.ajax-processed)', container)
.bind('click', onCLickEditList)
.addClass('ajax-processed');
}; };
/** /**
@ -202,6 +210,7 @@ MaterioFlag = function(){
}; };
function loadList(fid){ function loadList(fid){
//trace('MaterioFlag :: loadList | fid', fid);
var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materioflag/ajax/list/'+fid; var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materioflag/ajax/list/'+fid;
$.event.trigger('loading-content'); $.event.trigger('loading-content');
@ -259,6 +268,7 @@ MaterioFlag = function(){
* onClickCreatLink(event) * onClickCreatLink(event)
*/ */
function onClickCreatLink(event){ function onClickCreatLink(event){
//trace('MaterioFlag :: onClickCreatLink | event', event);
event.preventDefault(); event.preventDefault();
var $link = $(event.currentTarget); var $link = $(event.currentTarget);
var type = $link.attr('href').match(/[^\/]*$/); var type = $link.attr('href').match(/[^\/]*$/);
@ -273,7 +283,7 @@ MaterioFlag = function(){
}; };
function showCreateListForm(json, $link){ function showCreateListForm(json, $link){
//trace('MaterioFlag :: showCreateListForm | json', json);
// google analytics // google analytics
$.event.trigger({ $.event.trigger({
type:"record-stat", type:"record-stat",
@ -329,6 +339,9 @@ MaterioFlag = function(){
}; };
function createList($modal, type, title, $link){ function createList($modal, type, title, $link){
//trace('materioflag :: createList | title', title);
$('.flag-lists-create').addClass('loading');
var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'flag-lists/add/'+type+'/js'; var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'flag-lists/add/'+type+'/js';
$.getJSON(url, {name:title}, function(data) { $.getJSON(url, {name:title}, function(data) {
if (data.error) { if (data.error) {
@ -352,6 +365,7 @@ MaterioFlag = function(){
}; };
function flagEntityWithList(name, nid, token){ function flagEntityWithList(name, nid, token){
//trace('MaterioFlag :: flagEntityWithList | name', name);
// var ret; // var ret;
// Send POST request // Send POST request
$.ajax({ $.ajax({
@ -385,9 +399,12 @@ MaterioFlag = function(){
}; };
function refreshNodeLinks(){ function refreshNodeLinks(){
//trace('MaterioFlag :: refreshNodeLinks');
var nids = new Array(); var nids = new Array();
$('.flag-lists-entity-links').parents('.node').each(function(index) { $('.flag-lists-entity-links')
// .addClass('loading')
.parents('.node')
.each(function(index) {
nids.push($(this).attr('class').match(/node-([0-9]+)/)[1]); nids.push($(this).attr('class').match(/node-([0-9]+)/)[1]);
}); });
// trace('MaterioFlag :: nids', nids); // trace('MaterioFlag :: nids', nids);
@ -404,6 +421,7 @@ MaterioFlag = function(){
// if (typeof Drupal.flagLink != 'undefined') // if (typeof Drupal.flagLink != 'undefined')
// Drupal.flagLink($('.node-'+nid+' .flag-lists-entity-links')); // Drupal.flagLink($('.node-'+nid+' .flag-lists-entity-links'));
// TODO: sortir ajaxifyLinks de la boucle, je pense que ça prend trop de ressources
ajaxifyLinks('.node-'+nid+' .flag-lists-entity-links'); ajaxifyLinks('.node-'+nid+' .flag-lists-entity-links');
} }
@ -419,6 +437,7 @@ MaterioFlag = function(){
* onCLickEditList(event) * onCLickEditList(event)
*/ */
function onCLickEditList(event){ function onCLickEditList(event){
//trace('MaterioFlag :: onCLickEditList | event', event);
// TODO: empécher le double formulaire // TODO: empécher le double formulaire
event.preventDefault(); event.preventDefault();
var $link = $(event.currentTarget); var $link = $(event.currentTarget);
@ -435,7 +454,7 @@ MaterioFlag = function(){
}; };
function showEditListForm(json, $link){ function showEditListForm(json, $link){
//trace('MaterioFlag :: showEditListForm | json', json);
// google analytics // google analytics
$.event.trigger({ $.event.trigger({
type:"record-stat", type:"record-stat",
@ -475,12 +494,12 @@ MaterioFlag = function(){
// google analytics // google analytics
var action = "submit edit form"; var action = "submit edit form";
editList($modal, fid, name, title); saveList($modal, fid, name, title);
break; break;
case 'delete': case 'delete':
//trace('MaterioFlag :: delete',event); //trace('MaterioFlag :: delete',event);
if(confirm('Do you realy want to delete the folder '+title+'?')){ if(confirm('Do you realy want to delete your '+title+' folder ?')){
var action = "submit delete form"; var action = "submit delete form";
deleteList($modal, fid); deleteList($modal, fid);
}else{ }else{
@ -503,7 +522,11 @@ MaterioFlag = function(){
// TODO: esc keypressed close the form // TODO: esc keypressed close the form
}; };
function editList($modal, fid, name, title){ function saveList($modal, fid, name, title){
//trace('MaterioFlag :: saveList | fid : '+fid+'| name', name);
$('.flag-lists-link.fid-'+fid).addClass('loading');
var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materioflag/editlist/'+fid+'/'+name+'/'+title; var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materioflag/editlist/'+fid+'/'+name+'/'+title;
$.getJSON(url, function(data) { $.getJSON(url, function(data) {
if (data.error) { if (data.error) {
@ -529,7 +552,10 @@ MaterioFlag = function(){
}; };
function deleteList($modal, fid){ function deleteList($modal, fid){
// prompt('are you sure ?'); //trace('MaterioFlag :: deletelist | fid', fid);
$('.flag-lists-link.fid-'+fid).hide();
var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materioflag/deletelist/'+fid; var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materioflag/deletelist/'+fid;
$.getJSON(url, function(data) { $.getJSON(url, function(data) {
if (data.error) { if (data.error) {
@ -554,7 +580,6 @@ MaterioFlag = function(){
function onUnflagList(event){ function onUnflagList(event){
//trace('onUnflagList', event); //trace('onUnflagList', event);
$(this).parents('article.node').addClass('removed'); $(this).parents('article.node').addClass('removed');
}; };
/** /**