1 dump('Loading survey.js\n');
5 function survey_init() {
6 dump('survey_init()\n');
7 /*REPLACEME populate_lib_list_with_branch('lib_menulist','lib_menupopup',mw.G.user_ou,mw.G.user_ou); */
8 SURVEY['asv'] = new asv(); SURVEY['asv'].isnew('1');
9 SURVEY['num_of_questions'] = 0;
10 document.getElementById('survey_name').focus();
13 function save_survey() {
14 SURVEY.asv.description(
15 document.getElementById('survey_description').value
18 document.getElementById('survey_name').value
21 document.getElementById('lib_menulist').value
23 var survey_start = document.getElementById('survey_start').value;
25 SURVEY.asv.start_date(
29 SURVEY.asv.start_date(
33 var survey_end = document.getElementById('survey_end').value;
43 if ( document.getElementById('required_checkbox').checked ) {
44 SURVEY.asv.required('1');
46 SURVEY.asv.required('0');
48 if ( document.getElementById('opac_checkbox').checked ) {
53 if ( document.getElementById('poll_checkbox').checked ) {
59 if ( document.getElementById('patron_summary_checkbox').checked ) {
60 SURVEY.asv.usr_summary('1');
62 SURVEY.asv.usr_summary('0');
64 g.error.sdump('D_SURVEY', 'before survey = ' + js2JSON( SURVEY.asv ) + '\n');
66 var result = user_request(
67 api.FM_ASV_CREATE.app,
68 api.FM_ASV_CREATE.method,
69 [ g.session, SURVEY.asv ]
71 dump('result = ' + js2JSON( result ) + '\n');
72 if (! (result instanceof asv) ) {
73 throw('save_survey: result not an asv');
76 var err = ('Survey failed: ' + js2JSON(E) + '\n');
77 g.error.sdump('D_ERROR',err);
81 g.error.sdump('D_SURVEY', 'after survey = ' + js2JSON( SURVEY.asv ) + '\n');
84 function setDescription(e,t) {
85 var page = document.getElementById(e);
86 var desc = page.getAttribute('description');
87 var value = document.getElementById(t).value;
88 page.setAttribute('description',desc + ' ' + value);
92 function add_answer(e, my_asvq_id) {
93 var row = e.target.parentNode;
94 var rows = row.parentNode;
95 var answer = e.target.previousSibling; answer.select();
97 if (! answer.value ) { return; }
100 var n_row = document.createElement('row');
101 rows.insertBefore( n_row, row );
102 var label_1 = document.createElement('label');
103 n_row.appendChild( label_1 );
104 var label_2 = document.createElement('label');
105 label_2.setAttribute('value', answer.value );
106 n_row.appendChild( label_2 );
110 var my_asva = new asva(); my_asva.isnew('1'); my_asva.id( new_id-- );
111 my_asva.answer( answer.value );
113 JSAN.use('util.functional');
114 var my_asvq = util.functional.find_id_object_in_list( SURVEY.asv.questions(), my_asvq_id );
115 if (my_asvq.answers() == null) {
116 my_asvq.answers( [] );
119 my_asvq.answers().push( my_asva );
121 var num_of_answers = my_asvq.answers().length;
122 var last_number = 96 + num_of_answers;
123 var next_number = 97 + num_of_answers;
124 var last_letter = String.fromCharCode( last_number );
125 var next_letter = String.fromCharCode( next_number );
126 label_1.setAttribute('value', last_letter + ')' );
127 row.firstChild.setAttribute('value', next_letter + ')' );
129 if (num_of_answers == 26) {
130 rows.removeChild(row);
134 function add_question() {
135 SURVEY.num_of_questions++;
136 var question = document.getElementById('new_question');
138 if (! question.value ) { return; }
140 document.getElementById('survey_add').canAdvance = true;
142 var my_asvq = new asvq(); my_asvq.isnew('1'); my_asvq.id( new_id-- );
143 my_asvq.question( question.value );
145 if ( SURVEY.asv.questions() == null ) {
146 SURVEY.asv.questions( [] );
149 SURVEY.asv.questions().push( my_asvq );
151 add_question_row(my_asvq);
153 document.getElementById('new_question_label').setAttribute('value', '#' + (SURVEY.num_of_questions + 1) );
157 function add_question_row(my_asvq) {
158 var rows = document.getElementById('page2_grid1_rows');
159 var row = document.createElement('row');
160 rows.insertBefore(row, document.getElementById('page2_grid1_row1'));
162 var label_number = document.createElement('label');
163 label_number.setAttribute('value','#' + SURVEY['num_of_questions']);
164 row.appendChild(label_number);
166 var grid = document.createElement('grid');
167 row.appendChild(grid);
168 var g_cols = document.createElement('columns');
169 grid.appendChild(g_cols);
170 var g_col_1 = document.createElement('column');
171 g_cols.appendChild(g_col_1);
172 var g_col_2 = document.createElement('column');
173 g_col_2.setAttribute('flex','1');
174 g_cols.appendChild(g_col_2);
175 var g_col_3 = document.createElement('column');
176 g_cols.appendChild(g_col_3);
177 var g_rows = document.createElement('rows');
178 grid.appendChild(g_rows);
179 var g_row_1 = document.createElement('row');
180 g_rows.appendChild(g_row_1);
181 var g_label_1 = document.createElement('label');
182 g_row_1.appendChild(g_label_1);
183 var g_label_2 = document.createElement('label');
184 g_label_2.setAttribute('value', my_asvq.question() );
185 g_row_1.appendChild(g_label_2);
186 var g_row_2 = document.createElement('row');
187 g_rows.appendChild(g_row_2);
188 var g_label2_1 = document.createElement('label');
189 g_label2_1.setAttribute('value', 'a)' );
190 g_row_2.appendChild(g_label2_1);
191 var g_tb = document.createElement('textbox');
192 g_tb.setAttribute('flex','1');
193 g_row_2.appendChild(g_tb);
194 var g_b = document.createElement('button');
195 g_b.setAttribute('label','Save this Response');
196 g_b.setAttribute('oncommand','add_answer(event,' + my_asvq.id() + ');');
197 g_row_2.appendChild(g_b);
199 var blank = document.createElement('row');
200 rows.insertBefore( blank , document.getElementById('page2_grid1_row1') );
201 var blank2 = document.createElement('label');
202 blank2.setAttribute('value', ' ');
203 blank.appendChild( blank2 );
206 function page1_check_advance() {
207 if ( document.getElementById('survey_name').value ) {
208 document.getElementById('survey_add').canAdvance = true;
210 document.getElementById('survey_add').canAdvance = false;