Robin image optimizer — save money on image compression - Version 1.5.0

Version Description

  • Added: Subscribe form
  • Fixed: Potential rest api registration error
  • Added: Support for the WP Retina 2x plugin
  • Added: Badge with the date of the next quota update
Download this release

Release Info

Developer webtemyk
Plugin Icon 128x128 Robin image optimizer — save money on image compression
Version 1.5.0
Comparing to
See all releases

Code changes from version 1.4.6 to 1.5.0

Files changed (145) hide show
  1. admin/activation.php +3 -3
  2. admin/ajax/bulk-optimization.php +9 -3
  3. admin/assets/css/base-statistic.css +676 -675
  4. admin/assets/css/sweetalert-custom.css +155 -155
  5. admin/assets/js/bulk-optimization.js +23 -4
  6. admin/boot.php +10 -9
  7. admin/includes/classes/class-rio-optimize-template.php +2 -2
  8. admin/pages/class-rio-license.php +3 -3
  9. admin/pages/class-rio-log.php +2 -2
  10. admin/pages/class-rio-page.php +1 -1
  11. admin/pages/class-rio-settings.php +14 -2
  12. admin/pages/class-rio-statistic.php +0 -5
  13. assets/js/jquery.lazy.js +871 -871
  14. assets/js/jquery.lazy.min.js +1 -1
  15. includes/class-rio-plugin.php +3 -3
  16. includes/classes/class-rio-media-library.php +9 -0
  17. includes/classes/class-rio-views.php +4 -4
  18. includes/classes/processors/class-rio-server-clearfy1.php +0 -266
  19. includes/classes/processors/class-rio-server-resmush.php +1 -1
  20. includes/classes/processors/class-rio-server-smushpro.php +0 -142
  21. includes/classes/processors/class-rio-server-webcraftic.php +0 -133
  22. includes/functions.php +3 -3
  23. languages/robin-image-optimizer-ru_RU.mo +0 -0
  24. languages/robin-image-optimizer-ru_RU.po +1030 -1234
  25. libs/addons/admin/assets/js/custom-folders.js +4 -4
  26. libs/addons/admin/boot.php +1 -1
  27. libs/addons/includes/classes/webp/class-webp-delivery.php +25 -26
  28. libs/addons/includes/classes/webp/vendor/autoload.php +7 -7
  29. libs/addons/includes/classes/webp/vendor/composer/ClassLoader.php +445 -445
  30. libs/addons/includes/classes/webp/vendor/composer/LICENSE +21 -21
  31. libs/addons/includes/classes/webp/vendor/composer/autoload_classmap.php +9 -10
  32. libs/addons/includes/classes/webp/vendor/composer/autoload_namespaces.php +9 -9
  33. libs/addons/includes/classes/webp/vendor/composer/autoload_psr4.php +10 -10
  34. libs/addons/includes/classes/webp/vendor/composer/autoload_real.php +52 -55
  35. libs/addons/includes/classes/webp/vendor/composer/autoload_static.php +31 -36
  36. libs/addons/includes/classes/webp/vendor/composer/installed.json +59 -63
  37. libs/addons/views/modal-select-custom-folders.php +1 -1
  38. libs/addons/views/part-bulk-optimization-table-folders.php +1 -1
  39. libs/factory/adverts/boot.php +12 -12
  40. libs/factory/adverts/includes/class-base.php +6 -6
  41. libs/factory/adverts/includes/class-dashboard-widget.php +4 -4
  42. libs/factory/adverts/includes/class-rest-request.php +4 -4
  43. libs/factory/adverts/langs/wbcr_factory_adverts_109-ru_RU.po +0 -83
  44. libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.mo +0 -0
  45. libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.po +0 -83
  46. libs/factory/adverts/langs/wbcr_factory_adverts_114-ru_RU.mo +0 -0
  47. libs/factory/adverts/langs/wbcr_factory_adverts_114-ru_RU.po +0 -83
  48. libs/factory/adverts/langs/{wbcr_factory_adverts_106-ru_RU.mo → wbcr_factory_adverts_117-ru_RU.mo} +0 -0
  49. libs/factory/adverts/langs/{wbcr_factory_adverts_106-ru_RU.po → wbcr_factory_adverts_117-ru_RU.po} +0 -0
  50. libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css +2 -2
  51. libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css +2 -2
  52. libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css +2 -2
  53. libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css +3 -3
  54. libs/factory/bootstrap/assets/css-min/bootstrap.datepicker.min.css +1 -1
  55. libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css +2 -2
  56. libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css +2 -2
  57. libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css +2 -2
  58. libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css +2 -2
  59. libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css +2 -2
  60. libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css +2 -2
  61. libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css +2 -2
  62. libs/factory/bootstrap/assets/css-min/control.checkbox.min.css +2 -2
  63. libs/factory/bootstrap/assets/css-min/control.dropdown.min.css +2 -2
  64. libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css +2 -2
  65. libs/factory/bootstrap/assets/css-min/holder.more-link.min.css +2 -2
  66. libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js +2 -2
  67. libs/factory/bootstrap/assets/js-min/bootstrap.tooltip.min.js +1 -1
  68. libs/factory/bootstrap/assets/js-min/control.checkbox.min.js +2 -2
  69. libs/factory/bootstrap/assets/js-min/control.dropdown.min.js +2 -2
  70. libs/factory/bootstrap/assets/js-min/control.list.min.js +2 -2
  71. libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js +2 -2
  72. libs/factory/bootstrap/boot.php +9 -9
  73. libs/factory/bootstrap/includes/functions.php +10 -10
  74. libs/factory/bootstrap/package-lock.json +1810 -0
  75. libs/factory/clearfy/assets/css/clearfy-base.css +103 -24
  76. libs/factory/clearfy/assets/css/clearfy-base.css.map +1 -1
  77. libs/factory/clearfy/assets/css/clearfy-base.less +96 -0
  78. libs/factory/clearfy/assets/css/components.css +24 -24
  79. libs/factory/clearfy/assets/css/libs/autocomplete.css +9 -9
  80. libs/factory/clearfy/assets/css/page-setup.css +102 -102
  81. libs/factory/clearfy/assets/js/clearfy-globals.js +26 -26
  82. libs/factory/clearfy/assets/js/clearfy-license-manager.js +4 -4
  83. libs/factory/clearfy/assets/js/clearfy-search-options.js +2 -2
  84. libs/factory/clearfy/assets/js/clearfy-widgets.js +44 -0
  85. libs/factory/clearfy/assets/js/globals.js +0 -203
  86. libs/factory/clearfy/assets/js/libs/jquery.autocomplete.min.js +1 -1
  87. libs/factory/clearfy/assets/js/license-manager.js +0 -92
  88. libs/factory/clearfy/assets/js/search-options.js +0 -40
  89. libs/factory/clearfy/boot.php +25 -25
  90. libs/factory/clearfy/includes/ajax-handlers.php +8 -8
  91. libs/factory/clearfy/includes/class-configurate.php +3 -3
  92. libs/factory/clearfy/includes/class-helpers.php +1 -1
  93. libs/factory/clearfy/includes/class-search-options.php +1 -1
  94. libs/factory/clearfy/langs/wbcr_factory_clearfy_221-ru_RU.mo +0 -0
  95. libs/factory/clearfy/langs/wbcr_factory_clearfy_221-ru_RU.po +0 -307
  96. libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.mo +0 -0
  97. libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.po +0 -307
  98. libs/factory/clearfy/langs/wbcr_factory_clearfy_227-ru_RU.mo +0 -0
  99. libs/factory/clearfy/langs/wbcr_factory_clearfy_227-ru_RU.po +0 -307
  100. libs/factory/clearfy/langs/{wbcr_factory_clearfy_217-ru_RU.mo → wbcr_factory_clearfy_230-ru_RU.mo} +0 -0
  101. libs/factory/clearfy/langs/{wbcr_factory_clearfy_217-ru_RU.po → wbcr_factory_clearfy_230-ru_RU.po} +0 -0
  102. libs/factory/clearfy/pages/class-page-license.php +33 -33
  103. libs/factory/clearfy/pages/class-page-more-features.php +23 -23
  104. libs/factory/clearfy/pages/class-page-setup.php +18 -18
  105. libs/factory/clearfy/pages/class-pages-components.php +19 -19
  106. libs/factory/clearfy/pages/class-pages.php +95 -49
  107. libs/factory/clearfy/pages/setup-parts/class-step-custom.php +7 -7
  108. libs/factory/clearfy/pages/setup-parts/class-step-form.php +12 -12
  109. libs/factory/clearfy/pages/setup-parts/class-step.php +5 -5
  110. libs/factory/core/ajax/install-addons.php +10 -10
  111. libs/factory/core/assets/js/core-components.js +14 -14
  112. libs/factory/core/assets/js/core-general.js +6 -6
  113. libs/factory/core/boot.php +32 -32
  114. libs/factory/core/includes/activation/class-factory-activator.php +3 -3
  115. libs/factory/core/includes/activation/class-factory-update.php +3 -3
  116. libs/factory/core/includes/assets-managment/class-factory-assets-list.php +4 -4
  117. libs/factory/core/includes/assets-managment/class-factory-script-list.php +2 -2
  118. libs/factory/core/includes/assets-managment/class-factory-style-list.php +1 -1
  119. libs/factory/core/includes/class-check-compatibility.php +3 -3
  120. libs/factory/core/includes/class-factory-migrations.php +13 -13
  121. libs/factory/core/includes/class-factory-notices.php +5 -5
  122. libs/factory/core/includes/class-factory-options.php +2 -2
  123. libs/factory/core/includes/class-factory-plugin-abstract.php +95 -70
  124. libs/factory/core/includes/class-factory-plugin-base.php +25 -25
  125. libs/factory/core/includes/class-factory-requests.php +1 -1
  126. libs/factory/core/includes/class-factory-requirements.php +6 -6
  127. libs/factory/core/includes/components/class-delete-component-button.php +1 -1
  128. libs/factory/core/includes/components/class-install-component-button.php +11 -11
  129. libs/factory/core/includes/entities/class-factory-paths.php +1 -1
  130. libs/factory/core/includes/entities/class-factory-support.php +1 -1
  131. libs/factory/core/includes/functions.php +7 -7
  132. libs/factory/core/includes/premium/class-factory-license-interface.php +1 -1
  133. libs/factory/core/includes/premium/class-factory-manager.php +10 -10
  134. libs/factory/core/includes/premium/class-factory-provider-abstract.php +6 -6
  135. libs/factory/core/includes/updates/class-factory-premium-upgrader.php +11 -11
  136. libs/factory/core/includes/updates/class-factory-upgrader.php +9 -9
  137. libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php +5 -5
  138. libs/factory/core/includes/updates/repositories/class-factory-wordpress.php +4 -4
  139. libs/factory/core/langs/wbcr_factory_425-ru_RU.mo +0 -0
  140. libs/factory/core/langs/wbcr_factory_429-ru_RU.mo +0 -0
  141. libs/factory/core/langs/wbcr_factory_429-ru_RU.po +0 -128
  142. libs/factory/core/langs/wbcr_factory_432-ru_RU.mo +0 -0
  143. libs/factory/core/langs/wbcr_factory_432-ru_RU.po +0 -128
  144. libs/factory/core/langs/wbcr_factory_436-ru_RU.mo +0 -0
  145. libs/factory/core/langs/wbcr_factory_436-ru_RU.po +0 -69
admin/activation.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Webcraftic <wordpress.webraftic@gmail.com>
7
  * @copyright (c) 09.09.2017, Webcraftic
8
- * @see Factory436_Activator
9
  * @version 1.0
10
  */
11
 
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- class WIO_Activation extends Wbcr_Factory436_Activator {
18
 
19
  /**
20
  * Runs activation actions.
@@ -49,7 +49,7 @@ class WIO_Activation extends Wbcr_Factory436_Activator {
49
 
50
  RIO_Process_Queue::try_create_plugin_tables();
51
 
52
- WbcrFactoryClearfy227_Helpers::flushPageCache();
53
 
54
  WRIO_Logger::info( 'Parent plugin installation complete!' );
55
  }
5
  *
6
  * @author Webcraftic <wordpress.webraftic@gmail.com>
7
  * @copyright (c) 09.09.2017, Webcraftic
8
+ * @see Factory439_Activator
9
  * @version 1.0
10
  */
11
 
14
  exit;
15
  }
