3 Commits ca520880d7 ... 4bc988700f

Autor SHA1 Mensaje Fecha
  unknown 4bc988700f Merge branch 'master' of http://tomtit.tomsk.ru:3000/avb/scheduleServer hace 5 años
  unknown 01b0a3f7c1 frontend update hace 5 años
  unknown 51f03cc101 frontend update hace 5 años

+ 28 - 24
html/classroom.html

@@ -51,25 +51,23 @@
                                             </div>
                                             <br>
                                             <table class="table table-striped table-bordered ">
-                                                <tr>
-                                                    <th>Номер кабинета</th>
-                                                    <th>Количество мест</th>
-                                                    <th>Тип кабинета</th>
-                                                    <th>Корпус</th>
-                                                </tr>
-                                                <tr v-for="(c, i) in classrooms">
-                                                    <td>${c.Name}</td>
-                                                    <td>${c.Placequantity}</td>
-                                                    <td>${c.Iscomputer ? "Компьютерный" : "Лекционный"}</td>
-                                                    <td v-if="c.IDBuilding === 1">Герцена, 18</td>
-                                                    <td v-if="c.IDBuilding === 2">Московский тракт, 12</td>
-                                                 </tr>
-<!--                                                 <tr>
-                                                    <td><a href="#" id="classroomId" data-type="text" data-pk="1" data-title="Номер кабинета" class="editable editable-click" data-original-title="" title="">{{ .ClassroomId}}</a></td>
-                                                    <td><a href="#" id="placeQuantity" data-type="text" data-pk="1" data-title="Номер кабинета" class="editable editable-click" data-original-title="" title="">{{ .PlaceQuantity}}</a></td>
-                                                    <td><a href="#" id="IsComputer" data-type="text" data-pk="1" data-title="Номер кабинета" class="editable editable-click" data-original-title="" title="">{{ .IsComputer}}</a></td>
-                                                    <td><a href="#" id="IDBuilding" data-type="text" data-pk="1" data-title="Номер кабинета" class="editable editable-click" data-original-title="" title="">{{ .IDBuilding}}</a></td>
-                                                </tr> -->
+                                                <thead>
+                                                    <tr>
+                                                        <th>Номер кабинета</th>
+                                                        <th>Количество мест</th>
+                                                        <th>Тип кабинета</th>
+                                                        <th>Корпус</th>
+                                                    </tr>
+                                                </thead>
+                                                <tbody>
+                                                    <tr v-for="(c, i) in classrooms">
+                                                        <td>${c.Name}</td>
+                                                        <td>${c.Placequantity}</td>
+                                                        <td>${c.Iscomputer ? "Компьютерный" : "Лекционный"}</td>
+                                                        <td v-if="c.IDBuilding === 1">Герцена, 18</td>
+                                                        <td v-if="c.IDBuilding === 2">Московский тракт, 12</td>
+                                                    </tr>
+                                                </tbody>
                                             </table>
                                         </div>
                                     </div>
@@ -87,34 +85,40 @@
                                         <div class="modal-header">
                                             <h4 class="modal-title" id="modal-default-header">Добавление кабинета</h4>    
                                         </div>
+                                        <div v-if="requestType === 'PATCH'" class="col-md-12">
+                                            <label>Id</label>
+                                            <div class="input-group">
+                                                <input type="text" class="form-control ID" placeholder="1" :value="selectedRow.ID" disabled="">
+                                            </div>
+                                        </div>
                                         <div class="form-group">
                                             <div class="col-md-3">
                                                 <label>Номер кабинета</label>
                                             </div>
                                             <div class="col-md-9">
-                                                <input type="text" class="form-control numberCab">
+                                                <input type="text" class="form-control numberCab" :value="selectedRow.Name">
                                             </div>
                                         </div>
                                         <div class="form-group">
                                             <label class="control-label col-md-3">Количество мест</label>
                                             <div class="col-md-9">
-                                                <input type="text" class="form-control placeQuantity">
+                                                <input type="text" class="form-control placeQuantity" :value="selectedRow.PlaceQuantity">
                                             </div>
                                         </div>
                                         <div class="form-group">
                                             <label class="control-label col-md-3">Корпус</label>
                                             <div class="col-md-9">
                                                 <div class="app-radio inline">
-                                                    <label><input type="radio" class="building-radio" name="app-radio-2" value="1" checked="checked"> ГК</label>
+                                                    <label><input type="radio" class="building-radio" name="app-radio-2" value="1" checked="checked" :checked="selectedRow.IDBuilding==1"> ГК</label>
                                                 </div>
                                                 <div class="app-radio inline">
-                                                    <label><input type="radio" class="building-radio" name="app-radio-2" value="2"> ЦОПП</label>
+                                                    <label><input type="radio" class="building-radio" name="app-radio-2" value="2" :checked="selectedRow.IDBuilding==2"> ЦОПП</label>
                                                 </div>
                                             </div>
                                             <div class="form-group">
                                                 <div class="col-md-6">
                                                     <div class="app-checkbox inline">
