From f5ef4fddd7ce277f27ef4face7933fe5a7406200 Mon Sep 17 00:00:00 2001 From: patdenice Date: Thu, 21 Apr 2011 15:12:38 +0000 Subject: feature:2271 Add pwg.extensions.checkUpdates method to webservices. Add a warning message on intro page if update is availble for piwigo or extensions. Add an "Ignore All" button on extensions update page. git-svn-id: http://piwigo.org/svn/trunk@10538 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes/default/template/intro.tpl | 28 ++++++++++++++++++-- admin/themes/default/template/updates_ext.tpl | 20 +++++++++++---- include/ws_functions.inc.php | 37 +++++++++++++++++++++++++++ language/en_UK/admin.lang.php | 3 +++ language/fr_FR/admin.lang.php | 3 +++ ws.php | 7 +++++ 6 files changed, 91 insertions(+), 7 deletions(-) diff --git a/admin/themes/default/template/intro.tpl b/admin/themes/default/template/intro.tpl index aa744ac48..0f4dc7c00 100644 --- a/admin/themes/default/template/intro.tpl +++ b/admin/themes/default/template/intro.tpl @@ -1,13 +1,37 @@ {combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'} {footer_script require='jquery.cluetip'} -jQuery().ready(function(){ldelim} - jQuery('.cluetip').cluetip({ldelim} +var piwigo_need_update_msg = '{"A new version of Piwigo is available."|@translate|@escape:"javascript"}'; +var ext_need_update_msg = '{"Some upgrades are available for extensions."|@translate|@escape:"javascript"}'; + +{literal} +jQuery().ready(function(){ + jQuery('.cluetip').cluetip({ width: 300, splitTitle: '|', positionBy: 'bottomTop' }); + jQuery.ajax({ + type: 'GET', + url: 'ws.php', + dataType: 'json', + data: { method: 'pwg.extensions.checkUpdates', format: 'json' }, + timeout: 5000, + success: function (data) { + if (data['stat'] != 'ok') + return; + piwigo_update = data['result']['piwigo_need_update']; + ext_update = data['result']['ext_need_update'] + if ((piwigo_update || ext_update) && !jQuery(".warnings").is('div')) + jQuery("#content").prepend('
'); + if (piwigo_update) + jQuery(".warnings ul").append('
  • '+piwigo_need_update_msg+'
  • '); + if (ext_update) + jQuery(".warnings ul").append('
  • '+ext_need_update_msg+'
  • '); + } + }); }); +{/literal} {/footer_script}

    {'Piwigo Administration'|@translate}

    diff --git a/admin/themes/default/template/updates_ext.tpl b/admin/themes/default/template/updates_ext.tpl index a2ffccd4d..a4f52f10b 100644 --- a/admin/themes/default/template/updates_ext.tpl +++ b/admin/themes/default/template/updates_ext.tpl @@ -29,6 +29,13 @@ function updateAll() { } }; +function ignoreAll() { + jQuery('.ignoreExtension').each( function() { + if (jQuery(this).parents('div').css('display') == 'block') + jQuery(this).click(); + }); +}; + function resetIgnored() { jQuery.ajax({ type: 'GET', @@ -39,6 +46,7 @@ function resetIgnored() { if (data['stat'] == 'ok') { jQuery(".pluginBox, fieldset").show(); jQuery("#update_all").show(); + jQuery("#ignore_all").show(); jQuery("#up_to_date").hide(); jQuery("#reset_ignore").hide(); jQuery("#ignored").hide(); @@ -67,6 +75,7 @@ function checkFieldsets() { if (total == 0) { jQuery("#update_all").hide(); + jQuery("#ignore_all").hide(); jQuery("#up_to_date").show(); } if (ignored > 0) { @@ -96,7 +105,7 @@ function updateExtension(type, id, revision) { }; function ignoreExtension(type, id) { - jQuery.ajax({ + queuedManager.add({ type: 'GET', url: 'ws.php', dataType: 'json', @@ -137,10 +146,11 @@ checkFieldsets();

    +
    @@ -159,7 +169,7 @@ checkFieldsets(); {'Install'|@translate} | {'Download'|@translate} - | {'Ignore this update'|@translate} + | {'Ignore this update'|@translate} @@ -201,7 +211,7 @@ checkFieldsets(); {'Install'|@translate} | {'Download'|@translate} - | {'Ignore this update'|@translate} + | {'Ignore this update'|@translate} @@ -243,7 +253,7 @@ checkFieldsets(); {'Install'|@translate} | {'Download'|@translate} - | {'Ignore this update'|@translate} + | {'Ignore this update'|@translate} diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php index 0aaa5f561..2646abbe0 100644 --- a/include/ws_functions.inc.php +++ b/include/ws_functions.inc.php @@ -2845,6 +2845,7 @@ function ws_extensions_ignoreupdate($params, &$service) $conf['updates_ignored'] = unserialize($conf['updates_ignored']); + // Reset ignored extension if ($params['reset']) { $conf['updates_ignored'] = array( @@ -2871,4 +2872,40 @@ function ws_extensions_ignoreupdate($params, &$service) unset($_SESSION['extensions_need_update']); return true; } + +function ws_extensions_checkupdates($params, &$service) +{ + global $conf; + + define('IN_ADMIN', true); + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + include_once(PHPWG_ROOT_PATH.'admin/include/updates.class.php'); + $update = new updates(); + + if (!is_admin()) + { + return new PwgError(401, 'Access denied'); + } + + $result = array(); + + if (!isset($_SESSION['need_update'])) + $update->check_piwigo_upgrade(); + + $result['piwigo_need_update'] = $_SESSION['need_update']; + + $conf['updates_ignored'] = unserialize($conf['updates_ignored']); + + if (!isset($_SESSION['extensions_need_update'])) + $update->check_extensions(); + else + $update->check_updated_extensions(); + + if (!is_array($_SESSION['extensions_need_update'])) + $result['ext_need_update'] = null; + else + $result['ext_need_update'] = !empty($_SESSION['extensions_need_update']); + + return $result; +} ?> diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 5b70871c3..a0e36b216 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -822,4 +822,7 @@ $lang['Include history data (Warning: server memory limit may be exceeded)'] = ' $lang['Unable to write new local directory.'] = 'Unable to write new local directory.'; $lang['Unable to send template directory.'] = 'Unable to send template directory.'; $lang['Unable to dump database.'] = 'Unable to dump database.'; +$lang['Some upgrades are available for extensions.'] = 'Some upgrades are available for extensions.'; +$lang['Please wait...'] = 'Please wait...'; +$lang['Ignore All'] = 'Ignore All'; ?> \ No newline at end of file diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 92239633c..f66902c2c 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -833,4 +833,7 @@ $lang['Include history data (Warning: server memory limit may be exceeded)'] = ' $lang['Unable to write new local directory.'] = 'Impossible d\'écrire le nouveau dossier local.'; $lang['Unable to send template directory.'] = 'Impossible d\'envoyer le dossier template.'; $lang['Unable to dump database.'] = 'Impossible de sauvegarder la base de données.'; +$lang['Some upgrades are available for extensions.'] = 'Des mises à jour sont disponibles pour les extensions.'; +$lang['Please wait...'] = 'Please wait...'; +$lang['Ignore All'] = 'Tout ignorer'; ?> \ No newline at end of file diff --git a/ws.php b/ws.php index 046ee4743..46429b021 100644 --- a/ws.php +++ b/ws.php @@ -445,6 +445,13 @@ function ws_addDefaultMethods( $arr )
    Parameter type must be "plugins", "languages" or "themes".
    If reset parameter is true, all ignored extensions will be reinitilized.' ); + + $service->addMethod( + 'pwg.extensions.checkUpdates', + 'ws_extensions_checkupdates', + array(), + 'Check if piwigo or extensions are up to date.' + ); } add_event_handler('ws_add_methods', 'ws_addDefaultMethods'); -- cgit v1.2.3