Simple Image Sizes - Version 2.0.3

Version Description

Download this release

Release Info

Developer Rahe
Plugin Icon wp plugin Simple Image Sizes
Version 2.0.3
Comparing to
See all releases

Code changes from version 2.0.2 to 2.0.3

css/Aristo/jquery-ui-1.8.7.custom.css CHANGED
@@ -1,740 +1,740 @@
1
- /*
2
- * jQuery UI CSS Framework 1.8.7
3
- *
4
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Theming/API
9
- */
10
-
11
- /* Layout helpers
12
- ----------------------------------*/
13
- .ui-helper-hidden { display: none; }
14
- .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
- .ui-helper-clearfix { display: inline-block; }
18
- /* required comment for clearfix to work in Opera \*/
19
- * html .ui-helper-clearfix { height:1%; }
20
- .ui-helper-clearfix { display:block; }
21
- /* end clearfix */
22
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
-
24
-
25
- /* Interaction Cues
26
- ----------------------------------*/
27
- .ui-state-disabled { cursor: default !important; }
28
-
29
-
30
- /* Icons
31
- ----------------------------------*/
32
-
33
- /* states and images */
34
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
-
36
-
37
- /* Misc visuals
38
- ----------------------------------*/
39
-
40
- /* Overlays */
41
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
-
43
-
44
- /*
45
- * jQuery UI CSS Framework 1.8.7
46
- *
47
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
48
- * Dual licensed under the MIT or GPL Version 2 licenses.
49
- * http://jquery.org/license
50
- *
51
- * http://docs.jquery.com/UI/Theming/API
52
- *
53
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
54
- */
55
-
56
-
57
- /* Component containers
58
- ----------------------------------*/
59
- .ui-widget { font-family: Helvetica,Arial,sans-serif; font-size: 1.1em; }
60
- .ui-widget .ui-widget { font-size: 1em; }
61
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica,Arial,sans-serif; font-size: 1em; }
62
- .ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
63
- .ui-widget-content a { color: #4F4F4F; }
64
- .ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
65
- .ui-widget-header {
66
- background: url(images/bg_fallback.png) 0 0 repeat-x;
67
- background: -webkit-gradient(
68
- linear,
69
- left bottom,
70
- left top,
71
- color-stop(1, rgb(237,237,237)),
72
- color-stop(0, rgb(196,196,196))
73
- );
74
- background: -moz-linear-gradient(
75
- center top,
76
- rgb(237,237,237),
77
- rgb(196,196,196)
78
- );
79
- }
80
- .ui-widget-header a { color: #4F4F4F; }
81
-
82
- /* Interaction states
83
- ----------------------------------*/
84
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }
85
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
86
- background: url(images/bg_fallback.png) 0 0 repeat-x;
87
- background: -webkit-gradient(
88
- linear,
89
- left bottom,
90
- left top,
91
- color-stop(1, rgb(237,237,237)),
92
- color-stop(0, rgb(196,196,196))
93
- );
94
- background: -moz-linear-gradient(
95
- center top,
96
- rgb(237,237,237),
97
- rgb(196,196,196)
98
- );
99
- -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
100
- -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
101
- }
102
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }
103
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }
104
- .ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
105
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
106
- outline: none;
107
- color: #1c4257; border: 1px solid #7096ab;
108
- background: url(images/bg_fallback.png) 0 -50px repeat-x;
109
- background: -webkit-gradient(
110
- linear,
111
- left bottom,
112
- left top,
113
- color-stop(1, rgb(185,224,245)),
114
- color-stop(0, rgb(146,189,214))
115
- );
116
- background: -moz-linear-gradient(
117
- center top,
118
- rgb(185,224,245),
119
- rgb(146,189,214)
120
- );
121
- -webkit-box-shadow: none;
122
- -moz-box-shadow: none;
123
- }
124
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }
125
- .ui-widget :active { outline: none; }
126
-
127
- /* Interaction Cues
128
- ----------------------------------*/
129
- .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
130
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
131
- .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
132
- .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
133
- .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
134
- .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
135
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
136
- .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
137
-
138
- /* Icons
139
- ----------------------------------*/
140
-
141
- /* states and images */
142
- .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
143
- .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
144
- .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
145
- .ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); }
146
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
147
- .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
148
- .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
149
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; }
150
- .ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
151
-
152
- /* positioning */
153
- .ui-icon-carat-1-n { background-position: 0 0; }
154
- .ui-icon-carat-1-ne { background-position: -16px 0; }
155
- .ui-icon-carat-1-e { background-position: -32px 0; }
156
- .ui-icon-carat-1-se { background-position: -48px 0; }
157
- .ui-icon-carat-1-s { background-position: -64px 0; }
158
- .ui-icon-carat-1-sw { background-position: -80px 0; }
159
- .ui-icon-carat-1-w { background-position: -96px 0; }
160
- .ui-icon-carat-1-nw { background-position: -112px 0; }
161
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
162
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
163
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
164
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
165
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
166
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
167
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
168
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
169
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
170
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
171
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
172
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
173
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
174
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
175
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
176
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
177
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
178
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
179
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
180
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
181
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
182
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
183
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
184
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
185
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
186
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
187
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
188
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
189
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
190
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
191
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
192
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
193
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
194
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
195
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
196
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
197
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
198
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
199
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
200
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
201
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
202
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
203
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
204
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
205
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
206
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
207
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
208
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
209
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
210
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
211
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
212
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
213
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
214
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
215
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
216
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
217
- .ui-icon-arrow-4 { background-position: 0 -80px; }
218
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
219
- .ui-icon-extlink { background-position: -32px -80px; }
220
- .ui-icon-newwin { background-position: -48px -80px; }
221
- .ui-icon-refresh { background-position: -64px -80px; }
222
- .ui-icon-shuffle { background-position: -80px -80px; }
223
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
224
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
225
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
226
- .ui-icon-folder-open { background-position: -16px -96px; }
227
- .ui-icon-document { background-position: -32px -96px; }
228
- .ui-icon-document-b { background-position: -48px -96px; }
229
- .ui-icon-note { background-position: -64px -96px; }
230
- .ui-icon-mail-closed { background-position: -80px -96px; }
231
- .ui-icon-mail-open { background-position: -96px -96px; }
232
- .ui-icon-suitcase { background-position: -112px -96px; }
233
- .ui-icon-comment { background-position: -128px -96px; }
234
- .ui-icon-person { background-position: -144px -96px; }
235
- .ui-icon-print { background-position: -160px -96px; }
236
- .ui-icon-trash { background-position: -176px -96px; }
237
- .ui-icon-locked { background-position: -192px -96px; }
238
- .ui-icon-unlocked { background-position: -208px -96px; }
239
- .ui-icon-bookmark { background-position: -224px -96px; }
240
- .ui-icon-tag { background-position: -240px -96px; }
241
- .ui-icon-home { background-position: 0 -112px; }
242
- .ui-icon-flag { background-position: -16px -112px; }
243
- .ui-icon-calendar { background-position: -32px -112px; }
244
- .ui-icon-cart { background-position: -48px -112px; }
245
- .ui-icon-pencil { background-position: -64px -112px; }
246
- .ui-icon-clock { background-position: -80px -112px; }
247
- .ui-icon-disk { background-position: -96px -112px; }
248
- .ui-icon-calculator { background-position: -112px -112px; }
249
- .ui-icon-zoomin { background-position: -128px -112px; }
250
- .ui-icon-zoomout { background-position: -144px -112px; }
251
- .ui-icon-search { background-position: -160px -112px; }
252
- .ui-icon-wrench { background-position: -176px -112px; }
253
- .ui-icon-gear { background-position: -192px -112px; }
254
- .ui-icon-heart { background-position: -208px -112px; }
255
- .ui-icon-star { background-position: -224px -112px; }
256
- .ui-icon-link { background-position: -240px -112px; }
257
- .ui-icon-cancel { background-position: 0 -128px; }
258
- .ui-icon-plus { background-position: -16px -128px; }
259
- .ui-icon-plusthick { background-position: -32px -128px; }
260
- .ui-icon-minus { background-position: -48px -128px; }
261
- .ui-icon-minusthick { background-position: -64px -128px; }
262
- .ui-icon-close { background-position: -80px -128px; }
263
- .ui-icon-closethick { background-position: -96px -128px; }
264
- .ui-icon-key { background-position: -112px -128px; }
265
- .ui-icon-lightbulb { background-position: -128px -128px; }
266
- .ui-icon-scissors { background-position: -144px -128px; }
267
- .ui-icon-clipboard { background-position: -160px -128px; }
268
- .ui-icon-copy { background-position: -176px -128px; }
269
- .ui-icon-contact { background-position: -192px -128px; }
270
- .ui-icon-image { background-position: -208px -128px; }
271
- .ui-icon-video { background-position: -224px -128px; }
272
- .ui-icon-script { background-position: -240px -128px; }
273
- .ui-icon-alert { background-position: 0 -144px; }
274
- .ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; }
275
- .ui-icon-notice { background-position: -32px -144px; }
276
- .ui-icon-help { background-position: -48px -144px; }
277
- .ui-icon-check { background-position: -64px -144px; }
278
- .ui-icon-bullet { background-position: -80px -144px; }
279
- .ui-icon-radio-off { background-position: -96px -144px; }
280
- .ui-icon-radio-on { background-position: -112px -144px; }
281
- .ui-icon-pin-w { background-position: -128px -144px; }
282
- .ui-icon-pin-s { background-position: -144px -144px; }
283
- .ui-icon-play { background-position: 0 -160px; }
284
- .ui-icon-pause { background-position: -16px -160px; }
285
- .ui-icon-seek-next { background-position: -32px -160px; }
286
- .ui-icon-seek-prev { background-position: -48px -160px; }
287
- .ui-icon-seek-end { background-position: -64px -160px; }
288
- .ui-icon-seek-start { background-position: -80px -160px; }
289
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
290
- .ui-icon-seek-first { background-position: -80px -160px; }
291
- .ui-icon-stop { background-position: -96px -160px; }
292
- .ui-icon-eject { background-position: -112px -160px; }
293
- .ui-icon-volume-off { background-position: -128px -160px; }
294
- .ui-icon-volume-on { background-position: -144px -160px; }
295
- .ui-icon-power { background-position: 0 -176px; }
296
- .ui-icon-signal-diag { background-position: -16px -176px; }
297
- .ui-icon-signal { background-position: -32px -176px; }
298
- .ui-icon-battery-0 { background-position: -48px -176px; }
299
- .ui-icon-battery-1 { background-position: -64px -176px; }
300
- .ui-icon-battery-2 { background-position: -80px -176px; }
301
- .ui-icon-battery-3 { background-position: -96px -176px; }
302
- .ui-icon-circle-plus { background-position: 0 -192px; }
303
- .ui-icon-circle-minus { background-position: -16px -192px; }
304
- .ui-icon-circle-close { background-position: -32px -192px; }
305
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
306
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
307
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
308
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
309
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
310
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
311
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
312
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
313
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
314
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
315
- .ui-icon-circle-check { background-position: -208px -192px; }
316
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
317
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
318
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
319
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
320
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
321
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
322
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
323
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
324
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
325
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
326
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
327
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
328
-
329
-
330
- /* Misc visuals
331
- ----------------------------------*/
332
-
333
- /* Corner radius */
334
- .ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
335
- .ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
336
- .ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
337
- .ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
338
- .ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
339
- .ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
340
- .ui-corner-right { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
341
- .ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
342
- .ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
343
-
344
- /* Overlays */
345
- .ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
346
- .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
347
- * jQuery UI Resizable 1.8.7
348
- *
349
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
350
- * Dual licensed under the MIT or GPL Version 2 licenses.
351
- * http://jquery.org/license
352
- *
353
- * http://docs.jquery.com/UI/Resizable#theming
354
- */
355
- .ui-resizable { position: relative;}
356
- .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
357
- .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
358
- .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
359
- .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
360
- .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
361
- .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
362
- .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
363
- .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
364
- .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
365
- .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
366
- * jQuery UI Selectable 1.8.7
367
- *
368
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
369
- * Dual licensed under the MIT or GPL Version 2 licenses.
370
- * http://jquery.org/license
371
- *
372
- * http://docs.jquery.com/UI/Selectable#theming
373
- */
374
- .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
375
- /*
376
- * jQuery UI Accordion 1.8.7
377
- *
378
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
379
- * Dual licensed under the MIT or GPL Version 2 licenses.
380
- * http://jquery.org/license
381
- *
382
- * http://docs.jquery.com/UI/Accordion#theming
383
- */
384
- /* IE/Win - Fix animation bug - #4615 */
385
- .ui-accordion { width: 100%; }
386
- .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
387
- .ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
388
- .ui-accordion .ui-accordion-li-fix { display: inline; }
389
- .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
390
- .ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: bold; padding: .5em .5em .5em .7em; }
391
- .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
392
- .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
393
- .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
394
- .ui-accordion .ui-accordion-content-active { display: block; }/*
395
- * jQuery UI Autocomplete 1.8.7
396
- *
397
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
398
- * Dual licensed under the MIT or GPL Version 2 licenses.
399
- * http://jquery.org/license
400
- *
401
- * http://docs.jquery.com/UI/Autocomplete#theming
402
- */
403
- .ui-autocomplete {
404
- position: absolute; cursor: default; z-index: 3 !important;
405
- -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
406
- -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
407
- -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
408
- }
409
-
410
- /* workarounds */
411
- * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
412
-
413
- /*
414
- * jQuery UI Menu 1.8.7
415
- *
416
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
417
- * Dual licensed under the MIT or GPL Version 2 licenses.
418
- * http://jquery.org/license
419
- *
420
- * http://docs.jquery.com/UI/Menu#theming
421
- */
422
- .ui-menu {
423
- list-style:none;
424
- padding: 2px;
425
- margin: 0;
426
- display:block;
427
- float: left;
428
- }
429
- .ui-menu .ui-menu {
430
- margin-top: -3px;
431
- }
432
- .ui-menu .ui-menu-item {
433
- margin:0;
434
- padding: 0;
435
- zoom: 1;
436
- float: left;
437
- clear: left;
438
- width: 100%;
439
- }
440
- .ui-menu .ui-menu-item a {
441
- text-decoration:none;
442
- display:block;
443
- padding:.2em .4em;
444
- line-height:1.5;
445
- zoom:1;
446
- }
447
- .ui-menu .ui-menu-item a.ui-state-hover,
448
- .ui-menu .ui-menu-item a.ui-state-active {
449
- font-weight: normal;
450
- margin: -1px;
451
- background: #5f83b9;
452
- color: #FFFFFF;
453
- text-shadow: 0px 1px 1px #234386;
454
- border-color: #466086;
455
- -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
456
- }
457
- /*
458
- * jQuery UI Button 1.8.7
459
- *
460
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
461
- * Dual licensed under the MIT or GPL Version 2 licenses.
462
- * http://jquery.org/license
463
- *
464
- * http://docs.jquery.com/UI/Button#theming
465
- */
466
- .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */
467
- .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
468
- button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
469
- .ui-button-icons-only { width: 3.4em; }
470
- button.ui-button-icons-only { width: 3.7em; }
471
-
472
- /* button animation properties */
473
- .ui-button {
474
- -webkit-transition: all 0.25s ease-in-out;
475
- -moz-transition: all 0.25s ease-in-out;
476
- -o-transition: all 0.25s ease-in-out;
477
- }
478
-
479
- /*states*/
480
- .ui-button.ui-state-hover {
481
- -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
482
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
483
- }
484
- .ui-button.ui-state-focus {
485
- outline: none;
486
- color: #1c4257; border-color: #7096ab;
487
- background-image: -webkit-gradient(
488
- linear,
489
- left bottom,
490
- left top,
491
- color-stop(1, rgb(185,224,245)),
492
- color-stop(0, rgb(146,189,214))
493
- );
494
- background-image: -moz-linear-gradient(
495
- center top,
496
- rgb(185,224,245),
497
- rgb(146,189,214)
498
- );
499
- -webkit-box-shadow: none;
500
- -moz-box-shadow: none;
501
- }
502
-
503
- /*button text element */
504
- .ui-button .ui-button-text { display: block; line-height: 1.4; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
505
- .ui-button-text-only .ui-button-text { padding: .4em 1em .3em }
506
- .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
507
- .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
508
- .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
509
- .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
510
- /* no icon support for input elements, provide padding by default */
511
- input.ui-button { padding: .4em 1em; }
512
-
513
- /*button icon element(s) */
514
- .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
515
- .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
516
- .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
517
- .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
518
- .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
519
-
520
- /*button sets*/
521
- .ui-buttonset { margin-right: 7px; }
522
- .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
523
- .ui-buttonset .ui-button.ui-state-active { color: #1c4257; border-color: #7096ab; }
524
- .ui-buttonset .ui-button.ui-state-active {
525
- background-image: -webkit-gradient(
526
- linear,
527
- left bottom,
528
- left top,
529
- color-stop(1, rgb(185,224,245)),
530
- color-stop(0, rgb(146,189,214))
531
- );
532
- background-image: -moz-linear-gradient(
533
- center top,
534
- rgb(185,224,245),
535
- rgb(146,189,214)
536
- );
537
- -webkit-box-shadow: none;
538
- -moz-box-shadow: none;
539
- }
540
-
541
- /* workarounds */
542
- button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
543
- /*
544
- * jQuery UI Dialog 1.8.7
545
- *
546
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
547
- * Dual licensed under the MIT or GPL Version 2 licenses.
548
- * http://jquery.org/license
549
- *
550
- * http://docs.jquery.com/UI/Dialog#theming
551
- */
552
- .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; }
553
- .ui-dialog {
554
- -webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
555
- -moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
556
- }
557
- .ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #979797; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
558
- .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 14px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
559
- .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 55%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; }
560
- .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; }
561
- .ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
562
- .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; }
563
- .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
564
- .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
565
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
566
- .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
567
- .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
568
- .ui-draggable .ui-dialog-titlebar { cursor: move; }
569
- /*
570
- * jQuery UI Slider 1.8.7
571
- *
572
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
573
- * Dual licensed under the MIT or GPL Version 2 licenses.
574
- * http://jquery.org/license
575
- *
576
- * http://docs.jquery.com/UI/Slider#theming
577
- */
578
- .ui-slider { position: relative; text-align: left; background: #d7d7d7; }
579
- .ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; }
580
- .ui-slider .ui-slider-handle { background: url(images/slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; }
581
- .ui-slider .ui-state-hover, .ui-slider .ui-state-active { background-position: 0 0; }
582
- .ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
583
- .ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; }
584
-
585
-
586
- .ui-slider-horizontal { height: 5px; }
587
- .ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; }
588
- .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
589
- .ui-slider-horizontal .ui-slider-range-min { left: 0; }
590
- .ui-slider-horizontal .ui-slider-range-max { right: 0; }
591
-
592
- .ui-slider-vertical { width: 5px; height: 100px; }
593
- .ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; }
594
- .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
595
- .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
596
- .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
597
- * jQuery UI Tabs 1.8.7
598
- *
599
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
600
- * Dual licensed under the MIT or GPL Version 2 licenses.
601
- * http://jquery.org/license
602
- *
603
- * http://docs.jquery.com/UI/Tabs#theming
604
- */
605
- .ui-tabs { position: relative; zoom: 1; border: 0; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
606
- .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; }
607
- .ui-tabs .ui-tabs-nav {
608
- -moz-border-radius: 0;
609
- -webkit-border-radius: 0;
610
- border-radius: 0;
611
- }
612
- .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
613
- .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
614
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #B6B6B6; }
615
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; }
616
- .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
617
- .ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; }
618
- .ui-tabs .ui-tabs-panel {
619
- -moz-border-radius: 0;
620
- -webkit-border-radius: 0;
621
- border-radius: 0;
622
- }
623
- .ui-tabs .ui-tabs-hide { display: none !important; }
624
- /*
625
- * jQuery UI Datepicker 1.8.7
626
- *
627
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
628
- * Dual licensed under the MIT or GPL Version 2 licenses.
629
- * http://jquery.org/license
630
- *
631
- * http://docs.jquery.com/UI/Datepicker#theming
632
- */
633
- .ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
634
- .ui-datepicker {
635
- -moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
636
- -webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
637
- box-shadow: 0 4px 8px rgba(0,0,0,0.5);
638
- }
639
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
640
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
641
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
642
- .ui-datepicker .ui-datepicker-prev { left:2px; }
643
- .ui-datepicker .ui-datepicker-next { right:2px; }
644
- .ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
645
- .ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
646
- .ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
647
- .ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
648
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; }
649
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
650
- .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
651
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
652
- .ui-datepicker select.ui-datepicker-month,
653
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
654
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
655
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
656
- .ui-datepicker td { border: 0; padding: 1px; }
657
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
658
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
659
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
660
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
661
- .ui-datepicker .ui-state-default { background: transparent; border-color: #FFF; }
662
- .ui-datepicker .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; }
663
-
664
- /* with multiple calendars */
665
- .ui-datepicker.ui-datepicker-multi { width:auto; }
666
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
667
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
668
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
669
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
670
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
671
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
672
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
673
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
674
- .ui-datepicker-row-break { clear:both; width:100%; }
675
-
676
- /* RTL support */
677
- .ui-datepicker-rtl { direction: rtl; }
678
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
679
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
680
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
681
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
682
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
683
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
684
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
685
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
686
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
687
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
688
-
689
- /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
690
- .ui-datepicker-cover {
691
- display: none; /*sorry for IE5*/
692
- display/**/: block; /*sorry for IE5*/
693
- position: absolute; /*must have*/
694
- z-index: -1; /*must have*/
695
- filter: mask(); /*must have*/
696
- top: -4px; /*must have*/
697
- left: -4px; /*must have*/
698
- width: 200px; /*must have*/
699
- height: 200px; /*must have*/
700
- }/*
701
- * jQuery UI Progressbar 1.8.7
702
- *
703
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
704
- * Dual licensed under the MIT or GPL Version 2 licenses.
705
- * http://jquery.org/license
706
- *
707
- * http://docs.jquery.com/UI/Progressbar#theming
708
- */
709
- .ui-progressbar { height: 12px; text-align: left; background: #FFF url(images/progress_bar.gif) 0 -14px repeat-x; }
710
- .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: url(images/progress_bar.gif) 0 0 repeat-x; }
711
-
712
- /* Extra Input Field Styling */
713
- /*
714
- textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
715
- padding: 3px;
716
- -webkit-border-radius: 2px;
717
- -moz-border-radius: 2px;
718
- border-radius: 2px;
719
- border: 1px solid #cecece;
720
- outline: none;
721
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
722
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
723
- box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
724
- -webkit-transition: all 0.25s ease-in-out;
725
- -moz-transition: all 0.25 ease-in-out;
726
- -o-transition: all 0.25s ease-in-out;
727
- }
728
- textarea:hover, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover {
729
- border: 1px solid #bdbdbd;
730
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
731
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
732
- box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
733
- }
734
- textarea:focus, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus {
735
- border: 1px solid #95bdd4;
736
- -webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
737
- -moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
738
- box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
739
- }
740
  */
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.7
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.7
46
+ *
47
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
54
+ */
55
+
56
+
57
+ /* Component containers
58
+ ----------------------------------*/
59
+ .ui-widget { font-family: Helvetica,Arial,sans-serif; font-size: 1.1em; }
60
+ .ui-widget .ui-widget { font-size: 1em; }
61
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica,Arial,sans-serif; font-size: 1em; }
62
+ .ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
63
+ .ui-widget-content a { color: #4F4F4F; }
64
+ .ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
65
+ .ui-widget-header {
66
+ background: url(images/bg_fallback.png) 0 0 repeat-x;
67
+ background: -webkit-gradient(
68
+ linear,
69
+ left bottom,
70
+ left top,
71
+ color-stop(1, rgb(237,237,237)),
72
+ color-stop(0, rgb(196,196,196))
73
+ );
74
+ background: -moz-linear-gradient(
75
+ center top,
76
+ rgb(237,237,237),
77
+ rgb(196,196,196)
78
+ );
79
+ }
80
+ .ui-widget-header a { color: #4F4F4F; }
81
+
82
+ /* Interaction states
83
+ ----------------------------------*/
84
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }
85
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
86
+ background: url(images/bg_fallback.png) 0 0 repeat-x;
87
+ background: -webkit-gradient(
88
+ linear,
89
+ left bottom,
90
+ left top,
91
+ color-stop(1, rgb(237,237,237)),
92
+ color-stop(0, rgb(196,196,196))
93
+ );
94
+ background: -moz-linear-gradient(
95
+ center top,
96
+ rgb(237,237,237),
97
+ rgb(196,196,196)
98
+ );
99
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
100
+ -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
101
+ }
102
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }
103
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }
104
+ .ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
105
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
106
+ outline: none;
107
+ color: #1c4257; border: 1px solid #7096ab;
108
+ background: url(images/bg_fallback.png) 0 -50px repeat-x;
109
+ background: -webkit-gradient(
110
+ linear,
111
+ left bottom,
112
+ left top,
113
+ color-stop(1, rgb(185,224,245)),
114
+ color-stop(0, rgb(146,189,214))
115
+ );
116
+ background: -moz-linear-gradient(
117
+ center top,
118
+ rgb(185,224,245),
119
+ rgb(146,189,214)
120
+ );
121
+ -webkit-box-shadow: none;
122
+ -moz-box-shadow: none;
123
+ }
124
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }
125
+ .ui-widget :active { outline: none; }
126
+
127
+ /* Interaction Cues
128
+ ----------------------------------*/
129
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
130
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
131
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
132
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
133
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
134
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
135
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
136
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
137
+
138
+ /* Icons
139
+ ----------------------------------*/
140
+
141
+ /* states and images */
142
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
143
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
144
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
145
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); }
146
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
147
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
148
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
149
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; }
150
+ .ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
151
+
152
+ /* positioning */
153
+ .ui-icon-carat-1-n { background-position: 0 0; }
154
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
155
+ .ui-icon-carat-1-e { background-position: -32px 0; }
156
+ .ui-icon-carat-1-se { background-position: -48px 0; }
157
+ .ui-icon-carat-1-s { background-position: -64px 0; }
158
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
159
+ .ui-icon-carat-1-w { background-position: -96px 0; }
160
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
161
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
162
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
163
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
164
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
165
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
166
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
167
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
168
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
169
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
170
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
171
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
172
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
173
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
174
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
175
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
176
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
177
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
178
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
179
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
180
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
181
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
182
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
183
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
184
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
185
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
186
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
187
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
188
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
189
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
190
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
191
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
192
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
193
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
194
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
195
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
196
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
197
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
198
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
199
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
200
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
201
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
202
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
203
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
204
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
205
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
206
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
207
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
208
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
209
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
210
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
211
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
212
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
213
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
214
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
215
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
216
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
217
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
218
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
219
+ .ui-icon-extlink { background-position: -32px -80px; }
220
+ .ui-icon-newwin { background-position: -48px -80px; }
221
+ .ui-icon-refresh { background-position: -64px -80px; }
222
+ .ui-icon-shuffle { background-position: -80px -80px; }
223
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
224
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
225
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
226
+ .ui-icon-folder-open { background-position: -16px -96px; }
227
+ .ui-icon-document { background-position: -32px -96px; }
228
+ .ui-icon-document-b { background-position: -48px -96px; }
229
+ .ui-icon-note { background-position: -64px -96px; }
230
+ .ui-icon-mail-closed { background-position: -80px -96px; }
231
+ .ui-icon-mail-open { background-position: -96px -96px; }
232
+ .ui-icon-suitcase { background-position: -112px -96px; }
233
+ .ui-icon-comment { background-position: -128px -96px; }
234
+ .ui-icon-person { background-position: -144px -96px; }
235
+ .ui-icon-print { background-position: -160px -96px; }
236
+ .ui-icon-trash { background-position: -176px -96px; }
237
+ .ui-icon-locked { background-position: -192px -96px; }
238
+ .ui-icon-unlocked { background-position: -208px -96px; }
239
+ .ui-icon-bookmark { background-position: -224px -96px; }
240
+ .ui-icon-tag { background-position: -240px -96px; }
241
+ .ui-icon-home { background-position: 0 -112px; }
242
+ .ui-icon-flag { background-position: -16px -112px; }
243
+ .ui-icon-calendar { background-position: -32px -112px; }
244
+ .ui-icon-cart { background-position: -48px -112px; }
245
+ .ui-icon-pencil { background-position: -64px -112px; }
246
+ .ui-icon-clock { background-position: -80px -112px; }
247
+ .ui-icon-disk { background-position: -96px -112px; }
248
+ .ui-icon-calculator { background-position: -112px -112px; }
249
+ .ui-icon-zoomin { background-position: -128px -112px; }
250
+ .ui-icon-zoomout { background-position: -144px -112px; }
251
+ .ui-icon-search { background-position: -160px -112px; }
252
+ .ui-icon-wrench { background-position: -176px -112px; }
253
+ .ui-icon-gear { background-position: -192px -112px; }
254
+ .ui-icon-heart { background-position: -208px -112px; }
255
+ .ui-icon-star { background-position: -224px -112px; }
256
+ .ui-icon-link { background-position: -240px -112px; }
257
+ .ui-icon-cancel { background-position: 0 -128px; }
258
+ .ui-icon-plus { background-position: -16px -128px; }
259
+ .ui-icon-plusthick { background-position: -32px -128px; }
260
+ .ui-icon-minus { background-position: -48px -128px; }
261
+ .ui-icon-minusthick { background-position: -64px -128px; }
262
+ .ui-icon-close { background-position: -80px -128px; }
263
+ .ui-icon-closethick { background-position: -96px -128px; }
264
+ .ui-icon-key { background-position: -112px -128px; }
265
+ .ui-icon-lightbulb { background-position: -128px -128px; }
266
+ .ui-icon-scissors { background-position: -144px -128px; }
267
+ .ui-icon-clipboard { background-position: -160px -128px; }
268
+ .ui-icon-copy { background-position: -176px -128px; }
269
+ .ui-icon-contact { background-position: -192px -128px; }
270
+ .ui-icon-image { background-position: -208px -128px; }
271
+ .ui-icon-video { background-position: -224px -128px; }
272
+ .ui-icon-script { background-position: -240px -128px; }
273
+ .ui-icon-alert { background-position: 0 -144px; }
274
+ .ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; }
275
+ .ui-icon-notice { background-position: -32px -144px; }
276
+ .ui-icon-help { background-position: -48px -144px; }
277
+ .ui-icon-check { background-position: -64px -144px; }
278
+ .ui-icon-bullet { background-position: -80px -144px; }
279
+ .ui-icon-radio-off { background-position: -96px -144px; }
280
+ .ui-icon-radio-on { background-position: -112px -144px; }
281
+ .ui-icon-pin-w { background-position: -128px -144px; }
282
+ .ui-icon-pin-s { background-position: -144px -144px; }
283
+ .ui-icon-play { background-position: 0 -160px; }
284
+ .ui-icon-pause { background-position: -16px -160px; }
285
+ .ui-icon-seek-next { background-position: -32px -160px; }
286
+ .ui-icon-seek-prev { background-position: -48px -160px; }
287
+ .ui-icon-seek-end { background-position: -64px -160px; }
288
+ .ui-icon-seek-start { background-position: -80px -160px; }
289
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
290
+ .ui-icon-seek-first { background-position: -80px -160px; }
291
+ .ui-icon-stop { background-position: -96px -160px; }
292
+ .ui-icon-eject { background-position: -112px -160px; }
293
+ .ui-icon-volume-off { background-position: -128px -160px; }
294
+ .ui-icon-volume-on { background-position: -144px -160px; }
295
+ .ui-icon-power { background-position: 0 -176px; }
296
+ .ui-icon-signal-diag { background-position: -16px -176px; }
297
+ .ui-icon-signal { background-position: -32px -176px; }
298
+ .ui-icon-battery-0 { background-position: -48px -176px; }
299
+ .ui-icon-battery-1 { background-position: -64px -176px; }
300
+ .ui-icon-battery-2 { background-position: -80px -176px; }
301
+ .ui-icon-battery-3 { background-position: -96px -176px; }
302
+ .ui-icon-circle-plus { background-position: 0 -192px; }
303
+ .ui-icon-circle-minus { background-position: -16px -192px; }
304
+ .ui-icon-circle-close { background-position: -32px -192px; }
305
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
306
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
307
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
308
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
309
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
310
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
311
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
312
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
313
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
314
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
315
+ .ui-icon-circle-check { background-position: -208px -192px; }
316
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
317
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
318
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
319
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
320
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
321
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
322
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
323
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
324
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
325
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
326
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
327
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
328
+
329
+
330
+ /* Misc visuals
331
+ ----------------------------------*/
332
+
333
+ /* Corner radius */
334
+ .ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
335
+ .ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
336
+ .ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
337
+ .ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
338
+ .ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
339
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
340
+ .ui-corner-right { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
341
+ .ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
342
+ .ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
343
+
344
+ /* Overlays */
345
+ .ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
346
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
347
+ * jQuery UI Resizable 1.8.7
348
+ *
349
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
350
+ * Dual licensed under the MIT or GPL Version 2 licenses.
351
+ * http://jquery.org/license
352
+ *
353
+ * http://docs.jquery.com/UI/Resizable#theming
354
+ */
355
+ .ui-resizable { position: relative;}
356
+ .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
357
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
358
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
359
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
360
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
361
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
362
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
363
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
364
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
365
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
366
+ * jQuery UI Selectable 1.8.7
367
+ *
368
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
369
+ * Dual licensed under the MIT or GPL Version 2 licenses.
370
+ * http://jquery.org/license
371
+ *
372
+ * http://docs.jquery.com/UI/Selectable#theming
373
+ */
374
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
375
+ /*
376
+ * jQuery UI Accordion 1.8.7
377
+ *
378
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
379
+ * Dual licensed under the MIT or GPL Version 2 licenses.
380
+ * http://jquery.org/license
381
+ *
382
+ * http://docs.jquery.com/UI/Accordion#theming
383
+ */
384
+ /* IE/Win - Fix animation bug - #4615 */
385
+ .ui-accordion { width: 100%; }
386
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
387
+ .ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
388
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
389
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
390
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: bold; padding: .5em .5em .5em .7em; }
391
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
392
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
393
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
394
+ .ui-accordion .ui-accordion-content-active { display: block; }/*
395
+ * jQuery UI Autocomplete 1.8.7
396
+ *
397
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
398
+ * Dual licensed under the MIT or GPL Version 2 licenses.
399
+ * http://jquery.org/license
400
+ *
401
+ * http://docs.jquery.com/UI/Autocomplete#theming
402
+ */
403
+ .ui-autocomplete {
404
+ position: absolute; cursor: default; z-index: 3 !important;
405
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
406
+ -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
407
+ -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
408
+ }
409
+
410
+ /* workarounds */
411
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
412
+
413
+ /*
414
+ * jQuery UI Menu 1.8.7
415
+ *
416
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
417
+ * Dual licensed under the MIT or GPL Version 2 licenses.
418
+ * http://jquery.org/license
419
+ *
420
+ * http://docs.jquery.com/UI/Menu#theming
421
+ */
422
+ .ui-menu {
423
+ list-style:none;
424
+ padding: 2px;
425
+ margin: 0;
426
+ display:block;
427
+ float: left;
428
+ }
429
+ .ui-menu .ui-menu {
430
+ margin-top: -3px;
431
+ }
432
+ .ui-menu .ui-menu-item {
433
+ margin:0;
434
+ padding: 0;
435
+ zoom: 1;
436
+ float: left;
437
+ clear: left;
438
+ width: 100%;
439
+ }
440
+ .ui-menu .ui-menu-item a {
441
+ text-decoration:none;
442
+ display:block;
443
+ padding:.2em .4em;
444
+ line-height:1.5;
445
+ zoom:1;
446
+ }
447
+ .ui-menu .ui-menu-item a.ui-state-hover,
448
+ .ui-menu .ui-menu-item a.ui-state-active {
449
+ font-weight: normal;
450
+ margin: -1px;
451
+ background: #5f83b9;
452
+ color: #FFFFFF;
453
+ text-shadow: 0px 1px 1px #234386;
454
+ border-color: #466086;
455
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
456
+ }
457
+ /*
458
+ * jQuery UI Button 1.8.7
459
+ *
460
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
461
+ * Dual licensed under the MIT or GPL Version 2 licenses.
462
+ * http://jquery.org/license
463
+ *
464
+ * http://docs.jquery.com/UI/Button#theming
465
+ */
466
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */
467
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
468
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
469
+ .ui-button-icons-only { width: 3.4em; }
470
+ button.ui-button-icons-only { width: 3.7em; }
471
+
472
+ /* button animation properties */
473
+ .ui-button {
474
+ -webkit-transition: all 0.25s ease-in-out;
475
+ -moz-transition: all 0.25s ease-in-out;
476
+ -o-transition: all 0.25s ease-in-out;
477
+ }
478
+
479
+ /*states*/
480
+ .ui-button.ui-state-hover {
481
+ -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
482
+ -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
483
+ }
484
+ .ui-button.ui-state-focus {
485
+ outline: none;
486
+ color: #1c4257; border-color: #7096ab;
487
+ background-image: -webkit-gradient(
488
+ linear,
489
+ left bottom,
490
+ left top,
491
+ color-stop(1, rgb(185,224,245)),
492
+ color-stop(0, rgb(146,189,214))
493
+ );
494
+ background-image: -moz-linear-gradient(
495
+ center top,
496
+ rgb(185,224,245),
497
+ rgb(146,189,214)
498
+ );
499
+ -webkit-box-shadow: none;
500
+ -moz-box-shadow: none;
501
+ }
502
+
503
+ /*button text element */
504
+ .ui-button .ui-button-text { display: block; line-height: 1.4; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
505
+ .ui-button-text-only .ui-button-text { padding: .4em 1em .3em }
506
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
507
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
508
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
509
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
510
+ /* no icon support for input elements, provide padding by default */
511
+ input.ui-button { padding: .4em 1em; }
512
+
513
+ /*button icon element(s) */
514
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
515
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
516
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
517
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
518
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
519
+
520
+ /*button sets*/
521
+ .ui-buttonset { margin-right: 7px; }
522
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
523
+ .ui-buttonset .ui-button.ui-state-active { color: #1c4257; border-color: #7096ab; }
524
+ .ui-buttonset .ui-button.ui-state-active {
525
+ background-image: -webkit-gradient(
526
+ linear,
527
+ left bottom,
528
+ left top,
529
+ color-stop(1, rgb(185,224,245)),
530
+ color-stop(0, rgb(146,189,214))
531
+ );
532
+ background-image: -moz-linear-gradient(
533
+ center top,
534
+ rgb(185,224,245),
535
+ rgb(146,189,214)
536
+ );
537
+ -webkit-box-shadow: none;
538
+ -moz-box-shadow: none;
539
+ }
540
+
541
+ /* workarounds */
542
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
543
+ /*
544
+ * jQuery UI Dialog 1.8.7
545
+ *
546
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
547
+ * Dual licensed under the MIT or GPL Version 2 licenses.
548
+ * http://jquery.org/license
549
+ *
550
+ * http://docs.jquery.com/UI/Dialog#theming
551
+ */
552
+ .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; }
553
+ .ui-dialog {
554
+ -webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
555
+ -moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
556
+ }
557
+ .ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #979797; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
558
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 14px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
559
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 55%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; }
560
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; }
561
+ .ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
562
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; }
563
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
564
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
565
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
566
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
567
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
568
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
569
+ /*
570
+ * jQuery UI Slider 1.8.7
571
+ *
572
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
573
+ * Dual licensed under the MIT or GPL Version 2 licenses.
574
+ * http://jquery.org/license
575
+ *
576
+ * http://docs.jquery.com/UI/Slider#theming
577
+ */
578
+ .ui-slider { position: relative; text-align: left; background: #d7d7d7; }
579
+ .ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; }
580
+ .ui-slider .ui-slider-handle { background: url(images/slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; }
581
+ .ui-slider .ui-state-hover, .ui-slider .ui-state-active { background-position: 0 0; }
582
+ .ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
583
+ .ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; }
584
+
585
+
586
+ .ui-slider-horizontal { height: 5px; }
587
+ .ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; }
588
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
589
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
590
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
591
+
592
+ .ui-slider-vertical { width: 5px; height: 100px; }
593
+ .ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; }
594
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
595
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
596
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
597
+ * jQuery UI Tabs 1.8.7
598
+ *
599
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
600
+ * Dual licensed under the MIT or GPL Version 2 licenses.
601
+ * http://jquery.org/license
602
+ *
603
+ * http://docs.jquery.com/UI/Tabs#theming
604
+ */
605
+ .ui-tabs { position: relative; zoom: 1; border: 0; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
606
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; }
607
+ .ui-tabs .ui-tabs-nav {
608
+ -moz-border-radius: 0;
609
+ -webkit-border-radius: 0;
610
+ border-radius: 0;
611
+ }
612
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
613
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
614
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #B6B6B6; }
615
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; }
616
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
617
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; }
618
+ .ui-tabs .ui-tabs-panel {
619
+ -moz-border-radius: 0;
620
+ -webkit-border-radius: 0;
621
+ border-radius: 0;
622
+ }
623
+ .ui-tabs .ui-tabs-hide { display: none !important; }
624
+ /*
625
+ * jQuery UI Datepicker 1.8.7
626
+ *
627
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
628
+ * Dual licensed under the MIT or GPL Version 2 licenses.
629
+ * http://jquery.org/license
630
+ *
631
+ * http://docs.jquery.com/UI/Datepicker#theming
632
+ */
633
+ .ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
634
+ .ui-datepicker {
635
+ -moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
636
+ -webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
637
+ box-shadow: 0 4px 8px rgba(0,0,0,0.5);
638
+ }
639
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
640
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
641
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
642
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
643
+ .ui-datepicker .ui-datepicker-next { right:2px; }
644
+ .ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
645
+ .ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
646
+ .ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
647
+ .ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
648
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; }
649
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
650
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
651
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
652
+ .ui-datepicker select.ui-datepicker-month,
653
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
654
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
655
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
656
+ .ui-datepicker td { border: 0; padding: 1px; }
657
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
658
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
659
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
660
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
661
+ .ui-datepicker .ui-state-default { background: transparent; border-color: #FFF; }
662
+ .ui-datepicker .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; }
663
+
664
+ /* with multiple calendars */
665
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
666
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
667
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
668
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
669
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
670
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
671
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
672
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
673
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
674
+ .ui-datepicker-row-break { clear:both; width:100%; }
675
+
676
+ /* RTL support */
677
+ .ui-datepicker-rtl { direction: rtl; }
678
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
679
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
680
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
681
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
682
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
683
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
684
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
685
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
686
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
687
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
688
+
689
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
690
+ .ui-datepicker-cover {
691
+ display: none; /*sorry for IE5*/
692
+ display/**/: block; /*sorry for IE5*/
693
+ position: absolute; /*must have*/
694
+ z-index: -1; /*must have*/
695
+ filter: mask(); /*must have*/
696
+ top: -4px; /*must have*/
697
+ left: -4px; /*must have*/
698
+ width: 200px; /*must have*/
699
+ height: 200px; /*must have*/
700
+ }/*
701
+ * jQuery UI Progressbar 1.8.7
702
+ *
703
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
704
+ * Dual licensed under the MIT or GPL Version 2 licenses.
705
+ * http://jquery.org/license
706
+ *
707
+ * http://docs.jquery.com/UI/Progressbar#theming
708
+ */
709
+ .ui-progressbar { height: 12px; text-align: left; background: #FFF url(images/progress_bar.gif) 0 -14px repeat-x; }
710
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: url(images/progress_bar.gif) 0 0 repeat-x; }
711
+
712
+ /* Extra Input Field Styling */
713
+ /*
714
+ textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
715
+ padding: 3px;
716
+ -webkit-border-radius: 2px;
717
+ -moz-border-radius: 2px;
718
+ border-radius: 2px;
719
+ border: 1px solid #cecece;
720
+ outline: none;
721
+ -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
722
+ -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
723
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
724
+ -webkit-transition: all 0.25s ease-in-out;
725
+ -moz-transition: all 0.25 ease-in-out;
726
+ -o-transition: all 0.25s ease-in-out;
727
+ }
728
+ textarea:hover, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover {
729
+ border: 1px solid #bdbdbd;
730
+ -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
731
+ -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
732
+ box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
733
+ }
734
+ textarea:focus, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus {
735
+ border: 1px solid #95bdd4;
736
+ -webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
737
+ -moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
738
+ box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
739
+ }
740
  */
