');
}
});
return false;
});
});
jQuery.fn.mtDialog.open('?__mode=dashboard');
}
function handleMessages( data ) {
jQuery('#msg-block').empty();
if ( data.error ) {
jQuery('#msg-block').append(
'
'
+ data.error
+ '
'
+ '<__trans phrase="Close" escape="js">'
+ '
');
return false;
}
if ( !data.result ) return false;
var messages = data.result.messages;
if ( !data.result.messages ) return true;
for ( var i=0; i < messages.length; i++ ) {
var msg = messages[i];
var text = msg.msg;
var cls = msg.cls;
jQuery('#msg-block').append(
'
'
+ text
+ '
'
+ '<__trans phrase="Close" escape="js">'
+ '
');
}
return true;
}
function fixInteractions( options ) {
var defaults = {
sortable: true,
closeInlineForms: true
};
var opts = jQuery.extend(defaults, options);
if ( opts.closeInlineForms ) {
jQuery('div.edit-form button.cancel').click();
jQuery('div.add-form button.cancel').click();
}
if ( opts.sortable ) {
jQuery('.sort-tab').show();
}
else {
jQuery('.sort-tab').hide();
}
}
jQuery('div#area-action input[name=category_label]').focus( function() {
fixInteractions();
});
// id and parent should be numbers
function createItem(id, parent, label, basename, number) {
var line = '';
line += ''+label+'';
if ( basename )
line += ''+basename+'';
line += ' ';
line += ' '+number+'';
var $item = jQuery('').append(line);
return $item;
}
function initItem($item) {
var id = $item.attr('id');
var catid = id.slice(4);
$item.attr('class').match(/\bpcat-(\w+)\b/);
var parent = RegExp.$1;
var nest = countNested(parent, []);
$item.css('margin-left', nest.length*indent)
.addClass(jQuery.map(nest, function (a){ return 'pcat-'+a; }).join(' '))
.addClass('lv-'+nest.length)
.addClass('sortable-item');
$item.find('.item-ctrl, .edit-form').remove();
$item.append('');
jQuery('<__trans phrase="Rename" escape="js">')
.appendTo($item.find('.item-ctrl'))
.bind('click', function() {
fixInteractions({
sortable: false
});
var $element = jQuery(this).parent('.item-ctrl').parent('div');
var $label = $element.find('.item-label a').length ? $element.find('.item-label a') : $element.find('.item-label');
var $basename = $element.find('.item-basename-text');
var $children = $element.children().hide();
var $form = jQuery('')
.append(jQuery('_label" class="text short label" placeholder="<__trans phrase="Label" escape="js">" />'));
$form.find('.label').val($label.text());
$form.append(jQuery('_basename" class="text short basename" placeholder="<__trans phrase="Basename" escape="js">" />'));
$form.find('.basename').val($basename.text());
jQuery.mtValidateRules['.label'] = function ($e) {
if ( !$e.val().length ) return this.raise('<__trans phrase="Label is required." escape="js">');
return hasDupe(parent, catid, $e.val()) ? this.raise('<__trans phrase="Duplicated label on this level." escape="js">') : true;
};
jQuery.mtValidateRules['.label'] = function ($e) {
if ( !$e.val().length ) return this.raise('<__trans phrase="Label is required." escape="js">');
return true;
};
jQuery.mtValidateRules['.basename'] = function ($e) {
if ( !$e.val().length ) return this.raise('<__trans phrase="Basename is required." escape="js">');
if ( $e.val().match(/[^\w\-]/) ) return this.raise('<__trans phrase="Invalid Basename." escape="js">');
return hasDupe(parent, catid, null, $e.val()) ? this.raise('<__trans phrase="Duplicated basename on this level." escape="js">') : true;
};
jQuery('')
.bind('click', function() {
if ( !$element.find('input.label, input.basename').mtValidate() ) return false;
fixInteractions({ closeInlineForms: false });
$basename.text( $element.find('input.basename').val() );
$label.text( $element.find('input.label').val() );
$children.show();
initItem($item);
setItemList();
setDirty(true);
})
.appendTo($form);
jQuery('')
.bind('click', function() {
fixInteractions({ closeInlineForms: false });
$children.show();
initItem($item);
})
.appendTo($form);
$form.appendTo($element);
$form.find('.label, .basename').bind('keypress', function (e) {
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$form.find('button.rename').click();
return false;
}
});
$form.find('.label').focus();
return false;
});
jQuery('<__trans phrase="Add child [_1]" params="" escape="js">')
.appendTo($item.find('.item-ctrl'))
.bind('click', function() {
fixInteractions({ sortable: false });
var $element = jQuery(this).parent('.item-ctrl').parent('div');
var parent = $element.attr('id').slice(4);
var $form = jQuery('