aboutsummaryrefslogtreecommitdiffstats
path: root/webclient/lib/jquery.forms.js
diff options
context:
space:
mode:
Diffstat (limited to 'webclient/lib/jquery.forms.js')
-rw-r--r--webclient/lib/jquery.forms.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/webclient/lib/jquery.forms.js b/webclient/lib/jquery.forms.js
new file mode 100644
index 0000000..e9a5258
--- /dev/null
+++ b/webclient/lib/jquery.forms.js
@@ -0,0 +1,71 @@
+/**
+ * Form manipulation with jQuery
+ */
+(function( $ ){
+
+ var methods = {
+
+ render: function(){
+ var result = $('<form></form>');
+ if ( this.find('title').length !== 0 ){
+ result.append('<p class="title">' + this.find('title') + '</p>');
+ }
+
+ if ( this.find('instructions').length !== 0 ){
+ result.append('<p class="instructions">'
+ + this.find('instructions') + '</p>');
+ }
+
+ this.find('field').each(function(index){
+ var type = $(this).attr("type");
+ var name = $(this).attr("var");
+ var required = $(this).find('required').length !== 0;
+
+ if ( $(this).find('desc').length !== 0 ){
+ result.append('<p class="description">'
+ + $(this).find('desc').text()
+ + '</p>');
+ }
+
+ if ( $(this).attr('label') !== undefined ){
+ result.append('<label for="form-' + name + '">'
+ + $(this).attr('label')
+ + (required ? ' (*): ' : ': ')
+ + '</label>');
+ }
+
+ switch(type){
+ case("text-single"):
+ var input = $('<input/>');
+ input.attr('type', 'text');
+ input.attr('name', name);
+ input.attr('id', 'form-' + name);
+
+ if ( $(this).find('value').length !== 0 ){
+ input.attr('value', $(this).find('value').text());
+ }
+ result.append(input);
+ result.append('<br/>');
+ }
+ });
+ return result;
+ }
+ };
+
+ /*
+ * Register the 'xmppForm' method to the jQuery objects
+ * the first argument of this method is the submethod
+ * you want to call
+ */
+ $.fn.xmppForm = function(method) {
+ if ( methods[method] ) {
+ return methods[method].apply(this, Array.prototype.slice
+ .call(arguments, 1));
+ } else if ( typeof method === 'object' || !method ) {
+ return methods.init.apply(this, arguments);
+ } else {
+ $.error('Method ' + method + ' does not exist on jQuery.xmppForm');
+ }
+ };
+
+})(jQuery); \ No newline at end of file