Now all modules are in core modules folder
This commit is contained in:
parent
5ba1cdfa0b
commit
05b6a91b0c
1907 changed files with 0 additions and 0 deletions
79
modules/cck/js/content.admin.js
Normal file
79
modules/cck/js/content.admin.js
Normal file
|
@ -0,0 +1,79 @@
|
|||
|
||||
Drupal.behaviors.cckManageFields = function(context) {
|
||||
attachUpdateSelects(context);
|
||||
};
|
||||
|
||||
function attachUpdateSelects(context) {
|
||||
var widgetTypes = Drupal.settings.contentWidgetTypes;
|
||||
var fields = Drupal.settings.contentFields;
|
||||
|
||||
// Store the default text of widget selects.
|
||||
$('#content-field-overview .content-widget-type-select', context).each(function() {
|
||||
this.initialValue = this.options[0].text;
|
||||
});
|
||||
|
||||
// 'Field type' select updates its 'Widget' select.
|
||||
$('#content-field-overview .content-field-type-select', context).each(function() {
|
||||
this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
|
||||
|
||||
$(this).change(function() {
|
||||
var selectedFieldType = this.options[this.selectedIndex].value;
|
||||
var options = (selectedFieldType in widgetTypes) ? widgetTypes[selectedFieldType] : [ ];
|
||||
this.targetSelect.contentPopulateOptions(options);
|
||||
});
|
||||
|
||||
// Trigger change on initial pageload to get the right widget options
|
||||
// when field type comes pre-selected (on failed validation).
|
||||
$(this).trigger('change');
|
||||
});
|
||||
|
||||
// 'Existing field' select updates its 'Widget' select and 'Label' textfield.
|
||||
$('#content-field-overview .content-field-select', context).each(function() {
|
||||
this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
|
||||
this.targetTextfield = $('.content-label-textfield', $(this).parents('tr').eq(0));
|
||||
|
||||
$(this).change(function(e, updateText) {
|
||||
var updateText = (typeof(updateText) == 'undefined') ? true : updateText;
|
||||
var selectedField = this.options[this.selectedIndex].value;
|
||||
var selectedFieldType = (selectedField in fields) ? fields[selectedField].type : null;
|
||||
var selectedFieldWidget = (selectedField in fields) ? fields[selectedField].widget : null
|
||||
var options = (selectedFieldType && (selectedFieldType in widgetTypes)) ? widgetTypes[selectedFieldType] : [ ];
|
||||
this.targetSelect.contentPopulateOptions(options, selectedFieldWidget);
|
||||
|
||||
if (updateText) {
|
||||
$(this.targetTextfield).attr('value', (selectedField in fields) ? fields[selectedField].label : '');
|
||||
}
|
||||
});
|
||||
|
||||
// Trigger change on initial pageload to get the right widget options
|
||||
// and label when field type comes pre-selected (on failed validation).
|
||||
$(this).trigger('change', false);
|
||||
});
|
||||
}
|
||||
|
||||
jQuery.fn.contentPopulateOptions = function(options, selected) {
|
||||
return this.each(function() {
|
||||
var disabled = false;
|
||||
if (options.length == 0) {
|
||||
options = [this.initialValue];
|
||||
disabled = true;
|
||||
}
|
||||
|
||||
// If possible, keep the same widget selected when changing field type.
|
||||
// This is based on textual value, since the internal value might be
|
||||
// different (optionwidgets_buttons vs. nodereference_buttons).
|
||||
var previousSelectedText = this.options[this.selectedIndex].text;
|
||||
|
||||
var html = '';
|
||||
jQuery.each(options, function(value, text) {
|
||||
// Figure out which value should be selected. The 'selected' param
|
||||
// takes precedence.
|
||||
var is_selected = ((typeof(selected) !== 'undefined' && value == selected) || (typeof(selected) == 'undefined' && text == previousSelectedText));
|
||||
html += '<option value="' + value + '"' + (is_selected ? ' selected="selected"' : '') +'>' + text + '</option>';
|
||||
});
|
||||
|
||||
$(this)
|
||||
.html(html)
|
||||
.attr('disabled', disabled ? 'disabled' : '');
|
||||
});
|
||||
}
|
Reference in a new issue