Handle textarea max_length better in older browsers
[edumed.git] / wtem / static / wtem / wtem.js
index 3f9bfad..a65bb7f 100644 (file)
@@ -2,9 +2,9 @@ $(function() {
 
     var to_submit;
 
-    $('#submit_answers').click(function(e) {
+    $('form').submit(function(e) {
         //e.preventDefault();
-        to_submit = [];
+        to_submit = {};
 
         $('.exercise-wtem').each(function() {
             var el = $(this);
@@ -17,21 +17,56 @@ $(function() {
                 }
             }
         });
-        console.log(JSON.stringify(to_submit));
         $('input[name=answers]').val(JSON.stringify(to_submit));
     });
 
+    var push_answer = function(el, answer) {
+        to_submit[el.attr('data-id')] = answer
+    };
+
     var handlers = {
         edumed: function(el) {
-            var exercise = el.data('exercise');
+            var exercise = el.data('exercise'),
+                to_push = {},
+                open_part;
             if(exercise.get_answers) {
-                to_submit.push(exercise.get_answers()[0]);
+                to_push.closed_part = exercise.get_answers()[0];
+            }
+            open_part = el.find('.open_part')
+            if(open_part.length) {
+                to_push.open_part = open_part.find('textarea').val();
             }
+
+            push_answer(el, to_push);
         },
 
         open: function(el) {
-            to_submit.push(el.find('textarea').val());
+            var textareas = el.find('textarea'),
+                to_push;
+            if(textareas.length === 1) {
+                to_push = el.find('textarea').val();
+            } else {
+                to_push = [];
+                textareas.each(function() {
+                    var textarea = $(this);
+                    to_push.push({'id': textarea.attr('data-field-id'), 'text': textarea.val()});
+                });
+            }
+            push_answer(el, to_push);
         }
     }
 
+    var sms_handler = function() {
+        var textarea = $(this),
+            label_suffix = textarea.parent().find('.label_suffix'),
+            left = 140 - textarea.val().length;
+            to_insert = '(pozostaƂo: ' + left + ')';
+        if(left < 0) {
+            to_insert = '<span style="color:red">' + to_insert + '</span>';
+        }
+        label_suffix.html(to_insert);
+    };
+
+    $('#wtem_sms').change(sms_handler).keyup(sms_handler);
+
 });
\ No newline at end of file