16
 
17
+ class WIO_Activation extends Wbcr_Factory439_Activator {
18
 
19
  /**
20
  * Runs activation actions.
49
 
50
  RIO_Process_Queue::try_create_plugin_tables();
51
 
52
+ WbcrFactoryClearfy230_Helpers::flushPageCache();
53
 
54
  WRIO_Logger::info( 'Parent plugin installation complete!' );
55
  }
admin/ajax/bulk-optimization.php CHANGED
@@ -343,8 +343,14 @@ add_action( 'wp_ajax_wbcr-rio-check-user-balance', function () {
343
 
344
  $current_quota = (int) $data->response->quota;
345
  WRIO_Plugin::app()->app()->updateOption( 'current_quota', $current_quota );
 
 
 
 
 
 
 
 
346
 
347
- wp_send_json_success( [
348
- 'balance' => $current_quota,
349
- ] );
350
  } );
343
 
344
  $current_quota = (int) $data->response->quota;
345
  WRIO_Plugin::app()->app()->updateOption( 'current_quota', $current_quota );
346
+
347
+ $output = ['balance' => $current_quota];
348
+
349
+ if ( $optimization_server == 'server_5') {
350
+ $reset_at = (int) $data->response->reset_at;
351
+ $reset_at += (int) get_option('gmt_offset', 0);
352
+ $output['reset_at'] = date('d-m-Y H:i', $reset_at);
353
+ }
354
 
355
+ wp_send_json_success( $output );
 
 
356
  } );
admin/assets/css/base-statistic.css CHANGED
@@ -1,675 +1,676 @@
1
- /**
2
- * Styles for the Widget to be displayed in the Clearfy plugin
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 14.06.2019
6
- */
7
- #WBCR {
8
- /* Doughnut */
9
- /*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
10
- .wio-overview-chart-container {
11
- float: none;
12
- margin-right: 0;
13
- }
14
- }
15
-
16
- @media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
17
- .wio-overview-chart-container {
18
- float: none;
19
- margin-right: 0;
20
- }
21
-
22
- .wio-doughnut-legend {
23
- margin-top: 18px;
24
- }
25
-
26
- .wio-global-optim-phrase {
27
- padding-top: 0;
28
- width: auto;
29
- }
30
- }*/
31
- }
32
- #WBCR .wio-clear {
33
- clear: both;
34
- }
35
- #WBCR #io_folders_statistic-wbcr_clearfy-tab,
36
- #WBCR #io_nextgen_gallery_statistic-wbcr_clearfy-tab {
37
- display: none !important;
38
- }
39
- #WBCR .wrio-statistic-nav {
40
- margin: 0;
41
- background: #efefef;
42
- }
43
- #WBCR .wrio-statistic-nav ul {
44
- margin: 0;
45
- }
46
- #WBCR .wrio-statistic-nav ul li {
47
- position: relative;
48
- display: inline-block;
49
- margin: 0 0 0 0;
50
- background: #ffffff;
51
- box-shadow: 0 -2px 0 #eaeaea;
52
- }
53
- #WBCR .wrio-statistic-nav ul li:hover {
54
- background: #f7f7f7;
55
- }
56
- #WBCR .wrio-statistic-nav ul li.active {
57
- background: #f7f7f7;
58
- border-top: 1px solid #d4d4d4;
59
- border-left: 1px solid #d4d4d4;
60
- border-right: 1px solid #d4d4d4;
61
- border-bottom: 1px solid #f7f7f7;
62
- margin-bottom: -1px;
63
- }
64
- #WBCR .wrio-statistic-nav ul li.active a {
65
- color: #222;
66
- }
67
- #WBCR .wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent {
68
- border: 2px dashed #8bc34a;
69
- color: #5e8237;
70
- }
71
- #WBCR .wrio-statistic-nav ul li.active .dashicons,
72
- #WBCR .wrio-statistic-nav ul li.active .dashicons-before:before {
73
- color: #ff8b66;
74
- }
75
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab {
76
- display: block;
77
- padding: 10px 20px 10px 20px;
78
- text-decoration: none;
79
- color: #d4d4d4;
80
- font-size: 22px;
81
- line-height: 2;
82
- }
83
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:active,
84
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:focus {
85
- background: 0;
86
- box-shadow: none;
87
- outline: none;
88
- }
89
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons,
90
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before {
91
- display: inline-block;
92
- width: 30px;
93
- height: 30px;
94
- font-size: 30px;
95
- line-height: 1.5;
96
- margin-right: 15px;
97
- color: #d4d4d4;
98
- }
99
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent {
100
- display: inline-block;
101
- width: 42px;
102
- height: 42px;
103
- border-radius: 100px;
104
- border: 2px dashed #e4e4e4;
105
- padding: 5px;
106
- margin-left: 30px;
107
- font-size: 14px;
108
- font-weight: 600;
109
- text-align: center;
110
- color: #bdbdbd;
111
- }
112
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after {
113
- display: inline-block;
114
- position: absolute;
115
- content: 'PRO';
116
- background: #ff5722;
117
- border-radius: 4px;
118
- color: #fff;
119
- font-size: 10px;
120
- line-height: 1;
121
- font-style: normal;
122
- padding: 4px 6px;
123
- margin-left: 4px;
124
- vertical-align: top;
125
- top: 10px;
126
- left: auto;
127
- right: 10px;
128
- z-index: 11;
129
- }
130
- #WBCR .wrio-table {
131
- width: 100%;
132
- table-layout: fixed;
133
- box-sizing: border-box;
134
- border-spacing: 3px;
135
- background: #fff;
136
- border-top: 2px dashed #cac9c9;
137
- }
138
- #WBCR .wrio-table th,
139
- #WBCR .wrio-table td {
140
- padding: 16px 10px;
141
- text-align: center;
142
- }
143
- #WBCR .wrio-table th {
144
- background: #f3f3f3;
145
- color: #777777;
146
- box-shadow: 0 1px 0 #d8d8d8;
147
- }
148
- #WBCR .wrio-table th:nth-child(2n+1) {
149
- background: #f9f9f9;
150
- }
151
- #WBCR .wrio-table tr.wrio-error {
152
- background-color: #ffe9e9 !important;
153
- }
154
- #WBCR .wrio-table .wrio-table-spinner {
155
- background: url("../img/quick-start-loader.gif") center center no-repeat;
156
- }
157
- #WBCR .wrio-table .wrio-table-highlighter {
158
- display: inline-block;
159
- padding: 3px 7px;
160
- background: #f3f3f3;
161
- }
162
- #WBCR .wrio-table .wbcr-rio-server-success {
163
- color: #8CC152;
164
- }
165
- #WBCR .wrio-table .wbcr-rio-server-error {
166
- color: #fb5d49;
167
- }
168
- #WBCR .wrio-table .wbcr-rio-server-warning {
169
- color: #ffb635;
170
- }
171
- #WBCR .wrio-table.wbcr-rio-folders-table td:nth-child(3) {
172
- text-align: left;
173
- }
174
- #WBCR .wrio-servers {
175
- padding: 40px 20px;
176
- }
177
- #WBCR .wrio-servers label span {
178
- display: block;
179
- font-weight: normal;
180
- font-size: 12px;
181
- color: #b7b2b2;
182
- }
183
- #WBCR .wrio-servers #wrio-change-optimization-server {
184
- position: relative;
185
- display: inline-block;
186
- max-width: 400px;
187
- margin-right: 15px;
188
- margin-bottom: 0;
189
- border: 1px solid #d2d0d0;
190
- background: #efefef;
191
- }
192
- #WBCR .wrio-servers .wrio-servers-info {
193
- margin: 0 0 0;
194
- padding: 20px;
195
- background: #fff;
196
- }
197
- #WBCR .wrio-servers .wrio-server-status-wrap {
198
- display: inline-block;
199
- margin-top: 8px;
200
- }
201
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status {
202
- background: transparent;
203
- color: #fff;
204
- padding: 3px 5px;
205
- border-radius: 4px;
206
- }
207
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down {
208
- background: #ff5722;
209
- }
210
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable {
211
- background: #8bc34a;
212
- }
213
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess {
214
- display: inline-block;
215
- height: 10px;
216
- width: 30px;
217
- background: url("../img/quick-start-loader.gif") center no-repeat;
218
- }
219
- #WBCR .wrio-servers .wrio-premium-user-balance-wrap {
220
- display: inline-block;
221
- margin-top: 8px;
222
- margin-left: 10px;
223
- }
224
- #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance {
225
- color: #fff;
226
- padding: 3px 5px;
227
- border-radius: 4px;
228
- background: #ffc107;
229
- }
230
- #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess {
231
- display: inline-block;
232
- height: 10px;
233
- width: 30px;
234
- background: url("../img/quick-start-loader.gif") center no-repeat;
235
- }
236
- #WBCR .wio-columns {
237
- overflow: hidden;
238
- padding: 15px 0;
239
- counter-reset: cols;
240
- }
241
- #WBCR .wio-columns [class^="col-"] {
242
- float: left;
243
- -webkit-box-sizing: border-box;
244
- -moz-box-sizing: border-box;
245
- box-sizing: border-box;
246
- }
247
- #WBCR .wio-columns .col-1-3 {
248
- width: 33.333%;
249
- padding-left: 28px;
250
- }
251
- #WBCR .wio-columns .col-2-3 {
252
- width: 66.666%;
253
- padding-left: 28px;
254
- }
255
- #WBCR .wio-columns .col-1-2 {
256
- width: 50%;
257
- padding: 0 20px;
258
- }
259
- #WBCR .wio-columns .col-statistics.col-statistics {
260
- width: 60%;
261
- }
262
- #WBCR .wio-columns .col-chart.col-chart {
263
- width: 40%;
264
- position: relative;
265
- padding: 20px;
266
- font-size: 12px;
267
- text-transform: uppercase;
268
- background: #f1f1f1b3;
269
- color: #abacaf;
270
- font-weight: bold;
271
- border-radius: 5px;
272
- margin-top: 10px;
273
- text-align: left;
274
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
275
- }
276
- #WBCR .wio-col {
277
- float: left;
278
- width: 50%;
279
- box-sizing: border-box;
280
- -webkit-flex-basis: 50%;
281
- -ms-flex-preferred-size: 50%;
282
- flex-basis: 50%;
283
- }
284
- #WBCR .wio-col {
285
- padding-right: 20px;
286
- }
287
- #WBCR .wio-col + .wio-col {
288
- padding-right: 0;
289
- padding-left: 50px;
290
- }
291
- #WBCR .wio-col:target {
292
- animation: wiohello 1s 3 linear backwards;
293
- }
294
- #WBCR .wio-number-you-optimized {
295
- margin-bottom: 1.35em;
296
- overflow: hidden;
297
- }
298
- #WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct {
299
- color: #828282;
300
- }
301
- #WBCR .wio-number-you-optimized .wio-number {
302
- display: table-cell;
303
- padding-right: 15px;
304
- font-size: 48px;
305
- font-weight: bold;
306
- line-height: 1;
307
- vertical-align: middle;
308
- white-space: nowrap;
309
- color: #828282;
310
- }
311
- #WBCR .wio-number-you-optimized .wio-text {
312
- display: table-cell;
313
- vertical-align: middle;
314
- overflow: hidden;
315
- font-size: 12px;
316
- color: #828282;
317
- }
318
- #WBCR .wio-number-you-optimized > p {
319
- display: table;
320
- }
321
- #WBCR .wio-bars {
322
- padding-right: 15px;
323
- }
324
- #WBCR .wio-bars p {
325
- font-size: 12px;
326
- margin-bottom: 5px;
327
- }
328
- #WBCR .wio-bars + .wio-number-you-optimized {
329
- border-bottom: 0;
330
- padding-top: 0.85em;
331
- }
332
- #WBCR .wio-bars + .wio-number-you-optimized p {
333
- color: #72a53b;
334
- }
335
- #WBCR .wio-bar-negative .wio-progress {
336
- background: #D2D3D6;
337
- }
338
- #WBCR .wio-bar-negative .wio-barnb {
339
- color: #9d9fa5;
340
- }
341
- #WBCR .wio-progress {
342
- height: 8px;
343
- transition: width 0.3s;
344
- /*.wio-bar-negative {
345
- width: 92% !important;
346
- }*/
347
- }
348
- #WBCR .wio-bar-positive .wio-progress {
349
- background: #8CC152;
350
- }
351
- #WBCR .wio-bar-positive .wio-barnb {
352
- color: #72a53b;
353
- }
354
- #WBCR .wio-bar-primary .wio-progress {
355
- background: #8CC152;
356
- }
357
- #WBCR .wio-bar-primary .wio-barnb {
358
- color: #72a53b;
359
- }
360
- #WBCR .wio-right-outside-number .wio-barnb {
361
- display: block;
362
- margin-right: -5.25em;
363
- text-align: right;
364
- font-weight: bold;
365
- line-height: 0.8;
366
- }
367
- #WBCR .wio-chart {
368
- position: relative;
369
- top: 1px;
370
- display: inline-block;
371
- vertical-align: middle;
372
- }
373
- #WBCR .wio-chart-container {
374
- position: relative;
375
- display: inline-block;
376
- margin-right: 5px;
377
- }
378
- #WBCR .wio-chart-container canvas {
379
- display: block;
380
- }
381
- #WBCR .wio-overview-chart-container {
382
- float: left;
383
- margin-right: 20px;
384
- }
385
- #WBCR .wio-chart-percent {
386
- position: absolute;
387
- left: 0;
388
- right: 0;
389
- top: 50%;
390
- margin-top: -0.5em;
391
- line-height: 0.8;
392
- text-align: center;
393
- font-size: 54px;
394
- font-weight: bold;
395
- color: #afafaf;
396
- }
397
- #WBCR .wio-chart-percent span {
398
- font-size: 20px;
399
- vertical-align: super;
400
- }
401
- #WBCR #wio-overview-chart-legend {
402
- overflow: hidden;
403
- }
404
- #WBCR .wio-doughnut-legend li {
405
- display: inline-block;
406
- position: relative;
407
- margin-bottom: 15px;
408
- border-radius: 5px;
409
- padding: 3px 8px 2px 31px;
410
- font-size: 9px;
411
- cursor: default;
412
- -webkit-transition: background-color 200ms ease-in-out;
413
- -moz-transition: background-color 200ms ease-in-out;
414
- -o-transition: background-color 200ms ease-in-out;
415
- transition: background-color 200ms ease-in-out;
416
- }
417
- #WBCR .wio-doughnut-legend li span {
418
- display: block;
419
- position: absolute;
420
- left: 0;
421
- top: 0;
422
- width: 25px;
423
- height: 25px;
424
- border-radius: 50%;
425
- }
426
- #WBCR .wio-optimize-button {
427
- min-width: 180px;
428
- padding: 12px 30px;
429
- background: #c9deb2;
430
- color: #586549;
431
- border: 0;
432
- box-shadow: none;
433
- font-size: 14px;
434
- text-transform: uppercase !important;
435
- font-weight: bold;
436
- border-radius: 4px;
437
- outline: none;
438
- }
439
- #WBCR .wio-optimize-button:active {
440
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
441
- }
442
- #WBCR .wio-optimize-button:disabled {
443
- background: #e2edd6;
444
- color: #a5b295;
445
- }
446
- #WBCR .wio-optimize-button.wio-running {
447
- color: #a57b3c;
448
- background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat;
449
- padding-left: 50px;
450
- }
451
- #WBCR .wio-global-optim-phrase {
452
- width: 180px;
453
- padding-top: 20px;
454
- font-size: 14px;
455
- text-align: center;
456
- }
457
- #WBCR .wio-total-percent {
458
- color: #587f2e;
459
- }
460
- #WBCR #wio-start-msg-top,
461
- #WBCR #wio-start-msg-right,
462
- #WBCR #wio-start-msg-complete {
463
- display: none;
464
- }
465
- #WBCR .wio-text-left {
466
- text-align: left;
467
- }
468
- #WBCR span.wio-num {
469
- display: inline !important;
470
- position: inherit !important;
471
- }
472
- #WBCR .wio-image-optimize-board {
473
- padding-bottom: 0 !important;
474
- }
475
- #WBCR .wio-page-statistic {
476
- padding-left: 40px;
477
- }
478
- #WBCR .wio-page-statistic .wio-chart-percent {
479
- margin-top: -1.1em;
480
- }
481
- #WBCR .wrio-optimization-progress {
482
- background: none;
483
- padding: 0;
484
- /*button {
485
- padding: 5px 10px;
486
- border: 0;
487
- font-size: 11px;
488
- text-transform: uppercase !important;
489
- font-weight: bold;
490
- border-radius: 4px;
491
- outline: none;
492
- background: @greyButtonBg;
493
- color: @greyButtonColor;
494
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
495
-
496
- &:active {
497
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
498
- }
499
-
500
- &.wbcr-rio-loading {
501
- width: 56px;
502
- font-size: 0;
503
- background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
504
- }
505
-
506
- &.wbcr-rio-selected {
507
- background: #f3efe2;
508
- color: #d8d8d8;
509
-
510
- &:active {
511
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
512
- }
513
- }
514
- }*/
515
- }
516
- #WBCR .wrio-optimization-progress h4 {
517
- font-size: 15px;
518
- font-weight: 700;
519
- }
520
- #WBCR .wrio-optimization-progress .wbcr-rio-warning-message {
521
- padding: 20px;
522
- background: #efefef;
523
- font-size: 15px;
524
- color: #b7b7b7;
525
- font-style: italic;
526
- }
527
- #WBCR .wio-widget {
528
- padding: 0 !important;
529
- }
530
- #WBCR .wio-widget .wio-chart-percent {
531
- font-size: 44px;
532
- line-height: 1;
533
- }
534
- #WBCR .wio-widget .wio-bars {
535
- width: 60%;
536
- margin-left: 155px;
537
- }
538
- #WBCR .wio-widget .col-chart.col-chart {
539
- width: 100%;
540
- }
541
- #WBCR .wio-widget .col-controls {
542
- width: 45%;
543
- padding-left: 5px;
544
- padding-top: 110px;
545
- }
546
- #WBCR .wio-widget .wio-doughnut-legend {
547
- /*padding-top:30px;*/
548
- text-align: left;
549
- }
550
- #WBCR .wio-widget .wio-widget-bottom {
551
- display: table;
552
- padding-top: 20px !important;
553
- width: 100%;
554
- text-align: right;
555
- }
556
- #WBCR .wio-widget .wio-widget-bottom li {
557
- display: table-cell;
558
- }
559
- #WBCR .wio-widget .wio-widget-bottom li:first-child {
560
- text-align: left;
561
- }
562
- #WBCR .factory-checkbox.wrio-checkbox-premium-label:after {
563
- display: inline-block;
564
- position: relative;
565
- content: 'PRO';
566
- background: #ff5722;
567
- border-radius: 4px;
568
- color: #fff;
569
- font-size: 10px;
570
- line-height: 1;
571
- font-style: normal;
572
- padding: 4px 6px;
573
- margin-left: 4px;
574
- vertical-align: top;
575
- top: -8px;
576
- left: -10px;
577
- right: auto;
578
- z-index: 11;
579
- }
580
- #WBCR .factory-checkbox-disabled input,
581
- #WBCR .factory-checkbox-disabled button {
582
- pointer-events: none;
583
- cursor: not-allowed;
584
- opacity: 0.65;
585
- filter: alpha(opacity=65);
586
- -webkit-box-shadow: none;
587
- box-shadow: none;
588
- }
589
- #WBCR #wrio-webp-options h3,
590
- #WBCR #wrio-error-log-options h3 {
591
- font-size: 14px;
592
- margin: 0 0 10px 0;
593
- font-weight: 600;
594
- color: #565656;
595
- }
596
- #WBCR #wrio-webp-options .wrio-webp-options-info,
597
- #WBCR #wrio-error-log-options .wrio-webp-options-info {
598
- color: #8a8787;
599
- font-size: 12px;
600
- }
601
- #WBCR #wrio-webp-options ul,
602
- #WBCR #wrio-error-log-options ul {
603
- padding-left: 0;
604
- }
605
- #WBCR #wrio-webp-options ul li:after,
606
- #WBCR #wrio-error-log-options ul li:after {
607
- content: '';
608
- display: block;
609
- clear: both;
610
- }
611
- #WBCR #wrio-webp-options ul li label,
612
- #WBCR #wrio-error-log-options ul li label {
613
- font-weight: 600;
614
- }
615
- #WBCR #wrio-webp-options ul li .wrio-webp-options-radio,
616
- #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio,
617
- #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox,
618
- #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox {
619
- display: block;
620
- float: left;
621
- margin-top: 2px;
622
- margin-right: 8px;
623
- }
624
- #WBCR #wrio-webp-options ul li .wrio-webp-options-radio:focus,
625
- #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio:focus,
626
- #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox:focus,
627
- #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus {
628
- outline: none;
629
- box-shadow: none;
630
- }
631
- #WBCR #wrio-webp-options ul li .wrio-webp-options-info,
632
- #WBCR #wrio-error-log-options ul li .wrio-webp-options-info,
633
- #WBCR #wrio-webp-options ul li .wrio-error-log-options-info,
634
- #WBCR #wrio-error-log-options ul li .wrio-error-log-options-info {
635
- padding-left: 25px;
636
- }
637
- @media (max-width: 830px) {
638
- #WBCR .wio [class^="col-"] {
639
- float: none;
640
- margin-bottom: 1.5em;
641
- }
642
- #WBCR .wio .col-1-3,
643
- #WBCR .wio .col-1-2 {
644
- width: auto;
645
- padding: 0 28px;
646
- clear: both;
647
- padding-top: 1em;
648
- }
649
- }
650
- @keyframes wiohello {
651
- 0%,
652
- 100% {
653
- background: #FFF;
654
- }
655
- 50% {
656
- background: #F4F7F9;
657
- }
658
- }
659
- @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
660
- #WBCR .wio-columns .col-statistics.col-statistics,
661
- #WBCR .wio-columns .col-chart.col-chart {
662
- width: 50%;
663
- }
664
- }
665
- @media (max-width: 808px) {
666
- #WBCR .wio-columns .col-statistics.col-statistics,
667
- #WBCR .wio-columns .col-chart.col-chart {
668
- width: auto;
669
- float: none;
670
- padding: 0;
671
- }
672
- #WBCR .wio-columns .col-chart.col-chart {
673
- margin-top: 3em;
674
- }
675
- }
 
