c80_estate 0.1.0.12 → 0.1.0.13

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/admin/c80_estate/areas.rb +5 -0
  3. data/app/admin/c80_estate/dashboard.rb +1 -1
  4. data/app/admin/c80_estate/sevents.rb +2 -2
  5. data/app/assets/images/no_thumb.png +0 -0
  6. data/app/assets/images/w227x182px.gif +0 -0
  7. data/app/assets/images/w621x377.gif +0 -0
  8. data/app/assets/javascript/c80_estate/backend/admin/shared/areas/_area_show_common.js +21 -0
  9. data/app/assets/javascript/c80_estate/backend/admin/shared/areas/area_show.js +352 -0
  10. data/app/assets/javascript/c80_estate/backend/admin/shared/areas/gallery3.js +42 -0
  11. data/app/assets/javascript/c80_estate/backend/admin/{areas.js → src/areas.js} +2 -1
  12. data/app/assets/javascript/c80_estate/backend/admin/{pstats.js → src/pstats.js} +0 -0
  13. data/app/assets/javascript/c80_estate/backend/admin/{sevents.js → src/sevents.js} +1 -1
  14. data/app/assets/javascript/c80_estate/lib/jquery.magnific-popup.js +2060 -0
  15. data/app/assets/javascript/c80_estate_active_admin.js.coffee +2 -1
  16. data/app/assets/stylesheets/c80_estate/backend/admin_areas.scss +11 -0
  17. data/app/assets/stylesheets/c80_estate/backend/admin_sevents.scss +0 -68
  18. data/app/assets/stylesheets/c80_estate/backend/common/minor_fix.scss +3 -0
  19. data/app/assets/stylesheets/c80_estate/backend/common/panel.scss +42 -0
  20. data/app/assets/stylesheets/c80_estate/backend/dashboard/atype_in_list.scss +7 -0
  21. data/app/assets/stylesheets/c80_estate/backend/dashboard/common.scss +2 -28
  22. data/app/assets/stylesheets/c80_estate/backend/dashboard/prop_in_list.scss +3 -3
  23. data/app/assets/stylesheets/c80_estate/backend/shared/areas/gallery3.scss +107 -0
  24. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item.scss +1 -0
  25. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_button_order.scss +8 -0
  26. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_comments.scss +8 -0
  27. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_common_props.scss +51 -0
  28. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_desc.scss +10 -0
  29. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_main.scss +151 -0
  30. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_price_info.scss +68 -0
  31. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_related_items.scss +12 -0
  32. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_vendor_logo.scss +18 -0
  33. data/app/assets/stylesheets/c80_estate/backend/shared/index_adds_like_sevents.scss +68 -0
  34. data/app/assets/stylesheets/c80_estate/lib/magnific-popup-custom.scss +41 -0
  35. data/app/assets/stylesheets/c80_estate/lib/magnific-popup.scss +369 -0
  36. data/app/assets/stylesheets/c80_estate/lib/slick-carousel-custom.scss +174 -0
  37. data/app/assets/stylesheets/c80_estate/lib/slick-theme.scss +202 -0
  38. data/app/assets/stylesheets/c80_estate/lib/slick.scss +116 -0
  39. data/app/helpers/c80_estate/app_helper.rb +39 -0
  40. data/app/helpers/c80_estate/areas_helper.rb +109 -0
  41. data/app/models/c80_estate/area.rb +12 -0
  42. data/app/uploaders/c80_estate/aphoto_uploader.rb +2 -2
  43. data/app/views/admin/areas/_show_area.html.erb +1 -0
  44. data/app/views/c80_estate/shared/areas/_gallery4.html.erb +52 -0
  45. data/app/views/c80_estate/shared/areas/_single_area_on_page.html.erb +53 -0
  46. data/lib/c80_estate/version.rb +1 -1
  47. metadata +34 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23619d274bb8b181d601d3e4971b7f4824a0ec2a
4
- data.tar.gz: 632b048299c1fde7112c87ac049d4ae97c4cae6f
3
+ metadata.gz: 77472f255a97d04363af1c40e5dc234ff97a1517
4
+ data.tar.gz: 8789d9c154ac9528dbe95543dd3aca8aaaf9c4d8
5
5
  SHA512:
6
- metadata.gz: 772efd690c58e216e61e8f0a8a351fae63537b38e16682ae06e60a05daac5e7a653edba2614d49f0db124216b3a9bcf515e6f70455bfe7149dbe4469c4cb4849
7
- data.tar.gz: 7d9d78a02857e664d9ce86188bd666ce70af0be5823654101d930df40ef6d9ade3d56c4ae3a57bcc6253e26dc4ed80f6c13332f4c740dcce93976a77d06f59a7
6
+ metadata.gz: 8aa9a64a80525510c33ff37be067bd5e2e2b47537e574278935802bee47a41a892a7325ad99f5cd911f0984113b8f0c38e25d38c9e5d1344ed3e4c413538d5b0
7
+ data.tar.gz: aede3e18db66699aa00b06fbaaba3f2cf3c8e8a88b7be91c8ca7e46e33dc6538966c56b652d316969c13acc144bd38ca513480c8c26a2e13d2e690acc9f0246c
@@ -215,4 +215,9 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
215
215
  f.actions
216
216
  end
217
217
 
218
+ show do
219
+ render partial: 'show_area', locals: { area:resource }
220
+ active_admin_comments
221
+ end
222
+
218
223
  end
@@ -8,7 +8,7 @@ ActiveAdmin.register_page "Dashboard" do
8
8
 
9
9
  column do
10
10
 
11
- panel 'Объекты недвижимости', class: 'clearfix' do
11
+ panel 'Объекты недвижимости', class: 'clearfix proplist' do
12
12
  # para "Объекты недвижимости", class: 'title'
13
13
  C80Estate::Property.all.each do |prop|
14
14
  render partial: 'prop_in_list', locals: {prop: prop}
@@ -11,7 +11,7 @@ ActiveAdmin.register C80Estate::Sevent, as: 'Sevent' do
11
11
  :auser_id,
12
12
  :auser_type
13
13
 
14
- config.sort_order = 'id_asc'
14
+ config.sort_order = 'created_at_desc'
15
15
 
16
16
  filter :property_id,
17
17
  :as => :select,
@@ -41,7 +41,7 @@ ActiveAdmin.register C80Estate::Sevent, as: 'Sevent' do
41
41
  index do
42
42
  selectable_column
43
43
  column :area do |sevent|
44
- sevent.area_title
44
+ link_to sevent.area_title, "/admin/areas/#{sevent.area.id}", target: '_blank'
45
45
  end
46
46
  column :astatus do |sevent|
47
47
  sevent.astatus_title