-                                                        <label><input type="checkbox" class="computerclass" name="app-checkbox-2" value="0" checked="checked"> Компьютерный</label>
+                                                        <label><input type="checkbox" class="computerclass" name="app-checkbox-2" value="0" :checked="selectedRow.IsComputer"> Компьютерный</label>
                                                     </div>
                                                 </div>
                                             </div>

+ 33 - 25
html/group.html

@@ -66,7 +66,7 @@
                                         <th>Группа</th>
                                         <th>Специальность</th>
                                         <th>Куратор</th>
-                                        <th>Курс</th>
+                                        <th>Год приёма</th>
                                     </tr>
                                 </thead>
                                 <tbody>
@@ -95,29 +95,31 @@
                                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="icon-cross"></span></button>
                                 <div class="modal-content">
                                     <div class="block">
-                                        <div class="row">
+                                        <H1>Предметы</H1>
+                                            <div v-if="requestType === 'PATCH'" class="col-md-12">
+                                            <label>Id</label>
+                                            <div class="input-group">
+                                                <input type="text" class="form-control ID" placeholder="1" :value="selectedRow.ID" disabled="">
+                                            </div>
+                                        </div>
                                     <div class="form-group">
                                         <label class="col-md-3 control-label">Номер группы</label>
                                         <div class="col-md-9">
-                                            <input type="text" class="form-control" placeholder="362">
+                                            <input type="text" class="form-control" data-validation="Number"  data-validation-allowing="range[100;1000]" placeholder="362" :value="selectedRow.Number">
                                         </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-md-3 control-label">Специальность</label>
                                         <div class="col-md-9">
-	                                        <select class="">
-	                                            <option>00.00.00 Программирование</option>
-	                                            <option>11.11.11 Администрирование</option>
-	                                            <option>22.22.22 Монтажники</option>
-	                                            <option>33.33.33 Пример</option>
-	                                            <option>44.44.44 Пример</option>
+	                                        <select :selected="selectedRow.IDSpecialty">
+	                                            <option v-for="s in specilties">${s.Code + " " + s.Name}</option>
 	                                        </select>
 	                                    </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-md-3 control-label">Куратор</label>
                                         <div class="col-md-9">
-                                        	<select>
+                                        	<select :selected="selectedRow.IDTeacher">
                                             	<option v-for="t in teachers" v-bind:value="t.Surname">${t.Surname}</option>
                                         	</select>
                                         </div>
@@ -125,28 +127,19 @@
                                     <div class="form-group">
                                     	<label class="col-md-3 control-label">Форма обучения</label>
 	                                    <div class="app-radio inline"> 
-	                                     	<label><input type="radio" name="app-radio-2" value="1" checked> Бюджет</label>
-	                                    </div>
-	                                    <div class="app-radio inline"> 
-	                                        <label><input type="radio" name="app-radio-2" value="0"> Внебюджет</label> 
+	                                     	<label><input type="radio" name="app-radio-2" value="1" checked :checked="selectedRow.IsBudget==0"> Бюджет</label> 
+	                                        <label><input type="radio" name="app-radio-2" value="0" :checked="selectedRow.IsBudget==1"> Внебюджет</label> 
 	                                    </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-md-3 control-label">Год приема</label>
                                         <div class="col-md-9">
-                                            <input type="text" class="form-control" placeholder="2020">
+                                            <input type="text" class="form-control"  placeholder="2020" data-validation="Number" data-validation-allowing="range[1900;2100]">
                                         </div>
                                     </div>
-                                    <div class="form-group">
-                                        <label class="col-md-3 control-label">Год выпуска</label>
-                                        <div class="col-md-9">
-											<input type="text" class="form-control" placeholder="2024">
-	                                    </div>
-                                    </div>
-                                        <div class="col-md-12">
-                                            <br>
-                                            <button type="button" class="btn btn-default" onclick="addSubject()">Добавить модуль</button>
-                                        </div>
+                                    <div class="modal-footer">
+                                        <button type="button" class="btn btn-link" data-dismiss="modal">Закрыть</button>
+                                        <button type="submit" class="btn btn-default" onclick="addSubject()">Добавить</button>
                                     </div>
                                 </div>
                             </div>
@@ -168,6 +161,21 @@
                 <script type="text/javascript" src="../static/js/app.js"></script>
                 <script type="text/javascript" src="../static/js/app_plugins.js"></script>
                 <script type="text/javascript" src="../static/js/app_demo.js"></script>
+                <script type="text/javascript" src="../static/js/vendor/form-validator/jquery.form-validator.min.js"></script>
+
+
                 <!-- END APP SCRIPTS -->