css/sis-style.css CHANGED
@@ -1,58 +1,58 @@
1
- .progress {
2
- position:relative;
3
- height:13px;
4
- margin-bottom: 43px;
5
- margin-top: 60px;
6
- color:#FFFFFF;
7
- display:none;
8
- }
9
-
10
- .progress .progress-percent {
11
- position: absolute;
12
- left: 0%;
13
- top: -63px;
14
- width: 82px;
15
- height: 49px;
16
- margin-top: -9px;
17
- font-weight: bold;
18
- line-height: 39px;
19
- text-align: center;
20
- }
21
- tr{
22
- -webkit-transition: all .5s ease-in-out;
23
- -moz-transition: all .5s ease-in-out;
24
- -o-transition: all .5s ease-in-out;
25
- transition: all .5s ease-in-out;
26
- }
27
- tr:nth-child(even){
28
- background-color:#F9F9F9 ;
29
- }
30
- tr.addPending{
31
- background-color:#6CA1D7;
32
- }
33
- tr.successAdding{
34
- background-color:#89D76A;
35
- }
36
- tr.errorAdding {
37
- background-color:#C45858;
38
- }
39
- tr.notChangedAdding {
40
- background-color:#F2A13A;
41
- }
42
- .wrapper {
43
- display: inline-block;
44
- float: left;
45
- width: 45%;
46
- }
47
-
48
- #regenerate_message {
49
- display:none;
50
- }
51
-
52
- #thumb {
53
- display:none;
54
- }
55
-
56
- #ajax_thumbnail_rebuild {
57
- margin-top:40px;
58
  }