@@ -0,0 +1,21 @@
1
+ // запускаем механизм просмотра картинки товара
2
+ var fItemImageMagnificPopupStart = function () {
3
+ $("div#div_main_show_area").magnificPopup({
4
+ delegate: 'a.lazy-image-wrapper',
5
+ fixedContentPos: false,
6
+ removalDelay: 300,
7
+ mainClass: 'mfp-fade',
8
+ type: 'image'
9
+ });
10
+ };
11
+
12
+ var fItemGalleryPhotosMagnificPopupStart = function() {
13
+ $("div#gallery3").magnificPopup({
14
+ delegate: 'a',
15
+ fixedContentPos: false,
16
+ removalDelay: 300,
17
+ mainClass: 'mfp-fade',
18
+ type: 'image',
19
+ gallery: {enabled:true}
20
+ });
21
+ }
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+
3
+ var fAreasShow_initRichShowPage = function () {
4
+
5
+ //fCommon();
6
+ fItemImageMagnificPopupStart();
7
+ fItemGalleryPhotosMagnificPopupStart();
8
+
9
+ // если нужна кнопка "заказать"
10
+ //var $b = $('.c80_order_invoking_btn');
11
+ //$b.click(function (e) {
12
+ // if (orderForm) {
13
+ // orderForm.afterShowForm = function () {
14
+ $("textarea#mess_comment").focus();
15
+ //
16
+ //var $t = $("textarea#mess_comment");
17
+ //$t.data('toggle', 'tooltip');
18
+ //$t.data('palacement', 'right');
19
+ //$t.data('title', 'Укажите желаемое количество.');
20
+ //$t.tooltip();
21
+ //
22
+ //var $f = $('#form_order');
23
+ //
24
+ //var $b = $f.find('.btn');
25
+ //$b.removeClass('btn');
26
+ //$b.removeClass('btn-primary');
27
+ //$b.addClass('red_button');
28
+ //$b.attr('style','line-height: 34px;font-size: 16px;color: white; text-transform: uppercase; border-radius: 4px !important;');
29
+ //
30
+ //var $c = $f.find('.actions');
31
+ //$c.css('margin-top','15px');
32
+ //};
33
+ //}
34
+ //});
35
+
36
+ };
37
+
38
+ var fAreasShow = function () {
39
+
40
+ // элементы html страницы
41
+ var $main_content; // правая сторона, там живёт таблица
42
+ //var $select_area; // фильтр area
43
+ //var $select_atype; // фильтр atype
44
+ //var $select_property; // фильтр property
45
+ //var $select_auser; // фильтр auser
46
+ //var $input_start_date; // фильтр "дата начала периода"
47
+ //var $input_end_date; // фильтр "дата конца периода"
48
+ //var $h2_page_title; // заголовок страницы
49
+
50
+ // компонент "над таблицей"
51
+ var $div_index_adds;
52
+ var $div_ecoef;
53
+ var $p_ecoef_val; // здесь выводим число - коэф-т эффективности
54
+ var $p_ecoef_mess; // здесь вешаем hint на подпись "эффективность"
55
+ var $p_ecoef_comment; // здесь выводим комментарий
56
+ var $div_area_text_stats;
57
+ var $ul_props;
58
+ var $div_graph;
59
+ var $div_graph_canvas;
60
+
61
+ var fBuild = function () {
62
+
63
+ // зафиксируем html элементы
64
+ $main_content = $('#main_content');
65
+ //$select_area = $("#q_area_id");
66
+ //$select_atype = $("#q_atype_id");
67
+ //$select_property = $("#q_property_id");
68
+ //$select_auser = $("#q_auser_id");
69
+ //$input_start_date = $("#q_created_at_gteq");
70
+ //$input_end_date = $("#q_created_at_lteq");
71
+ //$h2_page_title = $("h2#page_title");
72
+
73
+ // построим компонент "над таблицей"
74
+ $div_index_adds = $("<div class='index_adds_like_sevents'></div>");
75
+
76
+ $div_ecoef = $("<div id='ecoef'></div>");
77
+ $p_ecoef_val = $("<p class='val'></p>");
78
+ $p_ecoef_mess = $("<p class='title'><abbr class='abbr_ecoef' title='TITLE'>Эффективность</abbr></p>");
79
+ $p_ecoef_comment = $("<p class='comment'></p>");
80
+
81
+ $div_ecoef.append($p_ecoef_val);
82
+ $div_ecoef.append($p_ecoef_mess);
83
+ $div_ecoef.append($p_ecoef_comment);
84
+
85
+ $div_area_text_stats = $("<div id='text_stats'></div>");
86
+ $ul_props = $("<ul><li id='title'></li><li id='atype'></li><li id='born_date' class='hidden'></li><li id='busy_time'></li><li id='free_time'></li><li id='all_time'></li><li id='assigned_person_title'></li><li id='property_title'></li><li id='all_areas_count'></li><li id='free_areas_count'></li><li id='busy_areas_count'></li></ul>");
87
+ $div_area_text_stats.append($ul_props);
88
+
89
+ $div_graph = $("<div id='graph'></div>");
90
+ $div_graph_canvas = $("<canvas id='graph_canvas' height='50'></canvas>").appendTo($div_graph);
91
+
92
+ $div_index_adds.append($div_ecoef);
93
+ $div_index_adds.append($div_area_text_stats);
94
+ $div_index_adds.append($div_graph);
95
+
96
+ $(".comments").before($('<h4 style="padding-top:15px;">Статистика</h4>'));
97
+ $(".comments").before($div_index_adds);
98
+
99
+ // теперь покажем
100
+ $main_content.css('opacity', '1.0');
101
+ };
102
+
103
+ var fRequest = function () {
104
+
105
+ //var area_id = $select_area.val();
106
+ //var atype_id = $select_atype.val();
107
+ //var property_id = $select_property.val();
108
+ //var auser_id = $select_auser.val();
109
+ //var start_date = $input_start_date.val();
110
+ //var end_date = $input_end_date.val();
111
+ //
112
+
113
+ var area_id = -1;
114
+ var url = unescape(window.location.href);
115
+ var match_res = url.match(/areas\/(\d{1,9})/);
116
+ if (match_res != null) {
117
+ area_id = Number(match_res[1]);
118
+ }
119
+
120
+ $.ajax({
121
+ url: '/estate/areas_ecoef',
122
+ type: 'POST',
123
+ dataType: 'json',
124
+ data: {
125
+ area_id: area_id//,
126
+ //atype_id: atype_id,
127
+ //property_id: property_id,
128
+ //auser_id: auser_id,
129
+ //start_date: start_date,
130
+ //end_date: end_date
131
+ }
132
+ }).done(function (data, result) {
133
+ if (result == 'success') {
134
+ console.log(data);
135
+
136
+ $p_ecoef_val.text(data["average_value"]);
137
+ $p_ecoef_comment.html(data["comment"]);
138
+ $p_ecoef_mess.find('.abbr_ecoef').attr('title', data["abbr"]);
139
+
140
+ if (data["props"] != undefined) {
141
+
142
+ var i, iob, itag, ival, $ili;
143
+ for (i = 0; i < data["props"].length; i++) {
144
+ iob = data["props"][i];
145
+ itag = iob["tag"];
146
+ ival = iob["val"];
147
+ $ili = $ul_props.find("#" + itag);
148
+ $ili.html(ival);
149
+ }
150
+
151
+ }
152
+
153
+ if (data["graph"] != undefined) {
154
+ fDrawChart(data["graph"]);
155
+ }
156
+
157
+ //$h2_page_title.text(data["title"]);
158
+ //$h2_page_title.css('opacity', '1.0');
159
+ //$(document).attr('title', data["title"]);
160
+
161
+ } else {
162
+ alert('fail: /estate/areas_ecoef');
163
+ }
164
+ //fPreloaderHide();
165
+ });
166
+
167
+ //fPreloaderShow();
168
+ };
169
+
170
+ var fInit = function () {
171
+ fBuild();
172
+ fRequest();
173
+ fAreasShow_initRichShowPage();
174
+ };
175
+
176
+ var fDrawChart_google = function (data_array_rows) {
177
+ //data_array = [
178
+ // ['Director (Year)', 'Rotten Tomatoes', 'IMDB'],
179
+ // ['Alfred Hitchcock (1935)', 8.4, 7.9],
180
+ // ['Ralph Thomas (1959)', 6.9, 6.5],
181
+ // ['Don Sharp (1978)', 6.5, 6.4],
182
+ // ['James Hawes (2008)', 4.4, 6.2]
183
+ //]
184
+
185
+ google.charts.load('current', {'packages': ['corechart']});
186
+ google.charts.setOnLoadCallback(drawChart);
187
+ function drawChart() {
188
+
189
+ //var data = google.visualization.arrayToDataTable(data_array_rows);
190
+
191
+ var data = new google.visualization.DataTable();
192
+ data.addColumn('date', ''); // Implicit domain column.
193
+ data.addColumn('number', ''); // Implicit data column.
194
+ //data.addColumn({type:'number', role:'interval'});
195
+ //data.addColumn({type:'number', role:'interval'});
196
+ //data.addColumn('number', 'Expenses');
197
+
198
+ var i, iob, yearValue, monthValue, dayValue;
199
+ for (i=0; i<data_array_rows.length; i++) {
200
+ iob = data_array_rows[i];
201
+ yearValue = iob[0].substr(0,4);
202
+ monthValue = iob[0].substr(5,2)-1;
203
+ dayValue = iob[0].substr(8,2);
204
+ console.log(iob + " => " + yearValue + "/" + monthValue + "/" + dayValue ); // + ": " + data_array_rows[i][0]
205
+ data_array_rows[i][0] = new Date(parseInt(yearValue),parseInt(monthValue),parseInt(dayValue));
206
+ }
207
+
208
+ data.addRows(data_array_rows);
209
+
210
+ var options = {
211
+ title: 'График занята/свободна',
212
+ vAxis: { title: '', ticks: [0,1] },
213
+ ignoreBounds: true,
214
+ isStacked: false
215
+ };
216
+
217
+ var chart = new google.visualization.SteppedAreaChart(document.getElementById('graph'));
218
+
219
+ chart.draw(data, options);
220
+ }
221
+
222
+ $('#graph').css('opacity','1.0').css('display','block');
223
+
224
+ };
225
+
226
+ var fDrawChart_chart_js = function (data) {
227
+
228
+ if (data != undefined) {
229
+ var ctx = $("#graph_canvas");
230
+
231
+ var chartInstance = new Chart(ctx, {
232
+ type: 'bar',
233
+ data: {
234
+ labels: data["labels"],
235
+ datasets: [
236
+ {
237
+ label: "График занята/свободна",
238
+ backgroundColor: [
239
+ 'rgba(255, 99, 132, 0.2)',
240
+ 'rgba(54, 162, 235, 0.2)',
241
+ 'rgba(255, 206, 86, 0.2)',
242
+ 'rgba(75, 192, 192, 0.2)',
243
+ 'rgba(153, 102, 255, 0.2)',
244
+ 'rgba(255, 159, 64, 0.2)'
245
+ ],
246
+ borderColor: [
247
+ 'rgba(255,99,132,1)',
248
+ 'rgba(54, 162, 235, 1)',
249
+ 'rgba(255, 206, 86, 1)',
250
+ 'rgba(75, 192, 192, 1)',
251
+ 'rgba(153, 102, 255, 1)',
252
+ 'rgba(255, 159, 64, 1)'
253
+ ],
254
+ borderWidth: 1,
255
+ barPercentage: 1.0,
256
+ categoryPercentage: 0,
257
+ data: data["points"]
258
+ }
259
+ ]
260
+ },
261
+ options: {
262
+ scales: {
263
+ xAxes: [{
264
+ type: 'time',
265
+ time: {
266
+ displayFormats: {
267
+ quarter: 'YYYY/MM/DD'
268
+ }
269
+ }
270
+ }]
271
+ }
272
+ }
273
+ });
274
+
275
+ $('#graph').css('opacity','1.0');
276
+
277
+ }
278
+
279
+ };
280
+
281
+ var fDrawChart = function (data) {
282
+ if (data != undefined && $('#graph').length) {
283
+
284
+ var dataPoints = [];
285
+ //[
286
+ // {x: new Date(2012,0), y: 8.3} ,
287
+ // {x: new Date(2012,1), y: 8.3} ,
288
+ // {x: new Date(2012,2), y: 8.2} ,
289
+ // {x: new Date(2012,3), y: 8.1} ,
290
+ // {x: new Date(2012,4), y: 8.2} ,
291
+ // {x: new Date(2012,5), y: 8.2} ,
292
+ // {x: new Date(2012,6), y: 8.2} ,
293
+ // {x: new Date(2012,7), y: 8.1} ,
294
+ // {x: new Date(2012,8), y: 7.8} ,
295
+ // {x: new Date(2012,9), y: 7.9} ,
296
+ // {x: new Date(2012,10), y:7.8} ,
297
+ // {x: new Date(2012,11), y:7.8} ,
298
+ // {x: new Date(2013,0), y:7.9} ,
299
+ // {x: new Date(2013,1), y:7.7} ,
300
+ // {x: new Date(2013,2), y:7.6} ,
301
+ // {x: new Date(2013,3), y:7.5}
302
+ //]
303
+
304
+ var i, iob;
305
+ for (i = 0; i < data.length; i ++) {
306
+ iob = data[i];
307
+ dataPoints.push({
308
+ x: new Date(iob["year"], iob["month"], iob["day"]),
309
+ y: iob["val"]
310
+ })
311
+ }
312
+
313
+ var chart = new CanvasJS.Chart("graph",
314
+ {
315
+ title:{
316
+ text: "График занята/свободна"
317
+ },
318
+ animationEnabled: true,
319
+ axisY:{
320
+ includeZero: false,
321
+ interval: 1,
322
+ valueFormatString: ""
323
+ },
324
+ toolTip:{
325
+ contentFormatter: function ( e ) {
326
+ var res = "Свободна";
327
+ if (e.entries[0].dataPoint.y == 1) {
328
+ res = "Занята"
329
+ }
330
+ return res;
331
+ }
332
+ },
333
+ data: [
334
+ {
335
+ type: "stepLine",
336
+ //toolTipContent: "{x}: {y}%",
337
+ markerSize: 5,
338
+ dataPoints: dataPoints
339
+ }
340
+
341
+ ]
342
+ });
343
+
344
+ $('#graph').css('opacity','1.0').css('display','block');
345
+ chart.render();
346
+
347
+ }
348
+ };
349
+
350
+ fInit();
351
+
352
+ };
@@ -0,0 +1,42 @@
1
+ //
2
+ $(document).ready(function(){
3
+
4
+ var $carousel_div = $('#gallery3');
5
+
6
+ $carousel_div.slick({
7
+ slidesToShow: 1,
8
+ slidesToScroll: 1,
9
+ autoplay: false,
10
+ fade:true,
11
+ arrows:true,
12
+ speed: 200,
13
+ dots:false,
14
+ infinite: true,
15
+ asNavFor: '#gallery3_nav'
16
+ });
17
+
18
+ $('#gallery3_nav').slick({
19
+ slidesToShow: small_frames_slidesToShow,
20
+ slidesToScroll: 1,
21
+ asNavFor: '#gallery3',
22
+ dots: small_frames_dots,
23
+ //centerMode: true,
24
+ arrows:false,
25
+ focusOnSelect: true
26
+ });
27
+
28
+ setTimeout(function() {
29
+ var $b = $("#gallery3_nav").find(".img-holder");
30
+ //console.log($b);
31
+ $b.bind({
32
+ mouseenter: function() {
33
+ $(this).addClass("plusOpacity");
34
+ },
35
+ mouseleave: function() {
36
+ $(this).removeClass("plusOpacity");
37
+ }
38
+ })
39
+ },100);
40
+
41
+
42
+ });