2 column picker WIP
diff --git a/planetstack/core/xoslib/static/js/picker.js b/planetstack/core/xoslib/static/js/picker.js
new file mode 100644
index 0000000..0302cf4
--- /dev/null
+++ b/planetstack/core/xoslib/static/js/picker.js
@@ -0,0 +1,50 @@
+function init_picker(selector, ordered) {
+ //console.log("init_picker");
+ //console.log($(selector));
+
+ var addBtn = $(selector).find(".btn-picker-add");
+ var removeBtn = $(selector).find(".btn-picker-remove");
+ var upBtn = $(selector).find(".btn-picker-up");
+ var downBtn = $(selector).find(".btn-picker-down");
+ var from = $(selector).find(".select-picker-from");
+ var to = $(selector).find(".select-picker-to");
+
+ if (!ordered) {
+ upBtn.hide();
+ downBtn.hide();
+ }
+
+ addBtn.click(function(){
+ console.log("add");
+ from.find(":selected").each( function() {
+ to.append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
+ $(this).remove();
+ });
+ });
+ removeBtn.click(function(){
+ console.log("remove");
+ to.find(":selected").each( function() {
+ from.append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
+ $(this).remove();
+ });
+ });
+ upBtn.bind('click', function() {
+ to.find(":selected").each( function() {
+ var newPos = to.find('option').index(this) - 1;
+ if (newPos > -1) {
+ to.find("option").eq(newPos).before("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
+ $(this).remove();
+ }
+ });
+ });
+ downBtn.bind('click', function() {
+ var countOptions = to.find("option").size();
+ to.find(":selected").each( function() {
+ var newPos = to.find("option").index(this) + 1;
+ if (newPos < countOptions) {
+ to.find("option").eq(newPos).after("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
+ $(this).remove();
+ }
+ });
+ });
+};