1
+ .progress {
2
+ position:relative;
3
+ height:13px;
4
+ margin-bottom: 43px;
5
+ margin-top: 60px;
6
+ color:#FFFFFF;
7
+ display:none;
8
+ }
9
+
10
+ .progress .progress-percent {
11
+ position: absolute;
12
+ left: 0%;
13
+ top: -63px;
14
+ width: 82px;
15
+ height: 49px;
16
+ margin-top: -9px;
17
+ font-weight: bold;
18
+ line-height: 39px;
19
+ text-align: center;
20
+ }
21
+ tr{
22
+ -webkit-transition: all .5s ease-in-out;
23
+ -moz-transition: all .5s ease-in-out;
24
+ -o-transition: all .5s ease-in-out;
25
+ transition: all .5s ease-in-out;
26
+ }
27
+ tr:nth-child(even){
28
+ background-color:#F9F9F9 ;
29
+ }
30
+ tr.addPending{
31
+ background-color:#6CA1D7;
32
+ }
33
+ tr.successAdding{
34
+ background-color:#89D76A;
35
+ }
36
+ tr.errorAdding {
37
+ background-color:#C45858;
38
+ }
39
+ tr.notChangedAdding {
40
+ background-color:#F2A13A;
41
+ }
42
+ .wrapper {
43
+ display: inline-block;
44
+ float: left;
45
+ width: 45%;
46
+ }
47
+
48
+ #regenerate_message {
49
+ display:none;
50
+ }
51
+
52
+ #thumb {
53
+ display:none;
54
+ }
55
+
56
+ #ajax_thumbnail_rebuild {
57
+ margin-top:40px;
58
  }
