ui/widget: make framework changes to allow for text area input in edit views

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2015-11-06 23:03:45 +05:30
parent 4b249bde43
commit 662b54b2e1
2 changed files with 27 additions and 4 deletions

View File

@ -442,7 +442,7 @@
if ($detailView.find('.button.done').size()) return false;
// Convert value TDs
var $inputs = $detailView.find('input, select').filter(function() {
var $inputs = $detailView.find('input, select, textarea').filter(function() {
return !$(this).closest('.tagger').size() && !$(this).attr('type') == 'submit';
});
var action = args.actions[args.actionName];
@ -507,10 +507,17 @@
$input.find('option:selected').html()
));
$value.data('detail-view-selected-option', _s($input.find('option:selected').val()));
} else if ($input.is('textarea')) {
$value.html(_s(
$input.val()
));
$value.data('detail-view-editable-textarea', _s($input.find('option:selected').val()));
}
});
$token.html(_s(tags_value));
if ($token) {
$token.html(_s(tags_value));
}
};
var removeEditForm = function() {
@ -626,7 +633,7 @@
};
$editButton.click(function() {
var $inputs = $detailView.find('input, select').filter(function() {
var $inputs = $detailView.find('input, select, textarea').filter(function() {
return !$(this).closest('.tagger').size();
});
var $form = $detailView.find('form').filter(function() {
@ -672,6 +679,7 @@
// Turn into form field
var selectData = $value.data('detail-view-editable-select');
var isBoolean = $value.data('detail-view-editable-boolean');
var textArea = $value.data('detail-view-editable-textarea');
var isTokenInput = $value.data('detail-view-is-token-input');
var data = !isBoolean ? cloudStack.sanitizeReverse($value.html()) : $value.data('detail-view-boolean-value');
var rules = $value.data('validation-rules') ? $value.data('validation-rules') : {};
@ -760,6 +768,15 @@
$value.append($input);
token_value = data;
$value.data('value-token').dataProvider(selectArgs);
} else if (textArea) {
// Text area
$value.append(
$('<textarea>').attr({
name: name,
value: data
}).css({'min-height': '80px'}).data('original-value', data)
);
$value.css({'width': '100%', 'height': '100%'});
} else {
// Text input
$value.append(
@ -1146,6 +1163,8 @@
} else if (value.isBoolean) {
$value.data('detail-view-editable-boolean', true);
$value.data('detail-view-boolean-value', content == 'Yes' ? true : false);
} else if (value.textArea) {
$value.data('detail-view-editable-textarea', true);
} else {
$value.data('detail-view-is-password', value.isPassword);
}

View File

@ -1990,7 +1990,11 @@
// Infinite scrolling event
$listView.bind('scroll', function(event) {
if (args.listView && args.listView.disableInfiniteScrolling) return false;
var listView = args.listView;
if (!listView && args.sections && args.sections.hasOwnProperty(args.activeSection)) {
listView = args.sections[args.activeSection].listView;
}
if (listView && listView.disableInfiniteScrolling) return false;
if ($listView.find('tr.last, td.loading:visible').size()) return false;
clearTimeout(infScrollTimer);