+                 <script type="text/javascript">
+                    $.validate({
+                        modules : 'date,file,location',
+                        onValidate: function(){
+                            
+                            delayBeforeFire(function(){                                                
+                                app.spy();
+                            },100);
+                                                
+                        }
+                    });
+                </script>
             </body>
         </html>

+ 46 - 17
html/specialty.html

@@ -37,7 +37,7 @@
                             <div class="tile-basic">
                                 <a href="#" class="preview" data-preview-size="modal-lg">
                                     <div class="tile-content tile-content-condensed-bottom text-center">
-                                        <button type="button" class="btn btn-success btn-lg">Добавить</button>
+                                        <button type="button" class="btn btn-success btn-lg" @click="modalClick('yes', 'POST')">Добавить</button>
                                     </a>
                                 </div>
                             </div>
@@ -46,14 +46,21 @@
                             <div class="tile-basic">
                                 <a href="#" class="preview" data-preview-size="modal-lg">
                                     <div class="tile-content tile-content-condensed-bottom text-center">
-                                        <button type="button" class="btn btn-warning btn-lg">Редактировать</button>
+                                        <button type="button" class="btn btn-warning btn-lg" @click="modalClick('no', 'PATCH')">Редактировать</button>
                                     </a>
                                 </div>
                             </div>
                         </div>
-                        
                         <!-- модальные окна -->
-                        <div class="modal fade" id="preview-delete" tabindex="1" role="dialog">
+                        <div class="modal fade" id="delete" tabindex="1" role="dialog">
+                            <div class="modal-dialog">
+                                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="icon-cross"></span></button>
+                                <div class="modal-content">
+                                    <h1>1111111111</h1>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="modal fade" id="patch" tabindex="1" role="dialog">
                             <div class="modal-dialog">
                                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="icon-cross"></span></button>
                                 <div class="modal-content">
@@ -61,30 +68,37 @@
                                 </div>
                             </div>
                         </div>
-                        <div class="modal fade" id="preview" tabindex="-1" role="dialog">
+                        <div class="modal fade" id="preview" tabindex="2" role="dialog">
                             <div class="modal-dialog">
                                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="icon-cross"></span></button>
                                 <div class="modal-content">
                                     <div class="block">
                                         <h1>Специальности</h1>
-                                        <div class="form-group">
-                                            <label class="col-md-3 control-label">Код специальности</label>
-                                            <div class="col-ms-9">
-                                                <input type="text" class="form-control code" placeholder="09.02.04">
+                                        <div v-if="requestType === 'PATCH'" class="col-md-12">
+                                            <label>Id</label>
+                                            <div class="input-group">
+                                                <input type="text" class="form-control ID" placeholder="1" :value="selectedRow.ID" disabled="">
                                             </div>
                                         </div>
-                                        <div class="form-group">
-                                            <label class="col-md-3 control-label">Название специальности</label>
-                                            <div class="col-ms-9">
-                                                <input type="text" class="form-control name" placeholder="Программирование в компьютерных системах">
+                                        <div class="col-md-12">
+                                            <label>Код специальности</label>
+                                            <div class="input-group">
+                                                <input type="text" class="form-control code" data-validation="length,required" data-validation-length="max8" placeholder="09.02.04" :value="selectedRow.Code">
+                                            </div>
+                                        </div>
+                                        <div class="col-md-12">
+                                            <label>Название специальности</label>
+                                            <div class="input-group">
+                                                <input type="text" class="form-control name" placeholder="Программирование в компьютерных системах" :value="selectedRow.Name" data-validation="required">
                                                 <div class="app-radio">
-                                                    <label><input type="radio" name="app-radio-1" class="duration-radio" value="1"> 2 года 10 месяцев</label>
-                                                    <label><input type="radio" name="app-radio-1" class="duration-radio" value="2"> 3 года 10 месяцев</label>
+                                                    <label><input type="radio" name="app-radio-1" class="duration-radio" value="1" :checked="selectedRow.IDDuration==1"> 2 года 10 месяцев</label>
+                                                    <label><input type="radio" name="app-radio-1" class="duration-radio" value="2" :checked="selectedRow.IDDuration==2"> 3 года 10 месяцев</label>
                                                 </div>
                                             </div>
                                         </div>
-                                        <div class="col-md-12">
-                                            <button type="button" class="btn btn-default" onclick="addSpecialty()">Добавить специальность</button>
+                                        <div class="modal-footer">
+                                            <button type="button" class="btn btn-link" data-dismiss="modal">Закрыть</button>
+                                            <button type="button" class="btn btn-default" onclick="addSpecialty()">Добавить</button>
                                         </div>
                                     </div>
                                 </div>
@@ -138,4 +152,19 @@
         <!-- END APP SCRIPTS -->
         <script type="text/javascript" src="../static/js/vendor/datatables/jquery.dataTables.min.js"></script>
         <script type="text/javascript" src="../static/js/vendor/datatables/dataTables.bootstrap.min.js"></script>