inc/class.admin.php CHANGED
@@ -1,681 +1,683 @@
1
- <?php
2
- Class SISAdmin {
3
-
4
- // Original sizes
5
- public $original = array( 'thumbnail', 'medium', 'large' );
6
-
7
- public function __construct(){
8
- // Init
9
- add_action ( 'admin_menu', array( &$this, 'init' ) );
10
- add_action ( 'admin_enqueue_scripts', array( &$this, 'registerScripts' ), 11 );
11
-
12
- // Add ajax action
13
- add_action('wp_ajax_ajax_thumbnail_rebuild', array( &$this, 'ajaxThumbnailRebuildAjax' ) );
14
- add_action('wp_ajax_get_sizes', array( &$this, 'ajaxGetSizes' ) );
15
- add_action('wp_ajax_add_size', array( &$this, 'ajaxAddSize' ) );
16
- add_action('wp_ajax_remove_size', array( &$this, 'ajaxRemoveSize' ) );
17
-
18
- // Add image sizes in the form
19
- add_filter( 'attachment_fields_to_edit', array( &$this, 'sizesInForm' ), 11, 2 ); // Add our sizes to media forms
20
-
21
- // Add link in plugins list
22
- add_filter('plugin_action_links', array( &$this,'addSettingsLink'), 10, 2 );
23
- }
24
-
25
- /**
26
- * Register javascripts and css.
27
- *
28
- * @access public
29
- * @return void
30
- * @author Nicolas Juen
31
- */
32
- public function registerScripts($hook_suffix = '' ) {
33
- if( isset( $hook_suffix ) && $hook_suffix == 'options-media.php' ) {
34
- // Add javascript
35
- wp_enqueue_script( 'sis-jquery-ui-sis', SIS_URL.'js/jquery-ui-1.8.12.custom.min.js', array('jquery'), '1.8.12' );
36
- wp_enqueue_script( 'sis_js', SIS_URL.'js/sis.min.js', array('jquery','sis-jquery-ui-sis'), SIS_VERSION );
37
-
38
- // Add javascript translation
39
- wp_localize_script( 'sis_js', 'sis', $this->localizeVars() );
40
-
41
- // Add CSS
42
- wp_enqueue_style( 'jquery-ui-sis', SIS_URL.'css/Aristo/jquery-ui-1.8.7.custom.css', array(), '1.8.7' );
43
- wp_enqueue_style( 'sis_css', SIS_URL.'css/sis-style.css', array(), SIS_VERSION );
44
- }
45
- }
46
-
47
- /**
48
- * Localize the var for javascript
49
- *
50
- * @access public
51
- * @return void
52
- * @author Nicolas Juen
53
- */
54
- public function localizeVars() {
55
- return array(
56
- 'ajaxUrl' => admin_url( '/admin-ajax.php' ),
57
- 'reading' => __( 'Reading attachments...', 'sis' ),
58
- 'maximumWidth' => __( 'Maximum width', 'sis' ),
59
- 'maximumHeight' => __( 'Maximum height', 'sis' ),
60
- 'crop' => __( 'Crop ?', 'sis' ),
61
- 'of' => __( ' of ', 'sis' ),
62
- 'deleteImage' => __( 'Delete', 'sis' ),
63
- 'noMedia' => __( 'No media in your site to regenerate !', 'sis' ),
64
- 'regenerating' => __( 'Regenerating ', 'sis'),
65
- 'validate' => __( 'Validate image size name', 'sis' ),
66
- 'done' => __( 'Done.', 'sis' ),
67
- 'size' => __( 'Size', 'sis' ),
68
- 'notOriginal' => __( 'Don\'t use the basic Wordpress thumbnail size name, use the form above to edit them', 'sis' ),
69
- 'alreadyPresent' => __( 'This size is already registered, edit it instead of recreating it.', 'sis' ),
70
- 'confirmDelete' => __( 'Do you really want to delete these size ?', 'sis' ),
71
- 'update' => __( 'Update', 'sis' ),
72
- 'ajaxErrorHandler' => __( 'Error requesting page', 'sis' ),
73
- 'messageRegenerated' => __( 'images have been regenerated !', 'sis' ),
74
- 'validateButton' => __( 'Validate', 'sis' ),
75
- );
76
- }
77
-
78
- /**
79
- * Add a link to the setting option page
80
- *
81
- * @access public
82
- * @param array $links
83
- * @param string $file
84
- * @return void
85
- * @author Nicolas Juen
86
- */
87
- public function addSettingsLink( $links, $file ) {
88
-
89
- if( $file != 'simple-image-sizes/simple_image_sizes.php' )
90
- return $links;
91
-
92
- $settings_link = '<a href="'.admin_url('options-media.php').'"> '.__( 'Settings', 'sis' ).' </a>';
93
- array_unshift($links, $settings_link);
94
-
95
- return $links;
96
- }
97
-
98
- /**
99
- * Init for the option page
100
- *
101
- * @access public
102
- * @return void
103
- * @author Nicolas Juen
104
- */
105
- function init() {
106
-
107
- // Check if admin
108
- if( !is_admin() )
109
- return false;
110
-
111
- // Get the image sizes
112
- global $_wp_additional_image_sizes;
113
-
114
- // Get the sizes and add the settings
115
- foreach ( get_intermediate_image_sizes() as $s ) {
116
-
117
- // Don't make the original sizes
118
- if( in_array( $s, $this->original ) )
119
- continue;
120
-
121
- // Set width
122
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
123
- $width = intval( $_wp_additional_image_sizes[$s]['width'] );
124
- else // For default sizes set in options
125
- $width = get_option( "{$s}_size_w" );
126
-
127
- // Set height
128
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
129
- $height = intval( $_wp_additional_image_sizes[$s]['height'] );
130
- else // For default sizes set in options
131
- $height = get_option( "{$s}_size_h" );
132
-
133
- //Set crop
134
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
135
- $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
136
- else // For default sizes set in options
137
- $crop = get_option( "{$s}_crop" );
138
-
139
- // Add the setting field for this size
140
- add_settings_field( 'image_size_'.$s.'', __( 'Size ', 'sis' ).$s, array( &$this, 'imageSizes' ), 'media' , 'default', array( 'name' => $s , 'width' => $width , 'height' => $height ) );
141
-
142
- }
143
-
144
- // Register the setting for media option page
145
- register_setting( 'media', SIS_OPTION );
146
-
147
- // Add the button
148
- add_settings_field( 'add_size_button', __( 'Add a new size', 'sis' ), array( &$this, 'addSizeButton' ), 'media' );
149
-
150
- // Add legend
151
- add_settings_field( 'add_legend', __( 'Legend of the sizes', 'sis' ), array( &$this, 'addLegend' ), 'media' );
152
-
153
- // Add php button
154
- add_settings_field( 'get_php_button', __( 'Get php for theme', 'sis' ), array( &$this, 'getPhpButton' ), 'media' );
155
-
156
- // Add section for the thumbnail regeneration
157
- add_settings_section( 'thumbnail_regenerate', __( 'Thumbnail regeneration', 'sis' ), array( &$this, 'thumbnailRegenerate' ), 'media' );
158
- }
159
-
160
- /**
161
- * Display the row of the image size
162
- *
163
- * @access public
164
- * @param mixed $args
165
- * @return void
166
- * @author Nicolas Juen
167
- */
168
- public function imageSizes( $args ) {
169
- // Get the options
170
- $sizes = (array)get_option( SIS_OPTION );
171
-
172
- $height = isset( $sizes[$args['name']]['h'] )? $sizes[$args['name']]['h'] : $args['height'] ;
173
- $width = isset( $sizes[$args['name']]['w'] )? $sizes[$args['name']]['w'] : $args['width'] ;
174
- $crop = isset( $sizes[$args['name']]['c'] ) && !empty( $sizes[$args['name']]['c'] )? '1' : '0' ;
175
- $custom = ( isset( $sizes[$args['name']]['custom'] ) && !empty( $sizes[$args['name']]['custom'] ) )? '1' : '0' ;
176
- ?>
177
- <input type="hidden" value="<?php echo $args['name']; ?>" name="image_name" />
178
- <?php if( $custom ): ?>
179
- <span class="custom_size"> <?php _e( 'Custom size', 'sis'); ?> : </span>
180
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" value="1" />
181
- <?php else: ?>
182
- <span class="theme_size"> <?php _e( 'Theme size', 'sis'); ?> : </span>
183
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" value="1" />
184
- <?php endif; ?>
185
- <label for="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>">
186
- <?php _e( 'Maximum width', 'sis'); ?>
187
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" class='w' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" value="<?php echo $width ?>" />
188
- </label>
189
-
190
- <label for="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>">
191
- <?php _e( 'Maximum height', 'sis'); ?>
192
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" class='h' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" value="<?php echo $height ?>" />
193
- </label>
194
-
195
- <div class="crop">
196
- <input type='checkbox' id="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" <?php checked( $crop, 1 ) ?> class="c" name="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" value="1" />
197
- <label for="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>"><?php _e( 'Crop ?', 'sis'); ?></label>
198
- </div>
199
- <div class="delete_size"><?php _e( 'Delete', 'sis'); ?></div>
200
- <div class="add_size validate_size"><?php _e( 'Update', 'sis'); ?></div>
201
- <?php }
202
-
203
- /**
204
- * Add the button to add a size
205
- *
206
- * @access public
207
- * @return void
208
- * @author Nicolas Juen
209
- */
210
- public function addSizeButton() { ?>
211
- <input type="button" class="button-secondary action" id="add_size" value="<?php _e( 'Add a new size of thumbnail', 'sis'); ?>" />
212
- <?php
213
- }
214
-
215
- /**
216
- * Add the button to get the php for th sizes
217
- *
218
- * @access public
219
- * @return void
220
- * @author Nicolas Juen
221
- */
222
- public function getPhpButton() { ?>
223
- <input type="button" class="button-secondary action" id="get_php" value="<?php _e( 'Get the PHP for the theme', 'sis'); ?>" />
224
- <p> <?php _e( 'Copy and paste the code below into your Wordpress theme function file if you wanted to save them and deactivate the plugin.', 'sis'); ?> </p>
225
- <code></code>
226
- <?php
227
- }
228
-
229
- /**
230
- * Add the legend fo the colors
231
- *
232
- * @access public
233
- * @return void
234
- * @author Nicolas Juen
235
- */
236
- public function addLegend() { ?>
237
- <?php _e('The images created on your theme are <span style="color:#F2A13A">orange</span> and your custom size are <span style="color:#89D76A"> green </span>.', 'sis'); ?>
238
- <?php
239
- }
240
-
241
- /**
242
- * Display the Table of sizes and post types for regenerating
243
- *
244
- * @access public
245
- * @return void
246
- * @author Nicolas Juen
247
- */
248
- public function thumbnailRegenerate() {
249
- // Get the sizes
250
- global $_wp_additional_image_sizes;
251
- $class= "alternate";
252
- ?>
253
- <div id="sis-regen">
254
- <div class="wrapper" style="">
255
- <h4> <?php _e( 'Select which thumbnails you want to rebuild:', 'sis'); ?> </h4>
256
- <table cellspacing="0" class="widefat page fixed">
257
- <thead>
258
- <tr>
259
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
260
- <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
261
- <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
262
- <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
263
- <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
264
- </tr>
265
- </thead>
266
- <tbody>
267
- <?php
268
- // Display the sizes in the array
269
- foreach ( get_intermediate_image_sizes() as $s ):
270
- $class = empty($class)? 'alternate' : '' ;
271
-
272
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
273
- $width = intval( $_wp_additional_image_sizes[$s]['width'] );
274
- else // For default sizes set in options
275
- $width = get_option( "{$s}_size_w" );
276
-
277
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
278
- $height = intval( $_wp_additional_image_sizes[$s]['height'] );
279
- else // For default sizes set in options
280
- $height = get_option( "{$s}_size_h" );
281
-
282
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
283
- $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
284
- else // For default sizes set in options
285
- $crop = get_option( "{$s}_crop" );
286
- ?>
287
- <tr class="<?php echo $class; ?>">
288
- <td>
289
- <input type="checkbox" class="thumbnails" id="<?php echo $s ?>" name="thumbnails[]" checked="checked" value="<?php echo $s ?>" />
290
- </td>
291
-
292
- <td>
293
- <label for="<?php echo $s ?>">
294
- <?php echo $s; ?>
295
- </label>
296
- </td>
297
-
298
- <td>
299
- <label for="<?php echo $s ?>">
300
- <?php echo $width;?> px
301
- </label>
302
- </td>
303
-
304
- <td>
305
- <label for="<?php echo $s ?>">
306
- <?php echo $height; ?> px
307
- </label>
308
- </td>
309
-
310
- <td>
311
- <label for="<?php echo $s ?>">
312
- <?php echo ( $crop == 1 )? __( 'yes', 'sis' ):__( 'no', 'sis' ); ?>
313
- </label>
314
- </td>
315
- </tr>
316
- <?php endforeach;?>
317
- </tbody>
318
- <tfoot>
319
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
320
- <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
321
- <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
322
- <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
323
- <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
324
- </tfoot>
325
- </table>
326
- </div>
327
- <div style="display: inline-block;width: 25%;margin-left: 15px;">
328
- <h4><?php _e( 'Select which post type source thumbnails you want to rebuild:', 'sis'); ?></h4>
329
- <table cellspacing="0" class="widefat page fixed">
330
- <thead>
331
- <tr>
332
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
333
- <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
334
- </tr>
335
- </thead>
336
- <tbody>
337
- <?php
338
- // Diplay the post types table
339
- foreach ( get_post_types( array( 'public' => true ), 'objects' ) as $ptype ):
340
- $class = empty($class)? 'alternate' : '' ;
341
- ?>
342
- <tr class="<?php echo $class; ?>">
343
- <td>
344
- <label for="<?php echo $ptype->name; ?>">
345
- <input type="checkbox" class="post_types" name="post_types[]" checked="checked" id="<?php echo $ptype->name; ?>" value="<?php echo $ptype->name; ?>" />
346
- </label>
347
- </td>
348
- <td>
349
- <label for="<?php echo $ptype->name; ?>">
350
- <em><?php echo $ptype->labels->name; ?></em>
351
- </label>
352
- </td>
353
- </tr>
354
- <?php endforeach;?>
355
- </tbody>
356
- <tfoot>
357
- <tr>
358
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
359
- <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
360
- </tr>
361
- </tfoot>
362
- </table>
363
- </div>
364
- </div>
365
-
366
- <div style="clear:both;padding-top:15px">
367
- <div id="regenerate_message"></div>
368
- <div class="progress">
369
- <div class=" progress-percent ui-widget">
370
- <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
371
- <p>
372
- <span class="ui-icon ui-icon-info" style="float: left; margin-right: .7em;"></span>
373
- <span class="text">0%</span>
374
- </p>
375
- </div>
376
- </div>
377
- </div>
378
- <div id="thumb"><h4><?php _e( 'Last image:', 'sis'); ?></h4><img id="thumb-img" /></div>
379
- <input type="button" class="button" name="ajax_thumbnail_rebuild" id="ajax_thumbnail_rebuild" value="<?php _e( 'Regenerate Thumbnails', 'sis' ) ?>" />
380
- </div>
381
- <?php
382
- }
383
-
384
- /**
385
- * Add a size by Ajax
386
- *
387
- * @access public
388
- * @return void
389
- * @author Nicolas Juen
390
- */
391
- public function ajaxAddSize() {
392
-
393
- // Get old options
394
- $sizes = (array)get_option( SIS_OPTION );
395
-
396
- // Check entries
397
- $name = isset( $_POST['name'] ) ? apply_filters( 'sanitize_title', $_POST['name'] ) : '' ;
398
- $height = !isset( $_POST['height'] )? 0 : (int)$_POST['height'];
399
- $width = !isset( $_POST['width'] )? 0 : (int)$_POST['width'];
400
-
401
- $crop = isset( $_POST['crop'] ) && $_POST['crop'] == 'false' ? false : true;
402
-
403
- $values = array( 'custom' => 1, 'w' => $width , 'h' => $height, 'c' => $crop );
404
-
405
- // If the size have not changed return 2
406
- if( isset( $sizes[$name] ) && $sizes[$name] === $values ) {
407
- echo 2;
408
- die();
409
- }
410
-
411
- // Put the new values
412
- $sizes[$name] = $values;
413
-
414
- // display update result
415
- echo (int)update_option( 'custom_image_sizes', $sizes );
416
- die();
417
- }
418
-
419
- /**
420
- * Remove a size by Ajax
421
- *
422
- * @access public
423
- * @return void
424
- * @author Nicolas Juen
425
- */
426
- public function ajaxRemoveSize() {
427
- // Get old options
428
- $sizes = (array)get_option( SIS_OPTION );
429
-
430
- // Remove the size
431
- unset( $sizes[apply_filters( 'sanitize_title', $_POST['name'] )] );
432
- unset( $sizes[0] );
433
-
434
- // Display the results
435
- echo (int)update_option( 'custom_image_sizes', $sizes );
436
- die();
437
- }
438
-
439
- /**
440
- * Display the add_image_size for the registered sizes
441
- *
442
- * @access public
443
- * @return void
444
- */
445
- public function ajaxGetSizes() {
446
- global $_wp_additional_image_sizes;
447
-
448
- foreach ( get_intermediate_image_sizes() as $s ):
449
-
450
- // Don't make the original sizes
451
- if( in_array( $s, $this->original ) )
452
- continue;
453
-
454
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
455
- $width = intval( $_wp_additional_image_sizes[$s]['width'] );
456
- else // For default sizes set in options
457
- $width = get_option( "{$s}_size_w" );
458
-
459
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
460
- $height = intval( $_wp_additional_image_sizes[$s]['height'] );
461
- else // For default sizes set in options
462
- $height = get_option( "{$s}_size_h" );
463
-
464
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
465
- $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
466
- else // For default sizes set in options
467
- $crop = get_option( "{$s}_crop" );
468
-
469
- $crop = ( $crop == 0 )? 'false' : 'true' ;
470
- ?>
471
- add_image_size( '<?php echo $s; ?>', '<?php echo $width; ?>', '<?php echo $height; ?>', <?php echo $crop ?> );<br />
472
- <?php endforeach;
473
-
474
- die();
475
- }
476
-
477
- /**
478
- * Rebuild the image
479
- *
480
- * @access public
481
- * @return void
482
- * @author Nicolas Juen
483
- */
484
- public function ajaxThumbnailRebuildAjax() {
485
- global $wpdb;
486
-
487
- // Get the action
488
- $action = $_POST["do"];
489
-
490
- // Get the thumbnails
491
- $thumbnails = isset( $_POST['thumbnails'] )? $_POST['thumbnails'] : NULL;
492
-
493
- if ( $action == "getlist" ) {
494
- if ( isset( $_POST['post_types'] ) && !empty( $_POST['post_types'] ) ) {
495
-
496
- // Get image medias
497
- $whichmimetype = wp_post_mime_type_where( 'image', $wpdb->posts );
498
-
499
- // Get all parent from post type
500
- $attachments = $wpdb->get_results( "SELECT *
501
- FROM $wpdb->posts
502
- WHERE 1 = 1
503
- AND post_type = 'attachment'
504
- $whichmimetype
505
- AND post_parent IN (
506
- SELECT DISTINCT ID
507
- FROM $wpdb->posts
508
- WHERE post_type IN ('".implode( "', '", $_POST['post_types'] )."')
509
- )" );
510
-
511
- } else {
512
- $attachments =& get_children( array(
513
- 'post_type' => 'attachment',
514
- 'post_mime_type' => 'image',
515
- 'numberposts' => -1,
516
- 'post_status' => null,
517
- 'post_parent' => null, // any parent
518
- 'output' => 'object',
519
- ) );
520
- }
521
-
522
- // Get the attachments
523
- foreach ( $attachments as $attachment ) {
524
- $res[] = array('id' => $attachment->ID, 'title' => $attachment->post_title);
525
- }
526
- // Return the Id's and Title of medias
527
- die( json_encode( $res ) );
528
- } else if ( $action == "regen" ) {
529
- // Get the id
530
- $id = $_POST["id"];
531
-
532
- // Check Id
533
- if( (int)$id == 0 ) {
534
- die( Null );
535
- }
536
-
537
- // Get the path
538
- $fullsizepath = get_attached_file( $id );
539
-
540
- // Regen the attachment
541
- if ( FALSE !== $fullsizepath && @file_exists( $fullsizepath ) ) {
542
- set_time_limit( 30 );
543
- wp_update_attachment_metadata( $id, $this->wp_generate_attachment_metadata_custom( $id, $fullsizepath, $thumbnails ) );
544
- }
545
-
546
- // Display the attachment url for feedback
547
- die( json_encode( array( array( 'src' => wp_get_attachment_thumb_url( $id ), 'title' => get_the_title( $id ) ) ) ) );
548
- }
549
- }
550
-
551
- /**
552
- * Generate post thumbnail attachment meta data.
553
- *
554
- * @since 2.1.0
555
- *
556
- * @param int $attachment_id Attachment Id to process.
557
- * @param string $file Filepath of the Attached image.
558
- * @return mixed Metadata for attachment.
559
- */
560
- public function wp_generate_attachment_metadata_custom( $attachment_id, $file, $thumbnails = NULL ) {
561
- $attachment = get_post( $attachment_id );
562
-
563
- $metadata = array();
564
- if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) {
565
- $imagesize = getimagesize( $file );
566
- $metadata['width'] = $imagesize[0];
567
- $metadata['height'] = $imagesize[1];
568
- list($uwidth, $uheight) = wp_constrain_dimensions($metadata['width'], $metadata['height'], 128, 96);
569
- $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'";
570
-
571
- // Make the file path relative to the upload dir
572
- $metadata['file'] = _wp_relative_upload_path($file);
573
-
574
- // make thumbnails and other intermediate sizes
575
- global $_wp_additional_image_sizes;
576
-
577
- foreach ( get_intermediate_image_sizes() as $s ) {
578
- $sizes[$s] = array( 'width' => '', 'height' => '', 'crop' => FALSE );
579
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) )
580
- $sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] ); // For theme-added sizes
581
- else
582
- $sizes[$s]['width'] = get_option( "{$s}_size_w" ); // For default sizes set in options
583
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) )
584
- $sizes[$s]['height'] = intval( $_wp_additional_image_sizes[$s]['height'] ); // For theme-added sizes
585
- else
586
- $sizes[$s]['height'] = get_option( "{$s}_size_h" ); // For default sizes set in options
587
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) )
588
- $sizes[$s]['crop'] = intval( $_wp_additional_image_sizes[$s]['crop'] ); // For theme-added sizes
589
- else
590
- $sizes[$s]['crop'] = get_option( "{$s}_crop" ); // For default sizes set in options
591
- }
592
-
593
- $sizes = apply_filters( 'intermediate_image_sizes_advanced', $sizes );
594
-
595
- foreach ( $sizes as $size => $size_data ) {
596
- if( isset( $thumbnails ) )
597
- if( !in_array( $size, $thumbnails ) )
598
- continue;
599
-
600
- $resized = image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'] );
601
-
602
- if ( $resized )
603
- $metadata['sizes'][$size] = $resized;
604
- }
605
-
606
- // fetch additional metadata from exif/iptc
607
- $image_meta = wp_read_image_metadata( $file );
608
- if ( $image_meta )
609
- $metadata['image_meta'] = $image_meta;
610
-
611
- }
612
-
613
- return apply_filters( 'wp_generate_attachment_metadata', $metadata, $attachment_id );
614
- }
615
-
616
- /**
617
- * Add the custom sizes to the image sizes in article edition
618
- *
619
- * @access public
620
- * @param array $form_fields
621
- * @param object $post
622
- * @return void
623
- * @author Nicolas Juen
624
- * @author Additional Image Sizes (zui)
625
- */
626
- public function sizesInForm( $form_fields, $post ) {
627
- // Protect from being view in Media editor where there are no sizes
628
- if ( isset( $form_fields['image-size'] ) ) {
629
- $out = NULL;
630
- $size_names = array();
631
- $sizes_custom = get_option( 'custom_image_sizes' );
632
- if ( is_array( $sizes_custom ) ) {
633
- foreach( $sizes_custom as $key => $value ) {
634
- $size_names[$key] = $key;
635
- }
636
- }
637
- foreach ( $size_names as $size => $label ) {
638
- $downsize = image_downsize( $post->ID, $size );
639
-
640
- // is this size selectable?
641
- $enabled = ( $downsize[3] || 'full' == $size );
642
- $css_id = "image-size-{$size}-{$post->ID}";
643
-
644
- // We must do a clumsy search of the existing html to determine is something has been checked yet
645
- if ( FALSE === strpos( 'checked="checked"', $form_fields['image-size']['html'] ) ) {
646
-
647
- if ( empty($check) )
648
- $check = get_user_setting( 'imgsize' ); // See if they checked a custom size last time
649
-
650
- $checked = '';
651
-
652
- // if this size is the default but that's not available, don't select it
653
- if ( $size == $check || str_replace( " ", "", $size ) == $check ) {
654
- if ( $enabled )
655
- $checked = " checked='checked'";
656
- else
657
- $check = '';
658
- } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
659
- // if $check is not enabled, default to the first available size that's bigger than a thumbnail
660
- $check = $size;
661
- $checked = " checked='checked'";
662
- }
663
- }
664
- $html = "<div class='image-size-item' style='min-height: 50px; margin-top: 18px;'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
665
-
666
- $html .= "<label for='{$css_id}'>$label</label>";
667
- // only show the dimensions if that choice is available
668
- if ( $enabled )
669
- $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
670
-
671
- $html .= '</div>';
672
-
673
- $out .= $html;
674
- }
675
- $form_fields['image-size']['html'] .= $out;
676
- } // End protect from Media editor
677
-
678
- return $form_fields;
679
- }
680
- }
 
 
681
  ?>
