c80_estate 0.1.0.12 → 0.1.0.13

Sign up to get free protection for your applications and to get access to all the features.
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
+ });