+        <script type="text/javascript" src="../static/js/vendor/form-validator/jquery.form-validator.min.js"></script>
+
+
+        <script type="text/javascript">
+                    $.validate({
+                        modules : 'date,file,location',
+                        onValidate: function(){
+                            
+                            delayBeforeFire(function(){                                                
+                                app.spy();
+                            },100);
+                                                
+                        }
+                    });
+                </script>
     </body>

+ 30 - 21
html/subject.html

@@ -39,7 +39,7 @@
                             <div class="tile-basic">
                                 <a href="#" class="preview" data-preview-size="modal-lg">
                                     <div class="tile-content tile-content-condensed-bottom text-center">
-                                        <button type="button" class="btn btn-success btn-lg">Добавить</button>
+                                        <button type="button" class="btn btn-success btn-lg" @click="modalClick('yes', 'POST')">Добавить</button>
                                     </a>
                                 </div>
                             </div>
@@ -48,21 +48,11 @@
                             <div class="tile-basic">
                                 <a href="#" class="preview" data-preview-size="modal-lg">
                                     <div class="tile-content tile-content-condensed-bottom text-center">
-                                        <button type="button" class="btn btn-warning btn-lg">Редактировать</button>
+                                        <button type="button" class="btn btn-warning btn-lg" @click="modalClick('no', 'PATCH')">Редактировать</button>
                                     </a>
                                 </div>
                             </div>
-                        </div>
-                        <div class="col-md-4 col-ms-4 grid-element filter-business">
-                            <div class="tile-basic">
-                                <a href="#" class="preview-delete" data-preview-size="modal-lg">
-                                    <div class="tile-content tile-content-condensed-bottom text-center">
-                                        <button type="button" class="btn btn-danger btn-lg">Удалить</button>
-                                    </div>
-                                </a>
-                            </div>
-                        </div>
-                        
+                        </div>  
                         <div class="block-content">
                             <table class="table table-striped table-bordered">
                                 <h1>Предметы</h1>
@@ -94,22 +84,28 @@
                                 <div class="modal-content">
                                     <div class="block">
                                         <h1>Предметы</h1>
+                                        <div v-if="requestType === 'PATCH'" class="col-md-12">
+                                            <label>Id</label>
+                                            <div class="input-group">
+                                                <input type="text" class="form-control ID" placeholder="1" :value="selectedRow.ID" disabled="">
+                                            </div>
+                                        </div>
                                         <div class="col-md-12">
                                             <label>Название предмета</label>
                                             <div class="input-group">
-                                                <input type="text" class="form-control subjectName" placeholder="09.02.04">
+                                                <input type="text" class="form-control subjectName" placeholder="09.02.04" :value="selectedRow.Name" data-validation="required">
                                             </div>
                                         </div>
                                         <div class="col-md-12">
                                             <label>Сокращенное название</label>
                                             <div class="input-group">
-                                                <input type="text" class="form-control shortName" placeholder="Программирование в компьютерных системах">
+                                                <input type="text" class="form-control shortName" placeholder="Программирование в компьютерных системах" :value="selectedRow.Shortname" data-validation="required">
                                             </div>
                                         </div>
 
                                         <div class="col-md-12">
                                             <label>Профессиональный модуль</label>
-                                            <select class="bs-select " id="selectProfmodule">
+                                            <select class="bs-select " id="selectProfmodule" :value="selectedRow.ID_professionalmodule">
                                                 <option>1</option>
                                                 <option>2</option>
                                                 <option>3</option>
@@ -119,14 +115,13 @@
                                         <div class="form-group">
                                             <div class="col-md-6">
                                                 <div class="app-checkbox inline">
-                                                    <label><input type="checkbox" class="type" name="app-checkbox-2" value="0" checked="checked"> Лабораторные</label>
+                                                    <label><input type="checkbox" class="type" name="app-checkbox-2" value="0" checked="checked" :checked="selectedRow.IDStype"> Лабораторные</label>
                                                 </div>
                                             </div>
                                         </div>
-                                            
-                                        <div class="col-md-12">
-                                            <br>
-                                            <button type="button" class="btn btn-default" onclick="addSubject()">Добавить предмет</button>
+                                        <div class="modal-footer">
+                                            <button type="button" class="btn btn-link" data-dismiss="modal">Закрыть</button>
+                                            <button type="button" class="btn btn-default" onclick="addSubject()">Добавить</button>
                                         </div>
                                     </div>
                                 </div>
@@ -155,4 +150,18 @@
         <!-- END APP SCRIPTS -->
         <script type="text/javascript" src="../static/js/vendor/datatables/jquery.dataTables.min.js"></script>
         <script type="text/javascript" src="../static/js/vendor/datatables/dataTables.bootstrap.min.js"></script>
