c80_push 0.1.0 → 0.1.0.1
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/README.md +17 -1
- data/app/assets/javascripts/c80_push/frontend/c80_push_page_dealers/init_yandex_map.js +13 -0
- data/app/assets/javascripts/c80_push.js.coffee +1 -3
- data/app/assets/javascripts/c80_push_backend.js.coffee +3 -0
- data/app/assets/stylesheets/c80_push/c80_push_page_dealers/_layout.scss +35 -0
- data/app/assets/stylesheets/c80_push/c80_push_page_dealers/_style.scss +14 -0
- data/app/assets/stylesheets/c80_push/c80_push_page_dealers/map_dealers_list.scss +119 -0
- data/app/assets/stylesheets/c80_push.scss +5 -0
- data/app/assets/stylesheets/c80_push_backend.scss +5 -0
- data/app/helpers/c80_push/admin_helper.rb +2 -2
- data/app/helpers/c80_push/application_helper.rb +11 -0
- data/app/helpers/c80_push/page_dealers/page_dealers_helper.rb +77 -0
- data/app/models/c80_push/dealer.rb +1 -1
- data/app/models/c80_push/office.rb +1 -1
- data/app/models/c80_push/region.rb +1 -1
- data/app/views/c80_push/shared/_page_dealers.html.erb +21 -0
- data/lib/c80_push/version.rb +1 -1
- metadata +14 -6
- data/app/assets/stylesheets/c80_push/application.css +0 -15
- /data/app/assets/javascripts/{backend → c80_push/backend}/dealers.js +0 -0
- /data/app/assets/javascripts/{lib_backend → c80_push/lib_backend}/init.js +0 -0
- /data/app/assets/javascripts/{lib_backend → c80_push/lib_backend}/init_select_picker.js +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc71bf6b52804cacd8264f3b6c11f871a0a98941
|
4
|
+
data.tar.gz: fda41529b939dfb82b720d781a5e809fd346a96b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aaf65ac0642e9df24e8b7741e6f8a0f33d1d0d5c2c1ab7e9039f2af2ee132aeb546989ca1e20c6480d9323dfa171d02f7d0e260193e50b361dce565fe9adae5
|
7
|
+
data.tar.gz: d968c22cf4ee2de729b71fa4caf2befb8685e2b536578dfb3bdd16aa18ff4d11446398caa769f1882423a07f83ef3ce494e68f885ba7bdbe64ed57cce9a2fae7
|
data/README.md
CHANGED
@@ -18,6 +18,10 @@
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
Available helpers:
|
22
|
+
|
23
|
+
* `c80_push_render_page_dealers`: отрисует js-компонент с yandex картой
|
24
|
+
и фильтруемым списком дилеров слева.
|
21
25
|
|
22
26
|
## Installation
|
23
27
|
|
@@ -40,15 +44,27 @@ Add this line to host app's `application_controller.rb`:
|
|
40
44
|
helper C80Push::Engine.helpers
|
41
45
|
```
|
42
46
|
|
43
|
-
Add these to host app's `active_admin.js.coffee`:
|
47
|
+
Add these lines to host app's `active_admin.js.coffee`:
|
44
48
|
|
45
49
|
```js
|
46
50
|
#= require bootstrap
|
47
51
|
#= require bootstrap-select
|
48
52
|
#= require c80_yax
|
53
|
+
#= require c80_push_backend
|
54
|
+
```
|
55
|
+
|
56
|
+
Add these lines to host app's 'application.js.coffee':
|
57
|
+
|
58
|
+
```js
|
49
59
|
#= require c80_push
|
50
60
|
```
|
51
61
|
|
62
|
+
Add these lines to host app's 'application.scss':
|
63
|
+
|
64
|
+
```css
|
65
|
+
@include "c80_push";
|
66
|
+
```
|
67
|
+
|
52
68
|
## Цитата из ТЗ
|
53
69
|
|
54
70
|
> Данный раздел представляет собой список компаний, у которых указаны
|
@@ -0,0 +1,35 @@
|
|
1
|
+
div.c80_push_page_dealers {
|
2
|
+
@include clearfix;
|
3
|
+
|
4
|
+
> div {
|
5
|
+
float: left;
|
6
|
+
width: 100%;
|
7
|
+
}
|
8
|
+
|
9
|
+
div.select_region_row {
|
10
|
+
height: 53px;
|
11
|
+
margin-bottom: 25px;
|
12
|
+
}
|
13
|
+
|
14
|
+
div.bottom_row {
|
15
|
+
@include clearfix;
|
16
|
+
|
17
|
+
> div {
|
18
|
+
float: left;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dealers_list {
|
22
|
+
margin: 0 15px 0 0;
|
23
|
+
width: 305px;
|
24
|
+
height: 600px;
|
25
|
+
overflow-y: auto;
|
26
|
+
}
|
27
|
+
|
28
|
+
div#dealers_map_container {
|
29
|
+
width: calc(100% - 320px);
|
30
|
+
height: 600px;
|
31
|
+
}
|
32
|
+
|
33
|
+
}
|
34
|
+
|
35
|
+
}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
.ul_dealers_list {
|
2
|
+
margin: 0;
|
3
|
+
padding: 0;
|
4
|
+
list-style: none;
|
5
|
+
|
6
|
+
.li_region {
|
7
|
+
|
8
|
+
h2.region_title {
|
9
|
+
display: none;
|
10
|
+
margin:0;
|
11
|
+
padding:0;
|
12
|
+
/*font-size: 20px;*/
|
13
|
+
}
|
14
|
+
|
15
|
+
.ul_region_dealers {
|
16
|
+
padding: 0; //5px 5px 10px 15px;
|
17
|
+
list-style: none;
|
18
|
+
border: 1px #B2B2B2 solid;
|
19
|
+
|
20
|
+
.li_dealer {
|
21
|
+
padding: 15px;
|
22
|
+
border-bottom: 1px #B2B2B2 solid;
|
23
|
+
|
24
|
+
h3.dealer_title {
|
25
|
+
margin: 0 0 5px 0;
|
26
|
+
padding: 0;
|
27
|
+
font-size: 20px;
|
28
|
+
color: #E0001A;
|
29
|
+
font-weight: bold;
|
30
|
+
}
|
31
|
+
|
32
|
+
.ul_dealer_offices {
|
33
|
+
margin: 0;
|
34
|
+
padding: 0;
|
35
|
+
list-style: none;
|
36
|
+
|
37
|
+
.li_office {
|
38
|
+
border-bottom: 1px #dcdcdc solid;
|
39
|
+
padding: 7px 0 7px 0;
|
40
|
+
color: #b2b2b2;
|
41
|
+
position: relative;
|
42
|
+
|
43
|
+
h4.office_title {
|
44
|
+
margin: 0 0 5px 0;
|
45
|
+
padding: 0;
|
46
|
+
font-weight: bold;
|
47
|
+
font-size: 13px;
|
48
|
+
}
|
49
|
+
|
50
|
+
.ul_office_props {
|
51
|
+
margin: 0;
|
52
|
+
padding: 0;
|
53
|
+
list-style: none;
|
54
|
+
font-size: 17px;
|
55
|
+
|
56
|
+
li.office_addr {
|
57
|
+
|
58
|
+
}
|
59
|
+
li.office_tel {
|
60
|
+
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
&:after {
|
65
|
+
position: absolute;
|
66
|
+
content: ' ';
|
67
|
+
display: none;
|
68
|
+
height: calc(100% + 2px);
|
69
|
+
width: calc(100% + 30px);
|
70
|
+
top: -1px;
|
71
|
+
left: -15px;
|
72
|
+
z-index: -1;
|
73
|
+
}
|
74
|
+
|
75
|
+
&:hover {
|
76
|
+
border-bottom: 1px transparent solid;
|
77
|
+
&:after {
|
78
|
+
display: block;
|
79
|
+
background-color: #e8e8e8;
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
&.active {
|
84
|
+
border-bottom: 1px transparent solid;
|
85
|
+
color: #e4e0e0;
|
86
|
+
position: relative;
|
87
|
+
|
88
|
+
&:after {
|
89
|
+
display: block;
|
90
|
+
background-color: #626262;
|
91
|
+
top: 0;
|
92
|
+
}
|
93
|
+
|
94
|
+
&:hover {
|
95
|
+
&:after {
|
96
|
+
display: block;
|
97
|
+
background-color: #626262;
|
98
|
+
top: 0;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
li.dealer_email {
|
106
|
+
margin-top: 10px;
|
107
|
+
color: #E0001A;
|
108
|
+
}
|
109
|
+
|
110
|
+
li.dealer_site {
|
111
|
+
color: #E0001A;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
}
|
@@ -15,7 +15,7 @@ module C80Push
|
|
15
15
|
res = '-'
|
16
16
|
unless subj.offices.count.zero?
|
17
17
|
res = ''
|
18
|
-
subj.offices.
|
18
|
+
subj.offices.each do |office|
|
19
19
|
e = "<li>#{office.title}</li>"
|
20
20
|
res += e
|
21
21
|
end
|
@@ -29,7 +29,7 @@ module C80Push
|
|
29
29
|
res = '-'
|
30
30
|
unless subj.dealers.count.zero?
|
31
31
|
res = ''
|
32
|
-
subj.dealers.
|
32
|
+
subj.dealers.each do |dealer|
|
33
33
|
e = "<li>#{dealer.title}</li>"
|
34
34
|
res += e
|
35
35
|
end
|
@@ -1,4 +1,15 @@
|
|
1
1
|
module C80Push
|
2
|
+
|
3
|
+
# Предоставляет внешний интерфейс -
|
4
|
+
# методы, которыми можно пользоваться
|
5
|
+
# в host приложении
|
2
6
|
module ApplicationHelper
|
7
|
+
|
8
|
+
def c80_push_render_page_dealers
|
9
|
+
render partial: 'c80_push/shared/page_dealers',
|
10
|
+
locals: {
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
3
14
|
end
|
4
15
|
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module C80Push
|
2
|
+
module PageDealers
|
3
|
+
module PageDealersHelper
|
4
|
+
|
5
|
+
# Выдать список Дилеров (включая Офисы),
|
6
|
+
# разложенный по Регионам.
|
7
|
+
# Список выводится слева от карты.
|
8
|
+
# (**) Не выводим регионы, у которых нет дилеров.
|
9
|
+
#
|
10
|
+
# * Регион
|
11
|
+
# * Дилер
|
12
|
+
# * Офис 1
|
13
|
+
# * адрес офиса
|
14
|
+
# * телефон офиса
|
15
|
+
# * Офис 2
|
16
|
+
# * адрес офиса
|
17
|
+
# * телефон офиса
|
18
|
+
# * сайт дилера
|
19
|
+
# * email дилера
|
20
|
+
#
|
21
|
+
def render_ul_dealers_list
|
22
|
+
|
23
|
+
res = ''
|
24
|
+
|
25
|
+
Region.includes(dealers: :offices).each do |region|
|
26
|
+
r = "<h2 class='region_title'>#{region.title}</h2>"
|
27
|
+
ds = ul_region_dealers(region)
|
28
|
+
next if ds.blank? # (**)
|
29
|
+
r += ds
|
30
|
+
res += "<li class='li_region' id='region_#{region.id}'>#{r}</li>"
|
31
|
+
end
|
32
|
+
|
33
|
+
"<ul class='ul_dealers_list'>#{res}</ul>".html_safe
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
# используется только в render_dealers_list
|
40
|
+
# (*) не выводим список дилеров, если он пуст
|
41
|
+
def ul_region_dealers(region)
|
42
|
+
res = ''
|
43
|
+
# noinspection RubyResolve
|
44
|
+
region.dealers.each do |dealer|
|
45
|
+
d = "<h3 class='dealer_title'>#{dealer.title}</h3>"
|
46
|
+
d += ul_dealer_offices(dealer)
|
47
|
+
res += "<li class='li_dealer' id='dealer_#{dealer.id}'>#{d}</li>"
|
48
|
+
end
|
49
|
+
return res if res.blank? # (*)
|
50
|
+
"<ul class='ul_region_dealers'>#{res}</ul>"#.html_safe
|
51
|
+
end
|
52
|
+
|
53
|
+
# используется только в ul_region_dealers
|
54
|
+
def ul_dealer_offices(dealer)
|
55
|
+
res = ''
|
56
|
+
# noinspection RubyResolve
|
57
|
+
dealer.offices.each_with_index do |office|
|
58
|
+
o = "<h4 class='office_title'>#{office.title}</h4>"
|
59
|
+
o += ul_office_props(office)
|
60
|
+
res += "<li class='li_office' id='office_#{office.id}'>#{o}</li>"
|
61
|
+
end
|
62
|
+
res += "<li class='dealer_email'>#{dealer.email}</li>"
|
63
|
+
res += "<li class='dealer_site'>#{dealer.site}</li>"
|
64
|
+
"<ul class='ul_dealer_offices'>#{res}</ul>"#.html_safe
|
65
|
+
end
|
66
|
+
|
67
|
+
# используется только в ul_dealer_offices
|
68
|
+
def ul_office_props(office)
|
69
|
+
res = ''
|
70
|
+
res += "<li class='office_addr'>#{office.addr}</li>"
|
71
|
+
res += "<li class='office_tel'>#{office.tel}</li>"
|
72
|
+
"<ul class='ul_office_props'>#{res}</ul>"#.html_safe
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div class="c80_push_page_dealers">
|
2
|
+
|
3
|
+
<div class="select_region_row">
|
4
|
+
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="bottom_row">
|
8
|
+
|
9
|
+
<div class="dealers_list">
|
10
|
+
<%= render_ul_dealers_list %>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div id="dealers_map_container">
|
14
|
+
|
15
|
+
</div>
|
16
|
+
|
17
|
+
</div>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
|
data/lib/c80_push/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c80_push
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0
|
4
|
+
version: 0.1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -38,17 +38,25 @@ files:
|
|
38
38
|
- app/admin/c80_push/regions.rb
|
39
39
|
- app/admin/c80_push/x_c80_push.rb
|
40
40
|
- app/assets/config/c80_push_manifest.js
|
41
|
-
- app/assets/javascripts/backend/dealers.js
|
42
41
|
- app/assets/javascripts/c80_push.js.coffee
|
43
|
-
- app/assets/javascripts/
|
44
|
-
- app/assets/javascripts/
|
45
|
-
- app/assets/
|
42
|
+
- app/assets/javascripts/c80_push/backend/dealers.js
|
43
|
+
- app/assets/javascripts/c80_push/frontend/c80_push_page_dealers/init_yandex_map.js
|
44
|
+
- app/assets/javascripts/c80_push/lib_backend/init.js
|
45
|
+
- app/assets/javascripts/c80_push/lib_backend/init_select_picker.js
|
46
|
+
- app/assets/javascripts/c80_push_backend.js.coffee
|
47
|
+
- app/assets/stylesheets/c80_push.scss
|
48
|
+
- app/assets/stylesheets/c80_push/c80_push_page_dealers/_layout.scss
|
49
|
+
- app/assets/stylesheets/c80_push/c80_push_page_dealers/_style.scss
|
50
|
+
- app/assets/stylesheets/c80_push/c80_push_page_dealers/map_dealers_list.scss
|
51
|
+
- app/assets/stylesheets/c80_push_backend.scss
|
46
52
|
- app/helpers/c80_push/admin_helper.rb
|
47
53
|
- app/helpers/c80_push/application_helper.rb
|
54
|
+
- app/helpers/c80_push/page_dealers/page_dealers_helper.rb
|
48
55
|
- app/models/c80_push/application_record.rb
|
49
56
|
- app/models/c80_push/dealer.rb
|
50
57
|
- app/models/c80_push/office.rb
|
51
58
|
- app/models/c80_push/region.rb
|
59
|
+
- app/views/c80_push/shared/_page_dealers.html.erb
|
52
60
|
- config/locales/dealer/ru.yml
|
53
61
|
- config/locales/office/ru.yml
|
54
62
|
- config/locales/region/ru.yml
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
-
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
-
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
-
* It is generally better to create a new file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
File without changes
|
File without changes
|
File without changes
|