mvcStudentXD 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +13 -0
- data/Gemfile +22 -24
- data/README.md +35 -3
- data/{mvcStudentXD/lib → lib}/mvcStudentXD/version.rb +1 -1
- data/mvcStudentXD.gemspec +38 -0
- metadata +40 -92
- data/Gemfile.lock +0 -101
- data/Lab1/arr1_3.txt +0 -1
- data/Lab1/lb1_1.rb +0 -19
- data/Lab1/lb1_2.rb +0 -28
- data/Lab1/lb1_3.rb +0 -46
- data/Lab1/lb1_4.rb +0 -82
- data/Lab2/1Class.jpg +0 -0
- data/Lab2/Web/main.rb +0 -89
- data/Lab2/Web/views/add.html +0 -168
- data/Lab2/Web/views/main.html +0 -233
- data/Lab2/data_storage/students1.txt +0 -1
- data/Lab2/data_storage/studentsRead.json +0 -36
- data/Lab2/data_storage/studentsRead.txt +0 -3
- data/Lab2/data_storage/studentsRead.yaml +0 -26
- data/Lab2/data_storage/studentsWrite.json +0 -42
- data/Lab2/data_storage/studentsWrite.txt +0 -4
- data/Lab2/data_storage/studentsWrite.yaml +0 -31
- data/Lab2/examples/Strategy.rb +0 -38
- data/Lab2/examples/adapter.rb +0 -30
- data/Lab2/examples/database.rb +0 -15
- data/Lab2/examples/observer_example.rb +0 -51
- data/Lab2/examples/pattern_pattern.rb +0 -44
- data/Lab2/examples/site_example.rb +0 -21
- data/Lab2/examples/views/about.erb +0 -11
- data/Lab2/examples/views/contact.erb +0 -15
- data/Lab2/examples/views/index.erb +0 -11
- data/Lab2/main.rb +0 -6
- data/Lab2/main_window.rb +0 -31
- data/Lab2/student_input_form.rb +0 -71
- data/Lab2/tab_students.rb +0 -157
- data/Lab2/test/student_test.rb +0 -91
- data/mvcStudentXD/Gemfile +0 -22
- data/mvcStudentXD/Gemfile.lock +0 -97
- data/mvcStudentXD/README.md +0 -35
- data/mvcStudentXD/bin/console +0 -11
- data/mvcStudentXD/bin/setup +0 -8
- data/mvcStudentXD/mvcStudentXD-1.2.0.gem +0 -0
- data/mvcStudentXD/mvcStudentXD.gemspec +0 -15
- data/mvcStudentXD/pkg/mvcStudentXD-0.1.0.gem +0 -0
- data/mvcStudentXD/pkg/mvcStudentXD-1.0.1.gem +0 -0
- data/mvcStudentXD/pkg/mvcStudentXD-1.1.1.gem +0 -0
- data/mvcStudentXD/test/student_test.rb +0 -91
- data/mvcStudentXD/test/test_helper.rb +0 -6
- data/mvcStudentXD/test/test_mvcStudentXD.rb +0 -13
- /data/{mvcStudentXD/CHANGELOG.md → CHANGELOG.md} +0 -0
- /data/{mvcStudentXD/CODE_OF_CONDUCT.md → CODE_OF_CONDUCT.md} +0 -0
- /data/{mvcStudentXD/Rakefile → Rakefile} +0 -0
- /data/{mvcStudentXD/lib → lib}/mvcStudentXD.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/adapters/student_list_adapter.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/containers/Data_list.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/containers/Data_list_student_short.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/containers/Data_table.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/controllers/student_edit_form_controller.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/controllers/student_input_form_controller.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/controllers/student_list_controller.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter_json.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter_txt.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter_yaml.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/scripts/create_table.sql +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/scripts/insert_data.sql +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/student_list_db.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/students_db.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/model/Student.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/model/StudentBase.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/model/Student_short.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/repositories/Student_list.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/repositories/student_list_adv.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/util/LoggerHolder.rb +0 -0
- /data/{mvcStudentXD/sig → sig}/mvcStudentXD.rbs +0 -0
data/Lab2/Web/main.rb
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'sinatra'
|
4
|
-
require 'mvcStudentXD'
|
5
|
-
|
6
|
-
set :port, 8000
|
7
|
-
|
8
|
-
puts MvcStudentXD.constants
|
9
|
-
|
10
|
-
students_model = MvcStudentXD::StudentListAdv.new(
|
11
|
-
MvcStudentXD::StudentsListDBAdapter.new(
|
12
|
-
MvcStudentXD::StudentListDB.instance))
|
13
|
-
|
14
|
-
main_controller = StudentListController.new(students_model)
|
15
|
-
main_controller.on_view_created = lambda { }
|
16
|
-
main_controller.on_add_student_clicked = lambda { }
|
17
|
-
main_controller.on_edit_student_clicked = lambda { |id| }
|
18
|
-
|
19
|
-
main_controller.selected_page = 0
|
20
|
-
|
21
|
-
editing_id = nil
|
22
|
-
|
23
|
-
get "/" do
|
24
|
-
send_file 'web/main.html'
|
25
|
-
end
|
26
|
-
|
27
|
-
post "/students" do
|
28
|
-
main_controller.refresh_data()
|
29
|
-
result = main_controller.data_list.map { |student|
|
30
|
-
student.as_json
|
31
|
-
}
|
32
|
-
|
33
|
-
result.to_json
|
34
|
-
end
|
35
|
-
|
36
|
-
post "/next_page" do
|
37
|
-
main_controller.next_page()
|
38
|
-
main_controller.refresh_data()
|
39
|
-
end
|
40
|
-
|
41
|
-
post "/last_page" do
|
42
|
-
main_controller.last_page()
|
43
|
-
main_controller.update_table()
|
44
|
-
end
|
45
|
-
|
46
|
-
get "/get_page" do
|
47
|
-
(main_controller.selected_page + 1).to_s
|
48
|
-
end
|
49
|
-
|
50
|
-
get "/get_pages_count" do
|
51
|
-
main_controller.pages_count.to_s
|
52
|
-
end
|
53
|
-
|
54
|
-
post "/set_editing_id:id" do
|
55
|
-
puts params[:id]
|
56
|
-
editing_id = params[:id]
|
57
|
-
end
|
58
|
-
|
59
|
-
get "/get_editing_id" do
|
60
|
-
editing_id.to_s
|
61
|
-
end
|
62
|
-
|
63
|
-
post "/delete:id" do
|
64
|
-
main_controller.remove_student(params[:id])
|
65
|
-
end
|
66
|
-
|
67
|
-
post "/editing:id" do
|
68
|
-
student = main_controller.get_student(params[:id])
|
69
|
-
[student.as_json].to_json
|
70
|
-
end
|
71
|
-
|
72
|
-
get "/add" do
|
73
|
-
if editing_id == 'null'
|
74
|
-
main_controller.show_modal_add
|
75
|
-
else
|
76
|
-
main_controller.show_modal_edit(editing_id)
|
77
|
-
end
|
78
|
-
send_file 'web/add.html'
|
79
|
-
end
|
80
|
-
|
81
|
-
get "/edit:student" do
|
82
|
-
student = Student.from_json(JSON.parse(params[:student]))
|
83
|
-
main_controller.replace_student(student.id, student)
|
84
|
-
end
|
85
|
-
|
86
|
-
get "/insert:student" do
|
87
|
-
student = Student.from_json(JSON.parse(params[:student]))
|
88
|
-
main_controller.add_student(student)
|
89
|
-
end
|
data/Lab2/Web/views/add.html
DELETED
@@ -1,168 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<style>
|
3
|
-
.text {
|
4
|
-
font-size: 20px;
|
5
|
-
font-weight: bold;
|
6
|
-
color: #000000;
|
7
|
-
}
|
8
|
-
|
9
|
-
.txbox {
|
10
|
-
font-size: 16px;
|
11
|
-
padding: 7px;
|
12
|
-
border: 1px solid #050505;
|
13
|
-
}
|
14
|
-
|
15
|
-
.bt {
|
16
|
-
font-size: 15px;
|
17
|
-
padding: 5px 10px;
|
18
|
-
background-color: #5117d6;
|
19
|
-
color: #fff;
|
20
|
-
border: none;
|
21
|
-
border-radius: 5px;
|
22
|
-
cursor: pointer;
|
23
|
-
margin: 16px;
|
24
|
-
}
|
25
|
-
|
26
|
-
.bt:hover {
|
27
|
-
background-color: #22b91d;
|
28
|
-
}
|
29
|
-
</style>
|
30
|
-
|
31
|
-
<body style="display: flex; flex-direction: column; width: 256px;">
|
32
|
-
<label class="text" for="user_name">Фамилия</label>
|
33
|
-
<input class ="txbox" type="text" id="lastname">
|
34
|
-
|
35
|
-
<label class="text" for="user_name">Имя</label>
|
36
|
-
<input class ="txbox" type="text" id="firstname">
|
37
|
-
|
38
|
-
<label class="text" for="user_name">Отчество</label>
|
39
|
-
<input class ="txbox" type="text" id="parental_name">
|
40
|
-
|
41
|
-
<label class="text" for="user_name">GitHub</label>
|
42
|
-
<input class ="txbox" type="text" id="git">
|
43
|
-
|
44
|
-
<label class="text" for="user_name">Телефон</label>
|
45
|
-
<input class ="txbox" type="text" id="phone">
|
46
|
-
|
47
|
-
<label class="text" for="user_name">Почта</label>
|
48
|
-
<input class ="txbox" type="text" id="email">
|
49
|
-
|
50
|
-
<label class="text" for="user_name">Телеграм</label>
|
51
|
-
<input class ="txbox" type="text" id="telegram">
|
52
|
-
|
53
|
-
<button class ="bt" onclick="check_button()">Готово</button>
|
54
|
-
</body>
|
55
|
-
|
56
|
-
<script>
|
57
|
-
let is_edit_mode = false
|
58
|
-
let id = null
|
59
|
-
|
60
|
-
function check_button() {
|
61
|
-
if (document.getElementById('firstname').value === "") {
|
62
|
-
alert("Имя не введено")
|
63
|
-
return
|
64
|
-
}
|
65
|
-
|
66
|
-
if (document.getElementById('lastname').value === "") {
|
67
|
-
alert("Фамилия не введена")
|
68
|
-
return
|
69
|
-
}
|
70
|
-
|
71
|
-
if (document.getElementById('parental_name').value === "") {
|
72
|
-
alert("Отчество не введено")
|
73
|
-
return
|
74
|
-
}
|
75
|
-
|
76
|
-
if (document.getElementById('git').value !== "" && document.getElementById('git').value.match(/@\w*/) == null) {
|
77
|
-
alert("Неверно введен GitHub")
|
78
|
-
return
|
79
|
-
}
|
80
|
-
|
81
|
-
if (document.getElementById('email').value !== "" && document.getElementById('email').value.match(/\w*@\w*.\w{2,3}/) == null) {
|
82
|
-
alert("Неверно введена почта")
|
83
|
-
return
|
84
|
-
}
|
85
|
-
|
86
|
-
if (document.getElementById('phone').value !== "" && document.getElementById('phone').value.match(/\d-\d{3}-\d{3}-\d{2}-\d{2}/) == null) {
|
87
|
-
alert("Неверно введен номер телефона")
|
88
|
-
return
|
89
|
-
}
|
90
|
-
|
91
|
-
if (document.getElementById('telegram').value !== "" && document.getElementById('telegram').value.match(/@\w*/) == null) {
|
92
|
-
alert("Неверно введена телеграм")
|
93
|
-
return
|
94
|
-
}
|
95
|
-
|
96
|
-
if (document.getElementById('git').value === "" && document.getElementById('phone').value == "" && document.getElementById('email').value == "" && document.getElementById('telegram').value == "") {
|
97
|
-
alert("Отсутствует контакт")
|
98
|
-
return
|
99
|
-
}
|
100
|
-
|
101
|
-
add_student()
|
102
|
-
}
|
103
|
-
|
104
|
-
function get_editing_student() {
|
105
|
-
var http = new XMLHttpRequest();
|
106
|
-
http.open('GET', 'get_editing_id', false);
|
107
|
-
http.send()
|
108
|
-
|
109
|
-
id = http.responseText
|
110
|
-
|
111
|
-
|
112
|
-
if (id !== "null") {
|
113
|
-
is_edit_mode = true
|
114
|
-
|
115
|
-
http.open('POST', 'editing' + id, false);
|
116
|
-
http.send()
|
117
|
-
|
118
|
-
let student = JSON.parse(http.responseText)
|
119
|
-
|
120
|
-
document.getElementById('firstname').value = student[0]["firstname"]
|
121
|
-
document.getElementById('lastname').value = student[0]["lastname"]
|
122
|
-
document.getElementById('parental_name').value = student[0]["parental_name"]
|
123
|
-
document.getElementById('git').value = student[0]["git"]
|
124
|
-
document.getElementById('email').value = student[0]["email"]
|
125
|
-
document.getElementById('phone').value = student[0]["phone"]
|
126
|
-
document.getElementById('telegram').value = student[0]["telegram"]
|
127
|
-
}
|
128
|
-
}
|
129
|
-
|
130
|
-
function add_student() {
|
131
|
-
let json = {
|
132
|
-
"firstname": document.getElementById('firstname').value,
|
133
|
-
"lastname": document.getElementById('lastname').value,
|
134
|
-
"parental_name": document.getElementById('parental_name').value
|
135
|
-
}
|
136
|
-
|
137
|
-
if (id != null) {
|
138
|
-
json['id'] = id
|
139
|
-
}
|
140
|
-
if (document.getElementById('git').value !== "") {
|
141
|
-
json['git'] = document.getElementById('git').value
|
142
|
-
}
|
143
|
-
if (document.getElementById('email').value !== "") {
|
144
|
-
json['email'] = document.getElementById('email').value
|
145
|
-
}
|
146
|
-
if (document.getElementById('phone').value !== "") {
|
147
|
-
json['phone'] = document.getElementById('phone').value
|
148
|
-
}
|
149
|
-
if (document.getElementById('telegram').value !== "") {
|
150
|
-
json['telegram'] = document.getElementById('telegram').value
|
151
|
-
}
|
152
|
-
|
153
|
-
var http = new XMLHttpRequest();
|
154
|
-
|
155
|
-
if (is_edit_mode) {
|
156
|
-
http.open('GET', "edit" + JSON.stringify(json), false);
|
157
|
-
http.send()
|
158
|
-
} else {
|
159
|
-
http.open('GET', "insert" + JSON.stringify(json), false);
|
160
|
-
http.send()
|
161
|
-
}
|
162
|
-
|
163
|
-
window.location.replace("/");
|
164
|
-
}
|
165
|
-
|
166
|
-
get_editing_student()
|
167
|
-
</script>
|
168
|
-
</html>
|
data/Lab2/Web/views/main.html
DELETED
@@ -1,233 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<head>
|
3
|
-
<style>
|
4
|
-
table.tbl td {
|
5
|
-
border: 1px solid black;
|
6
|
-
padding: 5px;
|
7
|
-
margin: 0px;
|
8
|
-
min-width: 100px;
|
9
|
-
height: 32px;
|
10
|
-
}
|
11
|
-
|
12
|
-
table.tbl tr {
|
13
|
-
padding: 5px;
|
14
|
-
margin: 5px;
|
15
|
-
}
|
16
|
-
|
17
|
-
.tbl {
|
18
|
-
overflow-x: scroll;
|
19
|
-
display:block;
|
20
|
-
}
|
21
|
-
.bt {
|
22
|
-
font-size: 15px;
|
23
|
-
padding: 5px 10px;
|
24
|
-
background-color: #5117d6;
|
25
|
-
color: #fff;
|
26
|
-
border: none;
|
27
|
-
border-radius: 5px;
|
28
|
-
cursor: pointer;
|
29
|
-
margin: 10px;
|
30
|
-
}
|
31
|
-
|
32
|
-
.bt:hover {
|
33
|
-
background-color: #22b91d;
|
34
|
-
}
|
35
|
-
</style>
|
36
|
-
</head>
|
37
|
-
<body style="margin: 0px;">
|
38
|
-
<div style="position: relative; height: 100%;">
|
39
|
-
<div style="display: flex; justify-content: flex-start; width: 100%;">
|
40
|
-
|
41
|
-
<div>
|
42
|
-
<div style="display: flex; margin: 16px; position: relative;">
|
43
|
-
<div style="width: 256px">
|
44
|
-
|
45
|
-
</div>
|
46
|
-
<div style="display: flex; width: 100%; text-align:center;margin-bottom: 20px;">
|
47
|
-
<button class = "bt" onclick="last_page()">Назад</button>
|
48
|
-
<div id="page_counter" style="text-align: center; width: 350px">
|
49
|
-
1 из 5
|
50
|
-
</div>
|
51
|
-
<button class = "bt" onclick="next_page()">Вперед</button>
|
52
|
-
</div>
|
53
|
-
|
54
|
-
<div style="width: 256px">
|
55
|
-
|
56
|
-
</div>
|
57
|
-
</div>
|
58
|
-
<div style="display: flex; text-align:center;">
|
59
|
-
<div style="width: 20px; margin: auto;">
|
60
|
-
|
61
|
-
</div>
|
62
|
-
|
63
|
-
<div style="width: 1px; background-color: black; margin: auto;"></div>
|
64
|
-
|
65
|
-
<table class="tbl" style="margin: 0px; margin: auto;">
|
66
|
-
<thead style="margin: 0px; padding: 0px;">
|
67
|
-
<tr style="margin: 0px; padding: 0px;">
|
68
|
-
<td>ID</td>
|
69
|
-
<td>Фамилия</td>
|
70
|
-
<td>Имя</td>
|
71
|
-
<td>Отчество</td>
|
72
|
-
<td>GitHub</td>
|
73
|
-
<td>Телефон</td>
|
74
|
-
<td>Почта</td>
|
75
|
-
<td>Телеграм</td>
|
76
|
-
</td>
|
77
|
-
</tr>
|
78
|
-
</thead>
|
79
|
-
<tbody id="table_body">
|
80
|
-
|
81
|
-
</tbody>
|
82
|
-
</table>
|
83
|
-
<div style="width: 1px; background-color: black; margin: auto;"></div>
|
84
|
-
|
85
|
-
<div style="width: 256px; margin: auto; display: flex; flex-direction: column; margin: 8px;">
|
86
|
-
<button class = "bt" id="add" onclick="add_student()" >Добавить</button>
|
87
|
-
<button class = "bt" id="edit" onclick="edit_student()" >Изменить</button>
|
88
|
-
<button class = "bt" id="delete" onclick="delete_student()" >Удалить</button>
|
89
|
-
<button class = "bt" id="update" >Обновить</button>
|
90
|
-
</div>
|
91
|
-
</div>
|
92
|
-
</div>
|
93
|
-
</div>
|
94
|
-
</div>
|
95
|
-
<script>
|
96
|
-
let table = document.getElementById('table_body')
|
97
|
-
|
98
|
-
let selected_item = null
|
99
|
-
|
100
|
-
let add = document.getElementById('add')
|
101
|
-
let del = document.getElementById('delete')
|
102
|
-
let update = document.getElementById('update')
|
103
|
-
let edit = document.getElementById('edit')
|
104
|
-
|
105
|
-
function add_student() {
|
106
|
-
var http = new XMLHttpRequest();
|
107
|
-
|
108
|
-
http.open('POST', 'set_editing_idnull', false);
|
109
|
-
http.send();
|
110
|
-
window.location.href = '/add'
|
111
|
-
}
|
112
|
-
|
113
|
-
function edit_student() {
|
114
|
-
let id = document.getElementById('row_' + selected_item.toString() + "_column_0").textContent
|
115
|
-
var http = new XMLHttpRequest();
|
116
|
-
|
117
|
-
http.open('POST', 'set_editing_id' + id, false);
|
118
|
-
http.send();
|
119
|
-
|
120
|
-
window.location.href = '/add'
|
121
|
-
}
|
122
|
-
|
123
|
-
function generate_table_body() {
|
124
|
-
for(i = 0; i < 10; i++) {
|
125
|
-
let row = document.createElement('tr')
|
126
|
-
if (i === selected_item) {
|
127
|
-
row.style.backgroundColor = 'Red'
|
128
|
-
}
|
129
|
-
row.id = "row_" + i.toString()
|
130
|
-
row.onclick = (((x) => {
|
131
|
-
return () => {
|
132
|
-
let column = document.getElementById('row_' + x.toString() + "_column_1")
|
133
|
-
if (column.textContent !== "") {
|
134
|
-
selected_item = x
|
135
|
-
update_request()
|
136
|
-
} else {
|
137
|
-
selected_item = null
|
138
|
-
update_request()
|
139
|
-
}
|
140
|
-
|
141
|
-
}
|
142
|
-
}))(i)
|
143
|
-
|
144
|
-
for(j = 0; j < 8; j++) {
|
145
|
-
let column = document.createElement('td')
|
146
|
-
column.id = "row_" + i.toString() + "_column_" + j.toString()
|
147
|
-
row.appendChild(column)
|
148
|
-
}
|
149
|
-
table.appendChild(row)
|
150
|
-
}
|
151
|
-
}
|
152
|
-
|
153
|
-
function clear_table() {
|
154
|
-
table.innerHTML = ''
|
155
|
-
generate_table_body()
|
156
|
-
}
|
157
|
-
|
158
|
-
function delete_student() {
|
159
|
-
let column = document.getElementById('row_' + selected_item.toString() + "_column_0")
|
160
|
-
|
161
|
-
var http = new XMLHttpRequest();
|
162
|
-
http.open('POST', 'delete' + column.textContent, false);
|
163
|
-
http.send()
|
164
|
-
|
165
|
-
update_request()
|
166
|
-
}
|
167
|
-
|
168
|
-
function update_table(students) {
|
169
|
-
clear_table()
|
170
|
-
for(i = 0; i < students.length; i++) {
|
171
|
-
let attributes = [
|
172
|
-
students[i]['lastname'],
|
173
|
-
students[i]['firstname'],
|
174
|
-
students[i]['parental_name'],
|
175
|
-
students[i]['id'],
|
176
|
-
students[i]['git'],
|
177
|
-
students[i]['phone'],
|
178
|
-
students[i]['email'],
|
179
|
-
students[i]['telegram']
|
180
|
-
]
|
181
|
-
|
182
|
-
for(j = 0; j < 8; j++) {
|
183
|
-
let column = document.getElementById('row_' + i.toString() + '_column_' + j.toString())
|
184
|
-
column.textContent = attributes[j]
|
185
|
-
}
|
186
|
-
}
|
187
|
-
|
188
|
-
if (selected_item != null) {
|
189
|
-
del.disabled = false
|
190
|
-
edit.disabled = false
|
191
|
-
} else {
|
192
|
-
del.disabled = true
|
193
|
-
edit.disabled = true
|
194
|
-
}
|
195
|
-
}
|
196
|
-
|
197
|
-
function next_page() {
|
198
|
-
var http = new XMLHttpRequest();
|
199
|
-
http.open('POST', 'next_page', false);
|
200
|
-
http.send()
|
201
|
-
update_request()
|
202
|
-
}
|
203
|
-
|
204
|
-
function last_page() {
|
205
|
-
var http = new XMLHttpRequest();
|
206
|
-
http.open('POST', 'last_page', false);
|
207
|
-
http.send()
|
208
|
-
update_request()
|
209
|
-
}
|
210
|
-
|
211
|
-
function update_request() {
|
212
|
-
var http = new XMLHttpRequest();
|
213
|
-
http.open('POST', 'students', false);
|
214
|
-
http.send()
|
215
|
-
let json = JSON.parse(http.responseText)
|
216
|
-
update_table(json)
|
217
|
-
|
218
|
-
var http = new XMLHttpRequest();
|
219
|
-
http.open('GET', 'get_page', false);
|
220
|
-
http.send()
|
221
|
-
|
222
|
-
var http2 = new XMLHttpRequest();
|
223
|
-
http2.open('GET', 'get_pages_count', false);
|
224
|
-
http2.send()
|
225
|
-
|
226
|
-
document.getElementById('page_counter').textContent = 'Страница ' + http.responseText + ' из ' + http2.responseText
|
227
|
-
}
|
228
|
-
|
229
|
-
generate_table_body()
|
230
|
-
update_request()
|
231
|
-
</script>
|
232
|
-
</body>
|
233
|
-
</html>
|
@@ -1 +0,0 @@
|
|
1
|
-
fio:Иванченко И. И.,email:iii@mail.ru,git:@fusfio:Сергеева С. С.,phone:89054037777,git:@rofio:Бирюков Б. Б.,telegram:@bbb,git:@duh
|
@@ -1,36 +0,0 @@
|
|
1
|
-
[
|
2
|
-
{
|
3
|
-
"last_name": "Иванченко",
|
4
|
-
"first_name": "Иван",
|
5
|
-
"parental_name": "Иванович",
|
6
|
-
"id": 1,
|
7
|
-
"email": "iii@mail.ru",
|
8
|
-
"git": "@fus"
|
9
|
-
},
|
10
|
-
{
|
11
|
-
"last_name": "Сергеева",
|
12
|
-
"first_name": "Станислава",
|
13
|
-
"parental_name": "Серова",
|
14
|
-
"id": 2,
|
15
|
-
"phone": "89054037777",
|
16
|
-
"git": "@ro"
|
17
|
-
},
|
18
|
-
{
|
19
|
-
"last_name": "Бирюков",
|
20
|
-
"first_name": "Бернард",
|
21
|
-
"parental_name": "Белов",
|
22
|
-
"id": 3,
|
23
|
-
"telegram": "@bbb",
|
24
|
-
"git": "@duh"
|
25
|
-
},
|
26
|
-
{
|
27
|
-
"last_name": "Иванов",
|
28
|
-
"first_name": "Иван",
|
29
|
-
"parental_name": "Иванович",
|
30
|
-
"id": 4,
|
31
|
-
"phone": "+79051111111",
|
32
|
-
"telegram": "@7",
|
33
|
-
"email":"s0163526@edu.kubsu.ru",
|
34
|
-
"git": "@6"
|
35
|
-
}
|
36
|
-
]
|
@@ -1,26 +0,0 @@
|
|
1
|
-
- last_name: "Иванченко"
|
2
|
-
first_name: "Иван"
|
3
|
-
parental_name: "Иванович"
|
4
|
-
id: 1
|
5
|
-
email: "iii@mail.ru"
|
6
|
-
git: "@fus"
|
7
|
-
- last_name: "Сергеева"
|
8
|
-
first_name: "Станислава"
|
9
|
-
parental_name: "Серова"
|
10
|
-
id: 2
|
11
|
-
phone: "89054037777"
|
12
|
-
git: "@ro"
|
13
|
-
- last_name: "Бирюков"
|
14
|
-
first_name: "Бернард"
|
15
|
-
parental_name: "Белов"
|
16
|
-
id: 3
|
17
|
-
telegram: "@bbb"
|
18
|
-
git: "@duh"
|
19
|
-
- last_name: "Иванов"
|
20
|
-
first_name: "Иван"
|
21
|
-
parental_name: "Иванович"
|
22
|
-
id: 4
|
23
|
-
phone: "+79051111111"
|
24
|
-
telegram: "@7"
|
25
|
-
email: "s0163526@edu.kubsu.ru"
|
26
|
-
git: "@6"
|
@@ -1,42 +0,0 @@
|
|
1
|
-
[
|
2
|
-
{
|
3
|
-
"last_name": "Иванченко",
|
4
|
-
"first_name": "Иван",
|
5
|
-
"parental_name": "Иванович",
|
6
|
-
"id": 1,
|
7
|
-
"git": "@fus",
|
8
|
-
"email": "iii@mail.ru"
|
9
|
-
},
|
10
|
-
{
|
11
|
-
"last_name": "Сергеева",
|
12
|
-
"first_name": "Станислава",
|
13
|
-
"parental_name": "Серова",
|
14
|
-
"id": 2,
|
15
|
-
"phone": "89054037777",
|
16
|
-
"git": "@ro"
|
17
|
-
},
|
18
|
-
{
|
19
|
-
"last_name": "Бирюков",
|
20
|
-
"first_name": "Бернард",
|
21
|
-
"parental_name": "Белов",
|
22
|
-
"id": 3,
|
23
|
-
"git": "@duh",
|
24
|
-
"telegram": "@bbb"
|
25
|
-
},
|
26
|
-
{
|
27
|
-
"last_name": "Иванов",
|
28
|
-
"first_name": "Иван",
|
29
|
-
"parental_name": "Иванович",
|
30
|
-
"id": 4,
|
31
|
-
"phone": "+79051111111",
|
32
|
-
"git": "@6",
|
33
|
-
"telegram": "@7",
|
34
|
-
"email": "s0163526@edu.kubsu.ru"
|
35
|
-
},
|
36
|
-
{
|
37
|
-
"last_name": "Дорогов",
|
38
|
-
"first_name": "Дмитрий",
|
39
|
-
"parental_name": "Далдалович",
|
40
|
-
"id": 5
|
41
|
-
}
|
42
|
-
]
|
@@ -1,4 +0,0 @@
|
|
1
|
-
last_name:Иванченко,first_name:Иван,parental_name:Иванович,id:1,git:@fus,email:iii@mail.ru
|
2
|
-
last_name:Сергеева,first_name:Станислава,parental_name:Серова,id:2,phone:89054037777,git:@ro
|
3
|
-
last_name:Бирюков,first_name:Бернард,parental_name:Белов,id:3,git:@duh,telegram:@bbb
|
4
|
-
last_name:Голубев,first_name:Глеб,parental_name:Газманович,id:4
|
@@ -1,31 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- last_name: Иванченко
|
3
|
-
first_name: Иван
|
4
|
-
parental_name: Иванович
|
5
|
-
id: 1
|
6
|
-
git: "@fus"
|
7
|
-
email: iii@mail.ru
|
8
|
-
- last_name: Сергеева
|
9
|
-
first_name: Станислава
|
10
|
-
parental_name: Серова
|
11
|
-
id: 2
|
12
|
-
phone: '89054037777'
|
13
|
-
git: "@ro"
|
14
|
-
- last_name: Бирюков
|
15
|
-
first_name: Бернард
|
16
|
-
parental_name: Белов
|
17
|
-
id: 3
|
18
|
-
git: "@duh"
|
19
|
-
telegram: "@bbb"
|
20
|
-
- last_name: Иванов
|
21
|
-
first_name: Иван
|
22
|
-
parental_name: Иванович
|
23
|
-
id: 4
|
24
|
-
phone: "+79051111111"
|
25
|
-
git: "@6"
|
26
|
-
telegram: "@7"
|
27
|
-
email: s0163526@edu.kubsu.ru
|
28
|
-
- last_name: Голубев
|
29
|
-
first_name: Глеб
|
30
|
-
parental_name: Газманович
|
31
|
-
id: 5
|
data/Lab2/examples/Strategy.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
class Strategy
|
2
|
-
def execute
|
3
|
-
raise NotImplementedError, 'Определён в наследниках'
|
4
|
-
end
|
5
|
-
end
|
6
|
-
|
7
|
-
class Strategy1 < Strategy
|
8
|
-
def execute
|
9
|
-
puts 'Doing Strategy1...'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Strategy2 < Strategy
|
14
|
-
def execute
|
15
|
-
puts 'Doing Strategy2...'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class Context
|
20
|
-
attr_accessor :strategy
|
21
|
-
|
22
|
-
def initialize(strategy)
|
23
|
-
self.strategy=strategy
|
24
|
-
end
|
25
|
-
|
26
|
-
def execute_strategy
|
27
|
-
strategy.execute
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
strategy1 = Strategy1.new
|
33
|
-
context = Context.new(strategy1)
|
34
|
-
context.execute_strategy
|
35
|
-
|
36
|
-
strategy2 = Strategy2.new
|
37
|
-
context.strategy = strategy2
|
38
|
-
context.execute_strategy
|