+        <script type="text/javascript" src="../static/js/vendor/form-validator/jquery.form-validator.min.js"></script>
+        
+        <script type="text/javascript">
+                    $.validate({
+                        modules : 'date,file,location',
+                        onValidate: function(){
+                            
+                            delayBeforeFire(function(){                                                
+                                app.spy();
+                            },100);
+                                                
+                        }
+                    });
+                </script>
     </body>

+ 28 - 0
log/Requests_API.log

@@ -0,0 +1,28 @@
+[5:42AM] GET request from 127.0.0.1:50007 to /api/teacher/
+[5:42AM] GET request from 127.0.0.1:50007 to /api/teacher/
+[5:42AM] GET request from 127.0.0.1:50007 to /api/group/
+[5:42AM] GET request from 127.0.0.1:50006 to /api/specialty/
+[5:51AM] GET request from 127.0.0.1:50661 to /api/teacher/
+[5:51AM] GET request from 127.0.0.1:50661 to /api/teacher/
+[5:51AM] GET request from 127.0.0.1:50661 to /api/group/
+[5:51AM] GET request from 127.0.0.1:50662 to /api/specialty/
+[6:08AM] GET request from 127.0.0.1:52506 to /api/teacher/
+[6:08AM] GET request from 127.0.0.1:52506 to /api/teacher/
+[6:08AM] GET request from 127.0.0.1:52508 to /api/group/
+[6:08AM] GET request from 127.0.0.1:52508 to /api/specialty/
+[6:09AM] GET request from 127.0.0.1:52510 to /api/teacher/
+[6:09AM] GET request from 127.0.0.1:52510 to /api/teacher/
+[6:09AM] GET request from 127.0.0.1:52510 to /api/group/
+[6:09AM] GET request from 127.0.0.1:52508 to /api/specialty/
+[6:09AM] GET request from 127.0.0.1:52506 to /api/teacher/
+[6:09AM] GET request from 127.0.0.1:52506 to /api/teacher/
+[6:09AM] GET request from 127.0.0.1:52506 to /api/group/
+[6:09AM] GET request from 127.0.0.1:52506 to /api/specialty/
+[6:12AM] GET request from 127.0.0.1:52506 to /api/teacher/
+[6:12AM] GET request from 127.0.0.1:52506 to /api/teacher/
+[6:12AM] GET request from 127.0.0.1:52506 to /api/group/
+[6:12AM] GET request from 127.0.0.1:52506 to /api/specialty/
+[6:13AM] GET request from 127.0.0.1:52509 to /api/teacher/
+[6:13AM] GET request from 127.0.0.1:52509 to /api/teacher/
+[6:13AM] GET request from 127.0.0.1:52509 to /api/group/
+[6:13AM] GET request from 127.0.0.1:52509 to /api/specialty/

+ 16 - 5
log/Requests_URL.log

@@ -1,5 +1,16 @@
-[16:06] Request from 127.0.0.1:58448 to /
-[16:06] Request from 127.0.0.1:58448 to /
-[16:06] Request from 127.0.0.1:58448 to /plan/
-[16:06] Request from 127.0.0.1:58448 to /plan/
-[16:06] Request from 127.0.0.1:58448 to /plan/
+[05:42] Request from 127.0.0.1:50007 to /plan/
+[05:42] Request from 127.0.0.1:50007 to /plan/
+[05:42] Request from 127.0.0.1:50007 to /group/
+[05:42] Request from 127.0.0.1:50007 to /group/
+[05:51] Request from 127.0.0.1:50661 to /group/
+[05:51] Request from 127.0.0.1:50668 to /group/
+[06:08] Request from 127.0.0.1:52506 to /group/
+[06:08] Request from 127.0.0.1:52510 to /group/
+[06:09] Request from 127.0.0.1:52510 to /group/
+[06:09] Request from 127.0.0.1:52506 to /group/
+[06:09] Request from 127.0.0.1:52506 to /group/
+[06:09] Request from 127.0.0.1:52506 to /group/
+[06:12] Request from 127.0.0.1:52506 to /group/
+[06:12] Request from 127.0.0.1:52510 to /group/
+[06:13] Request from 127.0.0.1:52510 to /group/
+[06:13] Request from 127.0.0.1:52507 to /group/

+ 20 - 21
static/js/api/vueClassrooms.js

