accurator/commit

Made the retrieval of alternatives more generic and added getValue method.

authorChris Dijkshoorn
Sun Apr 3 11:50:30 2016 +0200
committerChris Dijkshoorn
Sun Apr 3 11:50:30 2016 +0200
commit80e532f884d65da6c633dc81440cdaa6fe346e7f
treed977f3b9b317c435ca4c10dca2d51808559177df
parenta615d9fd6c9bec05f7bbb0434bfa419d2d27aa90
Diff style: patch stat
diff --git a/lib/accurator/ui_elements.pl b/lib/accurator/ui_elements.pl
index 403a9d3..5cee3d1 100644
--- a/lib/accurator/ui_elements.pl
+++ b/lib/accurator/ui_elements.pl
@@ -51,10 +51,10 @@ get_countries(DictArray, _Options) :-
 				%only english for now
 				rdf(GeonamesCountry, gn:name, literal(lang(en, CountryName))),
 				CountryDict0 = country{},
-				CountryDict1 = CountryDict0.put(name, CountryName),
+				CountryDict1 = CountryDict0.put(label, CountryName),
 				rdf(GeonamesCountry, gn:countryCode, literal(CountryCode)),
 				downcase_atom(CountryCode, CountryCodeLower),
-				CountryDict = CountryDict1.put(country_code, CountryCodeLower)),
+				CountryDict = CountryDict1.put(id, CountryCodeLower)),
 			DictArray).
 
 %%	get_languages(-DictArray, _Options)
@@ -64,10 +64,10 @@ get_languages(DictArray, _Options) :-
 	findall(LanguageDict,
 			(	rdf(GeonamesCountry, acl:isoCode, literal(IsoCode)),
 				LanguageDict0 = language{},
-				LanguageDict1 = LanguageDict0.put(iso_code, IsoCode),
+				LanguageDict1 = LanguageDict0.put(id, IsoCode),
 				%only english for now
 				rdf(GeonamesCountry, rdfs:label, literal(lang(en, LanguageName))),
-				LanguageDict = LanguageDict1.put(name, LanguageName)),
+				LanguageDict = LanguageDict1.put(label, LanguageName)),
 			DictArray).
 
 %%	get_labels(-TextDic, +Options)
diff --git a/web/js/components/form.js b/web/js/components/form.js
index 07cbf6f..6d69b4d 100644
--- a/web/js/components/form.js
+++ b/web/js/components/form.js
@@ -78,7 +78,6 @@ Form.prototype.addFormQuestions = function(labelData) {
                 labelData.formLblCountry
             );
             this.formGroups[i].addAlternatives("countries", this.locale, this.ui);
-            console.log("adding question", i, " with object ", this.formGroups[i]);
         }
     }
 
@@ -88,8 +87,6 @@ Form.prototype.addFormQuestions = function(labelData) {
             this.formGroups[i].node
         );
     }
-    // $(this.node).find("#formLblCountry").append(labelData.formLblCountry);
-
 
 	$(this.node).find("#formLblBirthDate").append(labelData.formLblBirthDate);
 	$(this.node).find("#formLblGender").append(labelData.formLblGender);
@@ -118,7 +115,7 @@ Form.prototype.addButtonEvents = function() {
     $(this.node).find("#formBtnAdd").click(function() {
         _form.processFormFields()
         .then(function() {
-            $(_form.node).hide();
+            // $(_form.node).hide();
         });
     });
 
@@ -130,54 +127,15 @@ Form.prototype.addButtonEvents = function() {
 Form.prototype.processFormFields = function() {
     var info = {};
     console.log("process form fields");
-    // this.getInputDropdownMenus();
-
+    for (var i=0; i<this.formGroups.length; i++) {
+        var id = this.formGroups[i].id;
+        var value = this.formGroups[i].getValue();
+        info[id] = value;
+    }
+    console.log("info ", info);
 	return save_user_info(info);
 }
 
-Form.prototype.addCountrySelector = function() {
-    $(this.node).find("form").append(
-        $.el.div({'class':'form-group'}, [
-            $.el.label({
-                'class':'col-sm-5 control-label',
-                'for':'formSltCountry',
-                'id':'formLblCountry'
-            }),
-            $.el.div({'class':'col-sm-5'},
-                $.el.select({
-                    'class':'form-control',
-                    'id':'formSltCountry'
-                })
-            )
-        ])
-    );
-    this.addCountries();
-}
-
-Form.prototype.addCountries = function() {
-    $.getJSON("ui_elements", {
-        locale: this.locale,
-        ui: this.ui,
-        type:"countries"
-    })
-    .then(function(countryData) {
-        this.countries = countryData;
-        this.countries.sort(function(a, b) {
-            return a.name.localeCompare(b.name)
-        });
-
-        // add first empty element
-        $("#formSltCountry").append($.el.option(""));
-
-        // add countries to selector
-        for (var i = 0; i < this.countries.length; i++) {
-            $("#formSltCountry").append($.el.option(this.countries[i].name));
-        }
-    }, function(){
-        $("#formSltCountry").append($.el.option("No countries found on server"));
-    });
-}
-
 function FormGroup(id, label) {
     this.id = id;
     this.label = label;
@@ -222,7 +180,7 @@ SelectFormGroup.prototype.addAlternatives = function(type, locale, ui) {
     .then(function(alternativeData) {
         _group.alternatives = alternativeData;
         _group.alternatives.sort(function(a, b) {
-            return a.name.localeCompare(b.name)
+            return a.label.localeCompare(b.label)
         });
 
         // add first empty element
@@ -231,7 +189,7 @@ SelectFormGroup.prototype.addAlternatives = function(type, locale, ui) {
         // add countries to selector
         for (var i = 0; i < _group.alternatives.length; i++) {
             $(_group.node).find("#formSlt" + _group.id).append(
-                $.el.option(_group.alternatives[i].name)
+                $.el.option(_group.alternatives[i].label)
             );
         }
     }, function(){
@@ -240,3 +198,14 @@ SelectFormGroup.prototype.addAlternatives = function(type, locale, ui) {
         );
     });
 }
+
+SelectFormGroup.prototype.getValue = function() {
+    var input = $("#formSlt" + this.id).val();
+
+    // Find the id corresponding to the selected name
+    for (var key in this.alternatives) {
+        if (this.alternatives[key].label === input) {
+            return this.alternatives[key].id;
+        }
+    }
+}