From cb5ecaff25b858117a57ede78f353661a520c9d4 Mon Sep 17 00:00:00 2001 From: brettp Date: Mon, 7 Feb 2011 02:15:11 +0000 Subject: Added drag and drop reordering of plugins. Started pulling out admin area's js into elgg.admin JS object. git-svn-id: http://code.elgg.org/elgg/trunk@8056 36083f99-b078-4883-b0ff-0f9b5a30f544 --- views/default/admin/components/plugin.php | 4 +- views/default/admin/plugins/advanced.php | 48 +--------------- views/default/js/admin.php | 93 +++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 47 deletions(-) create mode 100644 views/default/js/admin.php (limited to 'views/default') diff --git a/views/default/admin/components/plugin.php b/views/default/admin/components/plugin.php index acbe42e84..229dd8c57 100644 --- a/views/default/admin/components/plugin.php +++ b/views/default/admin/components/plugin.php @@ -152,7 +152,7 @@ $license = elgg_view('output/text', array('value' => $plugin->manifest->getLicen ?> -
+
@@ -166,7 +166,7 @@ if (elgg_view_exists($settings_view)) { $settings_link = "[" . elgg_echo('settings') . "]"; } ?> -

manifest->getName() . " $version $settings_link"; ?>

+

manifest->getName() . " $version $settings_link"; ?>

diff --git a/views/default/admin/plugins/advanced.php b/views/default/admin/plugins/advanced.php index b83bee87f..05754e4c7 100644 --- a/views/default/admin/plugins/advanced.php +++ b/views/default/admin/plugins/advanced.php @@ -78,6 +78,8 @@ $buttons .= $category_form;

+ +
- - \ No newline at end of file +
\ No newline at end of file diff --git a/views/default/js/admin.php b/views/default/js/admin.php new file mode 100644 index 000000000..46e82c71b --- /dev/null +++ b/views/default/js/admin.php @@ -0,0 +1,93 @@ + +elgg.provide('elgg.admin'); + +elgg.admin.init = function () { + // display manifest info + $('a.manifest_details.link').click(function() { + elgg_slide_toggle($(this), '.plugin_details', '.manifest_file'); + }); + + $('.elgg-plugin-screenshot a').click(elgg.admin.displayPluginScreenshot); + + // draggable plugin reordering + $('#elgg-plugin-list').sortable({ + items: 'div.elgg-state-draggable', + handle: 'h3.elgg-head', + forcePlaceholderSize: true, + placeholder: 'elgg-widget-placeholder', + opacity: 0.8, + revert: 500, + stop: elgg.admin.movePlugin + }); +} + +/** + * Save the plugin order after a move event. + * + * @param {Object} e Event object. + * @param {Object} ui jQueryUI object + * @return void + */ +elgg.admin.movePlugin = function(e, ui) { + // get guid from id like elgg-plugin- + var pluginGuid = ui.item.closest('.plugin_details').attr('id'); + pluginGuid = pluginGuid.replace('elgg-plugin-', ''); + + elgg.action('admin/plugins/set_priority', { + data: { + plugin_guid: pluginGuid, + // we start at priority 1 + priority: ui.item.index() + 1 + } + }); +}; + +/** + * Display a plugin screenshot. + * + * @param {Object} e The event object. + * @return void + */ +elgg.admin.displayPluginScreenshot = function(e) { + e.preventDefault(); + var lb = $('.elgg-plugin-screenshot-lightbox'); + + if (lb.length < 1) { + $('body').append('
'); + lb = $('.elgg-plugin-screenshot-lightbox'); + + lb.click(function() { + lb.hide(); + }); + + $(document).click(function(e) { + var target = $(e.target); + if (target.is('a') && target.hasClass('elgg-plugin-screenshot-lightbox')) { + lb.hide(); + e.preventDefault(); + } + }); + } + + var html = ''; + var desc = $(this).find('img').attr('alt'); + + if (desc) { + html = '

' + desc + '

' + html; + } + + lb.html(html); + + top_pos = $(window).scrollTop() + 10 + 'px'; + left_pos = $(window).scrollLeft() + 5 + 'px'; + + lb.css('top', top_pos).css('left', left_pos).show(); +}; + +elgg.register_event_handler('init', 'system', elgg.admin.init); \ No newline at end of file -- cgit v1.2.3