|
From: <net...@us...> - 2011-12-18 14:29:27
|
Revision: 590
http://openautomation.svn.sourceforge.net/openautomation/?rev=590&view=rev
Author: netzkind
Date: 2011-12-18 14:29:20 +0000 (Sun, 18 Dec 2011)
Log Message:
-----------
attribute "variant" for address is now a select-list on a per-widget-basis; will no longer be displayed when not available (declutter UI)
Modified Paths:
--------------
CometVisu/trunk/visu/edit/cometeditor.js
CometVisu/trunk/visu/edit/visuconfig_edit.js
CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
Modified: CometVisu/trunk/visu/edit/cometeditor.js
===================================================================
--- CometVisu/trunk/visu/edit/cometeditor.js 2011-12-18 14:19:21 UTC (rev 589)
+++ CometVisu/trunk/visu/edit/cometeditor.js 2011-12-18 14:29:20 UTC (rev 590)
@@ -90,6 +90,11 @@
// we've got elements we need to addit :)
container.append(set = jQuery("<fieldset />").addClass("elements"));
jQuery.each(elements, function(index, e) {
+ // Fallback if no options are specified
+ if (typeof e.options == "undefined") {
+ e.options = {};
+ }
+
var $line = $("<div />").addClass("add_input")
.append($("<label />").attr("for", "add_" + index).html(index))
.append($("<div class=\"input\" />"));
@@ -113,14 +118,14 @@
objData._attributes.variant = "";
objData._attributes.readonly = false;
- var elementDiv = HTMLLayer.createAddressEditorElement(objData);
+ var elementDiv = HTMLLayer.createAddressEditorElement(objData, e.options);
$input.find("div.multi_element").append(elementDiv);
});
if (typeof values._elements != "undefined"
&& typeof values._elements[index] != "undefined") {
- $.each(values._elements[index], function(i, e) {
- var elementDiv = HTMLLayer.createAddressEditorElement(e);
+ $.each(values._elements[index], function(i, myE) {
+ var elementDiv = HTMLLayer.createAddressEditorElement(myE, e.options);
$input.find("div.multi_element").append(elementDiv);
});
}
@@ -628,7 +633,8 @@
/**
* Create a sub-element for the multi-editor to edit an address-entry.
*/
- Layer.createAddressEditorElement = function(elementData) {
+ Layer.createAddressEditorElement = function(elementData, options) {
+
var elementDiv = jQuery("<div class=\"element clearfix\" />");
elementDiv.append("<div class=\"title\" />")
.append("<div class=\"value editable\" />")
@@ -652,6 +658,13 @@
.data("readonly", elementData._attributes.readonly == "true" ? true : false)
.data("address", elementData.textContent);
+ if (typeof options == "undefined" || typeof options.variant == "undefined" || options.variant == false) {
+ // if this element does not support variants, then remove them from the HTML.
+ elementDiv.find("div.variant").remove();
+ }
+
+ elementDiv.data("options", options);
+
return elementDiv;
}
}
\ No newline at end of file
Modified: CometVisu/trunk/visu/edit/visuconfig_edit.js
===================================================================
--- CometVisu/trunk/visu/edit/visuconfig_edit.js 2011-12-18 14:19:21 UTC (rev 589)
+++ CometVisu/trunk/visu/edit/visuconfig_edit.js 2011-12-18 14:29:20 UTC (rev 590)
@@ -179,6 +179,7 @@
$this.addClass("inedit");
$edit = jQuery("<div class=\"clearfix edit\" />");
$this.append($edit);
+ var options = $this.data("options");
$this.find(".editable").hide().each(function(index, e) {
$e = jQuery(e);
@@ -267,14 +268,24 @@
}
}
- if ($e.hasClass("variant")) {
+ if ($e.hasClass("variant") && typeof options.variant != "undefined") {
+ // variants can be selected from a pre-defined list ONLY.
element.find("label").html("variant");
- myElement.append($("<input class=\"add_variant\" />"));
- if (typeof $e.text() != "undefined") {
- // pre-set the value
- myElement.find(":input").val($e.text());
- }
+
+ // variants can be selected from a pre-defined list ONLY.
+ var variantList = $("<select name=\"variant\" />");
+ // go through list of available variants and display as select-list
+ $.each(options.variant, function (i, element) {
+ if (typeof $e.text() != "undefined"
+ && $e.text() == element) {
+ variantList.append("<option value=\"" + element + "\" label=\"" + element + "\" selected>" + element + "</option>");
+ } else {
+ variantList.append("<option value=\"" + element + "\" label=\"" + element + "\">" + element + "</option>");
+ }
+ });
+
+ myElement.append(variantList);
}
if (element.find("select")[0]) {
@@ -308,8 +319,10 @@
objData._attributes.variant = $e.find(".add_variant").val();
objData._attributes.readonly = $e.find(".add_readonly:checked").val();
+ var options = $e.data("options");
+
// remove this item and insert a new one instead
- var elementDiv = HTMLLayer.createAddressEditorElement(objData);
+ var elementDiv = HTMLLayer.createAddressEditorElement(objData, options);
$this.closest(".element").replaceWith(elementDiv);
}))
Modified: CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2011-12-18 14:19:21 UTC (rev 589)
+++ CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2011-12-18 14:29:20 UTC (rev 590)
@@ -166,7 +166,7 @@
},
elements: {
label: { type: 'string', required: true, multi: false },
- address: { type: 'address', required: true, multi: true }
+ address: { type: 'address', required: true, multi: true, options: {variant: ['r', 'g', 'b']} }
},
content: false
});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|