@@ -31,27 +31,21 @@ var app = new Vue({
             classrooms:[], 
             buildings: [],
             selectedRow: {
-                "Code": "",
                 "Name": "",
-                "IDDuration": 0,
-                "ID": ""
+                "PlaceQuantity": "",
+                "IDBuilding": 0,
+                "IsComputer": "",
+                "ID":""
             },
+            requestType: null
          },
         methods: {
-            showClassrooms() {
-                console.log(this.classrooms)
-            },
+            async getClassrooms(){
+                this.classrooms = await requestFunc("/classroom", "GET")
+            }, 
             selectRow(row, index){
                 let rows = document.querySelectorAll('.clickHover')
-                console.log(index)
                 this.selectedRow = row;
-                
-                // for(let i = 0; i < row.length; i++) {
-                //     rows[i].style.backgroundColor = 'red'
-                // }
-                console.log(rows)
-                console.log(rows[index].style.backgroundColor)
-                // empty string
                 if(rows[index].style.backgroundColor != 'red'){
                     rows[index].style.backgroundColor = 'red'
                 }
@@ -59,19 +53,24 @@ var app = new Vue({
                     rows[index].style.backgroundColor = 'white'
                     this.clearSelectedRow()
                 }   
-                
-                console.log(row)
             },
             clearSelectedRow(){
                 this.selectedRow =   {
-                "Code": "",
                 "Name": "",
-                "IDDuration": 0
+                "PlaceQuantity": "",
+                "IDBuilding": 0,
+                "IsComputer": "",
                 }
+            },            
+            changeRequestType(requestType){
+                this.requestType = requestType 
+            },
+            modalClick(add, requestType) {
+                if(add==='yes') {
+                    this.clearSelectedRow();
+                }
+                this.changeRequestType(requestType);
             },
-            async getClassrooms(){
-                this.classrooms = await requestFunc("/classroom", "GET")
-            }, 
             async getBuildings() {
                 const buildings = await requestFunc("/building/", "GET")
                     .then(response => {

+ 67 - 166
static/js/api/vueGroup.js

@@ -1,75 +1,55 @@
 const requestFunc = async(url, method = "GET", data = null, token = null) => {
-	apihost = 'http://schedule.tomtit.tomsk.ru/api'
-	method = method.toLocaleUpperCase()
-	let fullurl = `${apihost}${url}`;
-	let options = {
-	method: method,
-	headers: {
-	"Content-Type": "application/json",
-	"Authorization": `Bearer ${token}`,
-	},
+    apihost = 'http://127.0.0.1/api'
+    method = method.toLocaleUpperCase()
+    let fullurl = `${apihost}${url}`;
+    let options = {
+    method: method,
+    headers: {
+    "Content-Type": "application/json",
+    "Authorization": `Bearer ${token}`,
+    },
 };
 
 switch(method) {
-	case "PUT":
-	delete options.headers["Content-Type"];
-	options.body = data;
-	break;
-	case "POST": case "PATCH": case "DELETE":
-	options.body = JSON.stringify(data);
-	break;
+    case "PUT":
+    delete options.headers["Content-Type"];
+    options.body = data;
+    break;
+    case "POST": case "PATCH": case "DELETE":
+    options.body = JSON.stringify(data);
+    break;
 }
 
 const res = await fetch(fullurl, options);
 return await res.json();
 };
-<<<<<<< HEAD
-<<<<<<< HEAD
-var app = new Vue({
-=======
 
 var vueapp = new Vue({
->>>>>>> master
-=======
-var app = new Vue({
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12
         el: '#app',
         delimiters: ['${', '}'],
         data: {
             groups:[],
             teachers:[],
-<<<<<<< HEAD
-<<<<<<< HEAD
-            selected:null
-         },
-=======
             specialties:[],
+            selectedRow:{
+                "ID": "",
+                "Number":"",
+                "IDSpecialty": 0,
+                "IDTeacher": 0,
+                "IsBudget": "",
+                "Year": ""
+            },
         },
->>>>>>> master
-=======
-            selected:null
-         },
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12
         methods: {
-            showGroups() {
-                console.log(this.groups)
+            async getGroups(){
+                this.groups = await requestFunc("/group/", "GET")
             },
-        	async getGroups(){
-        		this.groups = await requestFunc("/group/", "GET")
-        	},
             async getTeachers(){
                 teachers = await requestFunc("/teacher/", "GET")
                 for(let i =0; i < teachers.length; i++) {
                     Vue.set(this.teachers, i, teachers[i]);
                 }
             },
-<<<<<<< HEAD
-<<<<<<< HEAD
-            async mountFunc(){
-                await this.getTeachers()
-                await this.getGroups()
-            },
-=======
             async getSpecilties(){
                 specialties = await requestFunc("/specialty/", "GET")
                 for(let i =0; i < specialties.length; i++) {
@@ -80,14 +60,37 @@ var app = new Vue({
                 await this.getTeachers()
                 await this.getGroups()
                 await this.getSpecilties()
-            }
->>>>>>> master
-=======
-            async mountFunc(){
-                await this.getTeachers()
-                await this.getGroups()
             },
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12
+            selectRow(row, index){
+                let rows = document.querySelectorAll('.clickHover')
+                this.selectedRow = row;
+                if(rows[index].style.backgroundColor != 'red'){
+                    rows[index].style.backgroundColor = 'red'
+                }
+                else{
+                    rows[index].style.backgroundColor = 'white'
+                    this.clearSelectedRow()
+                }   
+            },
+            clearSelectedRow(){
+                this.selectedRow = {
+                    "ID": "",
+                    "Number":"",
+                    "IDSpecialty": 0,
+                    "IDTeacher": 0,
+                    "IsBudget": "",
+                    "Year": ""
+                }
+            },
+            changeRequestType(requestType){
+                this.requestType = requestType 
+            },
+            modalClick(add, requestType) {
+                if(add==='yes') {
+                    this.clearSelectedRow();
+                }
+                this.changeRequestType(requestType);
+            },
         }, 
         async mounted() {
             await this.mountFunc()
@@ -95,119 +98,17 @@ var app = new Vue({
         }
     });
 
+addSubject = (requestType) =>{
+    let name = document.querySelector('.name').value
+    let patronymic = document.querySelector('.patronymic').value
+    var select = document.getElementById("selectClassroom");
+    var value = select.value;
 
+    var myHeaders = new Headers();
+    myHeaders.append("Content-Type", "application/json");
 
+    var raw = {"Surname":surname,"Name":name,"IDCLassroom":Number(value),"Patronymic": patronymic};
+    requestFunc(url="/teacher/", method="POST", data=raw)
+    alert("Добавлено")
+}
 
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12
-// const requestFunc = async(url, method = "GET", data = null, token = null) => {
-//     apihost = 'http://schedule.tomtit.tomsk.ru/api'
-//     method = method.toLocaleUpperCase()
-//     let fullurl = `${apihost}${url}`;
-//     let options = {
-//     method: method,
-//     headers: {
-//     "Content-Type": "application/json",
-//     "Authorization": `Bearer ${token}`,
-//     },
-// };
-<<<<<<< HEAD
-
-// switch(method) {
-//     case "PUT":
-//     delete options.headers["Content-Type"];
-//     options.body = data;
-//     break;
-//     case "POST": case "PATCH": case "DELETE":
-//     options.body = JSON.stringify(data);
-//     break;
-// }
-
-// const res = await fetch(fullurl, options);
-// return await res.json();
-// };
-// var app = new Vue({
-//         el: '#app',
-//         delimiters: ['${', '}'],
-//         data: {
-//             groups:[],
-//             teachers:[],
-//             profmoduls:[],
-//          },
-//         methods: {
-//             showGroups() {
-//                 console.log(this.groups)
-//             },
-//             async getGroups(){
-//                 this.groups = await requestFunc("/group/", "GET")
-//             },
-//             async getTeachers(){
-//                 teachers = await requestFunc("/teacher/", "GET")
-//                 for(let i =0; i < teachers.length; i++) {
-//                         Vue.set(this.teachers, i, teachers[i]);
-//                     },
-//             },
-//             async mountFunc(){
-//                 await this.getTeachers()
-//                 await this.getGroups()
-//             },
-//         }, 
-//         async mounted() {
-//             await this.mountFunc()
-//             console.log(this.teachers)
-//         }
-//     });
-=======
-=======
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12
-
-// switch(method) {
-//     case "PUT":
-//     delete options.headers["Content-Type"];
-//     options.body = data;
-//     break;
-//     case "POST": case "PATCH": case "DELETE":
-//     options.body = JSON.stringify(data);
-//     break;
-// }
-
-<<<<<<< HEAD
->>>>>>> master
-=======
-// const res = await fetch(fullurl, options);
-// return await res.json();
-// };
-// var app = new Vue({
-//         el: '#app',
-//         delimiters: ['${', '}'],
-//         data: {
-//             groups:[],
-//             teachers:[],
-//             profmoduls:[],
-//          },
-//         methods: {
-//             showGroups() {
-//                 console.log(this.groups)
-//             },
-//             async getGroups(){
-//                 this.groups = await requestFunc("/group/", "GET")
-//             },
-//             async getTeachers(){
-//                 teachers = await requestFunc("/teacher/", "GET")
-//                 for(let i =0; i < teachers.length; i++) {
-//                         Vue.set(this.teachers, i, teachers[i]);
-//                     },
-//             },
-//             async mountFunc(){
-//                 await this.getTeachers()
-//                 await this.getGroups()
-//             },
-//         }, 
-//         async mounted() {
-//             await this.mountFunc()
-//             console.log(this.teachers)
-//         }
-//     });
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12

+ 21 - 50
static/js/api/vueSpecialty.js

@@ -1,46 +1,33 @@
 const requestFunc = async(url, method = "GET", data = null, token = null) => {
-	apihost = 'http://127.0.0.1'
-	method = method.toLocaleUpperCase()
-	let fullurl = `${apihost}${url}`;
-	let options = {
-	method: method,
-	headers: {
-	"Content-Type": "application/json",
-	"Authorization": `Bearer ${token}`,
-	},
+    apihost = '127.0.0.1/api'
+    method = method.toLocaleUpperCase()
+    let fullurl = `${apihost}${url}`;
+    let options = {
+    method: method,
+    headers: {
+    "Content-Type": "application/json",
+    "Authorization": `Bearer ${token}`,
+    },
 };
 
 switch(method) {
-	case "PUT":
-	delete options.headers["Content-Type"];
-	options.body = data;
-	break;
-	case "POST": case "PATCH": case "DELETE":
-	options.body = JSON.stringify(data);
-	break;
+    case "PUT":
+    delete options.headers["Content-Type"];
+    options.body = data;
+    break;
+    case "POST": case "PATCH": case "DELETE":
+    options.body = JSON.stringify(data);
+    break;
 }
 
 const res = await fetch(fullurl, options);
 return await res.json();
 };
-
-
-var app = new Vue({
+var vueApp = new Vue({
         el: '#app',
         delimiters: ['${', '}'],
         data: {
             specialties:[], 
-
-         },
-        methods: {
-            showSpecialties() {
-                console.log(this.specialty)
-            },
-        	async getSpecialties(){
-        		this.specialties = await requestFunc("/specialty", "GET")
-        	},
-            
-
             selectedRow: {
                 "Code": "",
                 "Name": "",
@@ -48,20 +35,14 @@ var app = new Vue({
                 "ID": ""
             },
             requestType: null
-
          },
         methods: {
-            showSpecialties() {
-                console.log(this.specialty)
+            async getSpecialties(){
+                this.specialties = await requestFunc("/specialty", "GET")
             },
-        	async getSpecialties(){
-        		this.specialties = await requestFunc("/specialty", "GET")
-        	},
-
             selectRow(row, index){
                 let rows = document.querySelectorAll('.clickHover')
                 this.selectedRow = row;
-                // empty string
                 if(rows[index].style.backgroundColor != 'red'){
                     rows[index].style.backgroundColor = 'red'
                 }
@@ -86,18 +67,11 @@ var app = new Vue({
                 }
                 this.changeRequestType(requestType);
             }         
-
-
-            
-
         }, 
         mounted() {
-        	this.getSpecialties()
+            this.getSpecialties()
         }
-
-
     });
-
     addSpecialty = (requestType)=>{
         let code = document.querySelector('.code').value
         let name = document.querySelector('.name').value
@@ -121,7 +95,4 @@ var app = new Vue({
         }
         requestFunc(url="/specialty/", method=vueApp.requestType, data=raw)
         alert("Добавлено")
-    }
-
-  
-
+    }

+ 45 - 6
static/js/api/vueSubject.js

@@ -23,19 +23,52 @@ switch(method) {
 const res = await fetch(fullurl, options);
 return await res.json();
 };
-var app = new Vue({
+var vueApp = new Vue({
         el: '#app',
         delimiters: ['${', '}'],
         data: {
-            subjects:[], 
+            subjects:[],
+            selectedRow: {
+                "Name": "",
+                "ID_professionalmodule": 0,
+                "Shortname": "",
+                "IDStype":0,
+                "ID": ""
+            }, 
          },
         methods: {
-            showSubjects() {
-                console.log(this.subjects)
-            },
         	async getSubjects(){
         		this.subjects = await requestFunc("/subject/", "GET")
         	},
+            selectRow(row, index){
+                let rows = document.querySelectorAll('.clickHover')
+                this.selectedRow = row;
+                if(rows[index].style.backgroundColor != 'red'){
+                    rows[index].style.backgroundColor = 'red'
+                }
+                else{
+                    rows[index].style.backgroundColor = 'white'
+                    this.clearSelectedRow()
+                }   
+            },
+            clearSelectedRow(){
+                this.selectedRow =   {
+                "Name": "",
+                "ID_professionalmodule": 0,
+                "Shortname": "",
+                "IDStype":0,
+                "ID": ""
+                }
+            },
+            changeRequestType(requestType){
+                this.requestType = requestType 
+            },
+            modalClick(add, requestType) {
+                if(add==='yes') {
+                    this.clearSelectedRow();
+                }
+                this.changeRequestType(requestType);
+            }         
             
         }, 
         mounted() {
@@ -43,7 +76,7 @@ var app = new Vue({
         }
     });
 
-addSubject = () =>{
+addSubject = (requestType) =>{
     let name = document.querySelector('.subjectName').value
     let shortName = document.querySelector('.shortName').value
     var select = document.getElementById("selectProfmodule");
@@ -54,6 +87,12 @@ addSubject = () =>{
     myHeaders.append("Content-Type", "application/json");
 
     var raw = {"Name":name,"ID_professionalmodule":Number(value),"Shortname": shortName, "IDStype": Number(type)};
+    if (vueApp.requestType=== 'PATCH') {
+            let ID = document.querySelector('.ID').value
+            console.log(ID)
+            raw.ID= Number(ID)
+            
+        }
     requestFunc(url="/subject/", method="POST", data=raw)
     alert("Добавлено")
 }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 15 - 1
static/js/vendor/form-validator/jquery.form-validator.min.js