
YUI( YUI3_config ).use('node', 'event', 'io-ez', function( Y )
{
Y.on( "domready", function( e )
{
Y.all('ul.ezsr-star-rating').each( function( node ){
if ( !node.hasClass('ezsr-star-rating-disabled') )
node.addClass('ezsr-star-rating-enabled');
} );
Y.all('ul.ezsr-star-rating-enabled li a').on( 'click', _rate );
});
function _rate( e )
{
e.preventDefault();
var args = e.currentTarget.getAttribute('id').split('_');
Y.all('#ezsr_rating_' + args[1]).removeClass('ezsr-star-rating-enabled');
Y.all('#ezsr_rating_' + args[1] + ' li a').detach( 'click', _rate );
Y.io.ez( 'ezstarrating::rate::' + args[1] + '::' + args[2] + '::' + args[3], { on : { success: _callBack } } );
}
function _callBack( id, o )
{
if ( o.responseJSON && o.responseJSON.content !== '' )
{
var data = o.responseJSON.content;
if ( data.rated  )
{
if ( data.already_rated )
Y.all('#ezsr_changed_rating_' + data.id).removeClass('hide');
else
Y.all('#ezsr_just_rated_' + data.id).removeClass('hide');
Y.all('#ezsr_rating_percent_' + data.id).setStyle('width', (( data.stats.rounded_average / 5 ) * 100 ) + '%' );
Y.all('#ezsr_average_' + data.id).setContent( data.stats.rating_average );
Y.all('#ezsr_total_' + data.id).setContent( data.stats.rating_count );
}
else if ( data.already_rated  )
Y.all('#ezsr_has_rated_' + data.id).removeClass('hide');
}
else
{
alert( o.responseJSON.error_text );
}
}
});
﻿/**
* lottaservices : Ajax extension for eZ Publish 4.x
* Created on     : <01-Apr-2010 00:00:00 jk>
*
* This piece of code depends on YUI 3.0 and eZJSCore ( Y.io.ez() plugin ).
*
* @copyright Copyright (c) 2010, lemonjuice
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2.0
* @package eZ Starating extension for eZ Publish
*
*/
YUI( YUI3_config ).use('node', 'event', 'io-ez', 'io-form', function( Y )
{
Y.on( "domready", function( e )
{
Y.all('a.lotta_editcomment_link').on( 'click', _edit_comment_show_form );
Y.all('a.lotta_deletecomment_link').on( 'click', _delete_comment_submit );
Y.all('a.lotta_createcomment_link').on( 'click', _create_comment_show_form );
Y.all('form.lottaservices-create-comment-ajax-form').on( 'submit', _create_comment_submit_form );
});
function _edit_comment_show_form (e)
{
alert ('_edit_comment_show_form yui3 not yet impelemnetd' + e.currentTarget);
return;
try
{
e.preventDefault();
var a = e.currentTarget._node;
var aId = a.getAttribute('id');
alert ('id = ' + aId);
var args = aId.split('_');
var commenID = args[args.length-1];
alert ('id = ' + commenID);
}
catch (e)
{
alert (e);
}
}
function _create_comment_show_form (e)
{
try
{
e.preventDefault();
var a = e.currentTarget._node;
lottaHideDiv('lotta_createcomment_response');
lottaHideDiv('lotta_createcomment_response_ajax_waiting');
lottaHideDiv('lotta_createcomment_response_ajax_success');
lottaHideDiv('lotta_createcomment_response_ajax_failure');
lottaShowDiv('lotta_createcomment');
}
catch (e)
{
alert (e);
}
}
function _delete_comment_submit (e)
{
try
{
e.preventDefault();
var a = e.currentTarget._node;
var aId = a.getAttribute('id');
var args = aId.split('_');
var commentID = args[args.length-1];
var data = [];
var el = 0;
data[el++] = "NodeID=" + commentID;
data[el++] = "ClassIdentifier=" + "comment";
data[el++] = "ClassID=" + "13";
var datastring = data.join('&');
Y.io.ez( 'lottaservices::lottaservices_delete_comment', { on : { success: _delete_comment_submit_callback }, data: datastring } );
}
catch (e)
{
alert (e);
}
}
function _create_comment_submit_form( e )
{
try
{
lottaHideDiv('lotta_createcomment');
lottaShowDiv('lotta_createcomment_response');
lottaShowDiv('lotta_createcomment_response_ajax_waiting');
lottaHideDiv('lotta_createcomment_response_ajax_success');
lottaHideDiv('lotta_createcomment_response_ajax_failure');
e.preventDefault();
var f = e.currentTarget._node;
var useDf = true;
var data = [];
var el = 0;
var s = {};
for (i = 0, il = f.childNodes.length; i < il; ++i)
{
var e = f.childNodes[i];
var d = e.disabled;
var n = e.name;
if ((useDf) ? n : (n && !d)) {
n = encodeURIComponent(n) + '=';
v = encodeURIComponent(e.value);
switch (e.type) {
case 'select-one':
if (e.selectedIndex > -1) {
o = e.options[e.selectedIndex];
data[el++] = n + eUC((o.attributes.value && o.attributes.value.specified) ? o.value : o.text);
}
break;
case 'select-multiple':
if (e.selectedIndex > -1) {
for (j = e.selectedIndex, jl = e.options.length; j < jl; ++j) {
o = e.options[j];
if (o.selected) {
data[el++] = n + eUC((o.attributes.value && o.attributes.value.specified) ? o.value : o.text);
}
}
}
break;
case 'radio':
case 'checkbox':
if(e.checked){
data[el++] = n + v;
}
break;
case 'file':
case undefined:
case 'reset':
case 'button':
break;
case 'submit':
default:
data[el++] = n + v;
}
}
}
var datastring = data.join('&');
Y.io.ez( 'lottaservices::lottaservices_create_comment', { on : { success: _create_comment_submit_callback }, data: datastring } );
}
catch (e)
{
alert (e);
}
}
function _delete_comment_submit_callback( id, o )
{
try
{
if ( o.responseJSON && o.responseJSON.content !== '' )
{
var data = o.responseJSON.content;
lottaHideDiv('lotta_createcomment_response_ajax_waiting');
lottaHideDiv('lotta_createcomment_response_ajax_failure');
lottaHideDiv('lotta_createcomment_response_ajax_success');
lottaHideDiv('lotta_createcomment_response');
var ajaxSuccess = ((data.success == 'true') || (data.success == '1'));
var deletedNodeID = data.deletedNodeID;
if (ajaxSuccess)
{
try
{
Y.get('#comment_' + deletedNodeID).remove();
var divCount = Y.get('#lotta_createcomment_count');
var oldCount = parseInt(divCount._node.innerHTML);
Y.get('#lotta_createcomment_count').setContent( "" + (oldCount - 1));
Y.get('#comment_count').setContent( "" + (oldCount - 1));
if (oldCount -1 == 0)
{
lottaHideDiv('comments');
}
}
catch (e2)
{
}
}
else
{
try
{
Y.get('#comment_' + deletedNodeID).remove();
var divCount = Y.get('#lotta_createcomment_count');
var oldCount = parseInt(divCount._node.innerHTML);
Y.get('#lotta_createcomment_count').setContent( "" + (oldCount - 1));
Y.get('#comment_count').setContent( "" + (oldCount - 1));
if (oldCount - 1 == 0)
{
lottaHideDiv('comments');
}
}
catch (e2)
{
}
}
}
else
{
alert( o.responseJSON.error_text );
}
}
catch (e)
{
alert (e);
}
}
function _create_comment_submit_callback( id, o )
{
try
{
if ( o.responseJSON && o.responseJSON.content !== '' )
{
var data = o.responseJSON.content;
lottaHideDiv('lotta_createcomment_response_ajax_waiting');
lottaHideDiv('lotta_createcomment_response_ajax_failure');
lottaHideDiv('lotta_createcomment_response_ajax_success');
lottaShowDiv('lotta_createcomment_response');
var ajaxSuccess = ((data.success == 'true') || (data.success == '1'));
if (ajaxSuccess)
{
var insertedID = data.insertedID;
var insertedObject = data.object;
var insertedSubject = insertedObject.subject;
var insertedPublished = insertedObject.published;
var insertedAuthorName = insertedObject.authorName;
var insertedMessage = insertedObject.message;
lottaShowDiv('lotta_createcomment_response_ajax_success');
lottaShowDiv('comments');
Y.get('#lotta_createcomment_response_ajax_success').setContent( "OK: "  + data.message );
var divCount = Y.get('#lotta_createcomment_count');
var oldCount = parseInt(divCount._node.innerHTML);
Y.get('#lotta_createcomment_count').setContent( "" + (oldCount + 1));
Y.get('#comment_count').setContent( "" + (oldCount + 1));
var divCommentsBody = Y.get('#comments_body');
var divCommentMaster = Y.get('#comment_master');
var divCommentMasterStyle = '';
var divCommentMasterHtml = divCommentMaster._node.innerHTML;
divCommentMasterHtml = divCommentMasterHtml.replace('comment_master', 'comment_' + insertedID);
divCommentMasterHtml = divCommentMasterHtml.replace('<!-- subject -->', insertedSubject);
divCommentMasterHtml = divCommentMasterHtml.replace('<!-- published -->', insertedPublished);
divCommentMasterHtml = divCommentMasterHtml.replace('<!-- authorName -->', insertedAuthorName);
divCommentMasterHtml = divCommentMasterHtml.replace('<!-- message -->', insertedMessage);
divCommentMasterHtml = divCommentMasterHtml.replace('##nodeID##', insertedID);
divCommentMasterHtml = divCommentMasterHtml.replace('##nodeID##', insertedID);
if (divCommentMasterHtml.indexOf("<!-- width:202px -->") >= 0)
{
divCommentMasterStyle = "width:202px;";
}
else
{
divCommentMasterStyle = "width:294px;";
}
divCommentMasterHtml = '<div id="' + 'comment_' + insertedID +'" class="comment_body" style="' + divCommentMasterStyle + '">' + divCommentMasterHtml  + '</div>';
var newNode = Y.Node.create(divCommentMasterHtml);
divCommentsBody.prepend(newNode);
var newNode = Y.get('#comment_' + insertedID);
var newEditLinkNode = Y.get('#lotta_editcomment_link_' + insertedID);
var newDeleteLinkNode = Y.get('#lotta_deletecomment_link_' + insertedID);
newDeleteLinkNode.on('click', _delete_comment_submit);
}
else
{
alert ("create !ajaxSuccess: ");
lottaShowDiv('lotta_createcomment_response_ajax_failure');
Y.get('#lotta_createcomment_response_ajax_failure').setContent( "ERROR: "   + data.message);
}
}
else
{
lottaHideDiv('lotta_createcomment_response_ajax_waiting');
lottaHideDiv('lotta_createcomment_response_ajax_success');
lottaShowDiv('lotta_createcomment_response');
lottaShowDiv('lotta_createcomment_response_ajax_failure');
alert( o.responseJSON.error_text );
Y.all('#lotta_createcomment_response_ajax_success').setContent( 'Http-Error: ' + o.responseJSON.error_text );
}
}
catch (e)
{
alert (e);
}
}
});

