c80_map_floors 0.1.0.4 → 0.1.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91d37bea3434e0d10977e8898d1db9795c43a7cd
4
- data.tar.gz: 0aa35d9922a21214f3c00362cab648250b9beb6d
3
+ metadata.gz: 6a621c6552044c23f3aba24c38c9714175f54813
4
+ data.tar.gz: da3c3965d536d3501cb4e6863abff84622635321
5
5
  SHA512:
6
- metadata.gz: e56584f2ae7aa2536b880c7ac011de97003d32bf913fc2bff321e6697433ecb42ad2696b50bd6cb0e2abcbc4ef4a1520c9627ebc225f6d0b669d0928ed3853d3
7
- data.tar.gz: 114a367c49d227dac7aa1008a7f51855604c12581048e9e3b14332be9c03160747c63ad78537812e4ad3ff1bbaadd62974e341b48e2a97647ce390b3e8bc977a
6
+ metadata.gz: 34d71d53422cb9e531945e43f9f701355d569874f36fe57af8d4b403fb33acc9bc86526825ad2f28f023662ca598ef74c0f49977c60e654cb10e1130baf5b447
7
+ data.tar.gz: ce9396846ff4c5ed651e0b4a19d68270b431af3d7f34fc90229cc33dc42c79c3c9db45cbbcc3ec7db783570a1333ae6dfebb25fcd5dc8a75dad78a7f59a0ff93
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
- // именно эта кнопка контролирует переходы между состояниями:
3
+ // именно эта кнопка контролирует переходы между состояниями приложения:
4
4
  // - viewing, editing;
5
5
  // - view_building, edit_building;
6
6
  // - view_area, edit_area;
