adminpanel 2.6.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/adminpanel.gemspec +6 -6
  4. data/app/assets/images/adminpanel/magnifier.png +0 -0
  5. data/app/assets/javascripts/adminpanel/bootstrap-data-confirm.coffee.erb +142 -0
  6. data/app/assets/javascripts/adminpanel/dom-filter.coffee +15 -0
  7. data/app/assets/javascripts/adminpanel/dropzone.js +1728 -0
  8. data/app/assets/javascripts/adminpanel/filter-side-menu.coffee +4 -0
  9. data/app/assets/javascripts/adminpanel/gallery.js.coffee.erb +79 -0
  10. data/app/assets/javascripts/adminpanel/realm.js +0 -3
  11. data/app/assets/stylesheets/adminpanel/_search-input.scss.erb +11 -0
  12. data/app/assets/stylesheets/adminpanel/bootstrap.css.erb +1 -1
  13. data/app/assets/stylesheets/adminpanel/dropzone.css +515 -0
  14. data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +1 -1
  15. data/app/controllers/adminpanel/analytics_controller.rb +7 -51
  16. data/app/controllers/adminpanel/application_controller.rb +1 -0
  17. data/app/controllers/adminpanel/roles_controller.rb +4 -1
  18. data/app/controllers/adminpanel/sections_controller.rb +1 -7
  19. data/app/controllers/concerns/adminpanel/facebook_actions.rb +3 -0
  20. data/app/controllers/concerns/adminpanel/gallery_actions.rb +31 -0
  21. data/app/controllers/concerns/adminpanel/rest_actions.rb +4 -1
  22. data/app/helpers/adminpanel/analytics_helper.rb +8 -18
  23. data/app/helpers/adminpanel/application_helper.rb +10 -2
  24. data/app/helpers/adminpanel/router_helper.rb +6 -2
  25. data/app/helpers/adminpanel/shared_pages_helper.rb +5 -3
  26. data/app/models/adminpanel/analytic.rb +4 -0
  27. data/app/models/adminpanel/image.rb +31 -0
  28. data/app/models/adminpanel/sectionfile.rb +1 -3
  29. data/app/models/concerns/adminpanel/base.rb +51 -7
  30. data/app/models/concerns/adminpanel/sortable_gallery.rb +12 -17
  31. data/app/views/adminpanel/analytics/_header.html.erb +1 -1
  32. data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +27 -23
  33. data/app/views/adminpanel/icons/_delete.html.erb +1 -0
  34. data/app/views/adminpanel/sections/edit.html.erb +1 -12
  35. data/app/views/adminpanel/shared/_form_fields.html.erb +1 -0
  36. data/app/views/adminpanel/templates/destroy.js.erb +3 -0
  37. data/app/views/adminpanel/templates/index.html.erb +4 -4
  38. data/app/views/adminpanel/templates/show.html.erb +57 -52
  39. data/app/views/layouts/adminpanel/_side_menu.html.erb +18 -3
  40. data/config/initializers/adminpanel/assets.rb +4 -0
  41. data/config/locales/en.yml +24 -9
  42. data/config/locales/es.yml +18 -33
  43. data/config/routes.rb +10 -5
  44. data/lib/adminpanel/version.rb +1 -1
  45. data/lib/generators/adminpanel/gallery/gallery_generator.rb +0 -8
  46. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -18
  47. data/lib/generators/adminpanel/gallery/templates/uploader.rb +1 -1
  48. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +9 -5
  49. data/lib/generators/adminpanel/resource/resource_generator.rb +12 -16
  50. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +23 -16
  51. data/test/dummy/.gitignore +2 -2
  52. data/test/dummy/app/controllers/adminpanel/products_controller.rb +1 -1
  53. data/test/dummy/app/models/adminpanel/galleryfile.rb +1 -13
  54. data/test/dummy/app/models/adminpanel/photo.rb +2 -9
  55. data/test/dummy/app/models/adminpanel/product.rb +1 -0
  56. data/test/dummy/config/initializers/carrierwave.rb +5 -0
  57. data/test/dummy/db/schema.rb +10 -18
  58. data/test/dummy/test/fixtures/adminpanel/galleries.yml +3 -3
  59. data/test/dummy/test/fixtures/adminpanel/images.yml +60 -0
  60. data/test/dummy/test/fixtures/adminpanel/products.yml +2 -2
  61. data/test/dummy/test/fixtures/{dog fries.png → attachments/dog-fries.png} +0 -0
  62. data/test/dummy/test/fixtures/attachments/hipster.jpg +0 -0
  63. data/test/dummy/test/fixtures/attachments/thumb_hipster.jpg +0 -0
  64. data/test/features/shared/form/belongs_to_remote_test.rb +1 -4
  65. data/test/features/shared/form/resource_field_test.rb +1 -1
  66. data/test/features/shared/resource/edit_test.rb +2 -5
  67. data/test/features/shared/resource/new_test.rb +5 -2
  68. data/test/features/shared/ui/dropzone_element_generation_test.rb +27 -0
  69. data/test/features/shared/ui/filtering_test.rb +29 -0
  70. data/test/generators/gallery_generator_test.rb +0 -10
  71. data/test/generators/resource_generator_test.rb +30 -6
  72. data/test/helpers/shared_pages_helper_test.rb +22 -43
  73. data/test/models/adminpanel/image_test.rb +31 -0
  74. data/test/models/adminpanel/sortable_gallery_unit_test.rb +8 -8
  75. data/test/support/view_case.rb +2 -2
  76. metadata +53 -43
  77. data/app/assets/images/adminpanel/dialogs.png +0 -0
  78. data/app/assets/images/adminpanel/icons-big.png +0 -0
  79. data/app/assets/images/adminpanel/icons-small.png +0 -0
  80. data/app/assets/images/adminpanel/select2.png +0 -0
  81. data/app/assets/images/adminpanel/select2x2.png +0 -0
  82. data/app/assets/images/adminpanel/toolbar.png +0 -0
  83. data/app/assets/javascripts/adminpanel/jquery.knob.js +0 -652
  84. data/app/assets/javascripts/adminpanel/jquery.masonry.min.js +0 -10
  85. data/app/assets/javascripts/adminpanel/jquery.slimscroll.min.js +0 -14
  86. data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +0 -63
  87. data/app/views/adminpanel/analytics/fb.html.erb +0 -106
  88. data/test/dummy/config/carrierwave.rb +0 -6
  89. data/test/dummy/public/favicon.ico +0 -0
  90. data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +0 -42
  91. data/test/features/shared/ui/max_images_gallery_test.rb +0 -51
