aboutsummaryrefslogtreecommitdiffstats
path: root/admin/themes/default/template/updates_ext.tpl
diff options
context:
space:
mode:
authorpatdenice <patdenice@piwigo.org>2011-04-20 14:52:52 +0000
committerpatdenice <patdenice@piwigo.org>2011-04-20 14:52:52 +0000
commit491e8adc7467de9f9aa6dbbebfcb8b82c676b46a (patch)
treeaad72cf4b73fa2bd6ffb6e91c174d18547410741 /admin/themes/default/template/updates_ext.tpl
parentfede13ce419b40ca22cf58b76f74d44d6d564dac (diff)
feature:2271
Merge autoupdate plugin into piwigo core. git-svn-id: http://piwigo.org/svn/trunk@10511 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r--admin/themes/default/template/updates_ext.tpl272
1 files changed, 272 insertions, 0 deletions
diff --git a/admin/themes/default/template/updates_ext.tpl b/admin/themes/default/template/updates_ext.tpl
new file mode 100644
index 000000000..d0cd7a2a7
--- /dev/null
+++ b/admin/themes/default/template/updates_ext.tpl
@@ -0,0 +1,272 @@
+{combine_script id='jquery.ajaxmanager' load='footer' require='jquery' path='themes/default/js/plugins/jquery.ajaxmanager.js'}
+{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js'}
+{combine_css path="admin/themes/default/uploadify.jGrowl.css"}
+
+{footer_script require='jquery.effects.blind,jquery.ajaxmanager,jquery.jgrowl'}
+var pwg_token = '{$PWG_TOKEN}';
+var extList = new Array();
+var confirmMsg = '{'Are you sure?'|@translate|@escape:'javascript'}';
+var errorHead = '{'ERROR'|@translate|@escape:'javascript'}';
+var successHead = '{'Update Complete'|@translate|@escape:'javascript'}';
+var errorMsg = '{'an error happened'|@translate|@escape:'javascript'}';
+var restoreMsg = '{'Reset ignored updates'|@translate|@escape:'javascript'}';
+
+{literal}
+var todo = 0;
+var queuedManager = $.manageAjax.create('queued', {
+ queue: true,
+ maxRequests: 1,
+ beforeSend: function() { autoupdate_bar_toggle(1); },
+ complete: function() { autoupdate_bar_toggle(-1); }
+});
+
+function updateAll() {
+ if (confirm(confirmMsg)) {
+ jQuery('.updateExtension').each( function() {
+ if (jQuery(this).parents('div').css('display') == 'block')
+ jQuery(this).click();
+ });
+ }
+};
+
+function resetIgnored() {
+ jQuery.ajax({
+ type: 'GET',
+ url: 'ws.php',
+ dataType: 'json',
+ data: { method: 'pwg.extensions.ignoreUpdate', reset: true, pwg_token: pwg_token, format: 'json' },
+ success: function(data) {
+ if (data['stat'] == 'ok') {
+ jQuery(".pluginBox, fieldset").show();
+ jQuery("#update_all").show();
+ jQuery("#up_to_date").hide();
+ jQuery("#reset_ignore").hide();
+ jQuery("#ignored").hide();
+ checkFieldsets();
+ }
+ }
+ });
+};
+
+function checkFieldsets() {
+ var types = new Array('plugins', 'themes', 'languages');
+ var total = 0;
+ var ignored = 0;
+ for (i=0;i<3;i++) {
+ nbExtensions = 0;
+ jQuery("div[id^='"+types[i]+"_']").each(function(index) {
+ if (jQuery(this).css('display') == 'block')
+ nbExtensions++;
+ else
+ ignored++;
+ });
+ total = total + nbExtensions;
+ if (nbExtensions == 0)
+ jQuery("#"+types[i]).hide();
+ }
+
+ if (total == 0) {
+ jQuery("#update_all").hide();
+ jQuery("#up_to_date").show();
+ }
+ if (ignored > 0) {
+ jQuery("#reset_ignore").val(restoreMsg + ' (' + ignored + ')');
+ }
+};
+
+function updateExtension(type, id, revision) {
+ queuedManager.add({
+ type: 'GET',
+ dataType: 'json',
+ url: 'ws.php',
+ data: { method: 'pwg.extensions.update', type: type, id: id, revision: revision, pwg_token: pwg_token, format: 'json' },
+ success: function(data) {
+ if (data['stat'] == 'ok') {
+ jQuery.jGrowl( data['result'], { theme: 'success', header: successHead, life: 4000, sticky: false });
+ jQuery("#"+type+"_"+id).remove();
+ checkFieldsets();
+ } else {
+ jQuery.jGrowl( data['result'], { theme: 'error', header: errorHead, sticky: true });
+ }
+ },
+ error: function(data) {
+ jQuery.jGrowl( errorMsg, { theme: 'error', header: errorHead, sticky: true });
+ }
+ });
+};
+
+function ignoreExtension(type, id) {
+ jQuery.ajax({
+ type: 'GET',
+ url: 'ws.php',
+ dataType: 'json',
+ data: { method: 'pwg.extensions.ignoreUpdate', type: type, id: id, pwg_token: pwg_token, format: 'json' },
+ success: function(data) {
+ if (data['stat'] == 'ok') {
+ jQuery("#"+type+"_"+id).hide();
+ jQuery("#reset_ignore").show();
+ checkFieldsets();
+ }
+ }
+ });
+};
+
+function autoupdate_bar_toggle(i) {
+ todo = todo + i;
+ if ((i == 1 && todo == 1) || (i == -1 && todo == 0))
+ jQuery('.autoupdate_bar').toggle();
+}
+
+jQuery(document).ready(function() {
+ jQuery("td[id^='desc_'], p[id^='revdesc_']").click(function() {
+ id = this.id.split('_');
+ jQuery("#revdesc_"+id[1]).toggle('blind');
+ jQuery(".button_"+id[1]).toggle();
+ return false;
+ });
+});
+
+checkFieldsets();
+{/literal}
+{/footer_script}
+
+<div class="titrePage">
+ <h2>{'Updates'|@translate}</h2>
+</div>
+
+<div class="autoupdate_bar">
+<br>
+<input type="submit" id="update_all" value="{'Update All'|@translate}" onClick="updateAll(); return false;">
+<input type="submit" id="reset_ignore" value="{'Reset ignored updates'|@translate}" onClick="resetIgnored(); return false;" {if !$SHOW_RESET}style="display:none;"{/if}>
+</div>
+<div class="autoupdate_bar" style="display:none;">
+{'Update in progress... Please wait.'|@translate}<br><img src="admin/themes/default/images/ajax-loader-bar.gif">
+</div>
+
+<p id="up_to_date" style="display:none; text-align:left; margin-left:20px;">{'All extensions are up to date.'|@translate}</p>
+
+{if not empty($update_plugins)}
+<div>
+<fieldset id="plugins">
+<legend>{'Plugins'|@translate}</legend>
+{foreach from=$update_plugins item=plugin name=plugins_loop}
+<div class="pluginBox" id="plugins_{$plugin.EXT_ID}" {if $plugin.IGNORED}style="display:none;"{/if}>
+ <table>
+ <tr>
+ <td class="pluginBoxNameCell">
+ {$plugin.EXT_NAME}
+ </td>
+ <td>
+ <a href="#" onClick="updateExtension('plugins', '{$plugin.EXT_ID}', {$plugin.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
+ | <a href="{$plugin.URL_DOWNLOAD}">{'Download'|@translate}</a>
+ | <a href="#" onClick="ignoreExtension('plugins', '{$plugin.EXT_ID}'); return false;">{'Ignore this update'|@translate}</a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ {'Version'|@translate} {$plugin.CURRENT_VERSION}
+ </td>
+ <td class="pluginDesc" id="desc_{$plugin.ID}">
+ <em>{'Downloads'|@translate}: {$plugin.DOWNLOADS}</em>
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$plugin.ID}">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$plugin.ID}" style="display:none;">
+ {'New Version'|@translate} : {$plugin.NEW_VERSION}
+ | {'By %s'|@translate|@sprintf:$plugin.AUTHOR}
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="pluginDesc">
+ <p id="revdesc_{$plugin.ID}" style="display:none;">{$plugin.REV_DESC|htmlspecialchars|nl2br}</p>
+ </td>
+ </tr>
+ </table>
+</div>
+{/foreach}
+</fieldset>
+</div>
+{/if}
+
+{if not empty($update_themes)}
+<div>
+<fieldset id="themes">
+<legend>{'Themes'|@translate}</legend>
+{foreach from=$update_themes item=theme name=themes_loop}
+<div class="pluginBox" id="themes_{$theme.EXT_ID}" {if $theme.IGNORED}style="display:none;"{/if}>
+ <table>
+ <tr>
+ <td class="pluginBoxNameCell">
+ {$theme.EXT_NAME}
+ </td>
+ <td>
+ <a href="#" onClick="updateExtension('themes', '{$theme.EXT_ID}', {$theme.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
+ | <a href="{$theme.URL_DOWNLOAD}">{'Download'|@translate}</a>
+ | <a href="#" onClick="ignoreExtension('themes', '{$theme.EXT_ID}'); return false;">{'autoupdate_ignore'|@translate}</a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ {'Version'|@translate} {$theme.CURRENT_VERSION}
+ </td>
+ <td class="pluginDesc" id="desc_{$theme.ID}">
+ <em>{'Downloads'|@translate}: {$theme.DOWNLOADS}</em>
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$theme.ID}">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$theme.ID}" style="display:none;">
+ {'New Version'|@translate} : {$theme.NEW_VERSION}
+ | {'By %s'|@translate|@sprintf:$theme.AUTHOR}
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="pluginDesc">
+ <p id="revdesc_{$theme.ID}" style="display:none;">{$theme.REV_DESC|htmlspecialchars|nl2br}</p>
+ </td>
+ </tr>
+ </table>
+</div>
+{/foreach}
+</fieldset>
+</div>
+{/if}
+
+{if not empty($update_languages)}
+<div>
+<fieldset id="languages">
+<legend>{'Languages'|@translate}</legend>
+{foreach from=$update_languages item=language name=languages_loop}
+<div class="pluginBox" id="languages_{$language.EXT_ID}" {if $language.IGNORED}style="display:none;"{/if}>
+ <table>
+ <tr>
+ <td class="pluginBoxNameCell">
+ {$language.EXT_NAME}
+ </td>
+ <td>
+ <a href="#" onClick="updateExtension('languages', '{$language.EXT_ID}', {$language.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
+ | <a href="{$language.URL_DOWNLOAD}">{'Download'|@translate}</a>
+ | <a href="#" onClick="ignoreExtension('languages', '{$language.EXT_ID}'); return false;">{'autoupdate_ignore'|@translate}</a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ {'Version'|@translate} {$language.CURRENT_VERSION}
+ </td>
+ <td class="pluginDesc" id="desc_{$language.ID}">
+ <em>{'Downloads'|@translate}: {$language.DOWNLOADS}</em>
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$language.ID}">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$language.ID}" style="display:none;">
+ {'New Version'|@translate} : {$language.NEW_VERSION}
+ | {'By %s'|@translate|@sprintf:$language.AUTHOR}
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="pluginDesc">
+ <p id="revdesc_{$language.ID}" style="display:none;">{$language.REV_DESC|htmlspecialchars|nl2br}</p>
+ </td>
+ </tr>
+ </table>
+</div>
+{/foreach}
+</fieldset>
+</div>
+{/if}