1
+ <?php
2
+ Class SISAdmin {
3
+
4
+ // Original sizes
5
+ public $original = array( 'thumbnail', 'medium', 'large' );
6
+
7
+ public function __construct(){
8
+ // Init
9
+ add_action ( 'admin_menu', array( &$this, 'init' ) );
10
+ add_action ( 'admin_enqueue_scripts', array( &$this, 'registerScripts' ), 11 );
11
+
12
+ // Add ajax action
13
+ add_action('wp_ajax_ajax_thumbnail_rebuild', array( &$this, 'ajaxThumbnailRebuildAjax' ) );
14
+ add_action('wp_ajax_get_sizes', array( &$this, 'ajaxGetSizes' ) );
15
+ add_action('wp_ajax_add_size', array( &$this, 'ajaxAddSize' ) );
16
+ add_action('wp_ajax_remove_size', array( &$this, 'ajaxRemoveSize' ) );
17
+
18
+ // Add image sizes in the form
19
+ add_filter( 'attachment_fields_to_edit', array( &$this, 'sizesInForm' ), 11, 2 ); // Add our sizes to media forms
20
+
21
+ // Add link in plugins list
22
+ add_filter('plugin_action_links', array( &$this,'addSettingsLink'), 10, 2 );
23
+ }
24
+
25
+ /**
26
+ * Register javascripts and css.
27
+ *
28
+ * @access public
29
+ * @return void
30
+ * @author Nicolas Juen
31
+ */
32
+ public function registerScripts($hook_suffix = '' ) {
33
+ if( isset( $hook_suffix ) && $hook_suffix == 'options-media.php' ) {
34
+ // Add javascript
35
+ wp_enqueue_script( 'sis-jquery-ui-sis', SIS_URL.'js/jquery-ui-1.8.12.custom.min.js', array('jquery'), '1.8.12' );
36
+ wp_enqueue_script( 'sis_js', SIS_URL.'js/sis.min.js', array('jquery','sis-jquery-ui-sis'), SIS_VERSION );
37
+
38
+ // Add javascript translation
39
+ wp_localize_script( 'sis_js', 'sis', $this->localizeVars() );
40
+
41
+ // Add CSS
42
+ wp_enqueue_style( 'jquery-ui-sis', SIS_URL.'css/Aristo/jquery-ui-1.8.7.custom.css', array(), '1.8.7' );
43
+ wp_enqueue_style( 'sis_css', SIS_URL.'css/sis-style.css', array(), SIS_VERSION );
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Localize the var for javascript
49
+ *
50
+ * @access public
51
+ * @return void
52
+ * @author Nicolas Juen
53
+ */
54
+ public function localizeVars() {
55
+ return array(
56
+ 'ajaxUrl' => admin_url( '/admin-ajax.php' ),
57
+ 'reading' => __( 'Reading attachments...', 'sis' ),
58
+ 'maximumWidth' => __( 'Maximum width', 'sis' ),
59
+ 'maximumHeight' => __( 'Maximum height', 'sis' ),
60
+ 'crop' => __( 'Crop ?', 'sis' ),
61
+ 'of' => __( ' of ', 'sis' ),
62
+ 'deleteImage' => __( 'Delete', 'sis' ),
63
+ 'noMedia' => __( 'No media in your site to regenerate !', 'sis' ),
64
+ 'regenerating' => __( 'Regenerating ', 'sis'),
65
+ 'validate' => __( 'Validate image size name', 'sis' ),
66
+ 'done' => __( 'Done.', 'sis' ),
67
+ 'size' => __( 'Size', 'sis' ),
68
+ 'notOriginal' => __( 'Don\'t use the basic Wordpress thumbnail size name, use the form above to edit them', 'sis' ),
69
+ 'alreadyPresent' => __( 'This size is already registered, edit it instead of recreating it.', 'sis' ),
70
+ 'confirmDelete' => __( 'Do you really want to delete these size ?', 'sis' ),
71
+ 'update' => __( 'Update', 'sis' ),
72
+ 'ajaxErrorHandler' => __( 'Error requesting page', 'sis' ),
73
+ 'messageRegenerated' => __( 'images have been regenerated !', 'sis' ),
74
+ 'validateButton' => __( 'Validate', 'sis' ),
75
+ );
76
+ }
77
+
78
+ /**
79
+ * Add a link to the setting option page
80
+ *
81
+ * @access public
82
+ * @param array $links
83
+ * @param string $file
84
+ * @return void
85
+ * @author Nicolas Juen
86
+ */
87
+ public function addSettingsLink( $links, $file ) {
88
+
89
+ if( $file != 'simple-image-sizes/simple_image_sizes.php' )
90
+ return $links;
91
+
92
+ $settings_link = '<a href="'.admin_url('options-media.php').'"> '.__( 'Settings', 'sis' ).' </a>';
93
+ array_unshift($links, $settings_link);
94
+
95
+ return $links;
96
+ }
97
+
98
+ /**
99
+ * Init for the option page
100
+ *
101
+ * @access public
102
+ * @return void
103
+ * @author Nicolas Juen
104
+ */
105
+ function init() {
106
+
107
+ // Check if admin
108
+ if( !is_admin() )
109
+ return false;
110
+
111
+ // Get the image sizes
112
+ global $_wp_additional_image_sizes;
113
+
114
+ // Get the sizes and add the settings
115
+ foreach ( get_intermediate_image_sizes() as $s ) {
116
+
117
+ // Don't make the original sizes
118
+ if( in_array( $s, $this->original ) )
119
+ continue;
120
+
121
+ // Set width
122
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
123
+ $width = intval( $_wp_additional_image_sizes[$s]['width'] );
124
+ else // For default sizes set in options
125
+ $width = get_option( "{$s}_size_w" );
126
+
127
+ // Set height
128
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
129
+ $height = intval( $_wp_additional_image_sizes[$s]['height'] );
130
+ else // For default sizes set in options
131
+ $height = get_option( "{$s}_size_h" );
132
+
133
+ //Set crop
134
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) { // For theme-added sizes
135
+ $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
136
+ } else {
137
+ // For default sizes set in options
138
+ $crop = get_option( "{$s}_crop" );
139
+ }
140
+
141
+ // Add the setting field for this size
142
+ add_settings_field( 'image_size_'.$s.'', __( 'Size ', 'sis' ).$s, array( &$this, 'imageSizes' ), 'media' , 'default', array( 'name' => $s , 'width' => $width , 'height' => $height, 'c' => $crop ) );
143
+
144
+ }
145
+
146
+ // Register the setting for media option page
147
+ register_setting( 'media', SIS_OPTION );
148
+
149
+ // Add the button
150
+ add_settings_field( 'add_size_button', __( 'Add a new size', 'sis' ), array( &$this, 'addSizeButton' ), 'media' );
151
+
152
+ // Add legend
153
+ add_settings_field( 'add_legend', __( 'Legend of the sizes', 'sis' ), array( &$this, 'addLegend' ), 'media' );
154
+
155
+ // Add php button
156
+ add_settings_field( 'get_php_button', __( 'Get php for theme', 'sis' ), array( &$this, 'getPhpButton' ), 'media' );
157
+
158
+ // Add section for the thumbnail regeneration
159
+ add_settings_section( 'thumbnail_regenerate', __( 'Thumbnail regeneration', 'sis' ), array( &$this, 'thumbnailRegenerate' ), 'media' );
160
+ }
161
+
162
+ /**
163
+ * Display the row of the image size
164
+ *
165
+ * @access public
166
+ * @param mixed $args
167
+ * @return void
168
+ * @author Nicolas Juen
169
+ */
170
+ public function imageSizes( $args ) {
171
+ // Get the options
172
+ $sizes = (array)get_option( SIS_OPTION );
173
+
174
+ $height = isset( $sizes[$args['name']]['h'] )? $sizes[$args['name']]['h'] : $args['height'] ;
175
+ $width = isset( $sizes[$args['name']]['w'] )? $sizes[$args['name']]['w'] : $args['width'] ;
176
+ $crop = isset( $sizes[$args['name']]['c'] ) && !empty( $sizes[$args['name']]['c'] )? $sizes[$args['name']]['c'] : $args['c'] ;
177
+ $custom = ( isset( $sizes[$args['name']]['custom'] ) && !empty( $sizes[$args['name']]['custom'] ) )? '1' : '0' ;
178
+ ?>
179
+ <input type="hidden" value="<?php echo $args['name']; ?>" name="image_name" />
180
+ <?php if( $custom ): ?>
181
+ <span class="custom_size"> <?php _e( 'Custom size', 'sis'); ?> : </span>
182
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" value="1" />
183
+ <?php else: ?>
184
+ <span class="theme_size"> <?php _e( 'Theme size', 'sis'); ?> : </span>
185
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" value="1" />
186
+ <?php endif; ?>
187
+ <label for="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>">
188
+ <?php _e( 'Maximum width', 'sis'); ?>
189
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" class='w' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" value="<?php echo $width ?>" />
190
+ </label>
191
+
192
+ <label for="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>">
193
+ <?php _e( 'Maximum height', 'sis'); ?>
194
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" class='h' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" value="<?php echo $height ?>" />
195
+ </label>
196
+
197
+ <div class="crop">
198
+ <input type='checkbox' id="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" <?php checked( $crop, 1 ) ?> class="c" name="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" value="1" />
199
+ <label for="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>"><?php _e( 'Crop ?', 'sis'); ?></label>
200
+ </div>
201
+ <div class="delete_size"><?php _e( 'Delete', 'sis'); ?></div>
202
+ <div class="add_size validate_size"><?php _e( 'Update', 'sis'); ?></div>
203
+ <?php }
204
+
205
+ /**
206
+ * Add the button to add a size
207
+ *
208
+ * @access public
209
+ * @return void
210
+ * @author Nicolas Juen
211
+ */
212
+ public function addSizeButton() { ?>
213
+ <input type="button" class="button-secondary action" id="add_size" value="<?php _e( 'Add a new size of thumbnail', 'sis'); ?>" />
214
+ <?php
215
+ }
216
+
217
+ /**
218
+ * Add the button to get the php for th sizes
219
+ *
220
+ * @access public
221
+ * @return void
222
+ * @author Nicolas Juen
223
+ */
224
+ public function getPhpButton() { ?>
225
+ <input type="button" class="button-secondary action" id="get_php" value="<?php _e( 'Get the PHP for the theme', 'sis'); ?>" />
226
+ <p> <?php _e( 'Copy and paste the code below into your Wordpress theme function file if you wanted to save them and deactivate the plugin.', 'sis'); ?> </p>
227
+ <code></code>
228
+ <?php
229
+ }
230
+
231
+ /**
232
+ * Add the legend fo the colors
233
+ *
234
+ * @access public
235
+ * @return void
236
+ * @author Nicolas Juen
237
+ */
238
+ public function addLegend() { ?>
239
+ <?php _e('The images created on your theme are <span style="color:#F2A13A">orange</span> and your custom size are <span style="color:#89D76A"> green </span>.', 'sis'); ?>
240
+ <?php
241
+ }
242
+
243
+ /**
244
+ * Display the Table of sizes and post types for regenerating
245
+ *
246
+ * @access public
247
+ * @return void
248
+ * @author Nicolas Juen
249
+ */
250
+ public function thumbnailRegenerate() {
251
+ // Get the sizes
252
+ global $_wp_additional_image_sizes;
253
+ $class= "alternate";
254
+ ?>
255
+ <div id="sis-regen">
256
+ <div class="wrapper" style="">
257
+ <h4> <?php _e( 'Select which thumbnails you want to rebuild:', 'sis'); ?> </h4>
258
+ <table cellspacing="0" class="widefat page fixed">
259
+ <thead>
260
+ <tr>
261
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
262
+ <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
263
+ <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
264
+ <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
265
+ <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
266
+ </tr>
267
+ </thead>
268
+ <tbody>
269
+ <?php
270
+ // Display the sizes in the array
271
+ foreach ( get_intermediate_image_sizes() as $s ):
272
+ $class = empty($class)? 'alternate' : '' ;
273
+
274
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
275
+ $width = intval( $_wp_additional_image_sizes[$s]['width'] );
276
+ else // For default sizes set in options
277
+ $width = get_option( "{$s}_size_w" );
278
+
279
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
280
+ $height = intval( $_wp_additional_image_sizes[$s]['height'] );
281
+ else // For default sizes set in options
282
+ $height = get_option( "{$s}_size_h" );
283
+
284
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
285
+ $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
286
+ else // For default sizes set in options
287
+ $crop = get_option( "{$s}_crop" );
288
+ ?>
289
+ <tr class="<?php echo $class; ?>">
290
+ <td>
291
+ <input type="checkbox" class="thumbnails" id="<?php echo $s ?>" name="thumbnails[]" checked="checked" value="<?php echo $s ?>" />
292
+ </td>
293
+
294
+ <td>
295
+ <label for="<?php echo $s ?>">
296
+ <?php echo $s; ?>
297
+ </label>
298
+ </td>
299
+
300
+ <td>
301
+ <label for="<?php echo $s ?>">
302
+ <?php echo $width;?> px
303
+ </label>
304
+ </td>
305
+
306
+ <td>
307
+ <label for="<?php echo $s ?>">
308
+ <?php echo $height; ?> px
309
+ </label>
310
+ </td>
311
+
312
+ <td>
313
+ <label for="<?php echo $s ?>">
314
+ <?php echo ( $crop == 1 )? __( 'yes', 'sis' ):__( 'no', 'sis' ); ?>
315
+ </label>
316
+ </td>
317
+ </tr>
318
+ <?php endforeach;?>
319
+ </tbody>
320
+ <tfoot>
321
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
322
+ <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
323
+ <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
324
+ <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
325
+ <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
326
+ </tfoot>
327
+ </table>
328
+ </div>
329
+ <div style="display: inline-block;width: 25%;margin-left: 15px;">
330
+ <h4><?php _e( 'Select which post type source thumbnails you want to rebuild:', 'sis'); ?></h4>
331
+ <table cellspacing="0" class="widefat page fixed">
332
+ <thead>
333
+ <tr>
334
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
335
+ <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
336
+ </tr>
337
+ </thead>
338
+ <tbody>
339
+ <?php
340
+ // Diplay the post types table
341
+ foreach ( get_post_types( array( 'public' => true ), 'objects' ) as $ptype ):
342
+ $class = empty($class)? 'alternate' : '' ;
343
+ ?>
344
+ <tr class="<?php echo $class; ?>">
345
+ <td>
346
+ <label for="<?php echo $ptype->name; ?>">
347
+ <input type="checkbox" class="post_types" name="post_types[]" checked="checked" id="<?php echo $ptype->name; ?>" value="<?php echo $ptype->name; ?>" />
348
+ </label>
349
+ </td>
350
+ <td>
351
+ <label for="<?php echo $ptype->name; ?>">
352
+ <em><?php echo $ptype->labels->name; ?></em>
353
+ </label>
354
+ </td>
355
+ </tr>
356
+ <?php endforeach;?>
357
+ </tbody>
358
+ <tfoot>
359
+ <tr>
360
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
361
+ <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
362
+ </tr>
363
+ </tfoot>
364
+ </table>
365
+ </div>
366
+ </div>
367
+
368
+ <div style="clear:both;padding-top:15px">
369
+ <div id="regenerate_message"></div>
370
+ <div class="progress">
371
+ <div class=" progress-percent ui-widget">
372
+ <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
373
+ <p>
374
+ <span class="ui-icon ui-icon-info" style="float: left; margin-right: .7em;"></span>
375
+ <span class="text">0%</span>
376
+ </p>
377
+ </div>
378
+ </div>
379
+ </div>
380
+ <div id="thumb"><h4><?php _e( 'Last image:', 'sis'); ?></h4><img id="thumb-img" /></div>
381
+ <input type="button" class="button" name="ajax_thumbnail_rebuild" id="ajax_thumbnail_rebuild" value="<?php _e( 'Regenerate Thumbnails', 'sis' ) ?>" />
382
+ </div>
383
+ <?php
384
+ }
385
+
386
+ /**
387
+ * Add a size by Ajax
388
+ *
389
+ * @access public
390
+ * @return void
391
+ * @author Nicolas Juen
392
+ */
393
+ public function ajaxAddSize() {
394
+
395
+ // Get old options
396
+ $sizes = (array)get_option( SIS_OPTION );
397
+
398
+ // Check entries
399
+ $name = isset( $_POST['name'] ) ? apply_filters( 'sanitize_title', $_POST['name'] ) : '' ;
400
+ $height = !isset( $_POST['height'] )? 0 : (int)$_POST['height'];
401
+ $width = !isset( $_POST['width'] )? 0 : (int)$_POST['width'];
402
+
403
+ $crop = isset( $_POST['crop'] ) && $_POST['crop'] == 'false' ? false : true;
404
+
405
+ $values = array( 'custom' => 1, 'w' => $width , 'h' => $height, 'c' => $crop );
406
+
407
+ // If the size have not changed return 2
408
+ if( isset( $sizes[$name] ) && $sizes[$name] === $values ) {
409
+ echo 2;
410
+ die();
411
+ }
412
+
413
+ // Put the new values
414
+ $sizes[$name] = $values;
415
+
416
+ // display update result
417
+ echo (int)update_option( 'custom_image_sizes', $sizes );
418
+ die();
419
+ }
420
+
421
+ /**
422
+ * Remove a size by Ajax
423
+ *
424
+ * @access public
425
+ * @return void
426
+ * @author Nicolas Juen
427
+ */
428
+ public function ajaxRemoveSize() {
429
+ // Get old options
430
+ $sizes = (array)get_option( SIS_OPTION );
431
+
432
+ // Remove the size
433
+ unset( $sizes[apply_filters( 'sanitize_title', $_POST['name'] )] );
434
+ unset( $sizes[0] );
435
+
436
+ // Display the results
437
+ echo (int)update_option( 'custom_image_sizes', $sizes );
438
+ die();
439
+ }
440
+
441
+ /**
442
+ * Display the add_image_size for the registered sizes
443
+ *
444
+ * @access public
445
+ * @return void
446
+ */
447
+ public function ajaxGetSizes() {
448
+ global $_wp_additional_image_sizes;
449
+
450
+ foreach ( get_intermediate_image_sizes() as $s ):
451
+
452
+ // Don't make the original sizes
453
+ if( in_array( $s, $this->original ) )
454
+ continue;
455
+
456
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
457
+ $width = intval( $_wp_additional_image_sizes[$s]['width'] );
458
+ else // For default sizes set in options
459
+ $width = get_option( "{$s}_size_w" );
460
+
461
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
462
+ $height = intval( $_wp_additional_image_sizes[$s]['height'] );
463
+ else // For default sizes set in options
464
+ $height = get_option( "{$s}_size_h" );
465
+
466
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
467
+ $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
468
+ else // For default sizes set in options
469
+ $crop = get_option( "{$s}_crop" );
470
+
471
+ $crop = ( $crop == 0 )? 'false' : 'true' ;
472
+ ?>
473
+ add_image_size( '<?php echo $s; ?>', '<?php echo $width; ?>', '<?php echo $height; ?>', <?php echo $crop ?> );<br />
474
+ <?php endforeach;
475
+
476
+ die();
477
+ }
478
+
479
+ /**
480
+ * Rebuild the image
481
+ *
482
+ * @access public
483
+ * @return void
484
+ * @author Nicolas Juen
485
+ */
486
+ public function ajaxThumbnailRebuildAjax() {
487
+ global $wpdb;
488
+
489
+ // Get the action
490
+ $action = $_POST["do"];
491
+
492
+ // Get the thumbnails
493
+ $thumbnails = isset( $_POST['thumbnails'] )? $_POST['thumbnails'] : NULL;
494
+
495
+ if ( $action == "getlist" ) {
496
+ if ( isset( $_POST['post_types'] ) && !empty( $_POST['post_types'] ) ) {
497
+
498
+ // Get image medias
499
+ $whichmimetype = wp_post_mime_type_where( 'image', $wpdb->posts );
500
+
501
+ // Get all parent from post type
502
+ $attachments = $wpdb->get_results( "SELECT *
503
+ FROM $wpdb->posts
504
+ WHERE 1 = 1
505
+ AND post_type = 'attachment'
506
+ $whichmimetype
507
+ AND post_parent IN (
508
+ SELECT DISTINCT ID
509
+ FROM $wpdb->posts
510
+ WHERE post_type IN ('".implode( "', '", $_POST['post_types'] )."')
511
+ )" );
512
+
513
+ } else {
514
+ $attachments =& get_children( array(
515
+ 'post_type' => 'attachment',
516
+ 'post_mime_type' => 'image',
517
+ 'numberposts' => -1,
518
+ 'post_status' => null,
519
+ 'post_parent' => null, // any parent
520
+ 'output' => 'object',
521
+ ) );
522
+ }
523
+
524
+ // Get the attachments
525
+ foreach ( $attachments as $attachment ) {
526
+ $res[] = array('id' => $attachment->ID, 'title' => $attachment->post_title);
527
+ }
528
+ // Return the Id's and Title of medias
529
+ die( json_encode( $res ) );
530
+ } else if ( $action == "regen" ) {
531
+ // Get the id
532
+ $id = $_POST["id"];
533
+
534
+ // Check Id
535
+ if( (int)$id == 0 ) {
536
+ die( Null );
537
+ }
538
+
539
+ // Get the path
540
+ $fullsizepath = get_attached_file( $id );
541
+
542
+ // Regen the attachment
543
+ if ( FALSE !== $fullsizepath && @file_exists( $fullsizepath ) ) {
544
+ set_time_limit( 30 );
545
+ wp_update_attachment_metadata( $id, $this->wp_generate_attachment_metadata_custom( $id, $fullsizepath, $thumbnails ) );
546
+ }
547
+
548
+ // Display the attachment url for feedback
549
+ die( json_encode( array( array( 'src' => wp_get_attachment_thumb_url( $id ), 'title' => get_the_title( $id ) ) ) ) );
550
+ }
551
+ }
552
+
553
+ /**
554
+ * Generate post thumbnail attachment meta data.
555
+ *
556
+ * @since 2.1.0
557
+ *
558
+ * @param int $attachment_id Attachment Id to process.
559
+ * @param string $file Filepath of the Attached image.
560
+ * @return mixed Metadata for attachment.
561
+ */
562
+ public function wp_generate_attachment_metadata_custom( $attachment_id, $file, $thumbnails = NULL ) {
563
+ $attachment = get_post( $attachment_id );
564
+
565
+ $metadata = array();
566
+ if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) {
567
+ $imagesize = getimagesize( $file );
568
+ $metadata['width'] = $imagesize[0];
569
+ $metadata['height'] = $imagesize[1];
570
+ list($uwidth, $uheight) = wp_constrain_dimensions($metadata['width'], $metadata['height'], 128, 96);
571
+ $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'";
572
+
573
+ // Make the file path relative to the upload dir
574
+ $metadata['file'] = _wp_relative_upload_path($file);
575
+
576
+ // make thumbnails and other intermediate sizes
577
+ global $_wp_additional_image_sizes;
578
+
579
+ foreach ( get_intermediate_image_sizes() as $s ) {
580
+ $sizes[$s] = array( 'width' => '', 'height' => '', 'crop' => FALSE );
581
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) )
582
+ $sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] ); // For theme-added sizes
583
+ else
584
+ $sizes[$s]['width'] = get_option( "{$s}_size_w" ); // For default sizes set in options
585
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) )
586
+ $sizes[$s]['height'] = intval( $_wp_additional_image_sizes[$s]['height'] ); // For theme-added sizes
587
+ else
588
+ $sizes[$s]['height'] = get_option( "{$s}_size_h" ); // For default sizes set in options
589
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) )
590
+ $sizes[$s]['crop'] = intval( $_wp_additional_image_sizes[$s]['crop'] ); // For theme-added sizes
591
+ else
592
+ $sizes[$s]['crop'] = get_option( "{$s}_crop" ); // For default sizes set in options
593
+ }
594
+
595
+ $sizes = apply_filters( 'intermediate_image_sizes_advanced', $sizes );
596
+
597
+ foreach ( $sizes as $size => $size_data ) {
598
+ if( isset( $thumbnails ) )
599
+ if( !in_array( $size, $thumbnails ) )
600
+ continue;
601
+
602
+ $resized = image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'] );
603
+
604
+ if ( $resized )
605
+ $metadata['sizes'][$size] = $resized;
606
+ }
607
+
608
+ // fetch additional metadata from exif/iptc
609
+ $image_meta = wp_read_image_metadata( $file );
610
+ if ( $image_meta )
611
+ $metadata['image_meta'] = $image_meta;
612
+
613
+ }
614
+
615
+ return apply_filters( 'wp_generate_attachment_metadata', $metadata, $attachment_id );
616
+ }
617
+
618
+ /**
619
+ * Add the custom sizes to the image sizes in article edition
620
+ *
621
+ * @access public
622
+ * @param array $form_fields
623
+ * @param object $post
624
+ * @return void
625
+ * @author Nicolas Juen
626
+ * @author Additional Image Sizes (zui)
627
+ */
628
+ public function sizesInForm( $form_fields, $post ) {
629
+ // Protect from being view in Media editor where there are no sizes
630
+ if ( isset( $form_fields['image-size'] ) ) {
631
+ $out = NULL;
632
+ $size_names = array();
633
+ $sizes_custom = get_option( 'custom_image_sizes' );
634
+ if ( is_array( $sizes_custom ) ) {
635
+ foreach( $sizes_custom as $key => $value ) {
636
+ $size_names[$key] = $key;
637
+ }
638
+ }
639
+ foreach ( $size_names as $size => $label ) {
640
+ $downsize = image_downsize( $post->ID, $size );
641
+
642
+ // is this size selectable?
643
+ $enabled = ( $downsize[3] || 'full' == $size );
644
+ $css_id = "image-size-{$size}-{$post->ID}";
645
+
646
+ // We must do a clumsy search of the existing html to determine is something has been checked yet
647
+ if ( FALSE === strpos( 'checked="checked"', $form_fields['image-size']['html'] ) ) {
648
+
649
+ if ( empty($check) )
650
+ $check = get_user_setting( 'imgsize' ); // See if they checked a custom size last time
651
+
652
+ $checked = '';
653
+
654
+ // if this size is the default but that's not available, don't select it
655
+ if ( $size == $check || str_replace( " ", "", $size ) == $check ) {
656
+ if ( $enabled )
657
+ $checked = " checked='checked'";
658
+ else
659
+ $check = '';
660
+ } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
661
+ // if $check is not enabled, default to the first available size that's bigger than a thumbnail
662
+ $check = $size;
663
+ $checked = " checked='checked'";
664
+ }
665
+ }
666
+ $html = "<div class='image-size-item' style='min-height: 50px; margin-top: 18px;'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
667
+
668
+ $html .= "<label for='{$css_id}'>$label</label>";
669
+ // only show the dimensions if that choice is available
670
+ if ( $enabled )
671
+ $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
672
+
673
+ $html .= '</div>';
674
+
675
+ $out .= $html;
676
+ }
677
+ $form_fields['image-size']['html'] .= $out;
678
+ } // End protect from Media editor
679
+
680
+ return $form_fields;
681
+ }
682
+ }
683
  ?>
