annotate sites/all/modules/features/features.js @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 /**
danielebarchiesi@4 2 * jQuery.fn.sortElements
danielebarchiesi@4 3 * --------------
danielebarchiesi@4 4 * @param Function comparator:
danielebarchiesi@4 5 * Exactly the same behaviour as [1,2,3].sort(comparator)
danielebarchiesi@4 6 *
danielebarchiesi@4 7 * @param Function getSortable
danielebarchiesi@4 8 * A function that should return the element that is
danielebarchiesi@4 9 * to be sorted. The comparator will run on the
danielebarchiesi@4 10 * current collection, but you may want the actual
danielebarchiesi@4 11 * resulting sort to occur on a parent or another
danielebarchiesi@4 12 * associated element.
danielebarchiesi@4 13 *
danielebarchiesi@4 14 * E.g. $('td').sortElements(comparator, function(){
danielebarchiesi@4 15 * return this.parentNode;
danielebarchiesi@4 16 * })
danielebarchiesi@4 17 *
danielebarchiesi@4 18 * The <td>'s parent (<tr>) will be sorted instead
danielebarchiesi@4 19 * of the <td> itself.
danielebarchiesi@4 20 *
danielebarchiesi@4 21 * Credit: http://james.padolsey.com/javascript/sorting-elements-with-jquery/
danielebarchiesi@4 22 *
danielebarchiesi@4 23 */
danielebarchiesi@4 24 jQuery.fn.sortElements = (function(){
danielebarchiesi@4 25
danielebarchiesi@4 26 var sort = [].sort;
danielebarchiesi@4 27
danielebarchiesi@4 28 return function(comparator, getSortable) {
danielebarchiesi@4 29
danielebarchiesi@4 30 getSortable = getSortable || function(){return this;};
danielebarchiesi@4 31
danielebarchiesi@4 32 var placements = this.map(function(){
danielebarchiesi@4 33
danielebarchiesi@4 34 var sortElement = getSortable.call(this),
danielebarchiesi@4 35 parentNode = sortElement.parentNode,
danielebarchiesi@4 36
danielebarchiesi@4 37 // Since the element itself will change position, we have
danielebarchiesi@4 38 // to have some way of storing its original position in
danielebarchiesi@4 39 // the DOM. The easiest way is to have a 'flag' node:
danielebarchiesi@4 40 nextSibling = parentNode.insertBefore(
danielebarchiesi@4 41 document.createTextNode(''),
danielebarchiesi@4 42 sortElement.nextSibling
danielebarchiesi@4 43 );
danielebarchiesi@4 44
danielebarchiesi@4 45 return function() {
danielebarchiesi@4 46
danielebarchiesi@4 47 if (parentNode === this) {
danielebarchiesi@4 48 throw new Error(
danielebarchiesi@4 49 "You can't sort elements if any one is a descendant of another."
danielebarchiesi@4 50 );
danielebarchiesi@4 51 }
danielebarchiesi@4 52
danielebarchiesi@4 53 // Insert before flag:
danielebarchiesi@4 54 parentNode.insertBefore(this, nextSibling);
danielebarchiesi@4 55 // Remove flag:
danielebarchiesi@4 56 parentNode.removeChild(nextSibling);
danielebarchiesi@4 57
danielebarchiesi@4 58 };
danielebarchiesi@4 59
danielebarchiesi@4 60 });
danielebarchiesi@4 61
danielebarchiesi@4 62 return sort.call(this, comparator).each(function(i){
danielebarchiesi@4 63 placements[i].call(getSortable.call(this));
danielebarchiesi@4 64 });
danielebarchiesi@4 65
danielebarchiesi@4 66 };
danielebarchiesi@4 67
danielebarchiesi@4 68 })();
danielebarchiesi@4 69
danielebarchiesi@4 70 (function ($) {
danielebarchiesi@4 71 Drupal.behaviors.features = {
danielebarchiesi@4 72 attach: function(context, settings) {
danielebarchiesi@4 73 // Features management form
danielebarchiesi@4 74 $('table.features:not(.processed)', context).each(function() {
danielebarchiesi@4 75 $(this).addClass('processed');
danielebarchiesi@4 76
danielebarchiesi@4 77 // Check the overridden status of each feature
danielebarchiesi@4 78 Drupal.features.checkStatus();
danielebarchiesi@4 79
danielebarchiesi@4 80 // Add some nicer row hilighting when checkboxes change values
danielebarchiesi@4 81 $('input', this).bind('change', function() {
danielebarchiesi@4 82 if (!$(this).attr('checked')) {
danielebarchiesi@4 83 $(this).parents('tr').removeClass('enabled').addClass('disabled');
danielebarchiesi@4 84 }
danielebarchiesi@4 85 else {
danielebarchiesi@4 86 $(this).parents('tr').addClass('enabled').removeClass('disabled');
danielebarchiesi@4 87 }
danielebarchiesi@4 88 });
danielebarchiesi@4 89 });
danielebarchiesi@4 90
danielebarchiesi@4 91 // Export form component selector
danielebarchiesi@4 92 $('form.features-export-form select.features-select-components:not(.processed)', context).each(function() {
danielebarchiesi@4 93 $(this)
danielebarchiesi@4 94 .addClass('processed')
danielebarchiesi@4 95 .change(function() {
danielebarchiesi@4 96 var target = $(this).val();
danielebarchiesi@4 97 $('div.features-select').hide();
danielebarchiesi@4 98 $('div.features-select-' + target).show();
danielebarchiesi@4 99 return false;
danielebarchiesi@4 100 }).trigger('change');
danielebarchiesi@4 101 });
danielebarchiesi@4 102
danielebarchiesi@4 103 // Export form machine-readable JS
danielebarchiesi@4 104 $('.feature-name:not(.processed)', context).each(function() {
danielebarchiesi@4 105 $('.feature-name')
danielebarchiesi@4 106 .addClass('processed')
danielebarchiesi@4 107 .after(' <small class="feature-module-name-suffix">&nbsp;</small>');
danielebarchiesi@4 108 if ($('.feature-module-name').val() === $('.feature-name').val().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/_+/g, '_') || $('.feature-module-name').val() === '') {
danielebarchiesi@4 109 $('.feature-module-name').parents('.form-item').hide();
danielebarchiesi@4 110 $('.feature-name').bind('keyup change', function() {
danielebarchiesi@4 111 var machine = $(this).val().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/_+/g, '_');
danielebarchiesi@4 112 if (machine !== '_' && machine !== '') {
danielebarchiesi@4 113 $('.feature-module-name').val(machine);
danielebarchiesi@4 114 $('.feature-module-name-suffix').empty().append(' Machine name: ' + machine + ' [').append($('<a href="#">'+ Drupal.t('Edit') +'</a>').click(function() {
danielebarchiesi@4 115 $('.feature-module-name').parents('.form-item').show();
danielebarchiesi@4 116 $('.feature-module-name-suffix').hide();
danielebarchiesi@4 117 $('.feature-name').unbind('keyup');
danielebarchiesi@4 118 return false;
danielebarchiesi@4 119 })).append(']');
danielebarchiesi@4 120 }
danielebarchiesi@4 121 else {
danielebarchiesi@4 122 $('.feature-module-name').val(machine);
danielebarchiesi@4 123 $('.feature-module-name-suffix').text('');
danielebarchiesi@4 124 }
danielebarchiesi@4 125 });
danielebarchiesi@4 126 $('.feature-name').keyup();
danielebarchiesi@4 127 }
danielebarchiesi@4 128 });
danielebarchiesi@4 129
danielebarchiesi@4 130 //View info dialog
danielebarchiesi@4 131 var infoDialog = $('#features-info-file');
danielebarchiesi@4 132 if (infoDialog.length != 0) {
danielebarchiesi@4 133 infoDialog.dialog({
danielebarchiesi@4 134 autoOpen: false,
danielebarchiesi@4 135 modal: true,
danielebarchiesi@4 136 draggable: false,
danielebarchiesi@4 137 resizable: false,
danielebarchiesi@4 138 width: 600,
danielebarchiesi@4 139 height: 480
danielebarchiesi@4 140 });
danielebarchiesi@4 141 }
danielebarchiesi@4 142
danielebarchiesi@4 143 if ((Drupal.settings.features != undefined) && (Drupal.settings.features.info != undefined)) {
danielebarchiesi@4 144 $('#features-info-file textarea').val(Drupal.settings.features.info);
danielebarchiesi@4 145 $('#features-info-file').dialog('open');
danielebarchiesi@4 146 //To be reset by the button click ajax
danielebarchiesi@4 147 Drupal.settings.features.info = undefined;
danielebarchiesi@4 148 }
danielebarchiesi@4 149
danielebarchiesi@4 150 // mark any conflicts with a class
danielebarchiesi@4 151 if ((Drupal.settings.features != undefined) && (Drupal.settings.features.conflicts != undefined)) {
danielebarchiesi@4 152 for (var moduleName in Drupal.settings.features.conflicts) {
danielebarchiesi@4 153 moduleConflicts = Drupal.settings.features.conflicts[moduleName];
danielebarchiesi@4 154 $('#features-export-wrapper input[type=checkbox]', context).each(function() {
danielebarchiesi@4 155 if (!$(this).hasClass('features-checkall')) {
danielebarchiesi@4 156 var key = $(this).attr('name');
danielebarchiesi@4 157 var matches = key.match(/^([^\[]+)(\[.+\])?\[(.+)\]\[(.+)\]$/);
danielebarchiesi@4 158 var component = matches[1];
danielebarchiesi@4 159 var item = matches[4];
danielebarchiesi@4 160 if ((component in moduleConflicts) && (moduleConflicts[component].indexOf(item) != -1)) {
danielebarchiesi@4 161 $(this).parent().addClass('features-conflict');
danielebarchiesi@4 162 }
danielebarchiesi@4 163 }
danielebarchiesi@4 164 });
danielebarchiesi@4 165 }
danielebarchiesi@4 166 }
danielebarchiesi@4 167
danielebarchiesi@4 168 function _checkAll(value) {
danielebarchiesi@4 169 if (value) {
danielebarchiesi@4 170 $('#features-export-wrapper .component-select input[type=checkbox]:visible', context).each(function() {
danielebarchiesi@4 171 var move_id = $(this).attr('id');
danielebarchiesi@4 172 $(this).click();
danielebarchiesi@4 173 $('#'+ move_id).attr('checked', 'checked');
danielebarchiesi@4 174 });
danielebarchiesi@4 175 }
danielebarchiesi@4 176 else {
danielebarchiesi@4 177 $('#features-export-wrapper .component-added input[type=checkbox]:visible', context).each(function() {
danielebarchiesi@4 178 var move_id = $(this).attr('id');
danielebarchiesi@4 179 $('#'+ move_id).removeAttr('checked');
danielebarchiesi@4 180 $(this).click();
danielebarchiesi@4 181 $('#'+ move_id).removeAttr('checked');
danielebarchiesi@4 182 });
danielebarchiesi@4 183 }
danielebarchiesi@4 184 }
danielebarchiesi@4 185
danielebarchiesi@4 186 function moveCheckbox(item, section, value) {
danielebarchiesi@4 187 var curParent = item;
danielebarchiesi@4 188 if ($(item).hasClass('form-type-checkbox')) {
danielebarchiesi@4 189 item = $(item).children('input[type=checkbox]');
danielebarchiesi@4 190 }
danielebarchiesi@4 191 else {
danielebarchiesi@4 192 curParent = $(item).parents('.form-type-checkbox');
danielebarchiesi@4 193 }
danielebarchiesi@4 194 var newParent = $(curParent).parents('.features-export-parent').find('.form-checkboxes.component-'+section);
danielebarchiesi@4 195 $(curParent).detach();
danielebarchiesi@4 196 $(curParent).appendTo(newParent);
danielebarchiesi@4 197 var list = ['select', 'added', 'detected', 'included'];
danielebarchiesi@4 198 for (i in list) {
danielebarchiesi@4 199 $(curParent).removeClass('component-' + list[i]);
danielebarchiesi@4 200 $(item).removeClass('component-' + list[i]);
danielebarchiesi@4 201 }
danielebarchiesi@4 202 $(curParent).addClass('component-'+section);
danielebarchiesi@4 203 $(item).addClass('component-'+section);
danielebarchiesi@4 204 if (value) {
danielebarchiesi@4 205 $(item).attr('checked', 'checked');
danielebarchiesi@4 206 }
danielebarchiesi@4 207 else {
danielebarchiesi@4 208 $(item).removeAttr('checked')
danielebarchiesi@4 209 }
danielebarchiesi@4 210 $(newParent).parent().removeClass('features-export-empty');
danielebarchiesi@4 211
danielebarchiesi@4 212 // re-sort new list of checkboxes based on labels
danielebarchiesi@4 213 $(newParent).find('label').sortElements(
danielebarchiesi@4 214 function(a, b){
danielebarchiesi@4 215 return $(a).text() > $(b).text() ? 1 : -1;
danielebarchiesi@4 216 },
danielebarchiesi@4 217 function(){
danielebarchiesi@4 218 return this.parentNode;
danielebarchiesi@4 219 }
danielebarchiesi@4 220 );
danielebarchiesi@4 221 }
danielebarchiesi@4 222
danielebarchiesi@4 223 // provide timer for auto-refresh trigger
danielebarchiesi@4 224 var timeoutID = 0;
danielebarchiesi@4 225 var inTimeout = 0;
danielebarchiesi@4 226 function _triggerTimeout() {
danielebarchiesi@4 227 timeoutID = 0;
danielebarchiesi@4 228 _updateDetected();
danielebarchiesi@4 229 }
danielebarchiesi@4 230 function _resetTimeout() {
danielebarchiesi@4 231 inTimeout++;
danielebarchiesi@4 232 // if timeout is already active, reset it
danielebarchiesi@4 233 if (timeoutID != 0) {
danielebarchiesi@4 234 window.clearTimeout(timeoutID);
danielebarchiesi@4 235 if (inTimeout > 0) inTimeout--;
danielebarchiesi@4 236 }
danielebarchiesi@4 237 timeoutID = window.setTimeout(_triggerTimeout, 500);
danielebarchiesi@4 238 }
danielebarchiesi@4 239
danielebarchiesi@4 240 function _updateDetected() {
danielebarchiesi@4 241 var autodetect = $('#features-autodetect input[type=checkbox]');
danielebarchiesi@4 242 if ((autodetect.length > 0) && (!autodetect.is(':checked'))) return;
danielebarchiesi@4 243 // query the server for a list of components/items in the feature and update
danielebarchiesi@4 244 // the auto-detected items
danielebarchiesi@4 245 var items = []; // will contain a list of selected items exported to feature
danielebarchiesi@4 246 var components = {}; // contains object of component names that have checked items
danielebarchiesi@4 247 $('#features-export-wrapper input[type=checkbox]:checked', context).each(function() {
danielebarchiesi@4 248 if (!$(this).hasClass('features-checkall')) {
danielebarchiesi@4 249 var key = $(this).attr('name');
danielebarchiesi@4 250 var matches = key.match(/^([^\[]+)(\[.+\])?\[(.+)\]\[(.+)\]$/);
danielebarchiesi@4 251 components[matches[1]] = matches[1];
danielebarchiesi@4 252 if (!$(this).hasClass('component-detected')) {
danielebarchiesi@4 253 items.push(key);
danielebarchiesi@4 254 }
danielebarchiesi@4 255 }
danielebarchiesi@4 256 });
danielebarchiesi@4 257 var featureName = $('#edit-module-name').val();
danielebarchiesi@4 258 if (featureName == '') {
danielebarchiesi@4 259 featureName = '*';
danielebarchiesi@4 260 }
danielebarchiesi@4 261 var url = Drupal.settings.basePath + 'features/ajaxcallback/' + featureName;
danielebarchiesi@4 262 var excluded = Drupal.settings.features.excluded;
danielebarchiesi@4 263 var postData = {'items': items, 'excluded': excluded};
danielebarchiesi@4 264 jQuery.post(url, postData, function(data) {
danielebarchiesi@4 265 if (inTimeout > 0) inTimeout--;
danielebarchiesi@4 266 // if we have triggered another timeout then don't update with old results
danielebarchiesi@4 267 if (inTimeout == 0) {
danielebarchiesi@4 268 // data is an object keyed by component listing the exports of the feature
danielebarchiesi@4 269 for (var component in data) {
danielebarchiesi@4 270 var itemList = data[component];
danielebarchiesi@4 271 $('#features-export-wrapper .component-' + component + ' input[type=checkbox]', context).each(function() {
danielebarchiesi@4 272 var key = $(this).attr('value');
danielebarchiesi@4 273 // first remove any auto-detected items that are no longer in component
danielebarchiesi@4 274 if ($(this).hasClass('component-detected')) {
danielebarchiesi@4 275 if (!(key in itemList)) {
danielebarchiesi@4 276 moveCheckbox(this, 'select', false)
danielebarchiesi@4 277 }
danielebarchiesi@4 278 }
danielebarchiesi@4 279 // next, add any new auto-detected items
danielebarchiesi@4 280 else if ($(this).hasClass('component-select')) {
danielebarchiesi@4 281 if (key in itemList) {
danielebarchiesi@4 282 moveCheckbox(this, 'detected', itemList[key]);
danielebarchiesi@4 283 $(this).parent().show(); // make sure it's not hidden from filter
danielebarchiesi@4 284 }
danielebarchiesi@4 285 }
danielebarchiesi@4 286 });
danielebarchiesi@4 287 }
danielebarchiesi@4 288 // loop over all selected components and check for any that have been completely removed
danielebarchiesi@4 289 for (var component in components) {
danielebarchiesi@4 290 if ((data == null) || !(component in data)) {
danielebarchiesi@4 291 $('#features-export-wrapper .component-' + component + ' input[type=checkbox].component-detected', context).each(function() {
danielebarchiesi@4 292 moveCheckbox(this, 'select', false);
danielebarchiesi@4 293 });
danielebarchiesi@4 294 }
danielebarchiesi@4 295 }
danielebarchiesi@4 296 }
danielebarchiesi@4 297 }, "json");
danielebarchiesi@4 298 }
danielebarchiesi@4 299
danielebarchiesi@4 300 // Handle component selection UI
danielebarchiesi@4 301 $('#features-export-wrapper input[type=checkbox]', context).click(function() {
danielebarchiesi@4 302 _resetTimeout();
danielebarchiesi@4 303 if ($(this).hasClass('component-select')) {
danielebarchiesi@4 304 moveCheckbox(this, 'added', true);
danielebarchiesi@4 305 }
danielebarchiesi@4 306 else if ($(this).hasClass('component-included')) {
danielebarchiesi@4 307 moveCheckbox(this, 'added', false);
danielebarchiesi@4 308 }
danielebarchiesi@4 309 else if ($(this).hasClass('component-added')) {
danielebarchiesi@4 310 if ($(this).is(':checked')) {
danielebarchiesi@4 311 moveCheckbox(this, 'included', true);
danielebarchiesi@4 312 }
danielebarchiesi@4 313 else {
danielebarchiesi@4 314 moveCheckbox(this, 'select', false);
danielebarchiesi@4 315 }
danielebarchiesi@4 316 }
danielebarchiesi@4 317 });
danielebarchiesi@4 318
danielebarchiesi@4 319 // Handle select/unselect all
danielebarchiesi@4 320 $('#features-filter .features-checkall', context).click(function() {
danielebarchiesi@4 321 if ($(this).attr('checked')) {
danielebarchiesi@4 322 _checkAll(true);
danielebarchiesi@4 323 $(this).next().html(Drupal.t('Deselect all'));
danielebarchiesi@4 324 }
danielebarchiesi@4 325 else {
danielebarchiesi@4 326 _checkAll(false);
danielebarchiesi@4 327 $(this).next().html(Drupal.t('Select all'));
danielebarchiesi@4 328 }
danielebarchiesi@4 329 _resetTimeout();
danielebarchiesi@4 330 });
danielebarchiesi@4 331
danielebarchiesi@4 332 // Handle filtering
danielebarchiesi@4 333
danielebarchiesi@4 334 // provide timer for auto-refresh trigger
danielebarchiesi@4 335 var filterTimeoutID = 0;
danielebarchiesi@4 336 var inFilterTimeout = 0;
danielebarchiesi@4 337 function _triggerFilterTimeout() {
danielebarchiesi@4 338 filterTimeoutID = 0;
danielebarchiesi@4 339 _updateFilter();
danielebarchiesi@4 340 }
danielebarchiesi@4 341 function _resetFilterTimeout() {
danielebarchiesi@4 342 inFilterTimeout++;
danielebarchiesi@4 343 // if timeout is already active, reset it
danielebarchiesi@4 344 if (filterTimeoutID != 0) {
danielebarchiesi@4 345 window.clearTimeout(filterTimeoutID);
danielebarchiesi@4 346 if (inFilterTimeout > 0) inFilterTimeout--;
danielebarchiesi@4 347 }
danielebarchiesi@4 348 filterTimeoutID = window.setTimeout(_triggerFilterTimeout, 200);
danielebarchiesi@4 349 }
danielebarchiesi@4 350 function _updateFilter() {
danielebarchiesi@4 351 var filter = $('#features-filter input').val();
danielebarchiesi@4 352 var regex = new RegExp(filter, 'i');
danielebarchiesi@4 353 // collapse fieldsets
danielebarchiesi@4 354 var newState = {};
danielebarchiesi@4 355 var currentState = {};
danielebarchiesi@4 356 $('#features-export-wrapper fieldset.features-export-component', context).each(function() {
danielebarchiesi@4 357 // expand parent fieldset
danielebarchiesi@4 358 var section = $(this).attr('id');
danielebarchiesi@4 359 currentState[section] = !($(this).hasClass('collapsed'));
danielebarchiesi@4 360 if (!(section in newState)) {
danielebarchiesi@4 361 newState[section] = false;
danielebarchiesi@4 362 }
danielebarchiesi@4 363
danielebarchiesi@4 364 $(this).find('div.component-select label').each(function() {
danielebarchiesi@4 365 if (filter == '') {
danielebarchiesi@4 366 if (currentState[section]) {
danielebarchiesi@4 367 Drupal.toggleFieldset($('#'+section));
danielebarchiesi@4 368 currentState[section] = false;
danielebarchiesi@4 369 }
danielebarchiesi@4 370 $(this).parent().show();
danielebarchiesi@4 371 }
danielebarchiesi@4 372 else if ($(this).text().match(regex)) {
danielebarchiesi@4 373 $(this).parent().show();
danielebarchiesi@4 374 newState[section] = true;
danielebarchiesi@4 375 }
danielebarchiesi@4 376 else {
danielebarchiesi@4 377 $(this).parent().hide();
danielebarchiesi@4 378 }
danielebarchiesi@4 379 });
danielebarchiesi@4 380 });
danielebarchiesi@4 381 for (section in newState) {
danielebarchiesi@4 382 if (currentState[section] != newState[section]) {
danielebarchiesi@4 383 Drupal.toggleFieldset($('#'+section));
danielebarchiesi@4 384 }
danielebarchiesi@4 385 }
danielebarchiesi@4 386 }
danielebarchiesi@4 387 $('#features-filter input', context).bind("input", function() {
danielebarchiesi@4 388 _resetFilterTimeout();
danielebarchiesi@4 389 });
danielebarchiesi@4 390 $('#features-filter .features-filter-clear', context).click(function() {
danielebarchiesi@4 391 $('#features-filter input').val('');
danielebarchiesi@4 392 _updateFilter();
danielebarchiesi@4 393 });
danielebarchiesi@4 394
danielebarchiesi@4 395 // show the filter bar
danielebarchiesi@4 396 $('#features-filter', context).removeClass('element-invisible');
danielebarchiesi@4 397 }
danielebarchiesi@4 398 }
danielebarchiesi@4 399
danielebarchiesi@4 400
danielebarchiesi@4 401 Drupal.features = {
danielebarchiesi@4 402 'checkStatus': function() {
danielebarchiesi@4 403 $('table.features tbody tr').not('.processed').filter(':first').each(function() {
danielebarchiesi@4 404 var elem = $(this);
danielebarchiesi@4 405 $(elem).addClass('processed');
danielebarchiesi@4 406 var uri = $(this).find('a.admin-check').attr('href');
danielebarchiesi@4 407 if (uri) {
danielebarchiesi@4 408 $.get(uri, [], function(data) {
danielebarchiesi@4 409 $(elem).find('.admin-loading').hide();
danielebarchiesi@4 410 switch (data.storage) {
danielebarchiesi@4 411 case 3:
danielebarchiesi@4 412 $(elem).find('.admin-rebuilding').show();
danielebarchiesi@4 413 break;
danielebarchiesi@4 414 case 2:
danielebarchiesi@4 415 $(elem).find('.admin-needs-review').show();
danielebarchiesi@4 416 break;
danielebarchiesi@4 417 case 1:
danielebarchiesi@4 418 $(elem).find('.admin-overridden').show();
danielebarchiesi@4 419 break;
danielebarchiesi@4 420 default:
danielebarchiesi@4 421 $(elem).find('.admin-default').show();
danielebarchiesi@4 422 break;
danielebarchiesi@4 423 }
danielebarchiesi@4 424 Drupal.features.checkStatus();
danielebarchiesi@4 425 }, 'json');
danielebarchiesi@4 426 }
danielebarchiesi@4 427 else {
danielebarchiesi@4 428 Drupal.features.checkStatus();
danielebarchiesi@4 429 }
danielebarchiesi@4 430 });
danielebarchiesi@4 431 }
danielebarchiesi@4 432 };
danielebarchiesi@4 433
danielebarchiesi@4 434
danielebarchiesi@4 435 })(jQuery);
danielebarchiesi@4 436
danielebarchiesi@4 437