Ver código fonte

Ultimos migrations hopefully

Gabriel Santiago Plaza 3 anos atrás
pai
commit
90505130ee

+ 7
- 6
app/controllers/CriteriaController.php Ver arquivo

@@ -22,7 +22,7 @@ class CriteriaController extends \BaseController
22 22
 
23 23
         $criteria = Criterion::withTrashed()->orderBy('name', 'ASC')->get();
24 24
         $programs = Program::where("id", "=", $userProgram[0]->program_id)->get();
25
-        return View::make('local.managers.pCoords.new_criteria', compact('title', 'outcomes', 'schools', 'criteria', 'programs', 'objectives'));
25
+        return View::make('local.managers.pCoords.criteria', compact('title', 'outcomes', 'schools', 'criteria', 'programs', 'objectives'));
26 26
     }
27 27
 
28 28
     public function editSchool()
@@ -56,6 +56,12 @@ class CriteriaController extends \BaseController
56 56
         $json_to_send['criterion'] = DB::table('criteria')->where('id', '=', Input::get('id'))->first();
57 57
         $outcomeIDS = DB::table('criterion_objective_outcome')->where('criterion_id', '=', $json_to_send['criterion']->id)->lists('outcome_id');
58 58
         Log::info($outcomeIDS);
59
+
60
+        $json_to_send['scales'] = DB::table('criterion_scale')
61
+            ->join('scales', 'scales.id', '=', 'criterion_scale.scale_id')
62
+            ->where('criterion_id', Input::get('id'))
63
+            ->orderBy('position')
64
+            ->get();
59 65
         $json_to_send['outcomes'] = DB::table('outcomes')->whereIn('id', $outcomeIDS)->get();
60 66
         $outcomeStr = '';
61 67
         if (count($json_to_send['outcomes']) == 1) {
@@ -68,11 +74,6 @@ class CriteriaController extends \BaseController
68 74
             $outcomeStr = rtrim($outcomeStr, ',');
69 75
         }
70 76
         $json_to_send['outcomes'] = $outcomeStr;
71
-        $num_scales = Input::get('numberOfScale');
72
-        $criterionID = Input::get('id');
73
-
74
-        $json_to_send['scales'] = DB::select("select * from scales, template_criterion_scale where template_criterion_scale.template_criterion_id in (select id from template_criterion where template_criterion.template_id in (SELECT id FROM templates where num_scales = {$num_scales}) and template_criterion.criterion_id = {$criterionID}) and scales.id = template_criterion_scale.scale_id GROUP BY position order by position");
75
-        $json_to_send['crit_info'] = DB::select("select copyright, notes from template_criterion where id in (select template_criterion_id from scales, template_criterion_scale where template_criterion_scale.template_criterion_id in (select id from template_criterion where template_criterion.template_id in (SELECT id FROM templates where num_scales = {$num_scales}) and template_criterion.criterion_id = {$criterionID}) and scales.id = template_criterion_scale.scale_id  GROUP BY position  order by position) limit 1");
76 77
 
77 78
 
78 79
 

+ 24
- 6
app/controllers/OutcomesController.php Ver arquivo

@@ -412,7 +412,10 @@ class OutcomesController extends \BaseController
412 412
                 case 'all':
413 413
                     return DB::table('criteria')
414 414
                         ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
415
-                        ->where('criterion_objective_outcome.outcome_id', '=', Input::get('id'))
415
+                        ->where('criterion_objective_outcome.outcome_id', '=', Input::get('outcome_id'))
416
+                        ->where('criterion_objective_outcome.objective_id', '=', Input::get('objective_id'))
417
+                        ->where('criteria.num_scales', '=', Input::get('num_scales'))
418
+                        ->where('criteria.max_score', '=', Input::get('maximum'))
416 419
                         ->select('criterion_id as id', 'name')
417 420
                         ->orderBy('name', 'ASC')
418 421
                         ->get();
@@ -427,7 +430,10 @@ class OutcomesController extends \BaseController
427 430
                         $criteria = DB::table('criteria')
428 431
                             ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
429 432
                             ->join('program_criterion', 'program_criterion.criterion_id', '=', 'criteria.id')
430
-                            ->where('criterion_objective_outcome.outcome_id', '=', Input::get('id'))
433
+                            ->where('criterion_objective_outcome.outcome_id', '=', Input::get('outcome_id'))
434
+                            ->where('criterion_objective_outcome.objective_id', '=', Input::get('objective_id'))
435
+                            ->where('criteria.num_scales', '=', Input::get('num_scales'))
436
+                            ->where('criteria.max_score', '=', Input::get('maximum'))
431 437
                             ->whereIn('program_criterion.program_id', $program_ids)
432 438
                             ->select('criterion_id as id', 'name')
433 439
                             ->orderBy('name', 'ASC')
@@ -445,7 +451,10 @@ class OutcomesController extends \BaseController
445 451
                         return DB::table('criteria')
446 452
                             ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
447 453
                             ->join('program_criterion', 'program_criterion.criterion_id', '=', 'criteria.id')
448
-                            ->where('criterion_objective_outcome.outcome_id', '=', Input::get('id'))
454
+                            ->where('criterion_objective_outcome.outcome_id', '=', Input::get('outcome_id'))
455
+                            ->where('criterion_objective_outcome.objective_id', '=', Input::get('objective_id'))
456
+                            ->where('criteria.num_scales', '=', Input::get('num_scales'))
457
+                            ->where('criteria.max_score', '=', Input::get('maximum'))
449 458
                             ->whereIn('program_criterion.program_id', $program_ids)
450 459
                             ->select('criterion_id as id', 'name')
451 460
                             ->orderBy('name', 'ASC')
@@ -458,7 +467,10 @@ class OutcomesController extends \BaseController
458 467
                     $criteria = DB::table('criteria')
459 468
                         ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
460 469
                         ->join('program_criterion', 'program_criterion.criterion_id', '=', 'criteria.id')
461
-                        ->where('criterion_objective_outcome.outcome_id', '=', Input::get('id'))
470
+                        ->where('criterion_objective_outcome.outcome_id', '=', Input::get('outcome_id'))
471
+                        ->where('criterion_objective_outcome.objective_id', '=', Input::get('objective_id'))
472
+                        ->where('criteria.num_scales', '=', Input::get('num_scales'))
473
+                        ->where('criteria.max_score', '=', Input::get('maximum'))
462 474
                         ->whereIn('program_criterion.program_id', Auth::user()->programs->lists('id'))
463 475
                         ->select('criterion_id as id', 'name')
464 476
                         ->orderBy('name', 'ASC')
@@ -469,7 +481,10 @@ class OutcomesController extends \BaseController
469 481
                 default:
470 482
                     return DB::table('criteria')
471 483
                         ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
472
-                        ->where('criterion_objective_outcome.outcome_id', '=', Input::get('id'))
484
+                        ->where('criterion_objective_outcome.outcome_id', '=', Input::get('outcome_id'))
485
+                        ->where('criterion_objective_outcome.objective_id', '=', Input::get('objective_id'))
486
+                        ->where('criteria.num_scales', '=', Input::get('num_scales'))
487
+                        ->where('criteria.max_score', '=', Input::get('maximum'))
473 488
                         ->select('criterion_id as id', 'name')
474 489
                         ->orderBy('name', 'ASC')
475 490
                         ->get();
@@ -478,7 +493,10 @@ class OutcomesController extends \BaseController
478 493
         } else {
479 494
             return DB::table('criteria')
480 495
                 ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
481
-                ->where('criterion_objective_outcome.outcome_id', '=', Input::get('id'))
496
+                ->where('criterion_objective_outcome.outcome_id', '=', Input::get('outcome_id'))
497
+                ->where('criterion_objective_outcome.objective_id', '=', Input::get('objective_id'))
498
+                ->where('criteria.num_scales', '=', Input::get('num_scales'))
499
+                ->where('criteria.max_score', '=', Input::get('maximum'))
482 500
                 ->select('criterion_id as id', 'name')
483 501
                 ->orderBy('name', 'ASC')
484 502
                 ->get();

+ 6
- 13
app/controllers/TemplatesController.php Ver arquivo

@@ -135,30 +135,23 @@ class TemplatesController extends \BaseController
135 135
 				$template->program_id = Auth::user()->programs[0]->id;
136 136
 				break;
137 137
 		}
