adminpanel 2.1.7 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -3
  3. data/Gemfile +3 -27
  4. data/adminpanel.gemspec +24 -23
  5. data/app/assets/images/adminpanel/loguito.png +0 -0
  6. data/app/assets/javascripts/adminpanel/bootstrap-wysihtml5-4pre.js +120 -120
  7. data/app/assets/javascripts/adminpanel/spinner.js.coffee +6 -6
  8. data/app/assets/stylesheets/adminpanel/bootstrap-wysihtml5.css +21 -75
  9. data/app/controllers/adminpanel/analytics_controller.rb +34 -2
  10. data/app/controllers/adminpanel/application_controller.rb +7 -6
  11. data/app/controllers/adminpanel/categories_controller.rb +0 -1
  12. data/app/controllers/adminpanel/galleries_controller.rb +0 -1
  13. data/app/controllers/adminpanel/permissions_controller.rb +14 -0
  14. data/app/controllers/adminpanel/rols_controller.rb +10 -0
  15. data/app/controllers/adminpanel/sections_controller.rb +11 -14
  16. data/app/controllers/adminpanel/sessions_controller.rb +45 -11
  17. data/app/controllers/adminpanel/users_controller.rb +2 -4
  18. data/app/controllers/concerns/adminpanel/analytics/instagram_analytics.rb +31 -0
  19. data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +25 -0
  20. data/app/controllers/concerns/adminpanel/facebook_actions.rb +7 -5
  21. data/app/controllers/concerns/adminpanel/rest_actions.rb +12 -0
  22. data/app/controllers/concerns/adminpanel/twitter_actions.rb +40 -0
  23. data/app/helpers/adminpanel/adminpanel_form_builder.rb +21 -14
  24. data/app/helpers/adminpanel/analytics_helper.rb +22 -2
  25. data/app/helpers/adminpanel/application_helper.rb +2 -2
  26. data/app/helpers/adminpanel/breadcrumbs_helper.rb +8 -6
  27. data/app/helpers/adminpanel/router_helper.rb +4 -0
  28. data/app/helpers/adminpanel/sessions_helper.rb +2 -2
  29. data/app/helpers/adminpanel/shared_pages_helper.rb +3 -3
  30. data/{lib/generators/adminpanel/initialize/templates → app/models}/ability.rb +18 -6
  31. data/app/models/adminpanel/analytic.rb +1 -0
  32. data/app/models/adminpanel/auth.rb +4 -1
  33. data/app/models/adminpanel/permission.rb +52 -0
  34. data/app/models/adminpanel/rol.rb +35 -0
  35. data/app/models/adminpanel/user.rb +8 -8
  36. data/app/models/concerns/adminpanel/base.rb +4 -0
  37. data/app/models/concerns/adminpanel/facebook.rb +1 -1
  38. data/app/models/concerns/adminpanel/twitter.rb +27 -0
  39. data/app/views/adminpanel/analytics/{_widget_task_statistics.html.erb → _fb_statistic_widget.html.erb} +0 -0
  40. data/app/views/adminpanel/analytics/_header.html.erb +8 -2
  41. data/app/views/adminpanel/analytics/_instagram_details_modal.html.erb +55 -0
  42. data/app/views/adminpanel/analytics/_instagram_media.html.erb +25 -0
  43. data/app/views/adminpanel/analytics/_tweet.html.erb +32 -0
  44. data/app/views/adminpanel/analytics/_twitter_reply_modal.html.erb +41 -0
  45. data/app/views/adminpanel/analytics/fb.html.erb +6 -6
  46. data/app/views/adminpanel/analytics/instagram.html.erb +65 -0
  47. data/app/views/adminpanel/analytics/twitter.html.erb +89 -0
  48. data/app/views/adminpanel/sections/edit.html.erb +2 -5
  49. data/app/views/layouts/_side_menu.html.erb +3 -3
  50. data/app/views/layouts/admin.html.erb +2 -2
  51. data/app/views/shared/_delete_icon_button.html.erb +1 -1
  52. data/app/views/shared/_edit_icon_button.html.erb +1 -1
  53. data/app/views/shared/_fb_icon_button.html.erb +1 -1
  54. data/app/views/shared/_form_fields.html.erb +1 -1
  55. data/app/views/shared/_new_resource_button.html.erb +1 -2
  56. data/app/views/shared/_twitter_icon_button.html.erb +26 -0
  57. data/app/views/shared/_twitter_publish_modal.html.erb +40 -0
  58. data/app/views/shared/index.html.erb +5 -3
  59. data/app/views/shared/show.html.erb +7 -3
  60. data/config/initializers/twitter-oauth.rb +15 -0
  61. data/config/locales/en.yml +1 -1
  62. data/config/locales/es.yml +20 -1
  63. data/config/routes.rb +25 -5
  64. data/lib/adminpanel.rb +3 -0
  65. data/lib/adminpanel/engine.rb +19 -5
  66. data/lib/adminpanel/version.rb +1 -1
  67. data/lib/generators/adminpanel/initialize/initialize_generator.rb +0 -11
  68. data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +12 -0
  69. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +74 -46
  70. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +1 -1
  71. data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +1 -1
  72. data/lib/tasks/adminpanel/adminpanel.rake +5 -5
  73. data/test/dummy/app/models/adminpanel/item.rb +1 -1
  74. data/test/dummy/app/models/adminpanel/mug.rb +1 -0
  75. data/test/dummy/app/models/adminpanel/photo.rb +4 -0
  76. data/test/dummy/app/models/adminpanel/product.rb +7 -1
  77. data/test/dummy/app/models/adminpanel/salesman.rb +1 -0
  78. data/test/dummy/app/views/layouts/application.html.erb +0 -1
  79. data/test/dummy/db/schema.rb +9 -2
  80. data/test/dummy/test/fixtures/adminpanel/permissions.yml +42 -0
  81. data/test/dummy/test/fixtures/adminpanel/rols.yml +28 -0
  82. data/test/dummy/test/fixtures/adminpanel/salesmen.yml +1 -0
  83. data/test/dummy/test/fixtures/adminpanel/users.yml +49 -1
  84. data/test/features/shared/resource/index_test.rb +1 -0
  85. data/test/features/shared/ui/action_exclution_test.rb +1 -0
  86. data/test/helpers/breadcrumbs_helper_test.rb +34 -0
  87. data/test/helpers/router_helper_test.rb +21 -0
  88. data/test/helpers/shared_pages_helper_test.rb +35 -0
  89. data/test/models/ability_test.rb +52 -0
  90. data/test/models/adminpanel/gallery_test.rb +0 -2
  91. data/test/models/adminpanel/user_test.rb +1 -1
  92. data/test/support/shared_database.rb +11 -0
  93. data/test/support/view_case.rb +34 -0
  94. data/test/tasks/adminpanel_rake_test.rb +5 -2
  95. data/test/test_helper.rb +1 -41
  96. metadata +191 -200
  97. data/app/assets/javascripts/adminpanel/jquery.facybox.js +0 -395
  98. data/app/assets/stylesheets/adminpanel/facybox.css +0 -146
  99. data/app/models/adminpanel/group.rb +0 -6
  100. data/test/dummy/Rakefile +0 -7
  101. data/test/dummy/app/models/ability.rb +0 -31
  102. data/test/dummy/test/fixtures/adminpanel/groups.yml +0 -4