7
+ // - view_floor, edit_floor
8
+
7
9
  function EditButton() {
8
10
 
9
11
  var _map = null;
@@ -11,17 +13,34 @@ function EditButton() {
11
13
  _this.state = 'init'; // editing / viewing
12
14
  _this.el = null;
13
15
 
14
- // состояние этой кнопки извне меняет приложение,
15
- // когда входим в здание\площадь (вот тут [a1x7]),
16
- // и чтобы не происходило бесконечного зацикленного вызова,
17
- // вводится флаг mark_change_only_inner_state
18
- this.setState = function (state,mark_change_only_inner_state) {
16
+ // если true - значит кнопка имеется на странице и код в методах будет исполняться
17
+ var mark_button_present = false;
18
+
19
+ /** Изменить состояние кнопки.
20
+ *
21
+ * @param {string} state
22
+ * @param {boolean} [mark_change_only_inner_state]
23
+ *
24
+ * NOTE:: Клик по этой кнопке изменит состояние этой кнопки и поменяет режим приложения.
25
+ *
26
+ * Также: приложение меняет состояние этой кнопки,
27
+ * когда входим в здание\площадь (вот тут [a1x7]),
28
+ * и чтобы не происходило бесконечного зацикленного вызова,
29
+ * вводится флаг mark_change_only_inner_state.
30
+ *
31
+ * http://usejsdoc.org/tags-param.html
32
+ *
33
+ */
34
+ this.setState = function (state, mark_change_only_inner_state) {
35
+ if (!mark_button_present) return;
36
+
19
37
  if (mark_change_only_inner_state == undefined) {
20
38
  mark_change_only_inner_state = false;
21
39
  }
22
- //console.log("<EditButton.setState> state = " + state);
40
+ console.log("<EditButton.setState> Кнопка EDIT перешла в состояние state = " + state);
23
41
 
24
- // этот код коррелирует с [x9cs7]
42
+ //<editor-fold desc="//Впишем режим в cssClass кнопки">
43
+ // NOTE: этот код коррелирует с [x9cs7]. Возможно, нужен рефакторинг, но на него нет времени сейчас.
25
44
  _this.state = state;
26
45
  _this.el.removeClass('editing');
27
46
  _this.el.removeClass('viewing');
@@ -30,14 +49,20 @@ function EditButton() {
30
49
  _this.el.removeClass('edit_building');
31
50
  _this.el.removeClass('view_area');
32
51
  _this.el.removeClass('edit_area');
52
+ _this.el.removeClass('eb_view_floor');
53
+ _this.el.removeClass('eb_edit_floor');
33
54
  _this.el.addClass(state);
55
+ //</editor-fold>
34
56
 
57
+ // NOTE:: изменим режим приложения
35
58
  if (!mark_change_only_inner_state) {
36
- _map.setMode(state);
59
+ var s = state.split('eb_').join('');
60
+ _map.setMode(s);
37
61
  }
38
62
 
39
63
  };
40
64
 
65
+ // слушаем клики по кнопке (внутренняя state машина)
41
66
  this.onClick = function (e) {
42
67
  e.preventDefault();
43
68
 
@@ -75,6 +100,15 @@ function EditButton() {
75
100
  mark_restore_svg_overlay = true;
76
101
  break;
77
102
 
103
+ case 'eb_view_floor':
104
+ _this.setState('eb_edit_floor');
105
+ mark_restore_svg_overlay = true;
106
+ break;
107
+
108
+ case 'eb_edit_floor':
109
+ _this.setState('eb_view_floor');
110
+ break;
111
+
78
112
  }
79
113
 
80
114
  // покажем для клика мышкой все полигоны из svg_overlay
@@ -88,9 +122,15 @@ function EditButton() {
88
122
  this.init = function (button_css_selector, link_to_map) {
89
123
  _map = link_to_map;
90
124
  _this.el = $(button_css_selector);
91
- _this.state = _map.mode;
92
- _this.el.addClass(_map.mode);
93
- _this.el.on('click', this.onClick);
125
+
126
+ if (_this.el.length) {
127
+ mark_button_present = true;
128
+ _this.state = _map.mode;
129
+ _this.el.addClass(_map.mode);
130
+ _this.el.on('click', this.onClick);
131
+ }
132
+
133
+ //console.log('button_edit.js: init: for breakpoint: ' + _this.el.length);
94
134
  };
95
135
 
96
136
  }
@@ -45,6 +45,8 @@ function StateController() {
45
45
  _map.container.removeClass("edit_building");
46
46
  _map.container.removeClass("view_area");
47
47
  _map.container.removeClass("edit_area");
48
+ _map.container.removeClass("view_floor");
49
+ _map.container.removeClass("edit_floor");
48
50
  _map.container.addClass(mode);
49
51
  //</editor-fold>
50
52
 
@@ -331,7 +333,7 @@ function StateController() {
331
333
 
332
334
  //_this.main_map.css('opacity','0.7');
333
335
 
334
- // включим слой svg_overlay - а кто там живёт (запомятовал)?
336
+ // т.к. этот слой используется испключительно в помощь при рисовании обводки площадей и перехватывает клики при dnd, то тут он нам не нужен
335
337
  _this.svg_overlay.css('display', 'block');
336
338
 
337
339
  // выдвигаем инфо-панель
@@ -349,8 +351,8 @@ function StateController() {
349
351
  // прячем кнопку "отправить заявку на аренду площади"
350
352
  _this.area_order_button.css('display', 'none');
351
353
 
352
- // кнопку "редактировать переводим в СООТВЕТСТВУЮЩЕЕ состояние
353
- _map.edit_button_klass.setState('edit_button_view_floor', true); // [a1x7]
354
+ // кнопку "редактировать" переводим в СООТВЕТСТВУЮЩЕЕ состояние
355
+ _map.edit_button_klass.setState('eb_view_floor', true); // [a1x7]
354
356
 
355
357
  // сбросим z-index (пояснение "что это" см. в комментах к resetOverlayZindex)
356
358
  //if (_map.current_building != undefined) _map.current_building.resetOverlayZindex();
@@ -370,6 +372,49 @@ function StateController() {
370
372
  //</editor-fold>
371
373
  break;
372
374
 
375
+ // начали редактировать этаж
376
+ case 'edit_floor':
377
+ //<editor-fold desc="...">
378
+
379
+ // спрячем кнопку "обратно на карту"
380
+ _map.back_to_map_button_klass.hide();
381
+
382
+ // покажем кнопку "связать здание с полигоном"
383
+ //_map.building_link_button_klass.show();
384
+
385
+ // т.к. этот слой используется испключительно в помощь при рисовании обводки площадей и перехватывает клики при dnd, то тут он нам не нужен
386
+ _this.svg_overlay.css('display', 'none');
387
+
388
+ // заодно поменяем z-index слоёв с колоннами и слоя с svg полигонами площадей, чтобы можно было добраться мышкой до этих полигонов и редактировать их
389
+ if (_map.current_building != undefined) _map.current_building.changeOverlayZindex();
390
+
391
+ // покажем кнопку "добавить фигуру"
392
+ OpacityButtonsUtils.show(_this.new_button);
393
+ _map.new_button_klass.resetState();
394
+
395
+ // покажем кнопку "удалить фигуру"
396
+ OpacityButtonsUtils.show(_this.remove_button);
397
+
398
+ // покажем кнопку "ред"
399
+ OpacityButtonsUtils.show(_this.edit_button);
400
+
401
+ // спрячем инфу о здании
402
+ _this.building_info.css("top", -500);
403
+
404
+ // спрячем статус строки "вы создаёте полигон" и ...
405
+ _this.map_creating.css('display', 'none');
406
+ _this.map_removing.css('display', 'none');
407
+
408
+ // покажем, возможно спрятанные, zoom кнопки
409
+ _this.mzoom_buttons.css('opacity', '1');
410
+
411
+ // покажем кнопку "сохранить"
412
+ _map.save_button_klass.show();
413
+ _map.save_button_klass.check_and_enable();
414
+
415
+ //</editor-fold>
416
+ break;
417
+
373
418
  }
374
419
  };
375
420
 
@@ -24,6 +24,7 @@ var MobjInfoParser = function () {
24
24
  result += _this._row('square', json);
25
25
  result += _this._row('square_free', json);
26
26
  result += _this._row('floor_height', json);
27
+ result += _this._row('communications', json);
27
28
  result += _this._row('areas_count', json);
28
29
  result += _this._row('areas_free_count', json);
29
30
  result += _this._row('price_string', json);
@@ -38,7 +39,7 @@ var MobjInfoParser = function () {
38
39
  this._row = function (key, json) {
39
40
  var s = '';
40
41
  if (key == 'price_string') {
41
- s = "<li>" + json['data'][key] + "</li>";
42
+ s = "<li class='price'>" + json['data'][key] + "</li>";
42
43
  } else {
43
44
  s = "<li>" + _i18n.t(key) + ": " + "<span class='dd'>" + json['data'][key] + "</span>" + "</li>"
44
45
  }
@@ -22,8 +22,15 @@ div.tabs_js {
22
22
  transition: all 0.3s;
23
23
 
24
24
  span {
25
- color: #6f6f6f;
25
+ color: #4271B5;
26
+ font-weight: bold;
26
27
  }
28
+
29
+ &.price {
30
+ padding-top: 15px;
31
+ font-size: 20px;
32
+ }
33
+
27
34
  }
28
35
  }
29
36
 
@@ -52,7 +52,9 @@ module C80MapFloors
52
52
  square_free: self.square_free,
53
53
  areas_count: self.areas.count,
54
54
  areas_free_count: self.areas.free_areas.count,
55
- price_string: self.price_string
55
+ price_string: self.price_string,
56
+ floor_height: self.floor_height,
57
+ communications: self.communications
56
58
  }
57
59
  result.as_json
58
60
  end
@@ -1,3 +1,3 @@
1
1
  module C80MapFloors
2
- VERSION = '0.1.0.4'
2
+ VERSION = '0.1.0.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: c80_map_floors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.4
4
+ version: 0.1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - C80609A
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-01 00:00:00.000000000 Z
11
+ date: 2016-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler