c80_map 0.1.0.21 → 0.1.0.22
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/app/assets/javascripts/c80_map.js.coffee +1 -0
- data/app/assets/javascripts/map_objects/building.js +4 -0
- data/app/assets/javascripts/src/main.js +13 -1
- data/app/assets/javascripts/src/state_controller.js +9 -0
- data/app/assets/javascripts/svg_elements/building_label.js +65 -0
- data/app/assets/stylesheets/view/elems/free_areas_label.scss +116 -0
- data/app/models/c80_map/building_representator.rb +2 -1
- data/lib/c80_map/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3be2ba4e2ab8645392a50803e3ab11ab62095888
|
4
|
+
data.tar.gz: 3a75282e3a1c15bbd126478cd236ece64a9f1e6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27aa0c100ea5bdb44ea474c16a2242c2e6446f28eb45235b1a39f685bd40b2a67b0e000b457a6d32a30357e2b96520dd0c920e7afdf1f52f5b53c6aa49f06296
|
7
|
+
data.tar.gz: 6b21b26eacf7bbe165641e8504a9c1191768c4b366b982a3dd8e5ae051a8de3e116b60de83cd1d4b0a3251371bbe1b8ba56c3487eb3f67746b3ef498146b0153
|
@@ -1132,7 +1132,19 @@ var clog = function () {
|
|
1132
1132
|
self.data = data["updated_locations_json"];
|
1133
1133
|
});
|
1134
1134
|
|
1135
|
-
}
|
1135
|
+
};
|
1136
|
+
|
1137
|
+
self.show_free_areas_hint = function () {
|
1138
|
+
// рисуем в слое #svg_overlay,
|
1139
|
+
// а т.к. находимся в режиме просмотра карты,
|
1140
|
+
// этот слой пуст, можно им пока воспользоваться
|
1141
|
+
|
1142
|
+
|
1143
|
+
|
1144
|
+
};
|
1145
|
+
self.hide_free_areas_hint = function () {
|
1146
|
+
|
1147
|
+
};
|
1136
1148
|
|
1137
1149
|
};
|
1138
1150
|
|
@@ -96,6 +96,9 @@ function StateController() {
|
|
96
96
|
_map.save_button_klass.show();
|
97
97
|
_map.save_button_klass.check_and_enable();
|
98
98
|
|
99
|
+
// скроем подсказки - сколько свободных площадей где есть
|
100
|
+
_map.hide_free_areas_hint();
|
101
|
+
|
99
102
|
break;
|
100
103
|
|
101
104
|
// перешли в состояние
|
@@ -153,6 +156,9 @@ function StateController() {
|
|
153
156
|
_map.save_button_klass.hide();
|
154
157
|
}
|
155
158
|
|
159
|
+
// покажем подсказки - сколько свободных площадей где есть
|
160
|
+
_map.show_free_areas_hint();
|
161
|
+
|
156
162
|
break;
|
157
163
|
|
158
164
|
// перешли в состояние рисования полигона
|
@@ -213,6 +219,9 @@ function StateController() {
|
|
213
219
|
|
214
220
|
_this.mzoom_buttons.css('opacity', '1');
|
215
221
|
|
222
|
+
// скроем подсказки - сколько свободных площадей где есть
|
223
|
+
_map.hide_free_areas_hint();
|
224
|
+
|
216
225
|
break;
|
217
226
|
|
218
227
|
// редактируем, находясь в здании
|
@@ -0,0 +1,65 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var BuildingLabel = function (options, link_to_map) {
|
4
|
+
|
5
|
+
if ( options.building_hash != undefined &&
|
6
|
+
typeof options.building_hash.id != 'undefined' &&
|
7
|
+
options.building_hash.props.free_areas_count != 0
|
8
|
+
) {
|
9
|
+
|
10
|
+
this._x = options.coords[0];
|
11
|
+
this._y = options.coords[1];
|
12
|
+
this._map = link_to_map;
|
13
|
+
|
14
|
+
var center_for_cicrle_x = this._x;
|
15
|
+
var center_for_cicrle_y = this._y - 100;
|
16
|
+
|
17
|
+
// создадим узел, который будет помещён в дерево и будет виден пользователю
|
18
|
+
this._g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
|
19
|
+
this._g.setAttribute("class","free_areas_label");
|
20
|
+
|
21
|
+
this._bg_pulse = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
22
|
+
this._bg_pulse.setAttribute("cx",center_for_cicrle_x);
|
23
|
+
this._bg_pulse.setAttribute("cy",center_for_cicrle_y);
|
24
|
+
this._bg_pulse.setAttribute("r", 40);
|
25
|
+
this._bg_pulse.setAttribute("class","pulse");
|
26
|
+
|
27
|
+
this._bg_pulse2 = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
28
|
+
this._bg_pulse2.setAttribute("cx",center_for_cicrle_x);
|
29
|
+
this._bg_pulse2.setAttribute("cy",center_for_cicrle_y);
|
30
|
+
this._bg_pulse2.setAttribute("r", 40);
|
31
|
+
this._bg_pulse2.setAttribute("class","pulse2");
|
32
|
+
|
33
|
+
this._bg_circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
34
|
+
this._bg_circle.setAttribute("cx",center_for_cicrle_x);
|
35
|
+
this._bg_circle.setAttribute("cy",center_for_cicrle_y);
|
36
|
+
this._bg_circle.setAttribute("r",40);
|
37
|
+
this._bg_circle.setAttribute("class","circle");
|
38
|
+
|
39
|
+
this._text_element_ns = document.createElementNS('http://www.w3.org/2000/svg', 'text');
|
40
|
+
this._text_element_ns.setAttribute('x', center_for_cicrle_x);
|
41
|
+
this._text_element_ns.setAttribute('y', center_for_cicrle_y);
|
42
|
+
this._text_element_ns.setAttribute('class', 'text');
|
43
|
+
this._text_element_ns.textContent = options.building_hash.props.free_areas_count;
|
44
|
+
|
45
|
+
this._aLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
|
46
|
+
this._aLine.setAttribute('x1', this._x);
|
47
|
+
this._aLine.setAttribute('y1', this._y);
|
48
|
+
this._aLine.setAttribute('x2', center_for_cicrle_x);
|
49
|
+
this._aLine.setAttribute('y2', center_for_cicrle_y);
|
50
|
+
this._aLine.setAttribute('stroke', '#39BD5F');
|
51
|
+
this._aLine.setAttribute('stroke-width', '2');
|
52
|
+
|
53
|
+
|
54
|
+
// цепляем НЕ в #svg_overlay (об этом нам говорит is_overlay = false аргумент)
|
55
|
+
this._map.addNodeToSvg(this._g, false);
|
56
|
+
|
57
|
+
this._g.appendChild(this._aLine);
|
58
|
+
this._g.appendChild(this._bg_pulse);
|
59
|
+
this._g.appendChild(this._bg_pulse2);
|
60
|
+
this._g.appendChild(this._bg_circle);
|
61
|
+
this._g.appendChild(this._text_element_ns);
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
};
|
@@ -0,0 +1,116 @@
|
|
1
|
+
|
2
|
+
g.free_areas_label {
|
3
|
+
|
4
|
+
> * {
|
5
|
+
transform-origin: 50% 50%;
|
6
|
+
transform: matrix(1, 0, 0, 1, 0, 0);
|
7
|
+
display: block;
|
8
|
+
|
9
|
+
&.text {
|
10
|
+
font-size: 40px;
|
11
|
+
font-weight: bold;
|
12
|
+
fill: #ffffff;
|
13
|
+
transform: translateY(12px) translateX(-12px);
|
14
|
+
text-shadow: 0 0 1px rgba(0, 0, 0, 0.58);
|
15
|
+
}
|
16
|
+
|
17
|
+
&.pulse {
|
18
|
+
|
19
|
+
animation: pulseAnimation 3s infinite;
|
20
|
+
transition: all 0.65s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
21
|
+
-webkit-transition: all 0.65s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
22
|
+
-moz-transition: all 0.65s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
23
|
+
|
24
|
+
fill: rgba(57, 189, 95, 0.39);
|
25
|
+
-webkit-animation-duration: 3s;
|
26
|
+
-moz-animation-duration: 3s;
|
27
|
+
animation-duration: 3s;
|
28
|
+
|
29
|
+
}
|
30
|
+
|
31
|
+
&.pulse2 {
|
32
|
+
|
33
|
+
animation: pulseAnimation 3s 0.75s infinite;
|
34
|
+
transition: all 0.65s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
35
|
+
-webkit-transition: all 0.65s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
36
|
+
-moz-transition: all 0.65s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
37
|
+
|
38
|
+
fill: rgba(57, 189, 95, 0.69);
|
39
|
+
|
40
|
+
-webkit-animation-duration: 2s;
|
41
|
+
-moz-animation-duration: 2s;
|
42
|
+
animation-duration: 2s;
|
43
|
+
|
44
|
+
}
|
45
|
+
|
46
|
+
&.circle {
|
47
|
+
fill: rgba(57, 189, 95, 0.53);
|
48
|
+
}
|
49
|
+
|
50
|
+
&.line {
|
51
|
+
stroke: rgba(57, 189, 95, 0.99);
|
52
|
+
stroke-width: 1px;
|
53
|
+
}
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
@-webkit-keyframes pulseAnimation {
|
60
|
+
0% {
|
61
|
+
-webkit-transform: scale(1);
|
62
|
+
opacity: 0
|
63
|
+
}
|
64
|
+
20% {
|
65
|
+
opacity: 1
|
66
|
+
}
|
67
|
+
75% {
|
68
|
+
-webkit-transform: scale(1.5);
|
69
|
+
opacity: 0
|
70
|
+
}
|
71
|
+
100% {
|
72
|
+
opacity: 0
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
@-moz-keyframes pulseAnimation {
|
77
|
+
0% {
|
78
|
+
-moz-transform: scale(1);
|
79
|
+
opacity: 0
|
80
|
+
}
|
81
|
+
20% {
|
82
|
+
opacity: 1
|
83
|
+
}
|
84
|
+
75% {
|
85
|
+
-moz-transform: scale(1.5);
|
86
|
+
opacity: 0
|
87
|
+
}
|
88
|
+
100% {
|
89
|
+
opacity: 0
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
@keyframes pulseAnimation {
|
94
|
+
0% {
|
95
|
+
-webkit-transform: scale(1);
|
96
|
+
-moz-transform: scale(1);
|
97
|
+
-ms-transform: scale(1);
|
98
|
+
-o-transform: scale(1);
|
99
|
+
transform: scale(1);
|
100
|
+
opacity: 0
|
101
|
+
}
|
102
|
+
20% {
|
103
|
+
opacity: 1
|
104
|
+
}
|
105
|
+
75% {
|
106
|
+
-webkit-transform: scale(1.5);
|
107
|
+
-moz-transform: scale(1.5);
|
108
|
+
-ms-transform: scale(1.5);
|
109
|
+
-o-transform: scale(1.5);
|
110
|
+
transform: scale(1.5);
|
111
|
+
opacity: 0
|
112
|
+
}
|
113
|
+
100% {
|
114
|
+
opacity: 0
|
115
|
+
}
|
116
|
+
}
|
@@ -57,7 +57,8 @@ module C80Map
|
|
57
57
|
desc: self.desc,
|
58
58
|
column_step: self.column_step,
|
59
59
|
communications: self.communications,
|
60
|
-
price: self.price_string
|
60
|
+
price: self.price_string,
|
61
|
+
free_areas_count: self.free_areas_count # NOTE: free_areas_count находися в Rent::Building проекта vorsa
|
61
62
|
}
|
62
63
|
}
|
63
64
|
res
|
data/lib/c80_map/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c80_map
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- app/assets/javascripts/src/utils/opacity_buttons_utils.js
|
91
91
|
- app/assets/javascripts/src/utils/utils.js
|
92
92
|
- app/assets/javascripts/svg_elements/area_label.js
|
93
|
+
- app/assets/javascripts/svg_elements/building_label.js
|
93
94
|
- app/assets/javascripts/svg_elements/helper.js
|
94
95
|
- app/assets/javascripts/svg_elements/polygon.js
|
95
96
|
- app/assets/javascripts/view/save_preloader.js
|
@@ -97,6 +98,7 @@ files:
|
|
97
98
|
- app/assets/stylesheets/map.scss
|
98
99
|
- app/assets/stylesheets/view/buttons/area_order_button.scss
|
99
100
|
- app/assets/stylesheets/view/buttons/button_back_to_map.scss
|
101
|
+
- app/assets/stylesheets/view/elems/free_areas_label.scss
|
100
102
|
- app/assets/stylesheets/view/modal_window.scss
|
101
103
|
- app/assets/stylesheets/view/save_preloader.scss
|
102
104
|
- app/controllers/c80_map/application_controller.rb
|