@@ -1,395 +0,0 @@
1
- /*
2
- * facybox (for jQuery)
3
- * version: 1.0 (11/09/2009)
4
- * @requires jQuery v1.2 or later
5
- *
6
- * Examples at http://bitbonsai.com/facybox/
7
- *
8
- * Licensed under the MIT:
9
- * http://www.opensource.org/licenses/mit-license.php
10
- *
11
- * Copyright 2009 Mauricio Wolff [ chris@ozmm.org ]
12
- */
13
- ;(function($) {
14
-
15
- $.fn.fixPNG = function() {
16
- return this.each(function () {
17
- var image = $(this).css('backgroundImage');
18
-
19
- if (image.match(/^url\(["']?(.*\.png)["']?\)$/i)) {
20
- image = RegExp.$1;
21
- $(this).css({
22
- 'backgroundImage': 'none',
23
- 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=" + ($(this).css('backgroundRepeat') == 'no-repeat' ? 'crop' : 'scale') + ", src='" + image + "')"
24
- }).each(function () {
25
- var position = $(this).css('position');
26
- if (position != 'absolute' && position != 'relative')
27
- $(this).css('position', 'relative');
28
- });
29
- }
30
- });
31
- };
32
-
33
- //TODO refactor using data.content_klass
34
- $.facybox = function(data, klass) {
35
- $.facybox.loading();
36
- $.facybox.content_klass = klass;
37
- if (data.ajax) revealAjax(data.ajax);
38
- else if(data.image) revealImage(data.image);
39
- else if(data.images) revealGallery(data.images,data.initial);
40
- else if(data.div) revealHref(data.div);
41
- else if($.isFunction(data)) data.call($);
42
- else $.facybox.reveal(data);
43
- }
44
-
45
- /*
46
- * Public, $.facybox methods
47
- */
48
-
49
- $.extend($.facybox, {
50
- //possible option: noAutoload --- will build facybox only when it is needed
51
- settings: {
52
- opacity : 0.3,
53
- overlay : true,
54
- modal : false,
55
- imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ],
56
- imageMimeTypes : [ 'image/jpeg', 'image/png', 'image/gif' ]
57
- },
58
-
59
- html : function(){
60
- return '\
61
- <div id="facybox" style="display:none;"> \
62
- <div class="popup"> \
63
- <table> \
64
- <tbody> \
65
- <tr> \
66
- <td class="nw"/><td class="n" /><td class="ne"/> \
67
- </tr> \
68
- <tr> \
69
- <td class="w" /> \
70
- <td class="body"> \
71
- <div class="footer"> </div> \
72
- <a href="#" class="close"></a>\
73
- <div class="content"> \
74
- </div> \
75
- </td> \
76
- <td class="e"/> \
77
- </tr> \
78
- <tr> \
79
- <td class="sw"/><td class="s"/><td class="se"/> \
80
- </tr> \
81
- </tbody> \
82
- </table> \
83
- </div> \
84
- </div> \
85
- <div class="loading"></div> \
86
- '
87
- },
88
-
89
- loading: function(){
90
- init();
91
- if($('.loading',$('#facybox'))[0]) return;//already in loading state...
92
- showOverlay();
93
- $.facybox.wait();
94
- if (!$.facybox.settings.modal) {
95
- $(document).bind('keydown.facybox', function(e) {
96
- if(e.keyCode == 27) $.facybox.close();//ESC
97
- });
98
- }
99
- $(document).trigger('loading.facybox');
100
- },
101
-
102
- wait: function(){
103
- var $f = $('#facybox');
104
- $('.content',$f).empty();//clear out old content
105
- $('.body',$f).children().hide().end().append('<div class="loading"></div>');
106
- $f.fadeIn('fast');
107
- $.facybox.centralize();
108
- $(document).trigger('reveal.facybox').trigger('afterReveal.facybox');
109
- },
110
-
111
- centralize: function(){
112
-
113
- var $f = $('#facybox');
114
- var pos = $.facybox.getViewport();
115
- var wl = parseInt(pos[0]/2) - parseInt($f.find("table").width() / 2);
116
- var fh = parseInt($f.height());
117
-
118
- if(pos[1] > fh){
119
- var t = (pos[3] + (pos[1] - fh)/2);
120
- $f.css({ 'left': wl, 'top': t });
121
- // console.log('height smaller then window: '+fh, pos[1], pos[3])
122
- } else {
123
- var t = (pos[3] + (pos[1] /10));
124
- $f.css({ 'left': wl, 'top': t });
125
- // console.log('height bigger then window')
126
- }
127
- },
128
-
129
- getViewport: function() {
130
- // [1009, 426, 0, 704]
131
- return [$(window).width(), $(window).height(), $(window).scrollLeft(), $(window).scrollTop()];
132
- },
133
-
134
- reveal: function(content){
135
- $(document).trigger('beforeReveal.facybox');
136
- var $f = $('#facybox');
137
- $('.content',$f)
138
- .attr('class',($.facybox.content_klass||'')+' content') //do not simply add the new class, since on the next call the old classes would remain
139
- .html(content);
140
- $('.loading',$f).remove();
141
-
142
- var $body = $('.body',$f);
143
-
144
- $body.children().fadeIn('fast');
145
-
146
- $.facybox.centralize();
147
-
148
- $(document).trigger('reveal.facybox').trigger('afterReveal.facybox');
149
- },
150
-
151
- close: function(){
152
- $(document).trigger('close.facybox');
153
- return false;
154
- }
155
- })
156
-
157
- /*
158
- * Bind to links, on click they open a facybox which
159
- * contains what their href points to
160
- */
161
- $.fn.facybox = function(settings) {
162
- var $this = $(this);
163
- if(!$this[0]) return $this;//called on empty elements, just stop and continue chain
164
- if(settings)$.extend($.facybox.settings, settings);
165
- if(!$.facybox.settings.noAutoload) init();
166
-
167
- $this.bind('click.facybox',function(){
168
- $.facybox.loading();
169
- // support for rel="facybox.inline_popup" syntax, to add a class
170
- // also supports deprecated "facybox[.inline_popup]" syntax
171
- var klass = this.rel.match(/facybox\[?\.(\w+)\]?/);
172
- $.facybox.content_klass = klass ? klass[1] : '';
173
- revealHref(this.href);
174
- return false;
175
- });
176
- return $this;//continue chain
177
- }
178
-
179
- /*
180
- * Private methods
181
- */
182
- // called one time to setup facybox on this page
183
- function init() {
184
- if($.facybox.settings.inited) return;
185
- else $.facybox.settings.inited = true;
186
-
187
- $(document).trigger('init.facybox');
188
- makeBackwardsCompatible();
189
-
190
- var imageTypes = $.facybox.settings.imageTypes.join('|');
191
- $.facybox.settings.imageTypesRegexp = new RegExp('\.(' + imageTypes + ')', 'i');
192
-
193
- $('body').append($.facybox.html());//insert facybox to dom
194
-
195
-
196
- // ie hacks
197
- var $f = $("#facybox");
198
-
199
- // it amazes me that this is still better than native png32 support in ie8...
200
- if($.browser.msie){
201
- $(".n, .s, .w, .e, .nw, .ne, .sw, .se", $f).fixPNG();
202
- // ie6
203
- if(parseInt($.browser.version) <= 6){
204
- var css = "<style type='text/css' media='screen'>* html #facybox_overlay { position: absolute; height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');}</style>"
205
- $('head').append(css);
206
- $(".close", $f).fixPNG();
207
- $(".close",$f).css({
208
- 'right': '15px'
209
- });
210
- }
211
- $(".w, .e",$f).css({
212
- width: '13px',
213
- 'font-size': '0'
214
- }).text("&nbsp;");
215
- }
216
-
217
- //if we did not autoload, so the user has just clicked the facybox and pre-loading is useless
218
- if(! $.facybox.settings.noAutoload){
219
- preloadImages();
220
- }
221
- $('#facybox .close').click($.facybox.close);
222
- }
223
-
224
- //preloads all the static facybox images
225
- function preloadImages(){
226
- //TODO preload prev/next ?
227
- $('#facybox').find('.n, .close , .s, .w, .e, .nw, ne, sw, se').each(function() {
228
- backgroundImage = $(this).css('background-image');
229
- if (backgroundImage === 'none') return;
230
- var img = new Image();
231
- img.src = backgroundImage.replace(/url\("?(.*?)"?\)/, '$1');
232
- });
233
- // var img = new Image();
234
- // img.src = 'images/loading.gif';
235
- /*
236
- TODO: remove and load preloader from filament group
237
- */
238
- }
239
-
240
- function makeBackwardsCompatible() {
241
- var $s = $.facybox.settings;
242
- $s.imageTypes = $s.image_types || $s.imageTypes;
243
- $s.facyboxHtml = $s.facybox_html || $s.facyboxHtml;
244
- }
245
-
246
- // Figures out what you want to display and displays it
247
- // formats are:
248
- // div: #id
249
- // image: blah.extension
250
- // ajax: anything else
251
- function revealHref(href) {
252
- // div
253
- if(href.match(/#/)) {
254
- var url = window.location.href.split('#')[0];
255
- var target = href.replace(url,'');
256
- if (target == '#') return
257
- $.facybox.reveal($(target).html(), $.facybox.content_klass);
258
- // image
259
- } else if(href.match($.facybox.settings.imageTypesRegexp)) {
260
- revealImage(href);
261
- // ajax
262
- } else { revealAjax(href)}
263
- }
264
-
265
- function revealGallery(hrefs, initial) {
266
- //initial position
267
- var position = $.inArray(initial||0,hrefs);
268
- if(position ==-1){
269
- position = 0;
270
- }
271
-
272
- //build navigation and ensure it will be removed
273
- var $footer = $('#facybox div.footer');
274
-
275
- $footer.append($('<div class="navigation"><a class="prev"/><a class="next"/><div class="counter"></div></div>'));
276
- var $nav = $('#facybox .navigation');
277
-
278
- $(document).bind('afterClose.facybox',function(){$nav.remove()});
279
-
280
- function change_image(diff){
281
- position = (position + diff + hrefs.length) % hrefs.length;
282
- revealImage(hrefs[position]);
283
- $nav.find('.counter').html(position +1+" / "+hrefs.length);
284
- }
285
- change_image(0);
286
-
287
- //bind events
288
- $('.prev',$nav).click(function(){change_image(-1)});
289
- $('.next',$nav).click(function(){change_image(1)});
290
- $(document).bind('keydown.facybox', function(e) {
291
- if(e.keyCode == 39)change_image(1); // right
292
- if(e.keyCode == 37)change_image(-1); // left
293
- });
294
- }
295
-
296
- function revealImage(href){
297
-
298
- var $f = $("#facybox");
299
-
300
- $('#facybox .content').empty();
301
- $.facybox.loading();//TODO loading must be shown until image is loaded -> stopLoading() on onload
302
- var image = new Image();
303
- image.onload = function() {
304
- $.facybox.reveal('<div class="image"><img src="' + image.src + '" /></div>', $.facybox.content_klass);
305
-
306
- var $footer = $("div.footer",$f);
307
- var $content = $("div.content",$f);
308
- var $navigation = $("div.navigation",$f);
309
- var $next = $("a.next",$f);
310
- var $prev = $("a.prev",$f);
311
- var $counter = $("div.counter",$f);
312
-
313
- var size = [$content.width(), $content.height()];
314
-
315
- $footer.width(size[0]).height(size[1]);
316
- $navigation.width(size[0]).height(size[1]);
317
- $next.width(parseInt(size[0]/2)).height(size[1]).css({ left: (size[0]/2) });
318
- $prev.width(size[0]/2).height(size[1]);
319
- $counter.width(parseInt($f.width() -26)).css({'opacity' : 0.5, '-moz-border-radius' : '8px', '-webkit-border-radius' : '8px'})
320
-
321
- }
322
- image.src = href;
323
- }
324
-
325
- function revealAjax(href) {
326
- // $.get(href, function(data) { $.facybox.reveal(data) });
327
- $.ajax({
328
- type: "GET",
329
- url: href,
330
- complete: function(XMLHttpRequest, textStatus) {
331
- content_type = XMLHttpRequest.getResponseHeader("Content-Type");
332
- if ( jQuery.inArray(content_type, $.facybox.settings.imageMimeTypes) >= 0 ) {
333
- revealImage(href)
334
- $.facybox.centralize();
335
- } else {
336
- $.facybox.reveal( XMLHttpRequest.responseText );
337
- }
338
- }
339
- });
340
- }
341
-
342
- function skipOverlay() {
343
- return $.facybox.settings.overlay == false || $.facybox.settings.opacity === null
344
- }
345
-
346
- function showOverlay() {
347
- if(skipOverlay()) return;
348
-
349
- if($('#facybox_overlay').length == 0){
350
- $("body").append('<div id="facybox_overlay" class="facybox_hide"></div>');
351
- }
352
-
353
- $('#facybox_overlay').hide().addClass("facybox_overlayBG")
354
- .css('opacity', $.facybox.settings.opacity)
355
- .fadeIn(200);
356
- if(!$.facybox.settings.modal){
357
- $('#facybox_overlay').click(function(){ $(document).trigger('close.facybox')})
358
- }
359
- }
360
-
361
- function hideOverlay() {
362
- if(skipOverlay()) return;
363
-
364
- $('#facybox_overlay').fadeOut(200, function(){
365
- $("#facybox_overlay").removeClass("facybox_overlayBG").
366
- addClass("facybox_hide").
367
- remove();
368
- })
369
- }
370
-
371
- /*
372
- * Bindings
373
- */
374
-
375
- $(document).bind('close.facybox', function() {
376
- $(document).unbind('keydown.facybox');
377
-
378
- // ie hacks
379
- var $f = $("#facybox");
380
- if($.browser.msie){
381
- $('#facybox').hide();
382
- hideOverlay();
383
- $('#facybox .loading').remove();
384
- } else {
385
- $('#facybox').fadeOut('fast',function() {
386
- $('#facybox .content').removeClass().addClass('content');//revert changing class
387
- hideOverlay();
388
- $('#facybox .loading').remove();
389
- })
390
- }
391
-
392
- $(document).trigger('afterClose.facybox');
393
- });
394
-
395
- })(jQuery);
@@ -1,146 +0,0 @@
1
- #facybox {
2
- position: absolute;
3
- top: 0;
4
- left: 0;
5
- margin: -20px 0 0 -20px;
6
- z-index: 100;
7
- text-align: left;
8
- padding: 18px;
9
- min-width: 40px;
10
- min-height: 40px;
11
- }
12
- #facybox .w, #facybox .e, #facybox .nw,
13
- #facybox .ne, #facybox .sw, #facybox .se {
14
- min-height: 18px;
15
- min-width: 13px;
16
- }
17
- #facybox .n, #facybox .s {
18
- background-repeat: repeat-x;
19
- height: 18px;
20
- }
21
- #facybox .w, #facybox .e {
22
- background-repeat: repeat-y;
23
- }
24
-
25
- #facybox .nw, #facybox .ne, #facybox .sw, #facybox .se,
26
- #facybox a.next, #facybox a.prev,
27
- #facybox .closek #facybox .loading {
28
- background-repeat: no-repeat;
29
- }
30
-
31
- #facybox a.next {
32
- background-position: 9999px 50%;
33
- }
34
-
35
- #facybox a.prev {
36
- background-position: -9999px 50%;
37
- }
38
- #facybox a.prev:hover{
39
- background-position: 0 50%;
40
- }
41
- #facybox a.next:hover{
42
- background-position: 100% 50%;
43
- }
44
-
45
- #facybox .close {
46
- position: absolute;
47
- top: 5px;
48
- right: 0;
49
- display: block;
50
- width: 30px;
51
- height: 30px;
52
- }
53
-
54
- #facybox .prev,
55
- #facybox .next{
56
- display: block;
57
- position: absolute;
58
- cursor: pointer;
59
- }
60
-
61
- #facybox .navigation .counter{
62
- background: #000;
63
- color: #fff;
64
- text-align: center;
65
- position: absolute;
66
- bottom: -33px;
67
- left: -10px;
68
- padding: 2px 0;
69
- font-size: 11px;
70
- }
71
-
72
- #facybox .loading {
73
- margin: 0 auto;
74
- width: 22px;
75
- height: 22px;
76
- text-align: center;
77
- }
78
-
79
- #facybox .popup {
80
- position: relative;
81
- }
82
-
83
- #facybox table {
84
- border-collapse: collapse;
85
- }
86
-
87
- #facybox td {
88
- border-bottom: 0;
89
- padding: 0;
90
- }
91
-
92
- #facybox .body {
93
- padding: 10px;
94
- background: #fff;
95
- width: auto;
96
- }
97
-
98
- #facybox .loading {
99
- text-align: center;
100
- }
101
-
102
- #facybox .image {
103
- text-align: center;
104
- line-height: 0;
105
- }
106
-
107
- #facybox img {
108
- border: 0;
109
- margin: 0;
110
- }
111
-
112
- #facybox .footer {
113
- position: absolute;
114
- top: 28px;
115
- left: 23px;
116
- padding: 0;
117
- width: 90%;
118
- }
119
-
120
- #facybox .footer img {
121
- vertical-align: middle;
122
- }
123
-
124
- #facybox .tl, #facybox .tr, #facybox .bl, #facybox .br {
125
- height: 10px;
126
- width: 10px;
127
- overflow: hidden;
128
- padding: 0;
129
- }
130
-
131
- #facybox_overlay {
132
- position: fixed;
133
- top: 0px;
134
- left: 0px;
135
- height: 100%;
136
- width: 100%;
137
- }
138
-
139
- .facybox_hide {
140
- z-index:-100;
141
- }
142
-
143
- .facybox_overlayBG {
144
- background-color: #000;
145
- z-index: 99;
146
- }