personnale notes front ajax is working, remains to improve the display, do it like liked materiaux
This commit is contained in:
@@ -1,2 +1,10 @@
|
||||
|
||||
(function($){MaterioPersonalNotes=function(){function init(){trace('MaterioPersonalNotes :: init');};init();};$(document).ready(function(){var materioflag=new MaterioPersonalNotes();});})(jQuery);
|
||||
(function($){MaterioPersonalNotes=function(){function init(){trace('MaterioPersonalNotes :: init');$(document).bind('resultscompleted resultschanged previewloaded',onResultsUpdated);};function onResultsUpdated(event){trace('MaterioPersonalNotes :: onResultsUpdated',event);ajaxifyLinks(event.container);};function ajaxifyLinks(container){trace('MaterioPersonalNotes :: ajaxifyLinks',container);container=((container!=null)?container:'body');$('a.personal-note-link:not(.ajax-processed), ',container).bind('click',onClickLink).addClass('ajax-processed');};function onClickLink(event){event.preventDefault();var $link=$(event.currentTarget);var note_nid=$link.attr('note_nid');var action=note_nid?'edit':'create';var src_nid=$link.attr('src_nid');trace('MaterioPersonalNotes :: src_nid',src_nid);trace('MaterioPersonalNotes :: note_nid',note_nid);var url=Drupal.settings.basePath
|
||||
+Drupal.settings.pathPrefix
|
||||
+'materio_personalnotes/form/'+action
|
||||
+'/'+src_nid;if(action=='edit'){url+='/'+note_nid;}
|
||||
$.getJSON(url,function(json){trace('MaterioPersonalNotes :: '+action+' : json',json);if(json.new_note_nid){updateNoteLink($link,json.new_note_nid);}
|
||||
showNoteForm(json);});return false;};function updateNoteLink($link,new_note_nid){trace('MaterioPersonalNotes :: updateNoteLink : new_note_nid',new_note_nid);$link.attr('note_nid',new_note_nid);$link.attr('href',Drupal.settings.pathPrefix+'node/'+new_note_nid+'/edit');};function showNoteForm(json){trace('MaterioPersonalNotes :: showNoteForm');$.event.trigger({type:"record-stat",categorie:"PersonalNotes",action:'show create form'});var $modal=$('<div id="modal" class="modal note-modal"/>').appendTo('body');$modal.css({position:'absolute',top:'40%',left:'50%',marginLeft:'-150px',width:'500px',zIndex:"99999"}).append($('<div class="close"></i><div>').bind('click',function(){trace('close note');$(this).parents('#modal').remove();}));$modal.append(json.rendered_form).find('textarea').focus().bind('change keyup paste',function(event){var note_nid=$(this).parents('form').find('input[name="note_nid"]').val();saveNote($(this).val(),note_nid);});$modal.find('input[type="submit"], .homepage-textfield').hide();};function saveNote(text,note_nid){trace(text,'MaterioPersonalNotes :: saveNote : text');var url=Drupal.settings.basePath
|
||||
+Drupal.settings.pathPrefix
|
||||
+'materio_personalnotes/save'
|
||||
+'/'+note_nid;$.post(url,{'content':text},function(data,status){trace('MaterioPersonalNotes :: save : status',status);});};init();};$(document).ready(function(){var materioflag=new MaterioPersonalNotes();});})(jQuery);
|
@@ -12,14 +12,132 @@ MaterioPersonalNotes = function(){
|
||||
function init(){
|
||||
trace('MaterioPersonalNotes :: init');
|
||||
|
||||
$(document)
|
||||
.bind('resultscompleted resultschanged previewloaded', onResultsUpdated);
|
||||
// .bind('init-scroller-pager', onInitScrollerPager)
|
||||
// .bind('load-scroller-pager', onLoadScrollerPager)
|
||||
// .bind('view-mode-changed', onViewModeChanged)
|
||||
// .bind('history-state-change', onHistoryStateChange);
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
function onResultsUpdated(event){
|
||||
trace('MaterioPersonalNotes :: onResultsUpdated', event);
|
||||
ajaxifyLinks(event.container);
|
||||
};
|
||||
|
||||
|
||||
function ajaxifyLinks(container){
|
||||
trace('MaterioPersonalNotes :: ajaxifyLinks', container);
|
||||
|
||||
container = ((container != null) ? container : 'body');
|
||||
|
||||
// trace('MaterioFlag :: typeof Drupal.flagLink', typeof Drupal.flagLink);
|
||||
// if (typeof Drupal.flagLink != 'undefined')
|
||||
// Drupal.flagLink(container);
|
||||
|
||||
$('a.personal-note-link:not(.ajax-processed), ', container)
|
||||
.bind('click', onClickLink)
|
||||
.addClass('ajax-processed');
|
||||
|
||||
// $('a.personal-note-edit:not(.ajax-processed)', container)
|
||||
// .bind('click', {'action':'edit'}, onClickLink)
|
||||
// .addClass('ajax-processed');
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* onClickCreatLink(event)
|
||||
*/
|
||||
function onClickLink(event){
|
||||
// trace('MaterioPersonalNotes :: onClickLink | '+action+' | event', event);
|
||||
event.preventDefault();
|
||||
var $link = $(event.currentTarget);
|
||||
var note_nid = $link.attr('note_nid');
|
||||
var action = note_nid ? 'edit' : 'create';
|
||||
var src_nid = $link.attr('src_nid');
|
||||
trace('MaterioPersonalNotes :: src_nid', src_nid);
|
||||
trace('MaterioPersonalNotes :: note_nid', note_nid);
|
||||
|
||||
var url = Drupal.settings.basePath
|
||||
+Drupal.settings.pathPrefix
|
||||
+'materio_personalnotes/form/'+action
|
||||
+'/'+src_nid;
|
||||
|
||||
if(action == 'edit'){
|
||||
url += '/'+note_nid;
|
||||
}
|
||||
|
||||
$.getJSON(url, function(json){
|
||||
trace('MaterioPersonalNotes :: '+action+' : json', json);
|
||||
if(json.new_note_nid){
|
||||
updateNoteLink($link, json.new_note_nid);
|
||||
}
|
||||
showNoteForm(json);
|
||||
});
|
||||
return false;
|
||||
};
|
||||
|
||||
function updateNoteLink($link, new_note_nid){
|
||||
trace('MaterioPersonalNotes :: updateNoteLink : new_note_nid', new_note_nid);
|
||||
$link.attr('note_nid', new_note_nid);
|
||||
$link.attr('href', Drupal.settings.pathPrefix+'node/'+new_note_nid+'/edit');
|
||||
};
|
||||
|
||||
function showNoteForm(json){
|
||||
trace('MaterioPersonalNotes :: showNoteForm');
|
||||
// google analytics
|
||||
$.event.trigger({
|
||||
type:"record-stat",
|
||||
categorie:"PersonalNotes",
|
||||
action: 'show create form'
|
||||
});
|
||||
|
||||
var $modal = $('<div id="modal" class="modal note-modal"/>').appendTo('body');
|
||||
$modal
|
||||
.css({
|
||||
position:'absolute',
|
||||
top:'40%', left:'50%',
|
||||
marginLeft:'-150px', width:'500px',
|
||||
zIndex:"99999"
|
||||
})
|
||||
.append($('<div class="close"></i><div>')
|
||||
.bind('click', function(){
|
||||
trace('close note');
|
||||
$(this).parents('#modal').remove();
|
||||
})
|
||||
);
|
||||
$modal
|
||||
.append(json.rendered_form)
|
||||
.find('textarea')
|
||||
.focus()
|
||||
.bind('change keyup paste', function(event){
|
||||
// trace('text changed', $(this).val());
|
||||
var note_nid = $(this).parents('form').find('input[name="note_nid"]').val();
|
||||
saveNote($(this).val(), note_nid);
|
||||
});
|
||||
$modal
|
||||
.find('input[type="submit"], .homepage-textfield').hide();
|
||||
// TODO: esc keypressed close the form
|
||||
};
|
||||
|
||||
function saveNote(text, note_nid){
|
||||
trace(text, 'MaterioPersonalNotes :: saveNote : text');
|
||||
var url = Drupal.settings.basePath
|
||||
+Drupal.settings.pathPrefix
|
||||
+'materio_personalnotes/save'
|
||||
+'/'+note_nid;
|
||||
|
||||
$.post(url, {'content':text}, function(data, status){
|
||||
trace('MaterioPersonalNotes :: save : status', status);
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
init();
|
||||
|
||||
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
|
Reference in New Issue
Block a user