aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrvelices <rv-github@modusoptimus.com>2008-07-12 00:30:27 +0000
committerrvelices <rv-github@modusoptimus.com>2008-07-12 00:30:27 +0000
commite2ee204c128717069c84437e0aa75bf14b6b352a (patch)
tree72f8059850e19b21168f217aa9a3b09096fdba87
parent22ce08c6fbc9f52152ac300156d72256d76a1d64 (diff)
- add to caddie on picture page done through ajax
git-svn-id: http://piwigo.org/svn/trunk@2429 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/ws_functions.inc.php28
-rw-r--r--template-common/scripts.js66
-rw-r--r--template/yoga/picture.tpl22
-rw-r--r--ws.php6
4 files changed, 85 insertions, 37 deletions
diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php
index 72540f2da..f115d7865 100644
--- a/include/ws_functions.inc.php
+++ b/include/ws_functions.inc.php
@@ -280,6 +280,34 @@ function ws_getVersion($params, &$service)
return new PwgError(403, 'Forbidden');
}
+function ws_caddie_add($params, &$service)
+{
+ if (!is_admin())
+ {
+ return new PwgError(401, 'Access denied');
+ }
+ if ( empty($params['image_id']) )
+ {
+ return new PwgError(WS_ERR_INVALID_PARAM, "Invalid image_id");
+ }
+ global $user;
+ $query = '
+SELECT id
+ FROM '.IMAGES_TABLE.' LEFT JOIN '.CADDIE_TABLE.' ON id=element_id AND user_id='.$user['id'].'
+ WHERE id IN ('.implode(',',$params['image_id']).')
+ AND element_id IS NULL';
+ $datas = array();
+ foreach ( array_from_query($query, 'id') as $id )
+ {
+ array_push($datas, array('element_id'=>$id, 'user_id'=>$user['id']) );
+ }
+ if (count($datas))
+ {
+ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+ mass_inserts(CADDIE_TABLE, array('element_id','user_id'), $datas);
+ }
+ return count($datas);
+}
/**
* returns images per category (web service method)
diff --git a/template-common/scripts.js b/template-common/scripts.js
index 452be1699..e7fa7e9b5 100644
--- a/template-common/scripts.js
+++ b/template-common/scripts.js
@@ -4,11 +4,11 @@ var len = formulaire.elements.length;
var i=0;
for( i = 0; i < len; i++)
{
- if ( formulaire.elements[i].type=='checkbox'
- && formulaire.elements[i].name != 'copie')
- {
- formulaire.elements[i].checked = true;
- }
+ if ( formulaire.elements[i].type=='checkbox'
+ && formulaire.elements[i].name != 'copie')
+ {
+ formulaire.elements[i].checked = true;
+ }
}
}
@@ -18,11 +18,11 @@ var len = formulaire.elements.length;
var i=0;
for( i = 0; i < len; i++)
{
- if ( formulaire.elements[i].type=='checkbox'
- && formulaire.elements[i].name != 'copie')
- {
+ if ( formulaire.elements[i].type=='checkbox'
+ && formulaire.elements[i].name != 'copie')
+ {
formulaire.elements[i].checked = false;
- }
+ }
}
}
@@ -32,44 +32,42 @@ var len = formulaire.elements.length;
var i=0;
for( i=0; i<len; i++)
{
- if ( formulaire.elements[i].type=='checkbox'
- && formulaire.elements[i].name != 'copie')
- {
+ if ( formulaire.elements[i].type=='checkbox'
+ && formulaire.elements[i].name != 'copie')
+ {
formulaire.elements[i].checked = !formulaire.elements[i].checked;
- }
+ }
}
}
function phpWGOpenWindow(theURL,winName,features)
{
- img = new Image();
- img.src = theURL;
- if (img.complete)
- {
- var width=img.width +40;
- var height=img.height +40;
- }
- else
- {
- var width=640;
- var height=480;
- img.onload = resizeWindowToFit;
- }
- newWin = window.open(theURL,winName,features+',left=2,top=1,width=' + width + ',height=' + height);
+ img = new Image();
+ img.src = theURL;
+ if (img.complete)
+ {
+ var width=img.width +40;
+ var height=img.height +40;
+ }
+ else
+ {
+ var width=640;
+ var height=480;
+ img.onload = resizeWindowToFit;
+ }
+ newWin = window.open(theURL,winName,features+',left=2,top=1,width=' + width + ',height=' + height);
}
function resizeWindowToFit()
{
- newWin.resizeTo( img.width+50, img.height+100);
+ newWin.resizeTo( img.width+50, img.height+100);
}
function popuphelp(url)
{
- window.open(
- url,
- 'dc_popup',
- 'alwaysRaised=yes,dependent=yes,toolbar=no,height=420,width=500,menubar=no,resizable=yes,scrollbars=yes,status=no'
- );
+ window.open( url, 'dc_popup',
+ 'alwaysRaised=yes,dependent=yes,toolbar=no,height=420,width=500,menubar=no,resizable=yes,scrollbars=yes,status=no'
+ );
}
@@ -154,7 +152,7 @@ PwgWS.prototype = {
}
catch (e)
{
- this.dispatchError( 200, e.message + '\n' + transport.responseText.substr(0,256).escapeHTML() );
+ this.dispatchError( 200, e.message + '\n' + transport.responseText.substr(0,512) );
}
if (resp!=null)
{
diff --git a/template/yoga/picture.tpl b/template/yoga/picture.tpl
index e52a7a7a7..af22ade18 100644
--- a/template/yoga/picture.tpl
+++ b/template/yoga/picture.tpl
@@ -54,9 +54,25 @@
{if isset($U_ADMIN) }
<a href="{$U_ADMIN}" title="{'link_info_image'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/preferences.png" class="button" alt="{'edit'|@translate}"></a>
{/if}
- {if isset($U_CADDIE) }
- <a href="{$U_CADDIE}" title="{'add to caddie'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/caddie_add.png" class="button" alt="{'caddie'|@translate}"></a>
- {/if}
+ {if isset($U_CADDIE) }{*caddie management BEGIN*}
+<script type="text/javascript">
+{literal}function addToCadie(aElement, rootUrl, id)
+{
+if (aElement.disabled) return;
+aElement.disabled=true;
+var y = new PwgWS(rootUrl);
+
+y.callService(
+ "pwg.caddie.add", {image_id: id} ,
+ {
+ onFailure: function(num, text) { alert(num + " " + text); document.location=aElement.href; },
+ onSuccess: function(result) { aElement.disabled = false; }
+ }
+ );
+}{/literal}
+</script>
+ <a href="{$U_CADDIE}" onclick="addToCadie(this, '{$ROOT_URL|@escape:'javascript'}', {$current.id}); return false;" title="{'add to caddie'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/caddie_add.png" class="button" alt="{'caddie'|@translate}"></a>
+ {/if}{*caddie management END*}
</div>
{include file=$FILE_PICTURE_NAV_BUTTONS}
</div> <!-- imageToolBar -->
diff --git a/ws.php b/ws.php
index 45601a1cb..003e1df54 100644
--- a/ws.php
+++ b/ws.php
@@ -43,6 +43,12 @@ function ws_addDefaultMethods( $arr )
$service->addMethod('pwg.getVersion', 'ws_getVersion', null,
'retrieves the PWG version');
+ $service->addMethod('pwg.caddie.add', 'ws_caddie_add',
+ array(
+ 'image_id'=> array( 'flags'=>WS_PARAM_FORCE_ARRAY ),
+ ),
+ 'adds the elements to the caddie');
+
$service->addMethod('pwg.categories.getImages', 'ws_categories_getImages',
array(
'cat_id'=>array('default'=>0, 'flags'=>WS_PARAM_FORCE_ARRAY),