ソースを参照

frontend update

unknown 5 年 前
コミット
51f03cc101

+ 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>

+ 31 - 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" 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">
                                                 <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>

+ 16 - 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">
                                             </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">
                                             </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>

+ 11 - 0
log/Requests_API.log

@@ -0,0 +1,11 @@
+[2:33AM] GET request from 127.0.0.1:50590 to /api/building/
+[2:33AM] GET request from 127.0.0.1:50590 to /api/classroom/
+[2:46AM] GET request from 127.0.0.1:51657 to /api/teacher/
+[2:46AM] GET request from 127.0.0.1:51657 to /api/teacher/
+[2:46AM] GET request from 127.0.0.1:51657 to /api/group/
+[2:46AM] GET request from 127.0.0.1:51656 to /api/specialty/
+[2:48AM] GET request from 127.0.0.1:51656 to /api/subject/
+[2:55AM] GET request from 127.0.0.1:52394 to /api/subject/
+[2:55AM] GET request from 127.0.0.1:52395 to /api/building/
+[2:55AM] GET request from 127.0.0.1:52395 to /api/classroom/
+[2:56AM] GET request from 127.0.0.1:52395 to /api/subject/

+ 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/
+[02:33] Request from 127.0.0.1:50586 to /plan/
+[02:33] Request from 127.0.0.1:50585 to /plan/
+[02:33] Request from 127.0.0.1:50588 to /classroom/
+[02:33] Request from 127.0.0.1:50590 to /classroom/
+[02:33] Request from 127.0.0.1:50590 to /specialty/
+[02:33] Request from 127.0.0.1:50585 to /specialty/
+[02:46] Request from 127.0.0.1:51657 to /group/
+[02:46] Request from 127.0.0.1:51657 to /group/
+[02:48] Request from 127.0.0.1:51656 to /subject/
+[02:48] Request from 127.0.0.1:51656 to /subject/
+[02:55] Request from 127.0.0.1:52394 to /subject/
+[02:55] Request from 127.0.0.1:52395 to /subject/
+[02:55] Request from 127.0.0.1:52395 to /classroom/
+[02:55] Request from 127.0.0.1:52395 to /classroom/
+[02:56] Request from 127.0.0.1:52395 to /subject/
+[02:56] Request from 127.0.0.1:52395 to /subject/

+ 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 => {

+ 31 - 165
static/js/api/vueGroup.js

@@ -1,75 +1,50 @@
 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:[],
         },
->>>>>>> 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++) {
@@ -81,133 +56,24 @@ var app = new Vue({
                 await this.getGroups()
                 await this.getSpecilties()
             }
->>>>>>> master
-=======
-            async mountFunc(){
-                await this.getTeachers()
-                await this.getGroups()
-            },
->>>>>>> b5fe990a18b258e28401117b0be0a70e1a10db12
         }, 
         async mounted() {
             await this.mountFunc()
             console.log(this.teachers)
         }
     });
+addTeacher = () =>{
+    let surname = document.querySelector('.surname').value
+    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("Добавлено")
-    }
-
-  
-
+    }

+ 37 - 4
static/js/api/vueSubject.js

@@ -27,15 +27,48 @@ var app = 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() {