inc/class.client.php CHANGED
@@ -27,7 +27,7 @@ Class SISClient {
27
  foreach( $sizes as $name => $size ){
28
  // Get cropping
29
  $crop = ( isset( $size['c'] ) && !empty( $size['c'] ) )? $size['c'] : 0 ;
30
-
31
  // Add the images sizes
32
  add_image_size( $name, $size['w'], $size['h'], $crop );
33
  }
27
  foreach( $sizes as $name => $size ){
28
  // Get cropping
29
  $crop = ( isset( $size['c'] ) && !empty( $size['c'] ) )? $size['c'] : 0 ;
30
+
31
  // Add the images sizes
32
  add_image_size( $name, $size['w'], $size['h'], $crop );
33
  }
readme.txt CHANGED
@@ -1,82 +1,84 @@
1
- === Simple Image Sizes ===
2
- Contributors: Rahe
3
- Donate link: http://www.beapi.fr/donate/
4
- Tags: images, image, custom sizes, custom images, thumbnail regenerate, thumbnail, regenerate
5
- Requires at least: 3.0
6
- Tested up to: 3.2
7
- Stable tag: 2.0.2
8
-
9
- == Description ==
10
-
11
- This plugin allow create custom image sizes for your site. Override your theme sizes directly on the media option page.
12
- You can regenerate all the sizes you have just created and choose which one you wanted to regenerate.
13
- You can now get all the code to copy and paste to your function theme file.
14
- Now you can use the generated sizes directly into your posts and insert images at the right size !
15
-
16
- == Installation ==
17
- **Required PHP5.**
18
-
19
- 1. Download, unzip and upload to your WordPress plugins directory
20
- 2. Activate the plugin within you WordPress Administration Backend
21
- 3. Go to Settings > Medias
22
- 4. Configure your new image sizes and regenerate the thumbnails !
23
-
24
- == Screenshots ==
25
-
26
- 1. Settings page
27
- 2. Regenerating
28
- 3. In posts thumbnails
29
-
30
- == Changelog ==
31
- * 2.0.2
32
- * Remove debug on php for javascript
33
- * Resolve issue with the different versions on jquery ( like in WP3.2 ) with attr return for checked components
34
- * 2.0.1
35
- * Resolve javascript issue when clicking on delete button
36
- * Resolve issue of never unchecking crop button
37
- * 2.0
38
- * Code refactoring
39
- * Update translations
40
- * Ajaxification of the process
41
- * Deleting by Ajax
42
- * Updating by Ajax
43
- * Adding by Ajax
44
- * Change UI
45
- * Change theme
46
- * Handle ajax errors
47
- * Handle not modified sizes, cropped
48
- * Handle same names
49
- * Sanitize the names
50
- * Customize jQuery ui
51
- * Customize jQuery ui theme
52
- * HTML5 Elements
53
- * CSS3 Animations
54
- * 1.0.6
55
- * Minify javascript names
56
- * Change progressbar style
57
- * Add animations on progressbar
58
- * 1.0.5
59
- * Only add css and js script in the media page to avoid any javascript error in other pages
60
- * Rectify css
61
- * Add function to get the code for the function.php file of the theme
62
- * Don't redefine the Wordpress basic size names
63
- * 1.0.4
64
- * Fix the add_image_size issue ( height and width reversed )
65
- * 1.0.3
66
- * Fix the plugin language
67
- * Add some translations
68
- * Externalise some css
69
- * Add sizes in the image adding to an article
70
- * Add setting link in the plugins list
71
- * Use admin_url instead of home_url
72
- * Add legend for colors
73
- * Some code refactoring
74
- * 1.0.2
75
- * Fix the plugin license
76
- * 1.0.1
77
- * Add POT file
78
- * Add french translation
79
- * 1.0
80
- * First release
81
- * Thumbnail regenerate
 
 
82
  * Image size generation
1
+ === Simple Image Sizes ===
2
+ Contributors: Rahe
3
+ Donate link: http://www.beapi.fr/donate/
4
+ Tags: images, image, custom sizes, custom images, thumbnail regenerate, thumbnail, regenerate
5
+ Requires at least: 3.0
6
+ Tested up to: 3.2
7
+ Stable tag: 2.0.3
8
+
9
+ == Description ==
10
+
11
+ This plugin allow create custom image sizes for your site. Override your theme sizes directly on the media option page.
12
+ You can regenerate all the sizes you have just created and choose which one you wanted to regenerate.
13
+ You can now get all the code to copy and paste to your function theme file.
14
+ Now you can use the generated sizes directly into your posts and insert images at the right size !
15
+
16
+ == Installation ==
17
+ **Required PHP5.**
18
+
19
+ 1. Download, unzip and upload to your WordPress plugins directory
20
+ 2. Activate the plugin within you WordPress Administration Backend
21
+ 3. Go to Settings > Medias
22
+ 4. Configure your new image sizes and regenerate the thumbnails !
23
+
24
+ == Screenshots ==
25
+
26
+ 1. Settings page
27
+ 2. Regenerating
28
+ 3. In posts thumbnails
29
+
30
+ == Changelog ==
31
+ * 2.0.3
32
+ * Resolve issue with theme sizes witch by default are displayed as not cropped. Thanks to momo360modena for the bug signalment.
33
+ * 2.0.2
34
+ * Remove debug on php for javascript
35
+ * Resolve issue with the different versions on jquery ( like in WP3.2 ) with attr return for checked components
36
+ * 2.0.1
37
+ * Resolve javascript issue when clicking on delete button
38
+ * Resolve issue of never unchecking crop button
39
+ * 2.0
40
+ * Code refactoring
41
+ * Update translations
42
+ * Ajaxification of the process
43
+ * Deleting by Ajax
44
+ * Updating by Ajax
45
+ * Adding by Ajax
46
+ * Change UI
47
+ * Change theme
48
+ * Handle ajax errors
49
+ * Handle not modified sizes, cropped
50
+ * Handle same names
51
+ * Sanitize the names
52
+ * Customize jQuery ui
53
+ * Customize jQuery ui theme
54
+ * HTML5 Elements
55
+ * CSS3 Animations
56
+ * 1.0.6
57
+ * Minify javascript names
58
+ * Change progressbar style
59
+ * Add animations on progressbar
60
+ * 1.0.5
61
+ * Only add css and js script in the media page to avoid any javascript error in other pages
62
+ * Rectify css
63
+ * Add function to get the code for the function.php file of the theme
64
+ * Don't redefine the Wordpress basic size names
65
+ * 1.0.4
66
+ * Fix the add_image_size issue ( height and width reversed )
67
+ * 1.0.3
68
+ * Fix the plugin language
69
+ * Add some translations
70
+ * Externalise some css
71
+ * Add sizes in the image adding to an article
72
+ * Add setting link in the plugins list
73
+ * Use admin_url instead of home_url
74
+ * Add legend for colors
75
+ * Some code refactoring
76
+ * 1.0.2
77
+ * Fix the plugin license
78
+ * 1.0.1
79
+ * Add POT file
80
+ * Add french translation
81
+ * 1.0
82
+ * First release
83
+ * Thumbnail regenerate
84
  * Image size generation
simple_image_sizes.php CHANGED
@@ -1,49 +1,49 @@
1
- <?php
2
- /*
3
- Plugin Name: Simple Image Size
4
- Plugin URI: http://redmine.beapi.fr/projects/show/simple-image-sizes
5
- Description: Add options in media setting page for images sizes
6
- Version: 2.0.2
7
- Author: Rahe
8
- Author URI: http://nicolas-juen.fr
9
- Text Domain: sis
10
- Domain Path: /languages/
11
- Network: true
12
-
13
- Copyright 2011 Nicolas JUEN (njuen@beapi.fr) - Be-API
14
-
15
- This program is free software; you can redistribute it and/or modify
16
- it under the terms of the GNU General Public License as published by
17
- the Free Software Foundation; either version 2 of the License, or
18
- (at your option) any later version.
19
-
20
- This program is distributed in the hope that it will be useful,
21
- but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
- GNU General Public License for more details.
24
-
25
- You should have received a copy of the GNU General Public License
26
- along with this program; if not, write to the Free Software
27
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
- */
29
-
30
- define( 'SIS_URL', plugins_url('/', __FILE__) );
31
- define( 'SIS_DIR', dirname(__FILE__) );
32
- define( 'SIS_VERSION', '2.0.2' );
33
- define( 'SIS_OPTION', 'custom_image_sizes' );
34
-
35
- require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.admin.php' );
36
- require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.client.php' );
37
-
38
- add_action ( 'plugins_loaded', 'initSIS' );
39
- function initSIS() {
40
- global $SIS;
41
- if( is_admin() )
42
- $SIS['admin'] = new SISAdmin();
43
-
44
- $SIS['client'] = new SISClient();
45
-
46
- load_plugin_textdomain ( 'sis', false, basename(rtrim(dirname(__FILE__), '/')) . '/languages' );
47
-
48
- }
49
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Simple Image Size
4
+ Plugin URI: http://redmine.beapi.fr/projects/show/simple-image-sizes
5
+ Description: Add options in media setting page for images sizes
6
+ Version: 2.0.3
7
+ Author: Rahe
8
+ Author URI: http://nicolas-juen.fr
9
+ Text Domain: sis
10
+ Domain Path: /languages/
11
+ Network: true
12
+
13
+ Copyright 2011 Nicolas JUEN (njuen@beapi.fr) - Be-API
14
+
15
+ This program is free software; you can redistribute it and/or modify
16
+ it under the terms of the GNU General Public License as published by
17
+ the Free Software Foundation; either version 2 of the License, or
18
+ (at your option) any later version.
19
+
20
+ This program is distributed in the hope that it will be useful,
21
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ GNU General Public License for more details.
24
+
25
+ You should have received a copy of the GNU General Public License
26
+ along with this program; if not, write to the Free Software
27
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
+ */
29
+
30
+ define( 'SIS_URL', plugins_url('/', __FILE__) );
31
+ define( 'SIS_DIR', dirname(__FILE__) );
32
+ define( 'SIS_VERSION', '2.0.3' );
33
+ define( 'SIS_OPTION', 'custom_image_sizes' );
34
+
35
+ require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.admin.php' );
36
+ require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.client.php' );
37
+
38
+ add_action ( 'plugins_loaded', 'initSIS' );
39
+ function initSIS() {
40
+ global $SIS;
41
+ if( is_admin() )
42
+ $SIS['admin'] = new SISAdmin();
43
+
44
+ $SIS['client'] = new SISClient();
45
+
46
+ load_plugin_textdomain ( 'sis', false, basename(rtrim(dirname(__FILE__), '/')) . '/languages' );
47
+
48
+ }
49
  ?>