123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- /**
- * Admin-area specific javascript functions.
- *
- * @since 1.8
- */
- ?>
- //<script>
- elgg.provide('elgg.admin');
- elgg.admin.init = function () {
- // system messages do not fade in admin area, instead slide up when clicked
- $('.elgg-system-messages li').stop(true);
- $('.elgg-system-messages li').die('click');
- $('.elgg-system-messages li').live('click', function() {
- $(this).stop().slideUp('medium');
- });
- // draggable plugin reordering
- $('#elgg-plugin-list > ul').sortable({
- items: 'li:has(> .elgg-state-draggable)',
- handle: '.elgg-head',
- forcePlaceholderSize: true,
- placeholder: 'elgg-widget-placeholder',
- opacity: 0.8,
- revert: 500,
- stop: elgg.admin.movePlugin
- });
- // in-line editing for custom profile fields.
- // @note this requires jquery.jeditable plugin
- $(".elgg-state-editable").editable(elgg.admin.editProfileField, {
- type: 'text',
- onblur: 'submit',
- width: '300px',
- height: 'none',
- style: 'display:inline;'
- });
- // draggable profile field reordering.
- $('#elgg-profile-fields').sortable({
- items: 'li',
- handle: 'span.elgg-state-draggable',
- stop: elgg.admin.moveProfileField
- });
- // admin notices delete ajax
- $('a.elgg-admin-notice').click(elgg.admin.deleteNotice);
- // disable checkboxes (readonly does not work for them)
- $('input:checkbox.elgg-state-disabled, label.elgg-state-disabled > input:checkbox')
- .live('click', function() {return false;});
- // disable simple cache compress settings if simple cache is off
- $('[name=simplecache_enabled]').click(elgg.admin.simplecacheToggle);
- };
- /**
- * 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-object-<guid>
- var pluginGuid = ui.item.attr('id');
- pluginGuid = pluginGuid.replace('elgg-object-', '');
- elgg.action('admin/plugins/set_priority', {
- data: {
- plugin_guid: pluginGuid,
- // we start at priority 1
- priority: ui.item.index() + 1
- },
- success: function() {
- // update plugins with priority dependences
- var priorityDep = new RegExp(elgg.echo('ElggPlugin:Dependencies:Priority'));
- ui.item.siblings().andSelf().each(function() {
- if (priorityDep.test($(this).find('.elgg-dependency-requires').text())) {
- elgg.admin.updatePluginView($(this));
- }
- });
- }
- });
- };
- /**
- * Update the plugin view.
- *
- * @param {Object} pluginView Plugin view element to update
- * @return void
- */
- elgg.admin.updatePluginView = function(pluginView) {
- // get guid from id like elgg-object-<guid>
- var pluginGuid = pluginView.attr('id');
- pluginGuid = pluginGuid.replace('elgg-object-', '');
- elgg.get({
- url: elgg.config.wwwroot + "ajax/view/object/plugin/full",
- dataType: "html",
- cache: false,
- data: {
- guid: pluginGuid,
- display_reordering: true
- },
- success: function(htmlData) {
- if (htmlData.length > 0) {
- pluginView.html(htmlData);
- }
- }
- });
- }
- /**
- * In-line editing for custom profile fields
- *
- * @param string value The new value
- * @param {Object} settings The settings used for editable
- * @return void
- */
- elgg.admin.editProfileField = function(value, settings) {
- var id = $(this).attr('id');
- id = id.replace('elgg-profile-field-', '');
- var data = {
- id: id,
- label: value
- };
- elgg.action('profile/fields/edit', data);
- return value;
- };
- /**
- * Save the plugin profile order after a move event.
- *
- * @param {Object} e Event object.
- * @param {Object} ui jQueryUI object
- * @return void
- */
- elgg.admin.moveProfileField = function(e, ui) {
- var orderArr = $('#elgg-profile-fields').sortable('toArray');
- var orderStr = orderArr.join(',');
- elgg.action('profile/fields/reorder', {
- fieldorder: orderStr
- });
- };
- /**
- * Fires the ajax action to delete the admin notice then hides the notice.
- *
- * @return void
- */
- elgg.admin.deleteNotice = function(e) {
- e.preventDefault();
- var $container = $(this).closest('p');
-
- elgg.action($(this).attr('href'), {
- success: function(json) {
- $container.slideUp('medium');
- }
- });
- };
- /**
- * Toggles the display of the compression settings for simplecache
- *
- * @return void
- */
- elgg.admin.simplecacheToggle = function() {
- // when the checkbox is disabled, do not toggle the compression checkboxes
- if (!$(this).hasClass('elgg-state-disabled')) {
- var names = ['simplecache_minify_js', 'simplecache_minify_css'];
- for (var i = 0; i < names.length; i++) {
- var $input = $('input[type!=hidden][name="' + names[i] + '"]');
- if ($input.length) {
- $input.parent().toggleClass('elgg-state-disabled');
- }
- }
- }
- };
- elgg.register_hook_handler('init', 'system', elgg.admin.init, 1000);
|