1
+ /**
2
+ * Styles for the Widget to be displayed in the Clearfy plugin
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 14.06.2019
6
+ */
7
+ #WBCR {
8
+ /* Doughnut */
9
+ /*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
10
+ .wio-overview-chart-container {
11
+ float: none;
12
+ margin-right: 0;
13
+ }
14
+ }
15
+
16
+ @media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
17
+ .wio-overview-chart-container {
18
+ float: none;
19
+ margin-right: 0;
20
+ }
21
+
22
+ .wio-doughnut-legend {
23
+ margin-top: 18px;
24
+ }
25
+
26
+ .wio-global-optim-phrase {
27
+ padding-top: 0;
28
+ width: auto;
29
+ }
30
+ }*/
31
+ }
32
+ #WBCR .wio-clear {
33
+ clear: both;
34
+ }
35
+ #WBCR #io_folders_statistic-wbcr_clearfy-tab,
36
+ #WBCR #io_nextgen_gallery_statistic-wbcr_clearfy-tab {
37
+ display: none !important;
38
+ }
39
+ #WBCR .wrio-statistic-nav {
40
+ margin: 0;
41
+ background: #efefef;
42
+ }
43
+ #WBCR .wrio-statistic-nav ul {
44
+ margin: 0;
45
+ }
46
+ #WBCR .wrio-statistic-nav ul li {
47
+ position: relative;
48
+ display: inline-block;
49
+ margin: 0 0 0 0;
50
+ background: #ffffff;
51
+ box-shadow: 0 -2px 0 #eaeaea;
52
+ }
53
+ #WBCR .wrio-statistic-nav ul li:hover {
54
+ background: #f7f7f7;
55
+ }
56
+ #WBCR .wrio-statistic-nav ul li.active {
57
+ background: #f7f7f7;
58
+ border-top: 1px solid #d4d4d4;
59
+ border-left: 1px solid #d4d4d4;
60
+ border-right: 1px solid #d4d4d4;
61
+ border-bottom: 1px solid #f7f7f7;
62
+ margin-bottom: -1px;
63
+ }
64
+ #WBCR .wrio-statistic-nav ul li.active a {
65
+ color: #222;
66
+ }
67
+ #WBCR .wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent {
68
+ border: 2px dashed #8bc34a;
69
+ color: #5e8237;
70
+ }
71
+ #WBCR .wrio-statistic-nav ul li.active .dashicons,
72
+ #WBCR .wrio-statistic-nav ul li.active .dashicons-before:before {
73
+ color: #ff8b66;
74
+ }
75
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab {
76
+ display: block;
77
+ padding: 10px 20px 10px 20px;
78
+ text-decoration: none;
79
+ color: #d4d4d4;
80
+ font-size: 22px;
81
+ line-height: 2;
82
+ }
83
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:active,
84
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:focus {
85
+ background: 0;
86
+ box-shadow: none;
87
+ outline: none;
88
+ }
89
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons,
90
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before {
91
+ display: inline-block;
92
+ width: 30px;
93
+ height: 30px;
94
+ font-size: 30px;
95
+ line-height: 1.5;
96
+ margin-right: 15px;
97
+ color: #d4d4d4;
98
+ }
99
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent {
100
+ display: inline-block;
101
+ width: 42px;
102
+ height: 42px;
103
+ border-radius: 100px;
104
+ border: 2px dashed #e4e4e4;
105
+ padding: 5px;
106
+ margin-left: 30px;
107
+ font-size: 14px;
108
+ font-weight: 600;
109
+ text-align: center;
110
+ color: #bdbdbd;
111
+ }
112
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after {
113
+ display: inline-block;
114
+ position: absolute;
115
+ content: 'PRO';
116
+ background: #ff5722;
117
+ border-radius: 4px;
118
+ color: #fff;
119
+ font-size: 10px;
120
+ line-height: 1;
121
+ font-style: normal;
122
+ padding: 4px 6px;
123
+ margin-left: 4px;
124
+ vertical-align: top;
125
+ top: 10px;
126
+ left: auto;
127
+ right: 10px;
128
+ z-index: 11;
129
+ }
130
+ #WBCR .wrio-table {
131
+ width: 100%;
132
+ table-layout: fixed;
133
+ box-sizing: border-box;
134
+ border-spacing: 3px;
135
+ background: #fff;
136
+ border-top: 2px dashed #cac9c9;
137
+ }
138
+ #WBCR .wrio-table th,
139
+ #WBCR .wrio-table td {
140
+ padding: 16px 10px;
141
+ text-align: center;
142
+ }
143
+ #WBCR .wrio-table th {
144
+ background: #f3f3f3;
145
+ color: #777777;
146
+ box-shadow: 0 1px 0 #d8d8d8;
147
+ }
148
+ #WBCR .wrio-table th:nth-child(2n+1) {
149
+ background: #f9f9f9;
150
+ }
151
+ #WBCR .wrio-table tr.wrio-error {
152
+ background-color: #ffe9e9 !important;
153
+ }
154
+ #WBCR .wrio-table .wrio-table-spinner {
155
+ background: url("../img/quick-start-loader.gif") center center no-repeat;
156
+ }
157
+ #WBCR .wrio-table .wrio-table-highlighter {
158
+ display: inline-block;
159
+ padding: 3px 7px;
160
+ background: #f3f3f3;
161
+ }
162
+ #WBCR .wrio-table .wbcr-rio-server-success {
163
+ color: #8CC152;
164
+ }
165
+ #WBCR .wrio-table .wbcr-rio-server-error {
166
+ color: #fb5d49;
167
+ }
168
+ #WBCR .wrio-table .wbcr-rio-server-warning {
169
+ color: #ffb635;
170
+ }
171
+ #WBCR .wrio-table.wbcr-rio-folders-table td:nth-child(3) {
172
+ text-align: left;
173
+ }
174
+ #WBCR .wrio-servers {
175
+ padding: 40px 20px;
176
+ }
177
+ #WBCR .wrio-servers label span {
178
+ display: block;
179
+ font-weight: normal;
180
+ font-size: 12px;
181
+ color: #b7b2b2;
182
+ }
183
+ #WBCR .wrio-servers #wrio-change-optimization-server {
184
+ position: relative;
185
+ display: inline-block;
186
+ max-width: 400px;
187
+ margin-right: 15px;
188
+ margin-bottom: 0;
189
+ border: 1px solid #d2d0d0;
190
+ background: #efefef;
191
+ }
192
+ #WBCR .wrio-servers .wrio-servers-info {
193
+ margin: 0 0 0;
194
+ padding: 20px;
195
+ background: #fff;
196
+ }
197
+ #WBCR .wrio-servers .wrio-server-status-wrap {
198
+ display: inline-block;
199
+ margin-top: 8px;
200
+ }
201
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status {
202
+ background: transparent;
203
+ color: #fff;
204
+ padding: 3px 5px;
205
+ border-radius: 4px;
206
+ }
207
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down {
208
+ background: #ff5722;
209
+ }
210
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable {
211
+ background: #8bc34a;
212
+ }
213
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess {
214
+ display: inline-block;
215
+ height: 10px;
216
+ width: 30px;
217
+ background: url("../img/quick-start-loader.gif") center no-repeat;
218
+ }
219
+ #WBCR .wrio-servers .wrio-premium-user-balance-wrap, .wrio-premium-user-update-wrap {
220
+ display: inline-block;
221
+ margin-top: 8px;
222
+ margin-left: 10px;
223
+ }
224
+ #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance, .wrio-premium-user-update-wrap .wrio-premium-user-update {
225
+ color: #fff;
226
+ padding: 3px 5px;
227
+ border-radius: 4px;
228
+ background: #ffc107;
229
+ }
230
+ #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess,
231
+ .wrio-premium-user-update-wrap .wrio-premium-user-update-check-proccess {
232
+ display: inline-block;
233
+ height: 10px;
234
+ width: 30px;
235
+ background: url("../img/quick-start-loader.gif") center no-repeat;
236
+ }
237
+ #WBCR .wio-columns {
238
+ overflow: hidden;
239
+ padding: 15px 0;
240
+ counter-reset: cols;
241
+ }
242
+ #WBCR .wio-columns [class^="col-"] {
243
+ float: left;
244
+ -webkit-box-sizing: border-box;
245
+ -moz-box-sizing: border-box;
246
+ box-sizing: border-box;
247
+ }
248
+ #WBCR .wio-columns .col-1-3 {
249
+ width: 33.333%;
250
+ padding-left: 28px;
251
+ }
252
+ #WBCR .wio-columns .col-2-3 {
253
+ width: 66.666%;
254
+ padding-left: 28px;
255
+ }
256
+ #WBCR .wio-columns .col-1-2 {
257
+ width: 50%;
258
+ padding: 0 20px;
259
+ }
260
+ #WBCR .wio-columns .col-statistics.col-statistics {
261
+ width: 60%;
262
+ }
263
+ #WBCR .wio-columns .col-chart.col-chart {
264
+ width: 40%;
265
+ position: relative;
266
+ padding: 20px;
267
+ font-size: 12px;
268
+ text-transform: uppercase;
269
+ background: #f1f1f1b3;
270
+ color: #abacaf;
271
+ font-weight: bold;
272
+ border-radius: 5px;
273
+ margin-top: 10px;
274
+ text-align: left;
275
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
276
+ }
277
+ #WBCR .wio-col {
278
+ float: left;
279
+ width: 50%;
280
+ box-sizing: border-box;
281
+ -webkit-flex-basis: 50%;
282
+ -ms-flex-preferred-size: 50%;
283
+ flex-basis: 50%;
284
+ }
285
+ #WBCR .wio-col {
286
+ padding-right: 20px;
287
+ }
288
+ #WBCR .wio-col + .wio-col {
289
+ padding-right: 0;
290
+ padding-left: 50px;
291
+ }
292
+ #WBCR .wio-col:target {
293
+ animation: wiohello 1s 3 linear backwards;
294
+ }
295
+ #WBCR .wio-number-you-optimized {
296
+ margin-bottom: 1.35em;
297
+ overflow: hidden;
298
+ }
299
+ #WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct {
300
+ color: #828282;
301
+ }
302
+ #WBCR .wio-number-you-optimized .wio-number {
303
+ display: table-cell;
304
+ padding-right: 15px;
305
+ font-size: 48px;
306
+ font-weight: bold;
307
+ line-height: 1;
308
+ vertical-align: middle;
309
+ white-space: nowrap;
310
+ color: #828282;
311
+ }
312
+ #WBCR .wio-number-you-optimized .wio-text {
313
+ display: table-cell;
314
+ vertical-align: middle;
315
+ overflow: hidden;
316
+ font-size: 12px;
317
+ color: #828282;
318
+ }
319
+ #WBCR .wio-number-you-optimized > p {
320
+ display: table;
321
+ }
322
+ #WBCR .wio-bars {
323
+ padding-right: 15px;
324
+ }
325
+ #WBCR .wio-bars p {
326
+ font-size: 12px;
327
+ margin-bottom: 5px;
328
+ }
329
+ #WBCR .wio-bars + .wio-number-you-optimized {
330
+ border-bottom: 0;
331
+ padding-top: 0.85em;
332
+ }
333
+ #WBCR .wio-bars + .wio-number-you-optimized p {
334
+ color: #72a53b;
335
+ }
336
+ #WBCR .wio-bar-negative .wio-progress {
337
+ background: #D2D3D6;
338
+ }
339
+ #WBCR .wio-bar-negative .wio-barnb {
340
+ color: #9d9fa5;
341
+ }
342
+ #WBCR .wio-progress {
343
+ height: 8px;
344
+ transition: width 0.3s;
345
+ /*.wio-bar-negative {
346
+ width: 92% !important;
347
+ }*/
348
+ }
349
+ #WBCR .wio-bar-positive .wio-progress {
350
+ background: #8CC152;
351
+ }
352
+ #WBCR .wio-bar-positive .wio-barnb {
353
+ color: #72a53b;
354
+ }
355
+ #WBCR .wio-bar-primary .wio-progress {
356
+ background: #8CC152;
357
+ }
358
+ #WBCR .wio-bar-primary .wio-barnb {
359
+ color: #72a53b;
360
+ }
361
+ #WBCR .wio-right-outside-number .wio-barnb {
362
+ display: block;
363
+ margin-right: -5.25em;
364
+ text-align: right;
365
+ font-weight: bold;
366
+ line-height: 0.8;
367
+ }
368
+ #WBCR .wio-chart {
369
+ position: relative;
370
+ top: 1px;
371
+ display: inline-block;
372
+ vertical-align: middle;
373
+ }
374
+ #WBCR .wio-chart-container {
375
+ position: relative;
376
+ display: inline-block;
377
+ margin-right: 5px;
378
+ }
379
+ #WBCR .wio-chart-container canvas {
380
+ display: block;
381
+ }
382
+ #WBCR .wio-overview-chart-container {
383
+ float: left;
384
+ margin-right: 20px;
385
+ }
386
+ #WBCR .wio-chart-percent {
387
+ position: absolute;
388
+ left: 0;
389
+ right: 0;
390
+ top: 50%;
391
+ margin-top: -0.5em;
392
+ line-height: 0.8;
393
+ text-align: center;
394
+ font-size: 54px;
395
+ font-weight: bold;
396
+ color: #afafaf;
397
+ }
398
+ #WBCR .wio-chart-percent span {
399
+ font-size: 20px;
400
+ vertical-align: super;
401
+ }
402
+ #WBCR #wio-overview-chart-legend {
403
+ overflow: hidden;
404
+ }
405
+ #WBCR .wio-doughnut-legend li {
406
+ display: inline-block;
407
+ position: relative;
408
+ margin-bottom: 15px;
409
+ border-radius: 5px;
410
+ padding: 3px 8px 2px 31px;
411
+ font-size: 9px;
412
+ cursor: default;
413
+ -webkit-transition: background-color 200ms ease-in-out;
414
+ -moz-transition: background-color 200ms ease-in-out;
415
+ -o-transition: background-color 200ms ease-in-out;
416
+ transition: background-color 200ms ease-in-out;
417
+ }
418
+ #WBCR .wio-doughnut-legend li span {
419
+ display: block;
420
+ position: absolute;
421
+ left: 0;
422
+ top: 0;
423
+ width: 25px;
424
+ height: 25px;
425
+ border-radius: 50%;
426
+ }
427
+ #WBCR .wio-optimize-button {
428
+ min-width: 180px;
429
+ padding: 12px 30px;
430
+ background: #c9deb2;
431
+ color: #586549;
432
+ border: 0;
433
+ box-shadow: none;
434
+ font-size: 14px;
435
+ text-transform: uppercase !important;
436
+ font-weight: bold;
437
+ border-radius: 4px;
438
+ outline: none;
439
+ }
440
+ #WBCR .wio-optimize-button:active {
441
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
442
+ }
443
+ #WBCR .wio-optimize-button:disabled {
444
+ background: #e2edd6;
445
+ color: #a5b295;
446
+ }
447
+ #WBCR .wio-optimize-button.wio-running {
448
+ color: #a57b3c;
449
+ background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat;
450
+ padding-left: 50px;
451
+ }
452
+ #WBCR .wio-global-optim-phrase {
453
+ width: 180px;
454
+ padding-top: 20px;
455
+ font-size: 14px;
456
+ text-align: center;
457
+ }
458
+ #WBCR .wio-total-percent {
459
+ color: #587f2e;
460
+ }
461
+ #WBCR #wio-start-msg-top,
462
+ #WBCR #wio-start-msg-right,
463
+ #WBCR #wio-start-msg-complete {
464
+ display: none;
465
+ }
466
+ #WBCR .wio-text-left {
467
+ text-align: left;
468
+ }
469
+ #WBCR span.wio-num {
470
+ display: inline !important;
471
+ position: inherit !important;
472
+ }
473
+ #WBCR .wio-image-optimize-board {
474
+ padding-bottom: 0 !important;
475
+ }
476
+ #WBCR .wio-page-statistic {
477
+ padding-left: 40px;
478
+ }
479
+ #WBCR .wio-page-statistic .wio-chart-percent {
480
+ margin-top: -1.1em;
481
+ }
482
+ #WBCR .wrio-optimization-progress {
483
+ background: none;
484
+ padding: 0;
485
+ /*button {
486
+ padding: 5px 10px;
487
+ border: 0;
488
+ font-size: 11px;
489
+ text-transform: uppercase !important;
490
+ font-weight: bold;
491
+ border-radius: 4px;
492
+ outline: none;
493
+ background: @greyButtonBg;
494
+ color: @greyButtonColor;
495
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
496
+
497
+ &:active {
498
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
499
+ }
500
+
501
+ &.wbcr-rio-loading {
502
+ width: 56px;
503
+ font-size: 0;
504
+ background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
505
+ }
506
+
507
+ &.wbcr-rio-selected {
508
+ background: #f3efe2;
509
+ color: #d8d8d8;
510
+
511
+ &:active {
512
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
513
+ }
514
+ }
515
+ }*/
516
+ }
517
+ #WBCR .wrio-optimization-progress h4 {
518
+ font-size: 15px;
519
+ font-weight: 700;
520
+ }
521
+ #WBCR .wrio-optimization-progress .wbcr-rio-warning-message {
522
+ padding: 20px;
523
+ background: #efefef;
524
+ font-size: 15px;
525
+ color: #b7b7b7;
526
+ font-style: italic;
527
+ }
528
+ #WBCR .wio-widget {
529
+ padding: 0 !important;
530
+ }
531
+ #WBCR .wio-widget .wio-chart-percent {
532
+ font-size: 44px;
533
+ line-height: 1;
534
+ }
535
+ #WBCR .wio-widget .wio-bars {
536
+ width: 60%;
537
+ margin-left: 155px;
538
+ }
539
+ #WBCR .wio-widget .col-chart.col-chart {
540
+ width: 100%;
541
+ }
542
+ #WBCR .wio-widget .col-controls {
543
+ width: 45%;
544
+ padding-left: 5px;
545
+ padding-top: 110px;
546
+ }
547
+ #WBCR .wio-widget .wio-doughnut-legend {
548
+ /*padding-top:30px;*/
549
+ text-align: left;
550
+ }
551
+ #WBCR .wio-widget .wio-widget-bottom {
552
+ display: table;
553
+ padding-top: 20px !important;
554
+ width: 100%;
555
+ text-align: right;
556
+ }
557
+ #WBCR .wio-widget .wio-widget-bottom li {
558
+ display: table-cell;
559
+ }
560
+ #WBCR .wio-widget .wio-widget-bottom li:first-child {
561
+ text-align: left;
562
+ }
563
+ #WBCR .factory-checkbox.wrio-checkbox-premium-label:after {
564
+ display: inline-block;
565
+ position: relative;
566
+ content: 'PRO';
567
+ background: #ff5722;
568
+ border-radius: 4px;
569
+ color: #fff;
570
+ font-size: 10px;
571
+ line-height: 1;
572
+ font-style: normal;
573
+ padding: 4px 6px;
574
+ margin-left: 4px;
575
+ vertical-align: top;
576
+ top: -8px;
577
+ left: -10px;
578
+ right: auto;
579
+ z-index: 11;
580
+ }
581
+ #WBCR .factory-checkbox-disabled input,
582
+ #WBCR .factory-checkbox-disabled button {
583
+ pointer-events: none;
584
+ cursor: not-allowed;
585
+ opacity: 0.65;
586
+ filter: alpha(opacity=65);
587
+ -webkit-box-shadow: none;
588
+ box-shadow: none;
589
+ }
590
+ #WBCR #wrio-webp-options h3,
591
+ #WBCR #wrio-error-log-options h3 {
592
+ font-size: 14px;
593
+ margin: 0 0 10px 0;
594
+ font-weight: 600;
595
+ color: #565656;
596
+ }
597
+ #WBCR #wrio-webp-options .wrio-webp-options-info,
598
+ #WBCR #wrio-error-log-options .wrio-webp-options-info {
599
+ color: #8a8787;
600
+ font-size: 12px;
601
+ }
602
+ #WBCR #wrio-webp-options ul,
603
+ #WBCR #wrio-error-log-options ul {
604
+ padding-left: 0;
605
+ }
606
+ #WBCR #wrio-webp-options ul li:after,
607
+ #WBCR #wrio-error-log-options ul li:after {
608
+ content: '';
609
+ display: block;
610
+ clear: both;
611
+ }
612
+ #WBCR #wrio-webp-options ul li label,
613
+ #WBCR #wrio-error-log-options ul li label {
614
+ font-weight: 600;
615
+ }
616
+ #WBCR #wrio-webp-options ul li .wrio-webp-options-radio,
617
+ #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio,
618
+ #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox,
619
+ #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox {
620
+ display: block;
621
+ float: left;
622
+ margin-top: 2px;
623
+ margin-right: 8px;
624
+ }
625
+ #WBCR #wrio-webp-options ul li .wrio-webp-options-radio:focus,
626
+ #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio:focus,
627
+ #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox:focus,
628
+ #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus {
629
+ outline: none;
630
+ box-shadow: none;
631
+ }
632
+ #WBCR #wrio-webp-options ul li .wrio-webp-options-info,
633
+ #WBCR #wrio-error-log-options ul li .wrio-webp-options-info,
634
+ #WBCR #wrio-webp-options ul li .wrio-error-log-options-info,
635
+ #WBCR #wrio-error-log-options ul li .wrio-error-log-options-info {
636
+ padding-left: 25px;
637
+ }
638
+ @media (max-width: 830px) {
639
+ #WBCR .wio [class^="col-"] {
640
+ float: none;
641
+ margin-bottom: 1.5em;
642
+ }
643
+ #WBCR .wio .col-1-3,
644
+ #WBCR .wio .col-1-2 {
645
+ width: auto;
646
+ padding: 0 28px;
647
+ clear: both;
648
+ padding-top: 1em;
649
+ }
650
+ }
651
+ @keyframes wiohello {
652
+ 0%,
653
+ 100% {
654
+ background: #FFF;
655
+ }
656
+ 50% {
657
+ background: #F4F7F9;
658
+ }
659
+ }
660
+ @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
661
+ #WBCR .wio-columns .col-statistics.col-statistics,
662
+ #WBCR .wio-columns .col-chart.col-chart {
663
+ width: 50%;
664
+ }
665
+ }
666
+ @media (max-width: 808px) {
667
+ #WBCR .wio-columns .col-statistics.col-statistics,
668
+ #WBCR .wio-columns .col-chart.col-chart {
669
+ width: auto;
670
+ float: none;
671
+ padding: 0;
672
+ }
673
+ #WBCR .wio-columns .col-chart.col-chart {
674
+ margin-top: 3em;
675
+ }
676
+ }
admin/assets/css/sweetalert-custom.css CHANGED
@@ -1,155 +1,155 @@
1
- /* Sub Layer */
2
- body[class*="_rio"] .swal2-container.swal2-shown {
3
- background: rgba(16, 17, 21, 0.9);
4
- z-index: 100000;
5
- }
6
- .wrio-modal {
7
- padding: 0 !important;
8
- }
9
- .wrio-modal .swal2-close {
10
- color: rgba(0, 0, 0, 0.8);
11
- }
12
- .wrio-modal .swal2-modal {
13
- border-radius: 2px;
14
- }
15
- .wrio-modal .swal2-icon {
16
- margin-bottom: 25px;
17
- }
18
- .wrio-modal .swal2-title {
19
- margin: 0;
20
- padding: 28px 32px;
21
- font-size: 24px;
22
- text-align: left;
23
- color: #fff !important;
24
- background: #3e3e3e !important;
25
- }
26
- .wrio-modal .swal2-content {
27
- font-size: 14px;
28
- padding: 28px 32px;
29
- background: #efefef;
30
- }
31
- .wrio-modal .swal2-buttonswrapper {
32
- margin-top: 0;
33
- padding: 22px;
34
- background: #F4F7F9;
35
- }
36
- .wrio-modal .swal2-buttonswrapper a.button svg {
37
- margin-right: 12px;
38
- vertical-align: -2px;
39
- }
40
- .wrio-modal .swal2-buttonswrapper button.loading {
41
- border-radius: 100% !important;
42
- height: 40px !important;
43
- padding: 0 !important;
44
- box-shadow: none !important;
45
- }
46
- .wrio-modal .swal2-buttonswrapper button.swal2-styled {
47
- height: auto;
48
- padding: 12px 32px;
49
- margin: 10px;
50
- font-size: 14px;
51
- letter-spacing: 1px;
52
- text-transform: uppercase;
53
- border-radius: 3px;
54
- font-weight: bold;
55
- outline: none;
56
- }
57
- .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-confirm {
58
- background-color: #fdd599 !important;
59
- text-shadow: none !important;
60
- box-shadow: 0 3px 0 #ceac7a !important;
61
- color: #a57b3c !important;
62
- }
63
- .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-cancel {
64
- background-color: #d2d2d2 !important;
65
- color: #656464 !important;
66
- text-shadow: none !important;
67
- box-shadow: 0 3px 0 #a9a9a9;
68
- /*background-color: #c9deb2 !important;
69
- color: #606956 !important;
70
- text-shadow: none !important;
71
- box-shadow: 0 3px 0 #a7b994;*/
72
- }
73
- .wrio-modal .swal2-buttonswrapper button.swal2-styled:focus,
74
- .wrio-modal .swal2-buttonswrapper button.swal2-styled:hover {
75
- outline: none;
76
- text-shadow: none;
77
- color: #FFF;
78
- }
79
- .wrio-modal-warning {
80
- background: #FF5722 !important;
81
- }
82
- .wrio-modal-warning .swal2-title {
83
- text-align: center;
84
- color: #222 !important;
85
- background: #efefef !important;
86
- }
87
- .wrio-modal-warning .swal2-content {
88
- font-size: 16px;
89
- padding: 10px 20px 32px;
90
- background: #efefef;
91
- }
92
- .wrio-modal-warning .swal2-buttonswrapper {
93
- background: #efefef;
94
- }
95
- .wrio-modal-error {
96
- background: #dec2c0 !important;
97
- }
98
- .wrio-modal-error .swal2-title {
99
- text-align: center;
100
- color: #222 !important;
101
- background: #efefef !important;
102
- }
103
- .wrio-modal-error .swal2-content {
104
- font-size: 16px;
105
- padding: 10px 20px 32px;
106
- background: #efefef;
107
- }
108
- .wrio-modal-error .swal2-buttonswrapper {
109
- background: #efefef;
110
- }
111
- .wrio-modal-optimization-way {
112
- background: #1F2332 !important;
113
- }
114
- .wrio-modal-optimization-way .wrio-swal-subtitle {
115
- padding: 0 0 28px;
116
- margin-top: 0px;
117
- font-weight: 500;
118
- font-size: 18px;
119
- text-align: left;
120
- color: #8c8888;
121
- background: #efefef;
122
- }
123
- .wrio-modal-optimization-way .wrio-list-infos {
124
- margin: 0;
125
- padding: 0;
126
- }
127
- .wrio-modal-optimization-way .wrio-list-infos li {
128
- display: flex;
129
- align-items: center;
130
- padding: 15px 5px;
131
- text-align: left;
132
- font-size: 14px;
133
- line-height: 1.5;
134
- color: #8c8888;
135
- }
136
- .wrio-modal-optimization-way .wrio-list-infos li:first-child {
137
- padding-top: 5px;
138
- }
139
- .wrio-modal-optimization-way .wrio-list-infos li:last-child {
140
- padding-bottom: 5px;
141
- }
142
- .wrio-modal-optimization-way .wrio-list-infos li + li {
143
- border-top: 1px solid #E9EFF2;
144
- }
145
- .wrio-modal-optimization-way .wrio-list-infos a:before {
146
- content: '';
147
- display: block;
148
- }
149
- .wrio-modal-optimization-way .wrio-info-icon {
150
- flex-grow: 0;
151
- flex-basis: 50px;
152
- }
153
- .wrio-modal-optimization-way .wrio-info-icon + span {
154
- padding-left: 20px;
155
- }
1
+ /* Sub Layer */
2
+ body[class*="_rio"] .swal2-container.swal2-shown {
3
+ background: rgba(16, 17, 21, 0.9);
4
+ z-index: 100000;
5
+ }
6
+ .wrio-modal {
7
+ padding: 0 !important;
8
+ }
9
+ .wrio-modal .swal2-close {
10
+ color: rgba(0, 0, 0, 0.8);
11
+ }
12
+ .wrio-modal .swal2-modal {
13
+ border-radius: 2px;
14
+ }
15
+ .wrio-modal .swal2-icon {
16
+ margin-bottom: 25px;
17
+ }
18
+ .wrio-modal .swal2-title {
19
+ margin: 0;
20
+ padding: 28px 32px;
21
+ font-size: 24px;
22
+ text-align: left;
23
+ color: #fff !important;
24
+ background: #3e3e3e !important;
25
+ }
26
+ .wrio-modal .swal2-content {
27
+ font-size: 14px;
28
+ padding: 28px 32px;
29
+ background: #efefef;
30
+ }
31
+ .wrio-modal .swal2-buttonswrapper {
32
+ margin-top: 0;
33
+ padding: 22px;
34
+ background: #F4F7F9;
35
+ }
36
+ .wrio-modal .swal2-buttonswrapper a.button svg {
37
+ margin-right: 12px;
38
+ vertical-align: -2px;
39
+ }
40
+ .wrio-modal .swal2-buttonswrapper button.loading {
41
+ border-radius: 100% !important;
42
+ height: 40px !important;
43
+ padding: 0 !important;
44
+ box-shadow: none !important;
45
+ }
46
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled {
47
+ height: auto;
48
+ padding: 12px 32px;
49
+ margin: 10px;
50
+ font-size: 14px;
51
+ letter-spacing: 1px;
52
+ text-transform: uppercase;
53
+ border-radius: 3px;
54
+ font-weight: bold;
55
+ outline: none;
56
+ }
57
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-confirm {
58
+ background-color: #fdd599 !important;
59
+ text-shadow: none !important;
60
+ box-shadow: 0 3px 0 #ceac7a !important;
61
+ color: #a57b3c !important;
62
+ }
63
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-cancel {
64
+ background-color: #d2d2d2 !important;
65
+ color: #656464 !important;
66
+ text-shadow: none !important;
67
+ box-shadow: 0 3px 0 #a9a9a9;
68
+ /*background-color: #c9deb2 !important;
69
+ color: #606956 !important;
70
+ text-shadow: none !important;
71
+ box-shadow: 0 3px 0 #a7b994;*/
72
+ }
73
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled:focus,
74
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled:hover {
75
+ outline: none;
76
+ text-shadow: none;
77
+ color: #FFF;
78
+ }
79
+ .wrio-modal-warning {
80
+ background: #FF5722 !important;
81
+ }
82
+ .wrio-modal-warning .swal2-title {
83
+ text-align: center;
84
+ color: #222 !important;
85
+ background: #efefef !important;
86
+ }
87
+ .wrio-modal-warning .swal2-content {
88
+ font-size: 16px;
89
+ padding: 10px 20px 32px;
90
+ background: #efefef;
91
+ }
92
+ .wrio-modal-warning .swal2-buttonswrapper {
93
+ background: #efefef;
94
+ }
95
+ .wrio-modal-error {
96
+ background: #dec2c0 !important;
97
+ }
98
+ .wrio-modal-error .swal2-title {
99
+ text-align: center;
100
+ color: #222 !important;
101
+ background: #efefef !important;
102
+ }
103
+ .wrio-modal-error .swal2-content {
104
+ font-size: 16px;
105
+ padding: 10px 20px 32px;
106
+ background: #efefef;
107
+ }
108
+ .wrio-modal-error .swal2-buttonswrapper {
109
+ background: #efefef;
110
+ }
111
+ .wrio-modal-optimization-way {
112
+ background: #1F2332 !important;
113
+ }
114
+ .wrio-modal-optimization-way .wrio-swal-subtitle {
115
+ padding: 0 0 28px;
116
+ margin-top: 0px;
117
+ font-weight: 500;
118
+ font-size: 18px;
119
+ text-align: left;
120
+ color: #8c8888;
121
+ background: #efefef;
122
+ }
123
+ .wrio-modal-optimization-way .wrio-list-infos {
124
+ margin: 0;
125
+ padding: 0;
126
+ }
127
+ .wrio-modal-optimization-way .wrio-list-infos li {
128
+ display: flex;
129
+ align-items: center;
130
+ padding: 15px 5px;
131
+ text-align: left;
132
+ font-size: 14px;
133
+ line-height: 1.5;
134
+ color: #8c8888;
135
+ }
136
+ .wrio-modal-optimization-way .wrio-list-infos li:first-child {
137
+ padding-top: 5px;
138
+ }
139
+ .wrio-modal-optimization-way .wrio-list-infos li:last-child {
140
+ padding-bottom: 5px;
141
+ }
142
+ .wrio-modal-optimization-way .wrio-list-infos li + li {
143
+ border-top: 1px solid #E9EFF2;
144
+ }
145
+ .wrio-modal-optimization-way .wrio-list-infos a:before {
146
+ content: '';
147
+ display: block;
148
+ }
149
+ .wrio-modal-optimization-way .wrio-info-icon {
150
+ flex-grow: 0;
151
+ flex-basis: 50px;
152
+ }
153
+ .wrio-modal-optimization-way .wrio-info-icon + span {
154
+ padding-left: 20px;
155
+ }
admin/assets/js/bulk-optimization.js CHANGED
@@ -16,6 +16,7 @@ jQuery(function ($) {
16
  }
17
  if ('server_1' === $('#wrio-change-optimization-server').val()) {
18
  $(".wrio-premium-user-balance-wrap").hide();
 
19
  }
20
  if ('server_5' === $('#wrio-change-optimization-server').val()) {
21
  if (!this.settings.is_premium) {
@@ -41,9 +42,11 @@ jQuery(function ($) {
41
  $(this).prop('disabled', true);
42
  $('.wrio-premium-user-balance').attr('data-server', $(this).val());
43
  $(".wrio-premium-user-balance-wrap").show();
 
44
 
45
  if ('server_1' === $(this).val()) {
46
  $(".wrio-premium-user-balance-wrap").hide();
 
47
  }
48
  if ('server_5' === $(this).val()) {
49
  if (!self.settings.is_premium) {
@@ -95,6 +98,7 @@ jQuery(function ($) {
95
  checkPremiumUserBalance: function () {
96
  var self = this,
97
  userBalance = $('.wrio-premium-user-balance'),
 
98
  data = {
99
  'action': 'wbcr-rio-check-user-balance',
100
  '_wpnonce': self.settings.nonce
@@ -103,10 +107,19 @@ jQuery(function ($) {
103
  data['server_name'] = $('#wrio-change-optimization-server').val();
104
 
105
  userBalance.addClass('wrio-premium-user-balance-check-proccess');
106
- userBalance.text('');
107
-
 
 
 
 
 
108
  $.post(ajaxurl, data, function (response) {
 
109
  userBalance.removeClass('wrio-premium-user-balance-check-proccess');
 
 
 
110
 
111
  if (!response || !response.data || !response.success) {
112
  console.log('[Error]: Response error');
@@ -117,8 +130,14 @@ jQuery(function ($) {
117
  }
118
 
119
  userBalance.text('error');
 
 
 
120
  } else {
121
  userBalance.text(response.data.balance);
 
 
 
122
  }
123
  }).fail(function (xhr, status, error) {
124
  console.log(xhr);
@@ -360,10 +379,10 @@ jQuery(function ($) {
360
  throwError: function (error_message) {
361
  this.stop();
362
 
363
- var noticeId = $.wbcr_factory_clearfy_227.app.showNotice(error_message, 'danger');
364
 
365
  setTimeout(function () {
366
- $.wbcr_factory_clearfy_227.app.hideNotice(noticeId);
367
  }, 10000);
368
  },
369
 
16
  }
17
  if ('server_1' === $('#wrio-change-optimization-server').val()) {
18
  $(".wrio-premium-user-balance-wrap").hide();
19
+ $(".wrio-premium-user-update-wrap").hide();
20
  }
21
  if ('server_5' === $('#wrio-change-optimization-server').val()) {
22
  if (!this.settings.is_premium) {
42
  $(this).prop('disabled', true);
43
  $('.wrio-premium-user-balance').attr('data-server', $(this).val());
44
  $(".wrio-premium-user-balance-wrap").show();
45
+ $(".wrio-premium-user-update-wrap").show();
46
 
47
  if ('server_1' === $(this).val()) {
48
  $(".wrio-premium-user-balance-wrap").hide();
49
+ $(".wrio-premium-user-update-wrap").hide();
50
  }
51
  if ('server_5' === $(this).val()) {
52
  if (!self.settings.is_premium) {
98
  checkPremiumUserBalance: function () {
99
  var self = this,
100
  userBalance = $('.wrio-premium-user-balance'),
101
+ balanceResetAt = $('.wrio-premium-user-update'),
102
  data = {
103
  'action': 'wbcr-rio-check-user-balance',
104
  '_wpnonce': self.settings.nonce
107
  data['server_name'] = $('#wrio-change-optimization-server').val();
108
 
109
  userBalance.addClass('wrio-premium-user-balance-check-proccess');
110
+ userBalance.text('');
111
+
112
+ if("server_5" === data['server_name']) {
113
+ balanceResetAt.addClass('wrio-premium-user-update-check-proccess');
114
+ balanceResetAt.text('');
115
+ }
116
+
117
  $.post(ajaxurl, data, function (response) {
118
+ console.log(response);
119
  userBalance.removeClass('wrio-premium-user-balance-check-proccess');
120
+ if("server_5" === data['server_name']) {
121
+ balanceResetAt.removeClass('wrio-premium-user-update-check-proccess');
122
+ }
123
 
124
  if (!response || !response.data || !response.success) {
125
  console.log('[Error]: Response error');
130
  }
131
 
132
  userBalance.text('error');
133
+ if("server_5" === data['server_name']) {
134
+ balanceResetAt.text('error');
135
+ }
136
  } else {
137
  userBalance.text(response.data.balance);
138
+ if("server_5" === data['server_name']) {
139
+ balanceResetAt.text(response.data.reset_at);
140
+ }
141
  }
142
  }).fail(function (xhr, status, error) {
143
  console.log(xhr);
379
  throwError: function (error_message) {
380
  this.stop();
381
 
382
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice(error_message, 'danger');
383
 
384
  setTimeout(function () {
385
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
386
  }, 10000);
387
  },
388
 
admin/boot.php CHANGED
@@ -73,7 +73,7 @@
73
 
74
  wp_enqueue_script( 'wrio-meta-migrations', WRIO_PLUGIN_URL . '/admin/assets/js/meta-migrations.js', [
75
  'jquery',
76
- 'wbcr-factory-clearfy-227-global'
77
  ], WRIO_Plugin::app()->getPluginVersion() );
78
  } );
79
 
@@ -123,8 +123,8 @@
123
  *
124
  * Once all post meta migrated, notice would not be shown anymore.
125
  *
126
- * @param Wbcr_Factory436_Plugin $plugin
127
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj
128
  *
129
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
130
  * @since 1.3.0
@@ -146,11 +146,11 @@
146
  * Flush configuration after saving the settings
147
  *
148
  * @param WRIO_Plugin $plugin
149
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj
150
  *
151
  * @return bool
152
  */
153
- /*add_action('wbcr_factory_436_imppage_after_form_save', function ($plugin, $obj) {
154
  $is_rio = WRIO_Plugin::app()->getPluginName() == $plugin->getPluginName();
155
 
156
  if( $is_rio ) {
@@ -174,14 +174,14 @@
174
  return $page_url;
175
  }
176
 
177
- add_filter( 'wbcr_factory_pages_435_imppage_rating_widget_url', 'wio_rating_widget_url', 10, 2 );
178
 
179
  /**
180
  * Widget with the offer to buy Clearfy Business
181
  *
182
  * @param array $widgets
183
  * @param string $position
184
- * @param Wbcr_Factory436_Plugin $plugin
185
  */
186
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
187
  if ( $plugin->getPluginName() == WRIO_Plugin::app()->getPluginName() ) {
@@ -191,6 +191,7 @@
191
  unset( $widgets['donate_widget'] );
192
 
193
  if ( $position == 'right' ) {
 
194
  unset( $widgets['business_suggetion'] );
195
  unset( $widgets['rating_widget'] );
196
  unset( $widgets['info_widget'] );
@@ -320,8 +321,8 @@
320
  * Отправка уведомлений и скором окончании квоты в Impressive
321
  * Уведомления создаются только если квота <= 100
322
  *
323
- * @param Wbcr_Factory436_Plugin $plugin Экземпляр плагина, который передается в функцию обратного вызова
324
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj Экземпляр страницы, который передается в функцию обратного вызова
325
  *
326
  * @author Alexander Gorenkov <g.a.androidjc2@ya.ru>
327
  * @since 1.4.2
73
 
74
  wp_enqueue_script( 'wrio-meta-migrations', WRIO_PLUGIN_URL . '/admin/assets/js/meta-migrations.js', [
75
  'jquery',
76
+ 'wbcr-factory-clearfy-230-global'
77
  ], WRIO_Plugin::app()->getPluginVersion() );
78
  } );
79
 
123
  *
124
  * Once all post meta migrated, notice would not be shown anymore.
125
  *
126
+ * @param Wbcr_Factory439_Plugin $plugin
127
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj
128
  *
129
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
130
  * @since 1.3.0
146
  * Flush configuration after saving the settings
147
  *
148
  * @param WRIO_Plugin $plugin
149
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj
150
  *
151
  * @return bool
152
  */
153
+ /*add_action('wbcr_factory_439_imppage_after_form_save', function ($plugin, $obj) {
154
  $is_rio = WRIO_Plugin::app()->getPluginName() == $plugin->getPluginName();
155
 
156
  if( $is_rio ) {
174
  return $page_url;
175
  }
176
 
177
+ add_filter( 'wbcr_factory_pages_438_imppage_rating_widget_url', 'wio_rating_widget_url', 10, 2 );
178
 
179
  /**
180
  * Widget with the offer to buy Clearfy Business
181
  *
182
  * @param array $widgets
183
  * @param string $position
184
+ * @param Wbcr_Factory439_Plugin $plugin
185
  */
186
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
187
  if ( $plugin->getPluginName() == WRIO_Plugin::app()->getPluginName() ) {
191
  unset( $widgets['donate_widget'] );
192
 
193
  if ( $position == 'right' ) {
194
+ unset( $widgets['adverts_widget'] );
195
  unset( $widgets['business_suggetion'] );
196
  unset( $widgets['rating_widget'] );
197
  unset( $widgets['info_widget'] );
321
  * Отправка уведомлений и скором окончании квоты в Impressive
322
  * Уведомления создаются только если квота <= 100
323
  *
324
+ * @param Wbcr_Factory439_Plugin $plugin Экземпляр плагина, который передается в функцию обратного вызова
325
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj Экземпляр страницы, который передается в функцию обратного вызова
326
  *
327
  * @author Alexander Gorenkov <g.a.androidjc2@ya.ru>
328
  * @since 1.4.2
admin/includes/classes/class-rio-optimize-template.php CHANGED
@@ -26,12 +26,12 @@ class WIO_OptimizePageTemplate {
26
  /**
27
  * Выводит контент страницы с учётом мультисайта
28
  *
29
- * @param Wbcr_FactoryClearfy227_PageBase $page
30
  *
31
  * @throws Exception
32
  */
33
 
34
- /*public function showPageContent( Wbcr_FactoryClearfy227_PageBase $page ) {
35
  do_action( 'wbcr/rio/multisite_current_blog' );
36
  $this->pageContent( $page );
37
  do_action( 'wbcr/rio/multisite_restore_blog' );
26
  /**
27
  * Выводит контент страницы с учётом мультисайта
28
  *
29
+ * @param Wbcr_FactoryClearfy230_PageBase $page
30
  *
31
  * @throws Exception
32
  */
33
 
34
+ /*public function showPageContent( Wbcr_FactoryClearfy230_PageBase $page ) {
35
  do_action( 'wbcr/rio/multisite_current_blog' );
36
  $this->pageContent( $page );
37
  do_action( 'wbcr/rio/multisite_restore_blog' );
admin/pages/class-rio-license.php CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  *
10
  * @author Alexander Teshabaev <sasha.tesh@gmail.com>
11
  */
12
- class WRIO_License_Page extends Wbcr_FactoryClearfy227_LicensePage {
13
 
14
  /**
15
  * {@inheritdoc}
@@ -43,9 +43,9 @@ class WRIO_License_Page extends Wbcr_FactoryClearfy227_LicensePage {
43
 
44
  /**
45
  * {@inheritdoc}
46
- * @param Wbcr_Factory436_Plugin $plugin
47
  */
48
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
49
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
50
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
51
 
9
  *
10
  * @author Alexander Teshabaev <sasha.tesh@gmail.com>
11
  */
12
+ class WRIO_License_Page extends Wbcr_FactoryClearfy230_LicensePage {
13
 
14
  /**
15
  * {@inheritdoc}
43
 
44
  /**
45
  * {@inheritdoc}
46
+ * @param Wbcr_Factory439_Plugin $plugin
47
  */
48
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
49
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
50
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
51
 
admin/pages/class-rio-log.php CHANGED
@@ -106,10 +106,10 @@ class WRIO_LogPage extends WRIO_Page {
106
 
107
  jQuery('#wbcr-log-viewer').html('');
108
  jQuery('#wbcr-log-size').text('0B');
109
- jQuery.wbcr_factory_clearfy_227.app.showNotice(data.message, data.type);
110
  },
111
  error: function(jqXHR, textStatus, errorThrown) {
112
- jQuery.wbcr_factory_clearfy_227.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
113
  btn.html(currentBtnText);
114
  }
115
  });
106
 
107
  jQuery('#wbcr-log-viewer').html('');
108
  jQuery('#wbcr-log-size').text('0B');
109
+ jQuery.wbcr_factory_clearfy_230.app.showNotice(data.message, data.type);
110
  },
111
  error: function(jqXHR, textStatus, errorThrown) {
112
+ jQuery.wbcr_factory_clearfy_230.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
113
  btn.html(currentBtnText);
114
  }
115
  });
admin/pages/class-rio-page.php CHANGED
@@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  * @copyright (c) 2018, Webcraftic
19
  * @version 1.0
20
  */
21
- class WRIO_Page extends Wbcr_FactoryClearfy227_PageBase {
22
 
23
  /**
24
  * {@inheritdoc}
18
  * @copyright (c) 2018, Webcraftic
19
  * @version 1.0
20
  */
21
+ class WRIO_Page extends Wbcr_FactoryClearfy230_PageBase {
22
 
23
  /**
24
  * {@inheritdoc}
admin/pages/class-rio-settings.php CHANGED
@@ -27,6 +27,14 @@ class WRIO_SettingsPage extends WRIO_Page {
27
  * {@inheritdoc}
28
  */
29
  public $show_right_sidebar_in_options = true;
 
 
 
 
 
 
 
 
30
 
31
  /**
32
  * @param WRIO_Plugin $plugin
@@ -35,6 +43,10 @@ class WRIO_SettingsPage extends WRIO_Page {
35
 
36
  $this->menu_title = __( 'Settings', 'robin-image-optimizer' );
37
  $this->page_menu_short_description = __( 'Plugin configuration', 'robin-image-optimizer' );
 
 
 
 
38
 
39
  parent::__construct( $plugin );
40
  }
@@ -44,7 +56,7 @@ class WRIO_SettingsPage extends WRIO_Page {
44
  *
45
  * @return void
46
  * @since 1.0.0
47
- * @see Wbcr_FactoryPages435_AdminPage
48
  *
49
  */
50
  public function assets( $scripts, $styles ) {
@@ -157,7 +169,7 @@ class WRIO_SettingsPage extends WRIO_Page {
157
  [
158
  'custom',
159
  __( 'Custom', 'robin-image-optimizer' ),
160
- __( 'This mode will use all available optimization methods for maximum image compression. The file size will be reduced approximately 7 times. The quality of some images may deteriorate slightly. Use this mode if you need the maximum weight reduction, and you are ready to accept the loss of image quality.', 'robin-image-optimizer' )
161
  ]
162
  ],
163
  'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
27
  * {@inheritdoc}
28
  */
29
  public $show_right_sidebar_in_options = true;
30
+
31
+ /**
32
+ * {@inheritDoc}
33
+ *
34
+ * @since 1.1.3 - Added
35
+ * @var bool - true show, false hide
36
+ */
37
+ public $show_search_options_form = false;
38
 
39
  /**
40
  * @param WRIO_Plugin $plugin
43
 
44
  $this->menu_title = __( 'Settings', 'robin-image-optimizer' );
45
  $this->page_menu_short_description = __( 'Plugin configuration', 'robin-image-optimizer' );
46
+
47
+ if ( defined( 'WBCR_CLEARFY_PLUGIN_ACTIVE' ) ) {
48
+ $this->show_search_options_form = true;
49
+ }
50
 
51
  parent::__construct( $plugin );
52
  }
56
  *
57
  * @return void
58
  * @since 1.0.0
59
+ * @see Wbcr_FactoryPages438_AdminPage
60
  *
61
  */
62
  public function assets( $scripts, $styles ) {
169
  [
170
  'custom',
171
  __( 'Custom', 'robin-image-optimizer' ),
172
+ __( 'This mode allows you to configure your own compression ratio.', 'robin-image-optimizer' )
173
  ]
174
  ],
175
  'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
admin/pages/class-rio-statistic.php CHANGED
@@ -88,11 +88,6 @@ class WRIO_StatisticPage extends WRIO_Page {
88
  if ( ( $this->plugin->getPluginName() != $plugin->getPluginName() ) || ( $obj->id != 'rio_general' ) ) {
89
  return false;
90
  }
91
-
92
- if ( ! wrio_is_license_activate() && ! wrio_is_license_active() ) {
93
- $notice = sprintf( __( "We are forced to introduce limits on free servers. Read more on <a href='%s'>our website</a>", 'robin-image-optimizer' ), 'https://robinoptimizer.com/we-are-forced-to-introduce-limits/' );
94
- $obj->printWarningNotice( $notice );
95
- }
96
  }
97
 
98
  /**
88
  if ( ( $this->plugin->getPluginName() != $plugin->getPluginName() ) || ( $obj->id != 'rio_general' ) ) {
89
  return false;
90
  }
 
 
 
 
 
91
  }
92
 
93
  /**
assets/js/jquery.lazy.js CHANGED
@@ -1,872 +1,872 @@
1
- /*!
2
- * jQuery & Zepto Lazy - v1.7.10
3
- * http://jquery.eisbehr.de/lazy/
4
- *
5
- * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern
6
- *
7
- * Dual licensed under the MIT and GPL-2.0 licenses:
8
- * http://www.opensource.org/licenses/mit-license.php
9
- * http://www.gnu.org/licenses/gpl-2.0.html
10
- *
11
- * $("img.lazy").lazy();
12
- */
13
-
14
- ;(function(window, undefined) {
15
- "use strict";
16
-
17
- // noinspection JSUnresolvedVariable
18
- /**
19
- * library instance - here and not in construct to be shorter in minimization
20
- * @return void
21
- */
22
- var $ = window.jQuery || window.Zepto,
23
-
24
- /**
25
- * unique plugin instance id counter
26
- * @type {number}
27
- */
28
- lazyInstanceId = 0,
29
-
30
- /**
31
- * helper to register window load for jQuery 3
32
- * @type {boolean}
33
- */
34
- windowLoaded = false;
35
-
36
- /**
37
- * make lazy available to jquery - and make it a bit more case-insensitive :)
38
- * @access public
39
- * @type {function}
40
- * @param {object} settings
41
- * @return {LazyPlugin}
42
- */
43
- $.fn.Lazy = $.fn.lazy = function(settings) {
44
- return new LazyPlugin(this, settings);
45
- };
46
-
47
- /**
48
- * helper to add plugins to lazy prototype configuration
49
- * @access public
50
- * @type {function}
51
- * @param {string|Array} names
52
- * @param {string|Array|function} [elements]
53
- * @param {function} loader
54
- * @return void
55
- */
56
- $.Lazy = $.lazy = function(names, elements, loader) {
57
- // make second parameter optional
58
- if ($.isFunction(elements)) {
59
- loader = elements;
60
- elements = [];
61
- }
62
-
63
- // exit here if parameter is not a callable function
64
- if (!$.isFunction(loader)) {
65
- return;
66
- }
67
-
68
- // make parameters an array of names to be sure
69
- names = $.isArray(names) ? names : [names];
70
- elements = $.isArray(elements) ? elements : [elements];
71
-
72
- var config = LazyPlugin.prototype.config,
73
- forced = config._f || (config._f = {});
74
-
75
- // add the loader plugin for every name
76
- for (var i = 0, l = names.length; i < l; i++) {
77
- if (config[names[i]] === undefined || $.isFunction(config[names[i]])) {
78
- config[names[i]] = loader;
79
- }
80
- }
81
-
82
- // add forced elements loader
83
- for (var c = 0, a = elements.length; c < a; c++) {
84
- forced[elements[c]] = names[0];
85
- }
86
- };
87
-
88
- /**
89
- * contains all logic and the whole element handling
90
- * is packed in a private function outside class to reduce memory usage, because it will not be created on every plugin instance
91
- * @access private
92
- * @type {function}
93
- * @param {LazyPlugin} instance
94
- * @param {object} config
95
- * @param {object|Array} items
96
- * @param {object} events
97
- * @param {string} namespace
98
- * @return void
99
- */
100
- function _executeLazy(instance, config, items, events, namespace) {
101
- /**
102
- * a helper to trigger the 'onFinishedAll' callback after all other events
103
- * @access private
104
- * @type {number}
105
- */
106
- var _awaitingAfterLoad = 0,
107
-
108
- /**
109
- * visible content width
110
- * @access private
111
- * @type {number}
112
- */
113
- _actualWidth = -1,
114
-
115
- /**
116
- * visible content height
117
- * @access private
118
- * @type {number}
119
- */
120
- _actualHeight = -1,
121
-
122
- /**
123
- * determine possibly detected high pixel density
124
- * @access private
125
- * @type {boolean}
126
- */
127
- _isRetinaDisplay = false,
128
-
129
- /**
130
- * dictionary entry for better minimization
131
- * @access private
132
- * @type {string}
133
- */
134
- _afterLoad = 'afterLoad',
135
-
136
- /**
137
- * dictionary entry for better minimization
138
- * @access private
139
- * @type {string}
140
- */
141
- _load = 'load',
142
-
143
- /**
144
- * dictionary entry for better minimization
145
- * @access private
146
- * @type {string}
147
- */
148
- _error = 'error',
149
-
150
- /**
151
- * dictionary entry for better minimization
152
- * @access private
153
- * @type {string}
154
- */
155
- _img = 'img',
156
-
157
- /**
158
- * dictionary entry for better minimization
159
- * @access private
160
- * @type {string}
161
- */
162
- _src = 'src',
163
-
164
- /**
165
- * dictionary entry for better minimization
166
- * @access private
167
- * @type {string}
168
- */
169
- _srcset = 'srcset',
170
-
171
- /**
172
- * dictionary entry for better minimization
173
- * @access private
174
- * @type {string}
175
- */
176
- _sizes = 'sizes',
177
-
178
- /**
179
- * dictionary entry for better minimization
180
- * @access private
181
- * @type {string}
182
- */
183
- _backgroundImage = 'background-image';
184
-
185
- /**
186
- * initialize plugin
187
- * bind loading to events or set delay time to load all items at once
188
- * @access private
189
- * @return void
190
- */
191
- function _initialize() {
192
- // detect actual device pixel ratio
193
- // noinspection JSUnresolvedVariable
194
- _isRetinaDisplay = window.devicePixelRatio > 1;
195
-
196
- // prepare all initial items
197
- items = _prepareItems(items);
198
-
199
- // if delay time is set load all items at once after delay time
200
- if (config.delay >= 0) {
201
- setTimeout(function() {
202
- _lazyLoadItems(true);
203
- }, config.delay);
204
- }
205
-
206
- // if no delay is set or combine usage is active bind events
207
- if (config.delay < 0 || config.combined) {
208
- // create unique event function
209
- events.e = _throttle(config.throttle, function(event) {
210
- // reset detected window size on resize event
211
- if (event.type === 'resize') {
212
- _actualWidth = _actualHeight = -1;
213
- }
214
-
215
- // execute 'lazy magic'
216
- _lazyLoadItems(event.all);
217
- });
218
-
219
- // create function to add new items to instance
220
- events.a = function(additionalItems) {
221
- additionalItems = _prepareItems(additionalItems);
222
- items.push.apply(items, additionalItems);
223
- };
224
-
225
- // create function to get all instance items left
226
- events.g = function() {
227
- // filter loaded items before return in case internal filter was not running until now
228
- return (items = $(items).filter(function() {
229
- return !$(this).data(config.loadedName);
230
- }));
231
- };
232
-
233
- // create function to force loading elements
234
- events.f = function(forcedItems) {
235
- for (var i = 0; i < forcedItems.length; i++) {
236
- // only handle item if available in current instance
237
- // use a compare function, because Zepto can't handle object parameter for filter
238
- // var item = items.filter(forcedItems[i]);
239
- /* jshint loopfunc: true */
240
- var item = items.filter(function() {
241
- return this === forcedItems[i];
242
- });
243
-
244
- if (item.length) {
245
- _lazyLoadItems(false, item);
246
- }
247
- }
248
- };
249
-
250
- // load initial items
251
- _lazyLoadItems();
252
-
253
- // bind lazy load functions to scroll and resize event
254
- // noinspection JSUnresolvedVariable
255
- $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e);
256
- }
257
- }
258
-
259
- /**
260
- * prepare items before handle them
261
- * @access private
262
- * @param {Array|object|jQuery} items
263
- * @return {Array|object|jQuery}
264
- */
265
- function _prepareItems(items) {
266
- // fetch used configurations before loops
267
- var defaultImage = config.defaultImage,
268
- placeholder = config.placeholder,
269
- imageBase = config.imageBase,
270
- srcsetAttribute = config.srcsetAttribute,
271
- loaderAttribute = config.loaderAttribute,
272
- forcedTags = config._f || {};
273
-
274
- // filter items and only add those who not handled yet and got needed attributes available
275
- items = $(items).filter(function() {
276
- var element = $(this),
277
- tag = _getElementTagName(this);
278
-
279
- return !element.data(config.handledName) &&
280
- (element.attr(config.attribute) || element.attr(srcsetAttribute) || element.attr(loaderAttribute) || forcedTags[tag] !== undefined);
281
- })
282
-
283
- // append plugin instance to all elements
284
- .data('plugin_' + config.name, instance);
285
-
286
- for (var i = 0, l = items.length; i < l; i++) {
287
- var element = $(items[i]),
288
- tag = _getElementTagName(items[i]),
289
- elementImageBase = element.attr(config.imageBaseAttribute) || imageBase;
290
-
291
- // generate and update source set if an image base is set
292
- if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) {
293
- element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase));
294
- }
295
-
296
- // add loader to forced element types
297
- if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) {
298
- element.attr(loaderAttribute, forcedTags[tag]);
299
- }
300
-
301
- // set default image on every element without source
302
- if (tag === _img && defaultImage && !element.attr(_src)) {
303
- element.attr(_src, defaultImage);
304
- }
305
-
306
- // set placeholder on every element without background image
307
- else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) {
308
- element.css(_backgroundImage, "url('" + placeholder + "')");
309
- }
310
- }
311
-
312
- return items;
313
- }
314
-
315
- /**
316
- * the 'lazy magic' - check all items
317
- * @access private
318
- * @param {boolean} [allItems]
319
- * @param {object} [forced]
320
- * @return void
321
- */
322
- function _lazyLoadItems(allItems, forced) {
323
- // skip if no items where left
324
- if (!items.length) {
325
- // destroy instance if option is enabled
326
- if (config.autoDestroy) {
327
- // noinspection JSUnresolvedFunction
328
- instance.destroy();
329
- }
330
-
331
- return;
332
- }
333
-
334
- var elements = forced || items,
335
- loadTriggered = false,
336
- imageBase = config.imageBase || '',
337
- srcsetAttribute = config.srcsetAttribute,
338
- handledName = config.handledName;
339
-
340
- // loop all available items
341
- for (var i = 0; i < elements.length; i++) {
342
- // item is at least in loadable area
343
- if (allItems || forced || _isInLoadableArea(elements[i])) {
344
- var element = $(elements[i]),
345
- tag = _getElementTagName(elements[i]),
346
- attribute = element.attr(config.attribute),
347
- elementImageBase = element.attr(config.imageBaseAttribute) || imageBase,
348
- customLoader = element.attr(config.loaderAttribute);
349
-
350
- // is not already handled
351
- if (!element.data(handledName) &&
352
- // and is visible or visibility doesn't matter
353
- (!config.visibleOnly || element.is(':visible')) && (
354
- // and image source or source set attribute is available
355
- (attribute || element.attr(srcsetAttribute)) && (
356
- // and is image tag where attribute is not equal source or source set
357
- (tag === _img && (elementImageBase + attribute !== element.attr(_src) || element.attr(srcsetAttribute) !== element.attr(_srcset))) ||
358
- // or is non image tag where attribute is not equal background
359
- (tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage))
360
- ) ||
361
- // or custom loader is available
362
- customLoader))
363
- {
364
- // mark element always as handled as this point to prevent double handling
365
- loadTriggered = true;
366
- element.data(handledName, true);
367
-
368
- // load item
369
- _handleItem(element, tag, elementImageBase, customLoader);
370
- }
371
- }
372
- }
373
-
374
- // when something was loaded remove them from remaining items
375
- if (loadTriggered) {
376
- items = $(items).filter(function() {
377
- return !$(this).data(handledName);
378
- });
379
- }
380
- }
381
-
382
- /**
383
- * load the given element the lazy way
384
- * @access private
385
- * @param {object} element
386
- * @param {string} tag
387
- * @param {string} imageBase
388
- * @param {function} [customLoader]
389
- * @return void
390
- */
391
- function _handleItem(element, tag, imageBase, customLoader) {
392
- // increment count of items waiting for after load
393
- ++_awaitingAfterLoad;
394
-
395
- // extended error callback for correct 'onFinishedAll' handling
396
- var errorCallback = function() {
397
- _triggerCallback('onError', element);
398
- _reduceAwaiting();
399
-
400
- // prevent further callback calls
401
- errorCallback = $.noop;
402
- };
403
-
404
- // trigger function before loading image
405
- _triggerCallback('beforeLoad', element);
406
-
407
- // fetch all double used data here for better code minimization
408
- var srcAttribute = config.attribute,
409
- srcsetAttribute = config.srcsetAttribute,
410
- sizesAttribute = config.sizesAttribute,
411
- retinaAttribute = config.retinaAttribute,
412