138
-		$scales = Input::get('scales');
138
+
139 139
 		$criteria = Input::get('criteria');
140 140
 
141 141
 		$max_score = Input::get('max_score');
142
-		$copyright = Input::get('copyright');
143
-		$notes = Input::get('notes');
144
-		Log::info($scales);
145
-		Log::info($criteria);
146
-		Log::info($copyright);
147
-		Log::info($notes);
142
+		$titles = Input::get('titles');
148 143
 
149 144
 
150
-		$template->num_scales = count($scales[0]);
145
+
146
+		$template->num_scales = count($titles);
151 147
 		$template->max_score = $max_score;
152 148
 
153 149
 		if ($template->save()) {
154 150
 			$templateId = $template->id;
155 151
 			foreach ($criteria as $index => $criterion_id) {
156
-				$note = $notes[$index];
157
-				$copy = $copyright[$index];
158
-				if ($copy == "Empty") $copy = NULL;
159
-				if ($note == "Empty") $note = NULL;
160 152
 
161
-				DB::insert("insert into template_criterion (`template_id`,`criterion_id`, `copyright`, `notes`) values ({$templateId},{$criterion_id}, '{$copy}', '{$note}')");
153
+
154
+				DB::insert("insert into template_criterion (`template_id`,`criterion_id`, `position`) values ({$templateId},{$criterion_id}, '{$index}')");
162 155
 				$template_criterion_id = DB::table('template_criterion')->where('template_id', '=', $templateId)
163 156
 					->where('criterion_id', '=', $criterion_id)->first();
164 157
 

+ 2
- 2
app/database/migrations/2021_06_02_000507_create_rubrics_table.php Ver arquivo

@@ -16,8 +16,8 @@ class CreateRubricsTable extends Migration
16 16
 			$table->integer('expected_points');
17 17
 			$table->integer('user_id')->unsigned();
18 18
 			$table->timestamps();
19
-			//$table->integer('num_scales')->unsigned();
20
-			//$table->integer('max_score')->unsigned();
19
+			$table->integer('num_scales')->unsigned();
20
+			$table->integer('max_score')->unsigned();
21 21
 		});
22 22
 
23 23
 		Schema::table('rubrics', function (Blueprint $table) {

+ 1
- 1
app/database/migrations/2021_06_04_003757_create_activities_table.php Ver arquivo

@@ -20,7 +20,7 @@ class CreateActivitiesTable extends Migration
20 20
 			//$table->text('outcomes_achieved')->nullable();
21 21
 			//$table->text('outcomes_attempted')->nullable();
22 22
 
23
-			$table->text('assessment_comments')->nullable();
23
+			//$table->text('assessment_comments')->nullable();
24 24
 			//$table->text('transforming_actions')->nullable();
25 25
 			//$table->text('criteria_achieved_percentage')->nullable();
26 26
 

+ 2
- 2
app/database/migrations/2021_06_04_003810_create_activity_criterion_table.php Ver arquivo

@@ -29,8 +29,8 @@ class CreateActivityCriterionTable extends Migration
29 29
 				->on('criteria')
30 30
 				->onDelete('cascade')
31 31
 				->onUpdate('cascade');
32
-			$table->text('transformative_actions')->nullable();
33
-			$table->text('assessment_comments')->nullable();
32
+			//$table->text('transformative_actions')->nullable();
33
+			//$table->text('assessment_comments')->nullable();
34 34
 
35 35
 
36 36
 			$table->decimal('weight', 6, 2)->default(1.0);

+ 8
- 0
app/models/Title.php Ver arquivo

@@ -0,0 +1,8 @@
1
+<?php
2
+
3
+use Illuminate\Database\Eloquent\SoftDeletingTrait;
4
+
5
+class Title extends Eloquent
6
+{
7
+    protected $table = 'titles';
8
+}

+ 583
- 232
app/views/local/managers/admins/criteria.blade.php
Diferenças do arquivo suprimidas por serem muito extensas
Ver arquivo


+ 347
- 125
app/views/local/managers/pCoords/criteria.blade.php Ver arquivo

@@ -13,35 +13,43 @@
13 13
                 Create
14 14
             </div>
15 15
             <div class="panel-body">
16
-                {{ Form::open(array('action' => 'CriteriaController@create')) }}
17
-                <div id='outcomeGroup' data-value = "1">
16
+                {{ Form::open(array('action' => 'CriteriaController@create', 'id'=> 'create_criterion')) }}
17
+                <div id ='allOutcomes'>
18
+                <div id='outcomeGroup0' data-value = "1">
19
+                    <div class="form-group col-md-12">
20
+                        <label>Outcome 1</label>
21
+
22
+                        {{ Form::select('outcome[]', $outcomes, reset($outcomes),  ['class'=>'form-control selectpicker', 'id' =>'outcome0', 'onchange'=>'fetchObjectiveForSelect("outcome0", "objectiveGroupFor0")']) }}
23
+                    </div>
24
+                
25
+                <div id='objectiveGroupFor0' data-value = '1'>
18 26
                     <div class="form-group col-md-11">
19
-                        <label>Associated Outcomes</label>
27
+                        <label>Associated Objectives for Outcome 1</label>
28
+                        <select id="objective_0_counter_1" name="objective[]" class="form-control selectpicker">
29
+                        </select>
20 30
 
21
-                        {{ Form::select('outcome[]', $outcomes, reset($outcomes),  ['class'=>'form-control selectpicker', 'id' =>'outcome0', 'onchange'=>'fetchObjectiveForSelect("outcomeGroup", "objectiveGroup")']) }}
31
+                    </div>
32
+                    <div class = "col-md-1">
22 33
                     </div>
23 34
                 </div>
24
-                <input type='hidden' name='counterOutcome' id='counterOutcome' value=1>
25
-                <button id='button-add-outcome' class='btn btn-md btn-secondary' onclick='addOutcomeTest()'>
35
+                <input type='hidden' name='counterObjective' id='counterObjective' value=1>
36
+                <button  class='btn btn-md btn-secondary button-add-objective' onclick='addObjectiveTest("objectiveGroupFor0", "objective_0")'>
26 37
                     <span class='glyphicon glyphicon-plus'>
27 38
 
28 39
                     </span>
29
-                    Add another Outcome
40
+                    Add another Objective
30 41
                 </button>
31
-                <div id='objectiveGroup' data-value = '1'>
32
-                    <div class="form-group">
33
-                        <label>Associated Objectives</label>
34
-                        <select id="objective_0" name="objective[]" class="form-control selectpicker">
35
-                        </select>
36
-
37
-                    </div>
42
+                
43
+                <br></div><hr>
38 44
                 </div>
39
-                <input type='hidden' name='counterObjective' id='counterObjective' value=1>
40
-                <button id='button-add-objective' class='btn btn-md btn-secondary' onclick='addObjectiveTest()'>
45
+                
46
+                <input type='hidden' name='counterOutcome' id='counterOutcome' value=1>
47
+                
48
+                <button id='button-add-outcome' class='btn btn-md btn-secondary' onclick='addOutcomeTest()'>
41 49
                     <span class='glyphicon glyphicon-plus'>
42 50
 
43 51
                     </span>
44
-                    Add another Objective
52
+                    Add another Outcome
45 53
                 </button>
46 54
 
47 55
                 <!-- Associated Program -->
@@ -92,7 +100,7 @@
92 100
                     {{ Form::textarea('notes', '', array('class' => 'form-control', 'rows'=>2, 'placeholder'=>'(optional)', 'aria-labelledby'=>'notes')) }}
93 101
                 </div>
94 102
 
95
-                {{ Form::submit('Create', array('class' => 'btn btn-primary btn-block')) }}
103
+                {{ Form::submit('Create', array('class' => 'btn btn-primary btn-block', 'id'=>'create_the_criterion')) }}
96 104
                 {{ Form::close() }}
97 105
             </div>
98 106
         </div>
@@ -104,7 +112,7 @@
104 112
                 Edit
105 113
             </div>
106 114
             <div class="panel-body">
107
-                {{ Form::open(array('action' => 'CriteriaController@update')) }}
115
+                {{ Form::open(array('action' => 'CriteriaController@update', 'id'=>'update_criterion')) }}
108 116
 
109 117
                 <button class="btn btn-md btn-secondary filterButton">
110 118
                     <span class="glyphicon glyphicon-plus">
@@ -126,6 +134,7 @@
126 134
 
127 135
                 </div>
128 136
                 </div>
137
+                <hr>
129 138
 
130 139
                 <div class="form-group">
131 140
                     {{ Form::label('criterion_id', 'Criterion') }}
@@ -144,38 +153,41 @@
144 153
                         @endforeach
145 154
                     </select>
146 155
                 </div>
147
-
156
+                <div id ='allAssocOutcomes'>
148 157
                 <!-- Associated Outcome -->
149
-                <div id='assocOutcomeGroup' data-value="1">
150
-                    <div class="form-group">
151
-                        <label>Associated Outcome</label>
152
-                        {{ Form::select('assoc_outcome[]', $outcomes, null, ['class'=>'form-control selectpicker', 'id'=>'assoc_outcome_0', 'onchange'=>'fetchAssocObjective("assoc_outcome_0")']) }}
158
+                <div id='assocOutcomeGroup0' data-value="1">
159
+                    <div class="form-group col-md-12">
160
+                        <label>Outcome 1</label>
161
+                        {{ Form::select('outcome[]', $outcomes, null, ['class'=>'form-control selectpicker', 'id'=>'assoc_outcome_0', 'onchange'=>'fetchAssocObjective("assoc_outcome_0")']) }}
153 162
 
154 163
                     </div>
155
-                </div>
156
-                <button id='button-add-objective-assoc' class='btn btn-md btn-secondary' onclick='addAssocOutcome()'>
157
-                    <span class='glyphicon glyphicon-plus'>
158
-
159
-                    </span>
160
-                    Add another Outcome
161
-                </button>
162
-
163
-                <div id='assoc_objectiveGroup' data-value="1">
164
-                    <div class="form-group">
165
-                        <label>Associated Objectives</label>
166
-                        <select id="assoc_objective_0" name="assoc_objective[]" class="form-control selectpicker">
164
+<div id='assoc_objectiveGroupFor0' data-value="1">
165
+                    <div class="form-group col-md-11">
166
+                        <label>Associated Objectives for Outcome 1</label>
167
+                        <select id="assoc_objective_0_counter_1" name="objective[]" class="form-control selectpicker">
167 168
                             <option value="0">No associated objectives</option>
168 169
                         </select>
169 170
 
170
-                    </div>
171
+                    </div> <div class ='col-md-1'></div>
171 172
                 </div>
172
-                <button id='button-add-outcome-assoc' class='btn btn-md btn-secondary' onclick='addAssocObjective()'>
173
+               
174
+
175
+               <button id='button-add-objective-assoc' class='btn btn-md btn-secondary' onclick='addAssocObjective("assoc_objectiveGroupFor0", "assoc_objective_0")'>
173 176
                     <span class='glyphicon glyphicon-plus'>
174 177
 
175 178
                     </span>
176 179
                     Add another Objective
180
+                </button> </div><hr></div>
181
+                <button  class='btn btn-md btn-secondary button-add-outcome-assoc' onclick='addAssocOutcome()'>
182
+                    <span class='glyphicon glyphicon-plus'>
183
+
184
+                    </span>
185
+                    Add another Outcome
177 186
                 </button>
178 187
 
188
+                
189
+                
190
+
179 191
                 <!-- Associated Program -->
180 192
                 <div class="form-group">
181 193
 
@@ -213,8 +225,8 @@
213 225
                     {{ Form::textarea('subcriteria', '', array('class' => 'form-control', 'rows'=>3, 'id' => 'criterion_subcriteria')) }}
214 226
                 </div>
215 227
                 <div class="form-group">
216
-                    {{ Form::label('assoc_maximum_score', 'Maximum Score') }}
217
-                    {{ Form::text('assoc_maximum_score', '', array('class' => 'form-control', 'id'=>'assoc_maximum_score', 'oninput'=>'addOptions("Num_assoc_scale", "assoc_maximum_score", "Assoc_Scales")')) }}
228
+                    {{ Form::label('maximum_score', 'Maximum Score') }}
229
+                    {{ Form::text('maximum_score', '', array('class' => 'form-control', 'id'=>'assoc_maximum_score', 'oninput'=>'addOptions("Num_assoc_scale", "assoc_maximum_score", "Assoc_Scales")')) }}
218 230
                 </div>
219 231
 
220 232
 
@@ -241,7 +253,7 @@
241 253
                     {{ Form::textarea('notes', Input::old('notes'), array('class' => 'form-control', 'rows'=>2, 'id'=>'criterion_notes', 'placeholder'=>'(optional)')) }}
242 254
                 </div>
243 255
                
244
-                {{ Form::submit('Update', array('class' => 'btn btn-primary btn-block')) }}
256
+                {{ Form::submit('Update', array('class' => 'btn btn-primary btn-block', 'id'=>'update_the_criterion')) }}
245 257
                 {{ Form::close() }}
246 258
                 {{ Form::open(array('action' => 'CriteriaController@delete')) }}
247 259
                 
@@ -265,6 +277,19 @@
265 277
         numberOfScales('Num_scale', 'Scales');
266 278
     });