@@ -1,10 +0,0 @@
1
- /**
2
- * jQuery Masonry v2.1.06
3
- * A dynamic layout plugin for jQuery
4
- * The flip-side of CSS Floats
5
- * http://masonry.desandro.com
6
- *
7
- * Licensed under the MIT license.
8
- * Copyright 2012 David DeSandro
9
- */
10
- (function(a,b,c){"use strict";var d=b.event,e;d.special.smartresize={setup:function(){b(this).bind("resize",d.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",d.special.smartresize.handler)},handler:function(a,c){var d=this,f=arguments;a.type="smartresize",e&&clearTimeout(e),e=setTimeout(function(){b.event.handle.apply(d,f)},c==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Mason=function(a,c){this.element=b(c),this._create(a),this._init()},b.Mason.settings={isResizable:!0,isAnimated:!1,animationOptions:{queue:!1,duration:500},gutterWidth:0,isRTL:!1,isFitWidth:!1,containerStyle:{position:"relative"}},b.Mason.prototype={_filterFindBricks:function(a){var b=this.options.itemSelector;return b?a.filter(b).add(a.find(b)):a},_getBricks:function(a){var b=this._filterFindBricks(a).css({position:"absolute"}).addClass("masonry-brick");return b},_create:function(c){this.options=b.extend(!0,{},b.Mason.settings,c),this.styleQueue=[];var d=this.element[0].style;this.originalStyle={height:d.height||""};var e=this.options.containerStyle;for(var f in e)this.originalStyle[f]=d[f]||"";this.element.css(e),this.horizontalDirection=this.options.isRTL?"right":"left";var g=this.element.css("padding-"+this.horizontalDirection),h=this.element.css("padding-top");this.offset={x:g?parseInt(g,10):0,y:h?parseInt(h,10):0},this.isFluid=this.options.columnWidth&&typeof this.options.columnWidth=="function";var i=this;setTimeout(function(){i.element.addClass("masonry")},0),this.options.isResizable&&b(a).bind("smartresize.masonry",function(){i.resize()}),this.reloadItems()},_init:function(a){this._getColumns(),this._reLayout(a)},option:function(a,c){b.isPlainObject(a)&&(this.options=b.extend(!0,this.options,a))},layout:function(a,b){for(var c=0,d=a.length;c<d;c++)this._placeBrick(a[c]);var e={};e.height=Math.max.apply(Math,this.colYs);if(this.options.isFitWidth){var f=0;c=this.cols;while(--c){if(this.colYs[c]!==0)break;f++}e.width=(this.cols-f)*this.columnWidth-this.options.gutterWidth}this.styleQueue.push({$el:this.element,style:e});var g=this.isLaidOut?this.options.isAnimated?"animate":"css":"css",h=this.options.animationOptions,i;for(c=0,d=this.styleQueue.length;c<d;c++)i=this.styleQueue[c],i.$el[g](i.style,h);this.styleQueue=[],b&&b.call(a),this.isLaidOut=!0},_getColumns:function(){var a=this.options.isFitWidth?this.element.parent():this.element,b=a.width();this.columnWidth=this.isFluid?this.options.columnWidth(b):this.options.columnWidth||this.$bricks.outerWidth(!0)||b,this.columnWidth+=this.options.gutterWidth,this.cols=Math.floor((b+this.options.gutterWidth)/this.columnWidth),this.cols=Math.max(this.cols,1)},_placeBrick:function(a){var c=b(a),d,e,f,g,h;d=Math.ceil(c.outerWidth(!0)/this.columnWidth),d=Math.min(d,this.cols);if(d===1)f=this.colYs;else{e=this.cols+1-d,f=[];for(h=0;h<e;h++)g=this.colYs.slice(h,h+d),f[h]=Math.max.apply(Math,g)}var i=Math.min.apply(Math,f),j=0;for(var k=0,l=f.length;k<l;k++)if(f[k]===i){j=k;break}var m={top:i+this.offset.y};m[this.horizontalDirection]=this.columnWidth*j+this.offset.x,this.styleQueue.push({$el:c,style:m});var n=i+c.outerHeight(!0),o=this.cols+1-l;for(k=0;k<o;k++)this.colYs[j+k]=n},resize:function(){var a=this.cols;this._getColumns(),(this.isFluid||this.cols!==a)&&this._reLayout()},_reLayout:function(a){var b=this.cols;this.colYs=[];while(b--)this.colYs.push(0);this.layout(this.$bricks,a)},reloadItems:function(){this.$bricks=this._getBricks(this.element.children())},reload:function(a){this.reloadItems(),this._init(a)},appended:function(a,b,c){if(b){this._filterFindBricks(a).css({top:this.element.height()});var d=this;setTimeout(function(){d._appended(a,c)},1)}else this._appended(a,c)},_appended:function(a,b){var c=this._getBricks(a);this.$bricks=this.$bricks.add(c),this.layout(c,b)},remove:function(a){this.$bricks=this.$bricks.not(a),a.remove()},destroy:function(){this.$bricks.removeClass("masonry-brick").each(function(){this.style.position="",this.style.top="",this.style.left=""});var c=this.element[0].style;for(var d in this.originalStyle)c[d]=this.originalStyle[d];this.element.unbind(".masonry").removeClass("masonry").removeData("masonry"),b(a).unbind(".masonry")}},b.fn.imagesLoaded=function(a){function h(){a.call(c,d)}function i(a){var c=a.target;c.src!==f&&b.inArray(c,g)===-1&&(g.push(c),--e<=0&&(setTimeout(h),d.unbind(".imagesLoaded",i)))}var c=this,d=c.find("img").add(c.filter("img")),e=d.length,f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",g=[];return e||h(),d.bind("load.imagesLoaded error.imagesLoaded",i).each(function(){var a=this.src;this.src=f,this.src=a}),c};var f=function(b){a.console&&a.console.error(b)};b.fn.masonry=function(a){if(typeof a=="string"){var c=Array.prototype.slice.call(arguments,1);this.each(function(){var d=b.data(this,"masonry");if(!d){f("cannot call methods on masonry prior to initialization; attempted to call method '"+a+"'");return}if(!b.isFunction(d[a])||a.charAt(0)==="_"){f("no such method '"+a+"' for masonry instance");return}d[a].apply(d,c)})}else this.each(function(){var c=b.data(this,"masonry");c?(c.option(a||{}),c._init()):b.data(this,"masonry",new b.Mason(a,this))});return this}})(window,jQuery);
@@ -1,14 +0,0 @@
1
- /*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
2
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
3
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
4
- *
5
- * Version: 1.0.5
6
- *
7
- */
8
- (function(d){jQuery.fn.extend({slimScroll:function(m){var a=d.extend({wheelStep:20,width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:"0.2",railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,scroll:0,touchScrollStep:200},m);this.each(function(){function f(h,d,f){var g=h,e=b.outerHeight()-c.outerHeight();d&&(g=parseInt(c.css("top"))+
9
- h*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),e),c.css({top:g+"px"}));j=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());g=j*(b[0].scrollHeight-b.outerHeight());f&&(g=h,h=g/b[0].scrollHeight*b.outerHeight(),h=Math.min(Math.max(h,0),e),c.css({top:h+"px"}));b.scrollTop(g);q();l()}function r(){s=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),A);c.css({height:s+"px"})}function q(){r();clearTimeout(w);j==~~j&&(n=a.allowPageScroll,x!=j&&b.trigger("slimscroll",
10
- 0==~~j?"top":"bottom"));x=j;s>=b.outerHeight()?n=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&e.stop(!0,!0).fadeIn("fast"))}function l(){a.alwaysVisible||(w=setTimeout(function(){if((!a.disableFadeOut||!p)&&!t&&!u)c.fadeOut("slow"),e.fadeOut("slow")},1E3))}var p,t,u,w,y,s,j,x,A=30,n=!1,b=d(this);if(b.parent().hasClass("slimScrollDiv")){var k=b.scrollTop(),c=b.parent().find(".slimScrollBar"),e=b.parent().find(".slimScrollRail");r();m&&("scrollTo"in m?k=parseInt(a.scrollTo):"scrollBy"in m&&(k+=parseInt(a.scrollBy)),
11
- f(k,!1,!0))}else{a.height="auto"==a.height?b.parent().innerHeight():a.height;k=d("<div></div>").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",width:a.width,height:a.height});var e=d("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.size,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=d("<div></div>").addClass(a.barClass).css({background:a.color,
12
- width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.size,BorderRadius:a.size,MozBorderRadius:a.size,WebkitBorderRadius:a.size,zIndex:99}),z="right"==a.position?{right:a.distance}:{left:a.distance};e.css(z);c.css(z);b.wrap(k);b.parent().append(c);b.parent().append(e);c.draggable({axis:"y",containment:"parent",start:function(){u=!0},stop:function(){u=!1;l()},drag:function(){f(0,d(this).position().top,!1)}});e.hover(function(){q()},function(){l()});
13
- c.hover(function(){t=!0},function(){t=!1});b.hover(function(){p=!0;q();l()},function(){p=!1;l()});b.bind("touchstart",function(a){a.originalEvent.touches.length&&(y=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){b.originalEvent.preventDefault();b.originalEvent.touches.length&&f((y-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0)});var v=function(a){if(p){a=a||window.event;var b=0;a.wheelDelta&&(b=-a.wheelDelta/120);a.detail&&(b=a.detail/3);f(b,!0);a.preventDefault&&!n&&
14
- a.preventDefault();n||(a.returnValue=!1)}};(function(){window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)})();r();"bottom"==a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),f(0,!0)):"object"==typeof a.start&&(f(d(a.start).position().top,null,!0),a.alwaysVisible||c.hide())}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery);
@@ -1,63 +0,0 @@
1
- <div class="widget-tasks-statistics">
2
- <div class="userstats clearfix" style="margin-top: 25px; background-color: none;">
3
- <%= link_to '#', data: { toggle: 'modal', target: "##{metric(inside)}" } do %>
4
- <div class="white facebook-insights">
5
- <i style="color:<%= color %>" class="fa fa-<%= icon %>"></i>
6
- <p class="insight-value" style="color:<%= color %>" >
7
- <%= "#{first_fb_value(inside).to_i} #{placeholder}" %>
8
- </p>
9
- </div>
10
- <div>
11
- <input
12
- class="knob"
13
- data-width="120"
14
- data-height="120"
15
- data-displayInput=false
16
- data-readOnly=true
17
- data-thickness=".12"
18
- value="<%= divide_metrics(inside, outside) * 100 %>"
19
- >
20
- </div>
21
- <p>
22
- <strong>
23
- <%= first_fb_value(outside).to_i %>
24
- </strong>
25
- <%= label %>
26
- </p>
27
- <% end %>
28
- </div>
29
- </div>
30
-
31
- <!-- modal -->
32
- <%= content_for :modals do %>
33
- <div id="<%= metric(inside) %>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
34
- <div class="modal-header" id="modal-header">
35
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
36
- <h3 id="modal-title">
37
- <%= I18n.t("analytics.metrics.#{metric(inside)}") %> /
38
- <%= I18n.t("analytics.metrics.#{metric(outside)}") %>
39
- </h3>
40
- </div>
41
- <div id="modal-container">
42
- <div class="modal-body">
43
- <ul>
44
- <li>
45
- <%= I18n.t("analytics.metrics.#{metric(inside)}") %>:
46
- <%= I18n.t("analytics.description.#{metric(inside)}") %>
47
- </li>
48
- <br>
49
- <li>
50
- <%= I18n.t("analytics.metrics.#{metric(outside)}") %>:
51
- <%= I18n.t("analytics.description.#{metric(outside)}") %>
52
- </li>
53
-
54
- </ul>
55
- </div>
56
- <div class="modal-footer">
57
- <button id="modal-button" class="btn" data-dismiss="modal" aria-hidden="true">
58
- <%= I18n.t('action.close') %>
59
- </button>
60
- </div>
61
- </div>
62
- </div>
63
- <% end %>
@@ -1,106 +0,0 @@
1
- <% provide(:page_title, I18n.t('analytics.facebook')) -%>
2
- <div class="row-fluid">
3
- <div class="widget widget-padding span12">
4
- <div class="widget-header">
5
- <%= render 'header' %>
6
- </div>
7
- <div class="widget-body">
8
- <%= form_tag fb_analytics_path, method: :get %>
9
- <%=
10
- select_tag(
11
- 'insight',
12
- options_for_select(
13
- [
14
- [I18n.t('analytics.now'), 'day'],
15
- [I18n.t('analytics.week'), 'week'],
16
- [I18n.t('analytics.month'), 'days_28']
17
- ],
18
- params[:insight]
19
- )
20
- )
21
- %>
22
- <%= button_tag(I18n.t('analytics.search'), type: 'submit', class: 'btn btn-info') %>
23
- <h4>Haz click en los íconos para ver su descripción</h4>
24
- <% date = Date.parse @new_likes.first['values'].last['end_time'] %>
25
- <h3><%= I18n.t('analytics.for') %> <%= date - days_to_substract %> - <%= date %></h3>
26
- <div class="overview_boxes">
27
- <div class="box_row clearfix">
28
- <%=
29
- render(
30
- 'fb_statistic_widget',
31
- inside: @new_likes,
32
- outside: @total_likes,
33
- placeholder: '+',
34
- icon: 'thumbs-up',
35
- color: '#98AEEA',
36
- label: 'Likes'
37
- )
38
- %>
39
-
40
- <%=
41
- render(
42
- 'fb_statistic_widget',
43
- inside: @impressions_unique,
44
- outside: @impressions,
45
- placeholder: I18n.t('analytics.unique'),
46
- icon: 'ticket',
47
- color: '#6CD0F7',
48
- label: I18n.t('analytics.impressions')
49
- )
50
- %>
51
-
52
- <%=
53
- render(
54
- 'fb_statistic_widget',
55
- inside: @views_unique,
56
- outside: @views,
57
- placeholder: 'únicas',
58
- icon: 'eye',
59
- color: '#6CD0F7',
60
- label: 'Vistas'
61
- )
62
- %>
63
-
64
- <%=
65
- render(
66
- 'fb_statistic_widget',
67
- inside: @stories,
68
- outside: @stories,
69
- placeholder: '',
70
- icon: 'bullhorn',
71
- color: '#6CD0F7',
72
- label: 'Hablando de ti'
73
- )
74
- %>
75
-
76
- <%=
77
- render(
78
- 'fb_statistic_widget',
79
- inside: @consumptions_unique,
80
- outside: @consumptions,
81
- placeholder: 'únicas',
82
- icon: 'crosshairs',
83
- color: '#6CD0F7',
84
- label: 'Consumptions'
85
- )
86
- %>
87
-
88
- <%=
89
- render(
90
- 'fb_statistic_widget',
91
- inside: @hidden_unique,
92
- outside: @hidden,
93
- placeholder: '-',
94
- icon: 'thumbs-down',
95
- color: '#E28270',
96
- label: 'Dislike o Hide'
97
- )
98
- %>
99
-
100
- </div>
101
- </div>
102
-
103
- </div>
104
- </div>
105
- </div>
106
- <%= yield :modals %>
@@ -1,6 +0,0 @@
1
- if Rails.env.test? || Rails.env.cucumber?
2
- CarrierWave.configure do |config|
3
- config.storage = :file
4
- config.enable_processing = false
5
- end
6
- end
File without changes
@@ -1,42 +0,0 @@
1
- first:
2
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
3
- gallery: one
4
- position: 1
5
- created_at: <%= Date.today %>
6
- updated_at: <%= Date.today %>
7
- second:
8
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
9
- gallery: one
10
- position: 2
11
- created_at: <%= Date.today %>
12
- updated_at: <%= Date.today %>
13
- third:
14
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
15
- gallery: one
16
- position: 3
17
- created_at: <%= Date.today %>
18
- updated_at: <%= Date.today %>
19
- fourth:
20
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
21
- gallery: one
22
- position: 4
23
- created_at: <%= Date.today %>
24
- updated_at: <%= Date.today %>
25
- fifth:
26
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
27
- gallery: one
28
- position: 5
29
- created_at: <%= Date.today %>
30
- updated_at: <%= Date.today %>
31
- first_2:
32
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
33
- gallery: two
34
- position: 1
35
- created_at: <%= Date.today %>
36
- updated_at: <%= Date.today %>
37
- second_2:
38
- file: <%= File.open(Rails.root.join("app/assets/images/hipster.jpg")) %>
39
- gallery: two
40
- position: 2
41
- created_at: <%= Date.today %>
42
- updated_at: <%= Date.today %>
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- class MaxImagesGalleryTest < ViewCase
4
- fixtures :all
5
-
6
- setup :sign_in
7
-
8
- def test_exclution_of_button_when_max_file_is_limit
9
- # maximum of products is 2.
10
- visit adminpanel.new_product_path
11
-
12
- assert_selector '#add-image-link'
13
- click_link 'add-image-link'
14
- assert_selector '#add-image-link'
15
- click_link 'add-image-link'
16
- ## $('#add-image-link') should not be visible if max files is reached
17
- assert_no_selector '#add-image-link'
18
-
19
- click_button 'Eliminar', match: :first
20
- ## $('#add-image-link') should be visible again if a file is deleted
21
- assert_selector '#add-image-link'
22
- end
23
-
24
- def test_no_button_when_editing_with_max_files
25
- # maximum of products is 2.
26
- product = adminpanel_products(:limit_images)
27
- 2.times do |time|
28
- product.photos.create(file: fixture_file_upload('dog fries.png'))
29
- end
30
- visit adminpanel.edit_product_path(product)
31
- ## $('#add-image-link') should not be visible if max files is reached (it is reached)
32
-
33
- assert_no_selector '#add-image-link'
34
-
35
- click_button 'Eliminar', match: :first
36
- ## $('#add-image-link') should be visible again if a file is deleted
37
- assert_selector '#add-image-link'
38
- end
39
-
40
- def test_add_image_button_must_exist_when_no_max_file
41
- visit adminpanel.new_file_resource_path
42
- assert_selector '#add-image-link'
43
- # assert true
44
- end
45
-
46
- protected
47
- def sign_in
48
- visit adminpanel.signin_path
49
- login
50
- end
51
- end