app/soc/content/js/survey-edit-090703.js
author Daniel Diniz <ajaksu@gmail.com>
Mon, 06 Jul 2009 16:13:27 +0200
changeset 2560 a944c0169ad8
parent 2541 7ef468836f6e
permissions -rw-r--r--
Added ability to add custom tooltips and UI improvements. Reviewed by: Lennard de Rijk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     1
 /* Copyright 2009 the Melange authors.
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     2
 *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     3
 * Licensed under the Apache License, Version 2.0 (the "License");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     4
 * you may not use this file except in compliance with the License.
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     5
 * You may obtain a copy of the License at
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     6
 *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     7
 *   http://www.apache.org/licenses/LICENSE-2.0
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     8
 *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
     9
 * Unless required by applicable law or agreed to in writing, software
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    10
 * distributed under the License is distributed on an "AS IS" BASIS,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    12
 * See the License for the specific language governing permissions and
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    13
 * limitations under the License.
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    14
 */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    15
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    16
/*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    17
*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    18
* @author <a href="mailto:ajaksu@gmail.com">Daniel Diniz</a>
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    19
* @author <a href="mailto:jamesalexanderlevy@gmail.com">James Levy</a>
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    20
*/
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    21
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    22
(function ($) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    23
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    24
  var DEFAULT_LONG_ANSWER_TEXT = 'Write a Custom Prompt For This Question...';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    25
  var DEFAULT_SHORT_ANSWER_TEXT = 'Write a Custom Prompt...';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    26
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    27
  $(function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    28
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    29
    * == Set Selectors ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    30
    *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    31
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    32
    var widget = $('div#survey_widget');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    33
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    34
    widget.parents('td.formfieldvalue:first').css({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    35
      'float': 'left',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    36
      'width': 200
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    37
    });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    38
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    39
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    40
    * == Setup for existing surveys ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    41
    *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    42
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    43
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    44
    if ($('input#id_title').val() === '' && $('.formfielderror').length < 1) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    45
      widget.find('tr').remove();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    46
    }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    47
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    48
    widget.find('table:first').show();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    49
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    50
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    51
    *  Restore survey content html from editPost
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    52
    *  if POST fails
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    53
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    54
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    55
    var SURVEY_PREFIX = 'survey__';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    56
    var del_el = ["<a class='delete'><img '",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    57
                  "src='/soc/content/images/minus.gif'/></a>"].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    58
    var del_li = ["<a class='delete_item' id='del_",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    59
                  "' ><img src='/soc/content/images/minus.gif'/></a> "];
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    60
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    61
    var survey_html = $('form').find("#id_survey_html").attr('value');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    62
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    63
    function renderHTML() {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    64
      // render existing survey forms
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    65
      widget.find('td > label').prepend(del_el).end();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    66
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    67
      $('ol').find('li').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    68
        function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    69
          $(this).prepend(del_li.join($(this).attr('id'))).end();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    70
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    71
      );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    72
      widget.find('.short_answer').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    73
        function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    74
          $(this).attr('name', SURVEY_PREFIX + $(this).getPosition() +
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    75
                             'short_answer__' + $(this).attr('name'));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    76
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    77
      );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    78
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    79
      // add index information to choice fields
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    80
      widget.find('[name=create-option-button]').each(
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    81
        function () {
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    82
          $(
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    83
            '#index_for_' + $(this).attr('value')
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    84
          )
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    85
          .val(
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    86
            $(this).getPosition()
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    87
          );
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    88
        }
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    89
      );
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
    90
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    91
      widget.find('.long_answer').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    92
        function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    93
          $(this).attr('name', SURVEY_PREFIX + $(this).getPosition() +
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    94
                             'long_answer__' + $(this).attr('name'))
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    95
          .attr('overflow', 'auto');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    96
          // TODO: replace scrollbar with jquery autogrow
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    97
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    98
      );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
    99
    }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   100
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   101
    if (survey_html && survey_html.length > 1) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   102
      widget.html(survey_html); // we don't need to re-render HTML
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   103
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   104
      widget.find('.long_answer,input').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   105
        function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   106
          $(this).val($(this).attr('val'));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   107
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   108
      );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   109
    }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   110
    else {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   111
      renderHTML();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   112
    }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   113
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   114
    var survey = widget.find('tbody:first');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   115
    var options = widget.find('#survey_options');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   116
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   117
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   118
    * == Handle Enter key on dialogs ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   119
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   120
    $('form input, form button, form select').keypress(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   121
      function (e) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   122
        if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   123
          $(this).parents('.ui-dialog:first').find(":button:first").click();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   124
          return false;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   125
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   126
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   127
    );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   128
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   129
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   130
    * == Display survey answers inline ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   131
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   132
    $('a.fetch_answers').click(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   133
      function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   134
        var user = this.id.replace('results_for_', '');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   135
        var path = window.location.pathname;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   136
        path = path.replace('/edit/', '/show/').replace('/results/', '/show/');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   137
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   138
        // TODO(ajaksu) add Date().getTime() to query arg if needed
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   139
        var query = '?read_only=true&user_results=' + user;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   140
        var scrollable = ['<div style="overflow-y: auto; ',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   141
                          'margin-bottom: 100px;"></div>'].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   142
        $(scrollable).load(path + query + ' #survey_widget').dialog({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   143
          title: user,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   144
          height: 500,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   145
          width: 700
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   146
        });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   147
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   148
    );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   149
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   150
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   151
    * == Initiation ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   152
    *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   153
    * Runs on PageLoad and Each Time Field is Added to Survey
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   154
    *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   155
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   156
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   157
    survey.bind('init',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   158
      function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   159
        // TODO(jamslevy) unnecessarily redundant
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   160
        // TODO(jamslevy) This should be refactored as a jQuery function that
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   161
        // acts on only a single field and it should be merged with renderHTML
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   162
        // since they have comparable functionality.
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   163
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   164
        widget.find('input').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   165
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   166
            if (($(this).val().length < 1 ||
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   167
            $(this).val() === DEFAULT_SHORT_ANSWER_TEXT) &&
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   168
            ($(this).attr('type') !== 'hidden')) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   169
              $(this).preserveDefaultText(DEFAULT_SHORT_ANSWER_TEXT);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   170
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   171
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   172
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   173
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   174
        widget.find('.long_answer, .tooltip_entry').each(
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   175
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   176
            if ($(this).val().length < 1 ||
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   177
            $(this).val() === DEFAULT_LONG_ANSWER_TEXT) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   178
              $(this).preserveDefaultText(DEFAULT_LONG_ANSWER_TEXT);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   179
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   180
            $(this).growfield();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   181
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   182
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   183
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   184
        widget.find('a.delete img').click(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   185
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   186
            // delete a field
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   187
            var this_field = $(this).parents('tr:first');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   188
            var deleted_id = $(this_field).find('label').attr('for');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   189
            var delete_this = confirm(["Deleting this field will remove all ",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   190
                                       "answers submitted for this field. ",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   191
                                       "Continue?"].join(""));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   192
            if (delete_this) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   193
              var edit_form = $('#EditForm');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   194
              var deleted_field = $('#__deleted__');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   195
              if (deleted_field.val()) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   196
                deleted_field.val(deleted_field.val() + ',' +
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   197
                                  deleted_id.replace('id_', '')).end();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   198
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   199
              else {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   200
                var deleted_input = $("<input type='hidden' value='" +
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   201
                                      deleted_id.replace('id_', '') + "' />");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   202
                deleted_input.attr({'id': '__deleted__'}).attr({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   203
                  'name': '__deleted__'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   204
                });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   205
                edit_form.append(deleted_input);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   206
              }
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   207
              this_field.next('tr').remove().end()
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   208
                        .remove();
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   209
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   210
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   211
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   212
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   213
        // Add list/choice-field item to survey
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   214
        $('[name=create-option-button]').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   215
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   216
            $(this).click(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   217
              function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   218
                var new_option_val = $('#new_item_field_ul_id');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   219
                var new_option_dialog = $("#new_item_dialog");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   220
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   221
                new_option_val.val($(this).parents('fieldset').children('ol')
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   222
                .attr('id'));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   223
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   224
                new_option_dialog.dialog('open').find('input:first').focus();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   225
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   226
            )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   227
            .hover(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   228
              function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   229
                $(this).addClass("ui-state-hover");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   230
              },
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   231
              function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   232
                $(this).removeClass("ui-state-hover");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   233
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   234
            )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   235
            .mousedown(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   236
              function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   237
                $(this).addClass("ui-state-active");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   238
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   239
            )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   240
            .mouseup(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   241
              function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   242
                $(this).removeClass("ui-state-active");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   243
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   244
            );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   245
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   246
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   247
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   248
        options.find('.AddQuestion').click(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   249
          function (e) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   250
            // Choose a field type
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   251
            $("#new_question_button_id").val($(this).attr('id'));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   252
            var question_options_div = $('#question_options_div');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   253
            if ($(this).attr('id') === 'choice')  {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   254
              question_options_div.show();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   255
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   256
            else {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   257
              question_options_div.hide();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   258
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   259
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   260
            $("#new_question_dialog").dialog('open').find('input:first')
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   261
            .focus();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   262
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   263
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   264
      }).trigger('init')
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   265
      .bind('option_init',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   266
        function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   267
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   268
          // Delete list/choice-field item from survey
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   269
          widget.find('a.delete_item').click(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   270
            function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   271
              var to_delete = this.id.replace('del_', '');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   272
              $('#delete_item_field').val(to_delete);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   273
              $('#delete_item_dialog').dialog('open');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   274
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   275
          ).end();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   276
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   277
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   278
      ).trigger('option_init');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   279
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   280
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   281
    /* GSOC ROLE-SPECIFIC FIELD PLUGIN
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   282
    * Choice between student/mentor renders required GSOC specific fields
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   283
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   284
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   285
    var taking_access_field = $('select#id_taking_access');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   286
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   287
    var addRoleFields = function (role_type) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   288
      // these should ideally be generated with django forms
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   289
      // TODO: apply info tooltips
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   290
      var CHOOSE_A_PROJECT_FIELD = [
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   291
        '<tr class="role-specific"><th><label>Choose Project:</label></th>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   292
        '<td> <select disabled=TRUE id="id_survey__NA__selection__project"',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   293
        ' name="survey__1__selection__see"><option>Survey Taker\'s Projects',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   294
        'For This Program</option></select> </td></tr>'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   295
      ].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   296
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   297
      var CHOOSE_A_GRADE_FIELD = [
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   298
        '<tr class="role-specific"><th><label>Assign Grade:</label></th><td>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   299
        '<select disabled=TRUE id="id_survey__NA__selection__grade"',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   300
        'name="survey__1__selection__see"><option>Pass/Fail</option></select>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   301
        '</td></tr>'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   302
      ].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   303
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   304
      // flush existing role-specific fields
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   305
      var role_specific_fields = survey.find('tr.role-specific');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   306
      role_specific_fields.remove();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   307
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   308
      switch (role_type) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   309
      case "mentor evaluation":
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   310
        survey.prepend(CHOOSE_A_PROJECT_FIELD);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   311
        survey.append(CHOOSE_A_GRADE_FIELD);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   312
        break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   313
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   314
      case "student evaluation":
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   315
        survey.prepend(CHOOSE_A_PROJECT_FIELD);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   316
        break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   317
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   318
    };
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   319
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   320
    taking_access_field.change(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   321
      function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   322
        var role_type = $(this).val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   323
        addRoleFields(role_type);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   324
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   325
    );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   326
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   327
    addRoleFields(taking_access_field.val());
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   328
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   329
    /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   330
    * == Survey Submission Handler ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   331
    */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   332
    // Bind submit
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   333
    $('form').bind('submit',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   334
      function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   335
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   336
        /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   337
        * get rid of role-specific fields
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   338
        */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   339
        survey.find('tr.role-specific').remove();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   340
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   341
        /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   342
        * Save survey content html from editPost
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   343
        * if POST fails
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   344
        */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   345
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   346
        // save field vals
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   347
        widget.find('.long_answer,input').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   348
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   349
            $(this).attr('val', $(this).val());
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   350
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   351
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   352
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   353
        $(this).find("#id_survey_html").attr('value', widget.html());
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   354
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   355
        // don't save default value
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   356
        widget.find('input').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   357
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   358
            if ($(this).val() === DEFAULT_SHORT_ANSWER_TEXT) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   359
              $(this).val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   360
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   361
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   362
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   363
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   364
        // don't save default value
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   365
        widget.find('.long_answer, .tooltip_entry').each(
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   366
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   367
            if ($(this).val() === DEFAULT_LONG_ANSWER_TEXT) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   368
              $(this).val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   369
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   370
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   371
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   372
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   373
        // get rid of the options
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   374
        $('input#id_s_html')
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   375
        .val(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   376
          widget
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   377
          .find(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   378
            'div#survey_options'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   379
          )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   380
          .remove()
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   381
          .end()
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   382
          .html()
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   383
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   384
        // only needed for HTML
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   385
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   386
        // Get option order per field
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   387
        survey.find('.sortable').each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   388
          function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   389
            $('#order_for_' + this.id)
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   390
            .val(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   391
              $(this).sortable(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   392
                'serialize'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   393
              )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   394
            );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   395
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   396
        );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   397
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   398
    );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   399
  });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   400
}(jQuery));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   401
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   402
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   403
(function ($) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   404
  /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   405
  * == Utils ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   406
  *
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   407
  */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   408
  jQuery.fn.extend({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   409
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   410
    // get position of survey field
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   411
    getPosition: function () {
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   412
      var this_fieldset = $(this).parents('fieldset:first');
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   413
      var this_table = this_fieldset.parents('table:first');
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   414
      var position = this_table.find('fieldset').index(this_fieldset) + '__';
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   415
      return position;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   416
    }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   417
  });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   418
}(jQuery));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   419
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   420
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   421
(function ($) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   422
  /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   423
  * == Sortable options ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   424
  */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   425
  $(function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   426
    $(".sortable").each(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   427
      function (i, domEle) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   428
        $(domEle).sortable().disableSelection().end();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   429
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   430
    );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   431
  });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   432
}(jQuery));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   433
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   434
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   435
(function ($) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   436
  /*
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   437
  * == Editable options ==
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   438
  */
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   439
  $(function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   440
    function onSubmitEditable(content) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   441
      var id_ = $(this).parent().attr('id').replace('-li-', '_');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   442
      id_ = id_ + '__field';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   443
      $('#' + id_).val(content.current);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   444
    }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   445
    $('.editable_option').editable({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   446
      editBy: 'dblclick',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   447
      submit: 'change',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   448
      cancel: 'cancel',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   449
      onSubmit: onSubmitEditable
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   450
    });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   451
  });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   452
}(jQuery));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   453
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   454
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   455
(function ($) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   456
  $(function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   457
  var del_li = ["<a class='delete_item' id='del_",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   458
                "' ><img src='/soc/content/images/minus.gif'/></a> "];
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   459
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   460
    // Confirmation dialog for deleting list/choice-field item from survey
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   461
    $("#delete_item_dialog").dialog({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   462
      autoOpen: false,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   463
      bgiframe: true,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   464
      resizable: false,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   465
      height: 300,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   466
      modal: true,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   467
      overlay: {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   468
        backgroundColor: '#000',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   469
        opacity: 0.5
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   470
      },
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   471
      buttons: {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   472
        'Delete this item': function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   473
          $('#' + $('#delete_item_field').val()).remove();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   474
          $('#delete_item_field').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   475
          $(this).dialog('close');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   476
        },
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   477
        Cancel: function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   478
          $('#delete_item_field').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   479
          $(this).dialog('close');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   480
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   481
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   482
    });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   483
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   484
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   485
    //  Dialog for adding list/choice-field item to survey
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   486
    $("#new_item_dialog").dialog({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   487
      bgiframe: true,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   488
      autoOpen: false,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   489
      height: 300,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   490
      modal: true,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   491
      buttons: {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   492
        'Add option': function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   493
          var ol_id =  $('#new_item_field_ul_id').val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   494
          var ol = $('#' + ol_id);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   495
          var name = $('#new_item_name').val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   496
          var i = ol.find('li').length;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   497
          var id_ = 'id_' + ol_id + '_' + i;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   498
          var option_html = $([
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   499
            '<li id="id-li-', ol_id, '_', i,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   500
            '" class="ui-state-defaolt sortable_li">',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   501
            '<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   502
            '<span id="', id_, '" class="editable_option" name="', id_,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   503
            '__field">', name, '</span>', '<input type="hidden" id="', id_,
2541
7ef468836f6e Fixes bug when option name contains double quotes.
Mario Ferraro <fadinlight@gmail.com>
parents: 2526
diff changeset
   504
            '__field" name="', id_, '__field" value="',
7ef468836f6e Fixes bug when option name contains double quotes.
Mario Ferraro <fadinlight@gmail.com>
parents: 2526
diff changeset
   505
            name.replace(/\"/g,'&quot;'), '" >', '</li>'
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   506
          ].join(""));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   507
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   508
          ol.append(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   509
            option_html
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   510
            .prepend(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   511
              del_li.join(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   512
                option_html.attr('id')
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   513
              )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   514
            )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   515
          );
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   516
          ol.sortable().disableSelection();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   517
          $('#new_item_name').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   518
          $('#new_item_field_ol_id').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   519
          $(this).dialog('close');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   520
        },
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   521
        Cancel: function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   522
          $('#new_item_name').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   523
          $('#new_item_field_ul_id').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   524
          $(this).dialog('close');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   525
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   526
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   527
    });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   528
  });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   529
}(jQuery));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   530
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   531
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   532
(function ($) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   533
  $(function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   534
    //  Dialog for adding new question to survey
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   535
    var SURVEY_PREFIX = 'survey__';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   536
    var del_el = ["<a class='delete'><img '",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   537
              "src='/soc/content/images/minus.gif'/></a>"].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   538
    var del_li = ["<a class='delete_item' id='del_",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   539
                  "' ><img src='/soc/content/images/minus.gif'/></a> "];
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   540
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   541
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   542
    var widget = $('div#survey_widget');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   543
    var survey = widget.find('tbody:first');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   544
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   545
    $("#new_question_dialog").dialog({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   546
      bgiframe: true,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   547
      autoOpen: false,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   548
      height: 400,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   549
      modal: true,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   550
      buttons: {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   551
        'Add question': function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   552
          var button_id = $("#new_question_button_id").val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   553
          var survey_table = $('div#survey_widget').find('tbody:first');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   554
          $("#new_question_button_id").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   555
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   556
          var field_template =  $(["<tr><th><label>", del_el,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   557
                                   "</label></th><td>  </td></tr>"].join(""));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   558
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   559
          var field_name = $("#new_question_name").val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   560
          var question_content = $("#new_question_content").val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   561
          var question_options = $("#new_question_options").val();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   562
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   563
          if (field_name !== '') {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   564
            $("#new_question_name").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   565
            $("#new_question_content").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   566
            $("#new_question_options").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   567
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   568
            var new_field = false;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   569
            var type = button_id + "__";
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   570
            var field_count = survey_table.find('fieldset').length;
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   571
            var new_field_count = field_count + 1 + '__';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   572
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   573
            var MIN_ROWS = 10;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   574
            var MAX_ROWS = MIN_ROWS * 2;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   575
            var DEFAULT_OPTION_TEXT = 'Add A New Option...';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   576
            var default_option = ["<option>", DEFAULT_OPTION_TEXT,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   577
                                  "</option>"].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   578
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   579
            // create the HTML for the field
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   580
            switch (button_id) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   581
            case "short_answer":
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   582
              new_field = ["<fieldset>\n",
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   583
                          '<label for="required_for_',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   584
                           field_name, '">Required</label>',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   585
                           '<select id="required_for_', field_name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   586
                           '" name="required_for_', field_name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   587
                           '"><option value="True" selected="selected">True',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   588
                           '</option>', '<option value="False">False</option>',
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   589
                           '</select>', '<label for="comment_for_',
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   590
                           field_name, '">Allow Comments</label>',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   591
                           '<select id="comment_for_', field_name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   592
                           '" name="comment_for_', field_name, '">',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   593
                           '<option value="True" selected="selected">',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   594
                           'True</option>', '<option value="False">',
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   595
                           'False</option>', '</select>',
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   596
                          "<input type='text' ",
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   597
                           "class='short_answer'>", "</fieldset>"
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   598
                          ].join("");
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   599
              break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   600
            case "long_answer":
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   601
              field_count = survey_table.find('fieldset').length;
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   602
              new_field_count = field_count + 1 + '__';
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   603
              new_field = ['<fieldset>\n', '<label for="required_for_',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   604
                           field_name, '">Required</label>',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   605
                           '<select id="required_for_', field_name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   606
                           '" name="required_for_', field_name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   607
                           '"><option value="True" selected="selected">True',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   608
                           '</option>', '<option value="False">False</option>',
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   609
                           '</select>', '<label for="comment_for_',
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   610
                           field_name, '">Allow Comments</label>',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   611
                           '<select id="comment_for_', field_name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   612
                           '" name="comment_for_', field_name, '">',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   613
                           '<option value="True" selected="selected">',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   614
                           'True</option>', '<option value="False">',
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   615
                           'False</option>', '</select>',
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   616
                           "<textarea cols='40' rows='", MIN_ROWS,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   617
                           "' class='long_answer'/>", '</fieldset>'
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   618
                          ].join("");
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   619
              break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   620
            case "selection":
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   621
              new_field = ["<select><option></option>", default_option,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   622
                           "</select>"].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   623
              break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   624
            case "pick_multi":
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   625
              new_field = ["<fieldset class='fieldset'><input type='button'",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   626
                           "value='", DEFAULT_OPTION_TEXT, "' /></fieldset>"]
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   627
                          .join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   628
              break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   629
            case "choice":
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   630
              new_field = ["<fieldset class='fieldset'><input type='button'",
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   631
                           "value='", DEFAULT_OPTION_TEXT, "' /></fieldset>"]
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   632
                          .join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   633
              break;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   634
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   635
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   636
            if (new_field) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   637
              var question_for = [
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   638
                '\n  <input type="hidden" name="NEW_', field_name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   639
                '" id="NEW_', field_name, '" value="', question_content,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   640
                '"/>'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   641
              ].join("");
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   642
2560
a944c0169ad8 Added ability to add custom tooltips and UI improvements.
Daniel Diniz <ajaksu@gmail.com>
parents: 2541
diff changeset
   643
              field_count = survey_table.find('fieldset').length;
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   644
              new_field_count = field_count + 1 + '__';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   645
              var formatted_name = (SURVEY_PREFIX + new_field_count + type +
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   646
                                    field_name);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   647
              if (button_id === 'choice')  {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   648
                var name = (field_name);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   649
                new_field = $([
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   650
                  '<fieldset>\n', '<label for="required_for_', name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   651
                  '">Required</label>',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   652
                  '<select id="required_for_', name, '" name="required_for_',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   653
                  name, '"><option value="True" selected="selected">True',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   654
                  '</option>', '<option value="False">False</option>',
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   655
                  '</select>', '<label for="comment_for_', name,
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   656
                  '">Allow Comments</label>', '<select id="comment_for_', name,
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   657
                  '" name="comment_for_', name, '">',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   658
                  '<option value="True" selected="selected">True</option>',
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   659
                  '<option value="False">False</option>',
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   660
                  '</select>',
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   661
                  '<label for="render_for_', name,
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   662
                  '">Render as</label>', '\n  <select id="render_for_', name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   663
                  '" name="render_for_', name, '">', '\n    <option',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   664
                  'selected="selected" value="select">select</option>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   665
                  '\n    <option value="checkboxes">checkboxes</option>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   666
                  '\n    <option value="radio_buttons">radio_buttons</option>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   667
                  '\n  </select>', '\n  <input type="hidden" id="order_for_',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   668
                  name, '\n  " name="order_for_', name, '" value=""/>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   669
                  '\n  <input type="hidden" id="index_for_', name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   670
                  '\n  " name="index_for_', name, '" value="',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   671
                  (field_count + 1), '"/>\n  <ol id="', name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   672
                  '" class="sortable"></ol>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   673
                  question_for, '\n  <button name="create-option-button"',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   674
                  'id="create-option-button__', name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   675
                  '" class="ui-button ui-state-default ui-corner-all" value="',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   676
                  name, '" onClick="return false;">Create new option',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   677
                  '</button>\n</fieldset>'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   678
                ].join(""));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   679
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   680
                $(new_field).attr({
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   681
                  'id': 'id_' + formatted_name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   682
                  'name': formatted_name
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   683
                });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   684
                field_template
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   685
                .find(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   686
                  'label'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   687
                )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   688
                .attr(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   689
                  'for',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   690
                  'NEW_' + name
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   691
                )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   692
                .append(question_content).end()
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   693
                .find(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   694
                  'td'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   695
                )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   696
                .append(new_field);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   697
                survey_table.append(field_template).end();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   698
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   699
                if (question_options) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   700
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   701
                  var options_array = question_options.split('\n');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   702
                  var ol = $('#' + name);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   703
                  var length = options_array.length;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   704
                  var oname = '';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   705
                  var id_ = '';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   706
                  var option_html = '';
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   707
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   708
                  for (var i = 0; i < length; i = i + 1) {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   709
                    id_ = 'id_' + name + '_' + i;
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   710
                    oname = options_array[i];
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   711
                    option_html = $([
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   712
                      '<li id="id-li-', name, '_', i,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   713
                      '" class="ui-state-defaolt sortable_li">',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   714
                      '<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   715
                      '<span id="' + id_ + '" class="editable_option" name="',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   716
                      id_, '__field">', oname, '</span>', '<input ',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   717
                      'type="hidden" id="', id_, '__field" name="', id_,
2541
7ef468836f6e Fixes bug when option name contains double quotes.
Mario Ferraro <fadinlight@gmail.com>
parents: 2526
diff changeset
   718
                      '__field" value="', oname.replace(/\"/g,'&quot;'), '" >', '</li>'
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   719
                    ].join(""));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   720
                    ol.append(option_html.prepend(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   721
                      del_li.join(option_html.attr('id'))));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   722
                    ol.sortable().disableSelection();
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   723
                  }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   724
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   725
                  survey.trigger('option_init');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   726
                }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   727
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   728
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   729
              else {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   730
                new_field = $(new_field);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   731
                // maybe the name should be serialized in a more common format
2502
2e096acc8720 Surveys can now have required questions and comments can be turned on/off.
Daniel Diniz <ajaksu@gmail.com>
parents: 2423
diff changeset
   732
                $(new_field).find('.long_answer, .short_answer').attr({
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   733
                  'id': 'id_' + formatted_name,
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   734
                  'name': formatted_name
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   735
                });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   736
                field_template.find(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   737
                  'label'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   738
                )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   739
                .attr(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   740
                  'for',
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   741
                  'id_' + formatted_name
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   742
                )
2526
8f29bfb9eb52 Survey editing/taking Javascript and CSS fixes.
James Levy <jamesalexanderlevy@gmail.com>
parents: 2505
diff changeset
   743
                .append(question_content).end()
2423
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   744
                .find(
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   745
                  'td'
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   746
                )
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   747
                .append(new_field).append($(question_for));
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   748
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   749
                survey_table.append(field_template);
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   750
              }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   751
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   752
              survey.trigger('init');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   753
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   754
            }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   755
          }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   756
          $("#new_question_name").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   757
          $("#new_question_content").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   758
          $("#new_question_options").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   759
          $(this).dialog('close');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   760
        },
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   761
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   762
        Cancel: function () {
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   763
          $('#new_question_name').val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   764
          $("#new_question_button_id").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   765
          $("#new_question_content").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   766
          $("#new_question_options").val('');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   767
          $(this).dialog('close');
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   768
        }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   769
      }
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   770
    });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   771
  });
d6b4be046c26 Adding JS files for use in Surveys.
Daniel Diniz <ajaksu@gmail.com>
parents:
diff changeset
   772
}(jQuery));