267 279
 
280
+    $(document).on('submit', '#create_criterion', function(e){
281
+
282
+        if(e.originalEvent.submitter.id != "create_the_criterion")
283
+        e.preventDefault();
284
+    })
285
+
286
+    $(document).on('submit', '#update_criterion', function(e){
287
+
288
+if(e.originalEvent.submitter.id != "update_the_criterion")
289
+e.preventDefault();
290
+})
291
+
292
+
268 293
     function addOptions(select, max, scaleDiv) {
269 294
 
270 295
         
@@ -297,11 +322,11 @@
297 322
 
298 323
             fullDiv = '';
299 324
         if(division ==1){
300
-            for (var i = dataValue; i < amountOfScale; i++) {
325
+            for (var i = 0; i < amountOfScale; i++) {
301 326
                 div = '<div id="assoc_eval' + i.toString() + Scales + '">' +
302 327
                     '<div class ="form-group">' +
303 328
                     '<label for ="assoc_descripcion' + i.toString() + '">Scale Description ('+(i+1)+')</label>' +
304
-                    '<textarea class="form-control" rows="2" aria-labelledby="assoc_descripcion' + i.toString() + '" name="assoc_scales[]" cols="50" ></textarea></div></div>';
329
+                    '<textarea id = "assoc_scale_'+i+'" class="form-control" rows="2" aria-labelledby="assoc_descripcion' + i.toString() + '" name="Scales[]" cols="50" ></textarea></div></div>';
305 330
                 fullDiv += div;
306 331
 
307 332
 
@@ -311,7 +336,7 @@
311 336
             div = '<div id="assoc_eval' +0 + Scales + '">' +
312 337
                     '<div class ="form-group">' +
313 338
                     '<label for ="assoc_descripcion' + 0 + '">Scale Description ('+1+' - '+maximum+') </label>' +
314
-                    '<textarea class="form-control" rows="2" aria-labelledby="assoc_descripcion' + 0 + '" name="assoc_scales[]" cols="50" ></textarea></div></div>';
339
+                    '<textarea id = "assoc_scale_'+0+'" class="form-control" rows="2" aria-labelledby="assoc_descripcion' + 0 + '" name="Scales[]" cols="50" ></textarea></div></div>';
315 340
                 fullDiv += div;
316 341
         }
317 342
         else{
@@ -320,7 +345,7 @@
320 345
             div = '<div id="assoc_eval' + i.toString() + Scales + '">' +
321 346
                     '<div class ="form-group">' +
322 347
                     '<label for ="assoc_descripcion' + i.toString() + '">Scale Description ('+(1+(i*division))+' - '+((1+i)*division)+')</label>' +
323
-                    '<textarea class="form-control" rows="2" aria-labelledby="assoc_descripcion' + i.toString() + '" name="assoc_scales[]" cols="50" ></textarea></div></div>';
348
+                    '<textarea  id = "assoc_scale_'+i+'" class="form-control" rows="2" aria-labelledby="assoc_descripcion' + i.toString() + '" name="Scales[]" cols="50" ></textarea></div></div>';
324 349
                 fullDiv += div;
325 350
         }
326 351
         }
@@ -346,11 +371,13 @@
346 371
         var amountOfScale = parseInt($('#' + string).val());
347 372
         var dataValue = parseInt($('#' + Scales).attr('data-value'));
348 373
         var division = maximum/amountOfScale;
349
-        //add
350
-    
351 374
 
352 375
 
353 376
 
377
+        
378
+        //add
379
+    
380
+
354 381
             fullDiv = '';
355 382
             if(division ==1){
356 383
                 for (var i = 0; i < amountOfScale; i++) {
@@ -403,18 +430,20 @@ $('.filterSection').hide();
403 430
 
404 431
     //Add outcome Button
405 432
     function addOutcomeTest() {
406
-        counter = parseInt($('#outcomeGroup').data("value"));
433
+
434
+
435
+        counter = parseInt($('#outcomeGroup0').data("value"));
407 436
         var $select = $('<select/>', {
408 437
             'class': "selectpicker form-control",
409 438
             'name': "outcome[]",
410 439
             'data-live-search': 'true',
411 440
             'id': 'outcome' + counter.toString(),
412
-            'onchange': 'fetchObjectiveForSelect("outcomeGroup", "objectiveGroup")'
441
+            'onchange': 'fetchObjectiveForSelect("outcome'+counter+'", "objectiveGroupFor'+counter+'")'
413 442
 
414 443
         });
415 444
         var $div = $('<div/>', {
416 445
             'id': 'outcomeForm' + counter.toString(),
417
-            'class': 'form-group col-md-11'
446
+            'class': 'form-group col-md-11 '
418 447
         });
419 448
 
420 449
         var $divForButton = $('<div/>', {
@@ -425,20 +454,68 @@ $('.filterSection').hide();
425 454
         var $button = $('<button/>', {
426 455
             'type': 'button',
427 456
             'class': 'btn btn-primary',
428
-            'onclick': 'deleteLast("outcomeForm'+counter.toString()+'", "outcomeGroup", "close' + counter.toString() + '", "objectiveGroup")'
429
-   });
457
+            'onclick': '$(this).parent().parent().remove();'
458
+        });
459
+        var divForGroup = $('<div/>', {
460
+            'id' : 'outcomeGroup'+counter.toString(),
461
+        }).html("<label>Outcome "+(counter+1)+"</label>");
462
+        
463
+
464
+        var objectiveGroup = $('<div/>', {
465
+            'id' : 'objectiveGroupFor'+counter,
466
+            'data-value': '1'
467
+        });
468
+
469
+        var form_group_for_objective = $('<div/>', {
470
+            'class': 'form-group col-md-11'
471
+        }).html('<label>Associated Objectives for Outcome '+(counter+1)+'</label>'); 
472
+        
473
+        
474
+        var $select_objective = $('<select/>', {
475
+            'class': "selectpicker form-control",
476
+            'name': "objective[]",
477
+            'data-live-search': 'true',
478
+            'id': 'objective_'+counter +'_counter_1'  
479
+        });
480
+
481
+        var empty_div = $('<div/>',{
482
+            'class': 'col-md-1'
483
+        });
484
+
485
+        
486
+
487
+        var button_for_add = $('<button/>', {
488
+            'class': 'btn btn-md btn-secondary button-add-objective',
489
+            'onclick': 'addObjectiveTest("objectiveGroupFor'+counter+'", "objective_'+counter+'")'
490
+        }).html("<span class='glyphicon glyphicon-plus'></span>Add another Objective");
491
+        
492
+        
493
+        divForGroup.append($div)
430 494
 
431 495
         $button.append('X');
432 496
         $divForButton.append($button);
433
-
434
-        $div.appendTo('#outcomeGroup')
497
+        
498
+       
499
+        $('#allOutcomes').append(divForGroup);
435 500
         $select.append(selectOptions);
436 501
 
437 502
         $select.appendTo('#outcomeForm' + counter.toString()).selectpicker('refresh');
438
-        $('#outcomeGroup').data("value", (counter +1));
439
-        fetchObjectiveForSelect('outcomeGroup', "objectiveGroup");
440
-        counter += 1;
441
-        $divForButton.appendTo('#outcomeGroup');
503
+        $('#outcomeGroup0').data("value", (counter +1));
504
+        
505
+        
506
+        divForGroup.append($divForButton);
507
+
508
+        form_group_for_objective.append($select_objective)
509
+        objectiveGroup.append(form_group_for_objective);
510
+        objectiveGroup.append(empty_div);
511
+        //objectiveGroup.append(button_for_add);
512
+
513
+        divForGroup.append(objectiveGroup);
514
+        divForGroup.append(button_for_add);
515
+        divForGroup.append('<hr>');
516
+        fetchObjectiveForSelect('outcome'+counter, "objectiveGroupFor"+counter);
517
+        $select_objective.selectpicker('refresh');
518
+
442 519
 
443 520
         
444 521
 
@@ -466,91 +543,96 @@ $('.filterSection').hide();
466 543
         $div.remove();
467 544
         $div = document.getElementById(closeObj);
468 545
         $div.remove();
469
-        counter = parseInt($('#'+objectiveGroup).data("value"));
470
-        $('#'+objectiveGroup).data("value", counter-1);
546
+        //counter = parseInt($('#'+objectiveGroup).data("value"));
547
+       // $('#'+objectiveGroup).data("value", counter-1);
471 548
 
472 549
 
473 550
     }
474 551
 
475 552
     //Add objective when editing
476 553
 
477
-    function addAssocObjective() {
478
-        selectObj = document.getElementById('assoc_objective_0').innerHTML;
479
-        assocObjectiveCounter = parseInt($('#assoc_objectiveGroup').data('value'));
554
+    function addAssocObjective(objForGroup, originalObjective) {
555
+        counter = $("#"+objForGroup).data('value');
556
+
557
+        selectObj = document.getElementById(originalObjective+'_counter_1').innerHTML;
558
+        assocObjectiveCounter = parseInt($('#'+objForGroup).data('value'));
480 559
         var $select = $('<select/>', {
481 560
             'class': "selectpicker form-control",
482
-            'name': "assoc_objective[]",
561
+            'name': "objective[]",
483 562
             'data-live-search': 'true',
484
-            'id': 'assoc_objective_' + assocObjectiveCounter.toString(),
563
+            'id': originalObjective+'_counter_' + (assocObjectiveCounter+1).toString(),
485 564
 
486 565
 
487 566
         });
488 567
         var $div = $('<div/>', {
489
-            'id': 'assoc_objectiveForm' + assocObjectiveCounter.toString(),
490
-            'class': 'form-group col-md-11'
568
+            'id': 'assoc_objectiveForm_'+objForGroup +'_' + assocObjectiveCounter.toString(),
569
+            'class': 'form-group col-md-10'
491 570
         });
492 571
         var $divForButton = $('<div/>', {
493
-            'class': 'col-md-1',
494
-            'id': 'assoc_closeObj' + assocObjectiveCounter.toString()
572
+            'class': 'col-md-2',
573
+            'id': 'assoc_closeObj_'+objForGroup+'_' + assocObjectiveCounter.toString()
495 574
 
496 575
         });
497 576
         var $button = $('<button/>', {
498 577
             'type': 'button',
499 578
             'class': 'btn btn-primary',
500
-            'onclick': 'deleteObjective("assoc_objectiveForm' + assocObjectiveCounter.toString() + '", "assoc_closeObj' + assocObjectiveCounter.toString() + ', "assoc_objectiveGroup")'
579
+            'onclick': 'deleteObjective("assoc_objectiveForm_'+objForGroup+'_' + assocObjectiveCounter.toString() + '", "assoc_closeObj_' +objForGroup+'_' + assocObjectiveCounter.toString() + '", "'+objForGroup+'")'
501 580
         });
502 581
 
503 582
         $button.append('X');
504 583
         $divForButton.append($button);
505 584
 
506
-        $div.appendTo('#assoc_objectiveGroup')
585
+        $div.appendTo('#'+objForGroup)
507 586
         $select.append(selectObj);
508 587
 
509
-        $select.appendTo('#assoc_objectiveForm' + assocObjectiveCounter.toString()).selectpicker('refresh');
510
-        $('#assoc_objectiveGroup').data("value", assocObjectiveCounter +1);
588
+        $select.appendTo($div).selectpicker('refresh');
589
+        //$('#assoc_objectiveGroup').data("value", assocObjectiveCounter +1);
511 590
 
512
-        $divForButton.appendTo('#assoc_objectiveGroup');
591
+        $divForButton.appendTo('#'+objForGroup);
592
+        $('#'+ objForGroup).data('value', counter +1);
513 593
 
514 594
     }
515 595
 
516 596
 
517 597
     //Add objective when creating a criteria
518
-    function addObjectiveTest() {
519
-        selectObj = document.getElementById('objective_0').innerHTML;
520
-        counter = parseInt($("#objectiveGroup").data('value'));
598
+    function addObjectiveTest(objForGroup, originalObjective) {
599
+
600
+        counter  =$('#'+objForGroup).data('value');
601
+
602
+        selectObj = document.getElementById(originalObjective+'_counter_1').innerHTML;
603
+
521 604
         var $select = $('<select/>', {
522 605
             'class': "selectpicker form-control",
523 606
             'name': "objective[]",
524 607
             'data-live-search': 'true',
525
-            'id': 'objective_' + counter.toString()
526
-
608
+            'id': originalObjective +'_counter_' + (counter+1).toString()
527 609
         });
528 610
         var $div = $('<div/>', {
529
-            'id': 'objectiveForm' + counter.toString(),
530
-            'class': 'form-group col-md-11'
611
+            'id': 'objectiveForm_'+objForGroup + '_' + counter.toString(),
612
+            'class': 'form-group col-md-10'
531 613
         });
532 614
         var $divForButton = $('<div/>', {
533
-            'class': 'col-md-1',
534
-            'id': 'closeObj' + counter.toString()
615
+            'class': 'col-md-2',
616
+            'id': 'closeObj_'+objForGroup+'_' + counter.toString()
535 617
 
536 618
         });
537 619
         var $button = $('<button/>', {
538 620
             'type': 'button',
539 621
             'class': 'btn btn-primary',
540
-            'onclick': 'deleteObjective("objectiveForm' + counter.toString() + '", "closeObj' + counter.toString() + '")'
622
+            'onclick': 'deleteObjective("objectiveForm_' +objForGroup +'_' + counter.toString() + '", "closeObj_'+objForGroup+'_' + counter.toString() + '", "'+objForGroup+'")'
541 623
         });
542 624
 
543 625
         $button.append('X');
544 626
         $divForButton.append($button);
545 627
 
546
-        $div.appendTo('#objectiveGroup')
628
+        $div.appendTo('#'+objForGroup)
547 629
         $select.append(selectObj);
548 630
 
549
-        $select.appendTo('#objectiveForm' + counter.toString()).selectpicker('refresh');
631
+        $select.appendTo($div).selectpicker('refresh');
550 632
         
551 633
 
552
-        $divForButton.appendTo('#objectiveGroup');
553
-        $('#objectiveGroup').data('value', counter +1);
634
+        $divForButton.appendTo('#'+objForGroup);
635
+        $('#'+ objForGroup).data('value', counter +1);
554 636
     }
555 637
 
556 638
     //Create outcome for editing
@@ -558,14 +640,14 @@ $('.filterSection').hide();
558 640
     var assocOutcomeCounter = 0;
559 641
 
560 642
 
561
-    function addAssocOutcome() {
562
-        assocOutcomeCounter = parseInt($('#assocOutcomeGroup').data('value'));
643
+    function addAssocOutcome(depends= null) {
644
+        assocOutcomeCounter = parseInt($('#assocOutcomeGroup0').data('value'));
563 645
         var $select = $('<select/>', {
564 646
             'class': "selectpicker form-control",
565
-            'name': "assoc_outcome[]",
647
+            'name': "outcome[]",
566 648
             'data-live-search': 'true',
567 649
             'id': 'assoc_outcome_' + assocOutcomeCounter.toString(),
568
-            'onchange': 'fetchAssocObjective("assoc_outcome_' + assocOutcomeCounter.toString() + '")'
650
+            'onchange': 'fetchAssocObjective("assoc_outcome_' + assocOutcomeCounter.toString() + '", "assoc_objectiveGroupFor'+assocOutcomeCounter+'")'
569 651
 
570 652
         });
571 653
         var $div = $('<div/>', {
@@ -581,20 +663,67 @@ $('.filterSection').hide();
581 663
         var $button = $('<button/>', {
582 664
             'type': 'button',
583 665
             'class': 'btn btn-primary',
584
-            'onclick': 'deleteLast("assoc_outcomeForm' + assocOutcomeCounter.toString() + '", "assocOutcomeGroup", "assoc_close' + assocOutcomeCounter.toString() + '","assoc_objectiveGroup")'
666
+            'id': 'assoc_close_button'+assocOutcomeCounter,
667
+            'onclick': '$(this).parent().parent().remove()'
585 668
          });
586 669
 
670
+        var divForGroup = $('<div/>', {
671
+            'id' : 'assocOutcomeGroup'+assocOutcomeCounter.toString(),
672
+        }).html("<label>Outcome "+(assocOutcomeCounter+1)+"</label>");
673
+
674
+        var objectiveGroup = $('<div/>', {
675
+            'id' : 'assoc_objectiveGroupFor'+assocOutcomeCounter,
676
+            'data-value': '1'
677
+        });
678
+        var form_group_for_objective = $('<div/>', {
679
+            'class': 'form-group col-md-11'
680
+        }).html('<label>Associated Objectives for Outcome '+(assocOutcomeCounter+1)+'</label>'); 
681
+        
682
+        var $select_objective = $('<select/>', {
683
+            'class': "selectpicker form-control",
684
+            'name': "objective[]",
685
+            'data-live-search': 'true',
686
+            'id': 'assoc_objective_'+assocOutcomeCounter +'_counter_1'  
687
+        });
688
+
689
+        var empty_div = $('<div/>',{
690
+            'class': 'col-md-1'
691
+        });
692
+
693
+        var button_for_add = $('<button/>', {
694
+            'class': 'btn btn-md btn-secondary button-add-objective',
695
+            'onclick': 'addAssocObjective("assoc_objectiveGroupFor'+assocOutcomeCounter+'", "assoc_objective_'+assocOutcomeCounter+'")'
696
+        }).html("<span class='glyphicon glyphicon-plus'></span>Add another Objective");
697
+        
698
+        divForGroup.append($div)
587 699
         $button.append('X');
588 700
         $divForButton.append($button);
589 701
 
590
-        $div.appendTo('#assocOutcomeGroup')
702
+        $('#allAssocOutcomes').append(divForGroup);
703
+        
704
+
705
+        //$div.appendTo('#assocOutcomeGroup')
591 706
         $select.append(selectOptions);
592 707
 
593 708
         $select.appendTo('#assoc_outcomeForm' + assocOutcomeCounter.toString()).selectpicker('refresh');
594
-         assocOutcomeCounter += 1;
595
-        $divForButton.appendTo('#assocOutcomeGroup');
709
+        //assocOutcomeCounter += 1;
710
+        $('#assocOutcomeGroup0').data('value', assocOutcomeCounter+1);
711
+        //$divForButton.appendTo('#assocOutcomeGroup');
712
+        divForGroup.append($divForButton);
713
+
714
+        form_group_for_objective.append($select_objective)
715
+        objectiveGroup.append(form_group_for_objective);
716
+        objectiveGroup.append(empty_div);
717
+        //objectiveGroup.append(button_for_add);
718
+
719
+        divForGroup.append(objectiveGroup);
720
+        divForGroup.append(button_for_add);
721
+        divForGroup.append('<hr>');
722
+        if(!depends)fetchObjectiveForSelect('assoc_outcome_'+assocOutcomeCounter, 'assoc_objectiveGroupFor'+assocOutcomeCounter);
723
+        $select_objective.selectpicker('refresh');
724
+
596 725
 
597
-        $('#assocOutcomeGroup').data('value', assocOutcomeCounter);
726
+       
598 727
 
599 728
 
600 729
     }
@@ -673,13 +802,10 @@ $('.filterSection').hide();
673 802
     //Fetch objective at creating criteria
674 803
     counterForPost = 0;
675 804
 
676
-    function fetchObjectiveForSelect(outcomeDiv, objectiveGroup) {
677
-        var count = $("#" + outcomeDiv).data('value');
678
-        var allOutcomes = [];
679
-        $("#" + outcomeDiv + ' select').each(function() {
680
-            allOutcomes.push( this.value);
805
+    
681 806
 
682
-        })
807
+    function fetchObjectiveForSelect(outcome, objectiveGroup) {
808
+        outcomeID = $('#'+outcome).val();
683 809
         var allObjectives = [];
684 810
         $("#" + objectiveGroup + ' select').each(function() {
685 811
             var temp = {
@@ -691,11 +817,18 @@ $('.filterSection').hide();
691 817
 
692 818
         $.post(
693 819
             "{{ URL::action('CriteriaController@fetchObjectivesForSelect') }}", {
694
-                allOutcomes: allOutcomes
820
+                outcomeID: outcomeID
695 821
             },
696 822
             function(varArray) {
697 823
                 counterOutcome =0;
698 824
                 optionName = '<option value ="0">Nothing Selected</option>';
825
+                for(index in varArray){
826
+                    objectiveObject = varArray[index];
827
+                    optionName += '<option value ="('+objectiveObject.outcome_id+','+objectiveObject.objective_id+')">'+
828
+                        objectiveObject.text+'</option>';
829
+
830
+                }
831
+                /*
699 832
                 for(outcome in varArray.outcomes){
700 833
                     optionName += '<optgroup label="' + varArray.outcomes[outcome][0].name + '">';
701 834
                     var objectiveForOutcome = varArray.objectives;
@@ -708,12 +841,17 @@ $('.filterSection').hide();
708 841
                         optionName += (option);
709 842
                     }
710 843
                     optionName += "</optgroup>";
711
-                }
844
+                }*/
712 845
                 
713
-
846
+                for(index in allObjectives){
847
+                    
848
+                    id = allObjectives[index].id
849
+                    $('#'+id).html(optionName);
850
+                    $('#'+id).selectpicker('refresh');
851
+                }
714 852
                 
715 853
 
716
-                $('#objective_0').html(optionName);
854
+                /*$('#objective_0').html(optionName);
717 855
                 $('#objective_0').selectpicker('refresh');
718 856
                 if($("#objective_0 option[value='"+allObjectives[0].value+"']").length>0){
719 857
                     $("#objective_0").val(allObjectives[0].value);
@@ -731,7 +869,7 @@ $('.filterSection').hide();
731 869
                     $("#objective_"+i.toString()).val(allObjectives[i].value);
732 870
                     $("#objective_"+i.toString()).selectpicker("refresh");
733 871
                 }
734
-                }
872
+                }*/
735 873
 
736 874
                 
737 875
 
@@ -794,11 +932,17 @@ $('.filterSection').hide();
794 932
 
795 933
                 if (!(json.activity_criterion.length)) {
796 934
 
797
-$('#DeleteButton').prop('enabled', true);
935
+                    $('#DeleteButton').prop('disabled', false);
936
+                    $("#update_the_criterion").val('Update');
937
+                    $("#update_criterion").attr('action', "{{ URL::action('CriteriaController@update')}}")
798 938
 
799
-} else {
800
-$('#DeleteButton').prop('disabled', true);
801
-}
939
+                } else {
940
+                    $('#DeleteButton').prop('disabled', true);
941
+                    $("#update_the_criterion").val("Create New")
942
+                    $("#update_criterion").attr('action', "{{ URL::action('CriteriaController@create')}}")
943
+                    alert("The criterion is already used in assessments. Editting the criterion will actually create a new criterion");
944
+
945
+                    }
802 946
 
803 947
                 if (!(json.criteria.length)) {
804 948
                     name = ' ';
@@ -832,8 +976,19 @@ $('#DeleteButton').prop('disabled', true);
832 976
                         $('#status').val(0);
833 977
                     else
834 978
                         $('#status').val(1);
835
-                    $('#assoc_maximum_score').val(json.criteria[0].maximum_score);
836
-                    var maximum = json.criteria[0].maximum_score;
979
+                    $('#assoc_maximum_score').val(json.criteria[0].max_score);
980
+                    var maximum = json.criteria[0].max_score;
981
+
982
+                    addOptions("Num_assoc_scale", "assoc_maximum_score", "Assoc_Scales");
983
+                    $('#Num_assoc_scale').val(json.criteria[0].num_scales)
984
+                    $('#Num_assoc_scale').selectpicker('refresh');
985
+                    $('#Num_assoc_scale').trigger('change');
986
+
987
+                    for(i=0; i<json.criteria[0].num_scales;i++){
988
+                        $('#assoc_scale_'+i).val(json.scales[i].description);
989
+                    }
990
+
991
+
837 992
 
838 993
                     // If copyright or notes aren't empty, load them
839 994
 
@@ -854,10 +1009,11 @@ $('#DeleteButton').prop('disabled', true);
854 1009
 
855 1010
                 // Select associated outcome
856 1011
                 try {
857
-                    assocOutcomeCounter= parseInt($("#assocOutcomeGroup").data('value'));
1012
+                    assocOutcomeCounter= parseInt($("#assocOutcomeGroup0").data('value'));
858 1013
                     for (var i = assocOutcomeCounter - 1; i > 0; i--) {
859
-                        deleteLast("assoc_outcomeForm" + i.toString() , "assocOutcomeGroup", "assoc_close" + i.toString() ,"assoc_objectiveGroup");
1014
+                        $('#assoc_close_button'+i).click();
860 1015
                                }
1016
+                    $('#assocOutcomeGroup0').data('value', 1);
861 1017
                 } catch (err) {
862 1018
                     var Notran = true;
863 1019
                 }
@@ -865,36 +1021,102 @@ $('#DeleteButton').prop('disabled', true);
865 1021
                 if (json.outcomes.length) {
866 1022
                     $('#assoc_outcome_0').val(json.outcomes[0].id);
867 1023
                     $('#assoc_outcome_0').selectpicker('refresh');
1024
+
1025
+                    var first_outcome_id = json.outcomes[0].id;
1026
+                    options = "<option value ='0'>Nothing Selected</option>";
1027
+
1028
+                    for(objective_index  in json.objectives_assoc[first_outcome_id]){
1029
+                        objective = json.objectives_assoc[first_outcome_id][objective_index]
1030
+                        options += '<option value ="('+first_outcome_id+','+objective.objective_id+')">'+
1031
+                            objective.text+'</option>';
1032
+                    }
1033
+                    $('#assoc_objective_0_counter_1').html(options);
1034
+                    $('#assoc_objective_0_counter_1').selectpicker('refresh');
1035
+                    
1036
+                    if(json.objectives[first_outcome_id].length){
1037
+                        objective_id = json.objectives[first_outcome_id][0].objective_id;
1038
+                    value = '('+first_outcome_id+','+objective_id+')';
1039
+                    $('#assoc_objective_0_counter_1').val(value);
1040
+                    $('#assoc_objective_0_counter_1').selectpicker('refresh');
1041
+
1042
+                    }
1043
+                    
1044
+
1045
+                    for(var i =1; i<json.objectives[first_outcome_id].length; i++ ){
1046
+                        addAssocObjective("assoc_objectiveGroupFor0", "assoc_objective_0");
1047
+                        objective_id = json.objectives[first_outcome_id][i].objective_id;
1048
+                        value = "("+first_outcome_id+","+objective_id+")";
1049
+                        $('#assoc_objective_0_counter_'+(i+1)).val(value);
1050
+                        $('#assoc_objective_0_counter_'+(i+1)).selectpicker('refresh');
1051
+                        
1052
+
1053
+
1054
+                    }
1055
+                    
868 1056
                 } else {
869 1057
                     $('#assoc_outcome_0').val($('#assoc_outcomes_fetch').find(':selected').val());
870 1058
                     $('#assoc_outcome_0').selectpicker('refresh');
1059
+
871 1060
                 }
872 1061
 
873 1062
 
874 1063
 
875 1064
                 for (var i = 1; i < json.outcomes.length; i++) {
876
-                    addAssocOutcome();
1065
+                    addAssocOutcome(true);
1066
+
1067
+
877 1068
                     $('#assoc_outcome_' + i.toString()).val(json.outcomes[i].id);
878 1069
                     $('#assoc_outcome_' + i.toString()).selectpicker('refresh');
879 1070
 
1071
+                    var outcome_id = json.outcomes[i].id;
1072
+                    options = "<option value ='0'>Nothing Selected</option>";
1073
+
1074
+                    for(objective_index  in json.objectives_assoc[outcome_id]){
1075
+                        objective = json.objectives_assoc[outcome_id][objective_index]
1076
+                        options += '<option value ="('+outcome_id+','+objective.objective_id+')">'+
1077
+                            objective.text+'</option>';
1078
+                    }
1079
+                    $('#assoc_objective_'+i+'_counter_1').html(options);
1080
+                    $('#assoc_objective_'+i+'_counter_1').selectpicker('refresh');
1081
+                    if(json.objectives[outcome_id].length){
1082
+                        objective_id = json.objectives[outcome_id][0].objective_id;
1083
+                        value = "("+outcome_id+","+objective_id+")"
1084
+                    $('#assoc_objective_'+i+'_counter_1').val(value);
1085
+                    $('#assoc_objective_'+i+'_counter_1').selectpicker('refresh')
1086
+                    }
1087
+                    
1088
+
1089
+                    for(var j =1; i<json.objectives[outcome_id].length; i++ ){
1090
+                        addAssocObjective("assoc_objectiveGroupFor"+i, "assoc_objective_"+i);
1091
+                        objective_id = json.objectives[outcome_id][j].objective_id;
1092
+                        value = "("+outcome_id+","+objective_id+")";
1093
+                        $('#assoc_objective_'+i+'_counter_'+(j+1)).val(value);
1094
+                        $('#assoc_objective_'+i+'_counter_'+(j+1)).selectpicker('refresh');
1095
+                        
1096
+
1097
+                    }
1098
+
880 1099
                 }
881 1100
 
882
-                counterObj =$('#assoc_objectiveGroup').data('value');
1101
+                
883 1102
 
884 1103
 
885
-                try {
1104
+                /*try {
886 1105
                     for (var i = counterObj - 1; i > 0; i--) {
887 1106
                         deleteObjective('assoc_objectiveForm' + i.toString(), 'assoc_closeObj' + i.toString(), 'assoc_objectiveGroup')
888 1107
                     }
889 1108
                 } catch (err) {
890 1109
                     var noEntro = true;
891
-                }
892
-                $('#assoc_objectiveGroup').data('value', 1);
1110
+                }*/
893 1111
 
894 1112
 
1113
+                //$('#assoc_objectiveGroup').data('value', 1);
1114
+                //counterObj =$('#assoc_objectiveGroup').data('value');
895 1115
 
896 1116
 
897 1117
 
1118
+
1119
+        /*
898 1120
                 assocOutcomeCounter = 0;
899 1121
                 var i = 0;
900 1122
                 optionName = '<option value ="0">Nothing Selected</option>';
@@ -945,7 +1167,7 @@ $('#DeleteButton').prop('disabled', true);
945 1167
                 
946 1168
 
947 1169
 
948
-
1170
+        */
949 1171
 
950 1172
 
951 1173
 
@@ -977,7 +1199,7 @@ $('.panel-group .panel-body').hide();
977 1199
 $('#outcome-display').parent().hide();
978 1200
 
979 1201
 fetchCriterionForEditing();
980
-fetchObjectiveForSelect('outcomeGroup', 'objectiveGroup');
1202
+fetchObjectiveForSelect('outcome0', 'objectiveGroupFor0');
981 1203
 // setCriterionStatus();
982 1204
 
983 1205
 
@@ -1000,7 +1222,7 @@ $('.filterButton').on('click', function(e) {
1000 1222
     
1001 1223
     return false;
1002 1224
     });
1003
-$('#button-add-objective-assoc').on('click', function(e) {
1225
+$('.button-add-objective-assoc').on('click', function(e) {
1004 1226
 // Prevent the default action of the clicked item. In this case that is submit
1005 1227
 e.preventDefault();
1006 1228
 
@@ -1014,7 +1236,7 @@ e.preventDefault();
1014 1236
 
1015 1237
 return false;
1016 1238
 });
1017
-$('#button-add-objective').on('click', function(e) {
1239
+$('.button-add-objective').on('click', function(e) {
1018 1240
 // Prevent the default action of the clicked item. In this case that is submit
1019 1241
 e.preventDefault();
1020 1242
 

+ 0
- 1275
app/views/local/managers/pCoords/new_criteria.blade.php
Diferenças do arquivo suprimidas por serem muito extensas
Ver arquivo


+ 573
- 220
app/views/local/managers/sCoords/criteria.blade.php
Diferenças do arquivo suprimidas por serem muito extensas
Ver arquivo


+ 52
- 42
app/views/local/managers/shared/rubrics.blade.php Ver arquivo

@@ -203,7 +203,7 @@
203 203
                 </div>
204 204
                 <div class="form-group">
205 205
                     <label>Select an Objective</label>
206
-                    <select id="select-objective" class="form-control selectpicker" onchange="fetchCriteria($('#select-outcome'), this)">
206
+                    <select id="select-objective" class="form-control selectpicker" onchange="fetchCriteria($('#select-outcome'), $(this))">
207 207
                         
208 208
                     </select>
209 209
                 </div>
@@ -224,7 +224,7 @@
224 224
                 </div>
225 225
                 <div class="form-group">
226 226
                     <label>Select the Type of Rubric</label>
227
-                <select id="number_of_scales" class="form-control selectpicker">
227
+                <select id="number_of_scales" class="form-control selectpicker" onchange ="fetchCriteria($('#select-outcome'), $('#select-objective'))">
228 228
                     @for($i = 1; $i <= 20; $i++)
229 229
                     @if(8%$i == 0)
230 230
                     @if($i==1)
@@ -275,6 +275,9 @@
275 275
     <div class="col-md-12">
276 276
         <table class="table table-striped table-condensed" style="table-layout: fixed">
277 277
             <thead id="theHead"><tr><th colspan="7 "><input id="rubric-name" type="text" class="form-control input-lg" placeholder="Rubric Name"></th></tr></thead>
278
+            <thead id = "theScaleTitles">
279
+
280
+            </thead>
278 281
             <thead>
279 282
                 <tr id ="criterion-header">
280 283
                     <th></th>
@@ -287,7 +290,7 @@
287 290
 
288 291
         <div id="copyright-info">
289 292
             <hr>
290
-            <p class="small"><strong>Outcomes Evaluated</strong></p>
293
+            <p class="small"><strong>Copyright</strong></p>
291 294
             <ul id="copyright-list" class="list-unstyled small">
292 295
             </ul>
293 296
             <hr>
@@ -340,11 +343,17 @@ function fetchObjective(outcome){
340 343
 // Fetch criteria associated to a specific learning outcome
341 344
 function fetchCriteria(outcome, objective)
342 345
 {
346
+    amount_of_scales = parseInt($('#number_of_scales').find(':selected').val());
347
+            
348
+    maximum = parseInt($('#max_score').find(":selected").val());
343 349
     $.post
344 350
     (
345 351
         "{{ URL::route('fetchCriteria') }}",
346 352
         {
347
-            id: outcome.find(':selected').data('outcome-id'),
353
+            outcome_id: outcome.find(':selected').data('outcome-id'),
354
+            objective_id: objective.find(':selected').val(),
355
+            num_scales: amount_of_scales,
356
+            maximum: maximum,
348 357
             filter: $('input[name=criteria-filter]:checked').val()
349 358
         },
350 359
         function(data)
@@ -427,15 +436,17 @@ function addCriterion()
427 436
     (
428 437
         "{{ URL::route('fetchCriterionWithTemplate') }}",
429 438
         { id: id,
430
-        numberOfScale: numberOfScale },
439
+         },
431 440
         function(data)
432 441
         {
433 442
             // Append the fetched data
434 443
             copyright = null;
435 444
             notes = null;
436
-            if(data.crit_info.length){
437
-                copyright = data.crit_info[0].copyright;
438
-                notes = data.crit_info[0].notes;
445
+            if(data.criterion.copyright){
446
+                copyright = data.criterion.copyright;
447
+            }
448
+            if(data.criterion.notes){
449
+                notes = data.criterion.notes;
439 450
             }
440 451
             
441 452
             
@@ -462,17 +473,14 @@ function addCriterion()
462 473
                 str+='<span>'+data.criterion.name+'</span><sup></sup>'+subcriteria+'</td>';
463 474
             }
464 475
             numberOfScale = $('#number_of_scales').find(':selected').val();
465
-            if(data.scales.length)
476
+            
466 477
             for(i=0; i<numberOfScale; i++){
467
-                str+='<td class="editable" data-type="textarea">'+data.scales[i].description+'</td>';
478
+                str+='<td>'+data.scales[i].description+'</td>';
468 479
                 
469 480
           
470 481
             }
471
-            else{
472
-                for(i=0; i<numberOfScale; i++){
473
-                str+='<td class="editable" data-type="textarea"></td>';
474
-            }
475
-        }
482
+           
483
+        
476 484
         str+= '<td>'+data.outcomes+'</td>'
477 485
         
478 486
 
@@ -540,8 +548,8 @@ function buildCopyrightList()
540 548
     {
541 549
         var criterion = $(this);
542 550
         // If there's copyright info
543
-        if(criterion.data('copyright')!=null){
544
-            var copyright = criterion.data('copyright');
551
+        if(criterion.data('criterion-copyright')!=null){
552
+            var copyright = criterion.data('criterion-copyright');
545 553
             if($('#copyright-list li').length>0)
546 554
             {
547 555
                 var found = false;
@@ -661,6 +669,7 @@ function refreshSelects()
661 669
     $('#expected_percentage').selectpicker('refresh');
662 670
     $('#expected_points').selectpicker('refresh');
663 671
     $('#number_of_scales').selectpicker('refresh');
672
+    $('#select-objective').selectpicker('refresh');
664 673
 }
665 674
 
666 675
 // Fetch programs associated to a specific school
@@ -948,6 +957,7 @@ function toggleProgramSelect(school)
948 957
 
949 958
 }
950 959
 
960
+fetchObjective($('#select-outcome'));
951 961
 // --------------------------------------------------------------------------
952 962
 // Events
953 963
 // --------------------------------------------------------------------------
@@ -1037,17 +1047,20 @@ function changeTable(){
1037 1047
             
1038 1048
            
1039 1049
             newScaleHeaders = '<th></th><th>Criterion</th>';
1050
+            editableTitles = '<th></th><th></th>';
1040 1051
             counter = 0;
1041 1052
             division = maximum/amount_of_scales;
1042 1053
             if(amount_of_scales==1){
1043
-                newScaleHeaders+= "<th class = 'editable' data-type = 'textarea'>Score (1 - "+maximum+")</th>";
1054
+                newScaleHeaders+= "<th>Score (1 - "+maximum+")</th>";
1055
+                editableTitles += "<th  class = 'editable' data-type = 'textarea'>Click to edit Title </th>"
1044 1056
             }
1045 1057
             else if(maximum!= amount_of_scales){
1046 1058
             while(counter <amount_of_scales){
1047 1059
                 
1048 1060
                 minimumScore = 1+(counter*division);
1049 1061
                 maximumScore = (1+counter)*division;
1050
-                newScaleHeaders+= "<th class = 'editable' data-type = 'textarea'>Scale "+ (counter +1) + " ("+minimumScore+" - "+maximumScore+")</th>";
1062
+                newScaleHeaders+= "<th>Scale "+ (counter +1) + " ("+minimumScore+" - "+maximumScore+")</th>";
1063
+                editableTitles+="<th  class = 'editable' data-type = 'textarea'>Click to edit Title "+(counter+1)+"</th>"
1051 1064
                 counter++;
1052 1065
             }
1053 1066
             }else{
@@ -1055,11 +1068,16 @@ function changeTable(){
1055 1068
                 
1056 1069
        
1057 1070
                 newScaleHeaders+= "<th>Scale "+ (counter +1) + " </th>";
1071
+                editableTitles+="<th  class = 'editable' data-type = 'textarea'>Click to edit Title "+(counter+1)+"</th>"
1072
+              
1058 1073
                 counter++;
1059 1074
             }
1060 1075
             }
1061 1076
             newScaleHeaders += '<th>Outcomes</th><th></th>';
1062
-            
1077
+            editableTitles += '<th></th><th></th>';
1078
+
1079
+
1080
+            $('#theScaleTitles').html(editableTitles);
1063 1081
             $("#criterion-header").html(newScaleHeaders);
1064 1082
             $('#allCriteria').html(' ');
1065 1083
 }
@@ -1099,6 +1117,7 @@ $('#max_score').on('change', function(){
1099 1117
     $('#expected_points').val(expected_points);
1100 1118
     refreshSelects();
1101 1119
     changeTable();
1120
+    fetchCriteria($('#select-outcome'), $('#select-objective'))
1102 1121
 })
1103 1122
 $('#number_of_scales').on('change', function(){
1104 1123
     changeTable();
@@ -1165,12 +1184,7 @@ $('.save').on('click', function(e)
1165 1184
     var criteriaArray = new Array();
1166 1185
 
1167 1186
     var criteria = [];
1168
-    scales = [];
1169
-    scalesMaxArray =[];
1170
-    scalesMinArray =[];
1171
-    scales_id =[];
1172
-    copyright = [];
1173
-    notes = [];
1187
+    var titles = [];
1174 1188
 
1175 1189
     
1176 1190
     var amount_of_scales =parseInt($('#number_of_scales').find(':selected').val())+2;
@@ -1179,27 +1193,22 @@ $('.save').on('click', function(e)
1179 1193
     $('tbody tr').each(function( index )
1180 1194
     {
1181 1195
             criteria.push($(this).data('criterion-id'));
1182
-            each_criterion_scale = [];
1183
-            for(i=2; i<amount_of_scales; i++){
1184
-               each_criterion_scale.push($(this.children[i]).text());
1185
-
1186
-            }
1187
-            copyright.push($(this.children[i]).text());
1188
-            i+=1;
1189
-            notes.push($(this.children[i]).text());
1190
-
1191
-            scales.push(each_criterion_scale);
1192
-
1196
+            
1193 1197
             
1194 1198
             
1195 1199
 
1196 1200
             
1197 1201
 
1198
-            // Clone the object and push it into the array
1202
+            
1199 1203
            
1200 1204
 
1201 1205
     });
1202 1206
 
1207
+    $('.editable').each(function(index){
1208
+        titles.push($(this).text());
1209
+    })
1210
+
1211
+
1203 1212
     //console.log('school', $('#select-school').find(':selected').data('school-id') );
1204 1213
     //console.log('program', $('#select-program').find(':selected').data('program-id') );
1205 1214
 
@@ -1218,10 +1227,11 @@ $('.save').on('click', function(e)
1218 1227
                 expected_points: $('#expected_points').find(':selected').val(),
1219 1228
                 is_visible: $('input[name=is_visible]:checked').val(),
1220 1229
                 criteria : criteria,
1221
-                scales: scales,
1230
+                //scales: scales,
1222 1231
                 max_score : max,
1223
-                copyright : copyright,
1224
-                notes :notes
1232
+                /*copyright : copyright,
1233
+                notes :notes*/
1234
+                titles: titles
1225 1235
 
1226 1236
             },
1227 1237
             function(data)
@@ -1329,7 +1339,7 @@ if({{Auth::user()->role}}==1)
1329 1339
     toggleProgramSelect($('#select-school'));
1330 1340
 
1331 1341
 // Fetch criteria of first outcome
1332
-fetchCriteria($('#select-outcome'));
1342
+fetchCriteria($('#select-outcome'), $('#select-objective'));
1333 1343
 changeTable();
1334 1344
 
1335 1345
 // Hide table