diff sites/all/modules/webform/js/select-admin.js @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sites/all/modules/webform/js/select-admin.js	Wed Aug 21 18:51:11 2013 +0100
@@ -0,0 +1,56 @@
+
+/**
+ * @file
+ * Enhancements for select list configuration options.
+ */
+
+(function ($) {
+
+Drupal.behaviors.webformSelectLoadOptions = {};
+Drupal.behaviors.webformSelectLoadOptions.attach = function(context) {
+  settings = Drupal.settings;
+
+  $('#edit-extra-options-source', context).change(function() {
+    var url = settings.webform.selectOptionsUrl + '/' + this.value;
+    $.ajax({
+      url: url,
+      success: Drupal.webform.selectOptionsLoad,
+      dataType: 'json'
+    });
+  });
+}
+
+Drupal.webform = Drupal.webform || {};
+
+Drupal.webform.selectOptionsOriginal = false;
+Drupal.webform.selectOptionsLoad = function(result) {
+  if (Drupal.optionsElement) {
+    if (result.options) {
+      // Save the current select options the first time a new list is chosen.
+      if (Drupal.webform.selectOptionsOriginal === false) {
+        Drupal.webform.selectOptionsOriginal = $(Drupal.optionElements[result.elementId].manualOptionsElement).val();
+      }
+      $(Drupal.optionElements[result.elementId].manualOptionsElement).val(result.options);
+      Drupal.optionElements[result.elementId].disable();
+      Drupal.optionElements[result.elementId].updateWidgetElements();
+    }
+    else {
+      Drupal.optionElements[result.elementId].enable();
+      if (Drupal.webform.selectOptionsOriginal) {
+        $(Drupal.optionElements[result.elementId].manualOptionsElement).val(Drupal.webform.selectOptionsOriginal);
+        Drupal.optionElements[result.elementId].updateWidgetElements();
+        Drupal.webform.selectOptionsOriginal = false;
+      }
+    }
+  }
+  else {
+    if (result.options) {
+      $('#' + result.elementId).val(result.options).attr('readonly', 'readonly');
+    }
+    else {
+      $('#' + result.elementId).attr('readonly', '');
+    }
+  }
+}
+
+})(jQuery);