User Role Editor - Version 4.8

Version Description

  • 10.12.2013
  • Role ID validation rule was added to prohibit numeric role ID - WordPress does not support them.
  • Plugin "Options" page was divided into sections (tabs): General, Multisite, About. Section with information about plugin author, his site, etc. was moved from User Role Editor main page to its "Options" page - "About" tab.
  • HTML markup was updated to provide compatibility with upcoming WordPress 3.8 new administrator backend theme "MP6".
  • Restore previous blog 'switch_to_blog($old_blog_id)' call was replaced to 'restore_current_blog()' where it is possible to provide better compatibility with WordPress API. After use 'switch_to_blog()' in cycle, URE clears 'wp_switched_stack' global variable directly instead of call 'restorecurrent_blog()' inside the cycle to work faster.
  • Pro version: It is possible to restrict access of single sites administrators to the selected user capabilities and Add/Delete role operations inside User Role Editor.
  • Pro version: Shortcode [user_role_editor roles="none"]text for not logged in users[/user_role_editor] is available. Recursive processing of other shortcodes inside enclosed text is available now.
  • Pro version: Gravity Forms available at "Export Entries", "Export Forms" pages is under URE access restriction now, if such one was set for the user.
  • Pro version: Gravity Forms import was set under "gravityforms_import" user capability control.
  • Pro version: Option was added to show/hide help links (question signs) near the capabilities from single site administrators.
Download this release

Release Info

Developer shinephp
Plugin Icon 128x128 User Role Editor
Version 4.8
Comparing to
See all releases

Code changes from version 4.7.1 to 4.8

Files changed (47) hide show
  1. css/images/animated-overlay.gif +0 -0
  2. css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  3. css/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  4. css/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  5. css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  6. css/images/ui-bg_glass_20_555555_1x400.png +0 -0
  7. css/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
  8. css/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  9. css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  10. css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  11. css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  12. css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  13. css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  14. css/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  15. css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  16. css/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  17. css/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  18. css/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  19. css/images/ui-icons_222222_256x240.png +0 -0
  20. css/images/ui-icons_2e83ff_256x240.png +0 -0
  21. css/images/ui-icons_454545_256x240.png +0 -0
  22. css/images/ui-icons_4b8e0b_256x240.png +0 -0
  23. css/images/ui-icons_888888_256x240.png +0 -0
  24. css/images/ui-icons_a83300_256x240.png +0 -0
  25. css/images/ui-icons_cccccc_256x240.png +0 -0
  26. css/images/ui-icons_cd0a0a_256x240.png +0 -0
  27. css/images/ui-icons_ffffff_256x240.png +0 -0
  28. css/jquery-ui-1.10.3.css +523 -0
  29. css/jquery-ui-1.10.3.custom.css +1177 -0
  30. css/jquery-ui-1.10.3.custom.min.css +7 -0
  31. css/ure-admin.css +27 -5
  32. images/user-role-editor-page-icon.png +0 -0
  33. includes/class-garvs-wp-lib.php +9 -0
  34. includes/class-ure-lib.php +217 -81
  35. includes/class-user-role-editor.php +146 -92
  36. includes/define-constants.php +1 -6
  37. includes/settings-template.php +81 -29
  38. includes/ure-role-edit.php +13 -14
  39. includes/ure-user-edit.php +16 -11
  40. js/index.php +3 -0
  41. js/ure-js.js +4 -0
  42. lang/ure-id_ID.mo +0 -0
  43. lang/ure-id_ID.po +731 -0
  44. lang/ure.mo +0 -0
  45. lang/ure.pot +180 -171
  46. readme.txt +14 -1
  47. user-role-editor.php +5 -2
css/images/animated-overlay.gif ADDED
Binary file
css/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
css/images/ui-bg_flat_30_cccccc_40x100.png ADDED
Binary file
css/images/ui-bg_flat_50_5c5c5c_40x100.png ADDED
Binary file
css/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
css/images/ui-bg_glass_20_555555_1x400.png ADDED
Binary file
css/images/ui-bg_glass_40_0078a3_1x400.png ADDED
Binary file
css/images/ui-bg_glass_40_ffc73d_1x400.png ADDED
Binary file
css/images/ui-bg_glass_55_fbf9ee_1x400.png ADDED
Binary file
css/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
css/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
css/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
css/images/ui-bg_glass_95_fef1ec_1x400.png ADDED
Binary file
css/images/ui-bg_gloss-wave_25_333333_500x100.png ADDED
Binary file
css/images/ui-bg_highlight-soft_75_cccccc_1x100.png ADDED
Binary file
css/images/ui-bg_highlight-soft_80_eeeeee_1x100.png ADDED
Binary file
css/images/ui-bg_inset-soft_25_000000_1x100.png ADDED
Binary file
css/images/ui-bg_inset-soft_30_f58400_1x100.png ADDED
Binary file
css/images/ui-icons_222222_256x240.png ADDED
Binary file
css/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
css/images/ui-icons_454545_256x240.png ADDED
Binary file
css/images/ui-icons_4b8e0b_256x240.png ADDED
Binary file
css/images/ui-icons_888888_256x240.png ADDED
Binary file
css/images/ui-icons_a83300_256x240.png ADDED
Binary file
css/images/ui-icons_cccccc_256x240.png ADDED
Binary file
css/images/ui-icons_cd0a0a_256x240.png ADDED
Binary file
css/images/ui-icons_ffffff_256x240.png ADDED
Binary file
css/jquery-ui-1.10.3.css ADDED
@@ -0,0 +1,523 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.10.3 - 2013-11-09
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.tabs.css, jquery.ui.theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-clearfix {
42
+ min-height: 0; /* support: IE7 */
43
+ }
44
+ .ui-helper-zfix {
45
+ width: 100%;
46
+ height: 100%;
47
+ top: 0;
48
+ left: 0;
49
+ position: absolute;
50
+ opacity: 0;
51
+ filter:Alpha(Opacity=0);
52
+ }
53
+
54
+ .ui-front {
55
+ z-index: 100;
56
+ }
57
+
58
+
59
+ /* Interaction Cues
60
+ ----------------------------------*/
61
+ .ui-state-disabled {
62
+ cursor: default !important;
63
+ }
64
+
65
+
66
+ /* Icons
67
+ ----------------------------------*/
68
+
69
+ /* states and images */
70
+ .ui-icon {
71
+ display: block;
72
+ text-indent: -99999px;
73
+ overflow: hidden;
74
+ background-repeat: no-repeat;
75
+ }
76
+
77
+
78
+ /* Misc visuals
79
+ ----------------------------------*/
80
+
81
+ /* Overlays */
82
+ .ui-widget-overlay {
83
+ position: fixed;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ }
89
+ .ui-tabs {
90
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
91
+ padding: .2em;
92
+ }
93
+ .ui-tabs .ui-tabs-nav {
94
+ margin: 0;
95
+ padding: .2em .2em 0;
96
+ }
97
+ .ui-tabs .ui-tabs-nav li {
98
+ list-style: none;
99
+ float: left;
100
+ position: relative;
101
+ top: 0;
102
+ margin: 1px .2em 0 0;
103
+ border-bottom-width: 0;
104
+ padding: 0;
105
+ white-space: nowrap;
106
+ }
107
+ .ui-tabs .ui-tabs-nav li a {
108
+ float: left;
109
+ padding: .5em 1em;
110
+ text-decoration: none;
111
+ }
112
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
113
+ margin-bottom: -1px;
114
+ padding-bottom: 1px;
115
+ }
116
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
117
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
118
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
119
+ cursor: text;
120
+ }
121
+ .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
122
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
123
+ cursor: pointer;
124
+ }
125
+ .ui-tabs .ui-tabs-panel {
126
+ display: block;
127
+ border-width: 0;
128
+ padding: 1em 1.4em;
129
+ background: none;
130
+ }
131
+
132
+ /* Component containers
133
+ ----------------------------------*/
134
+ .ui-widget {
135
+ font-family: Verdana,Arial,sans-serif;
136
+ font-size: 1.1em;
137
+ }
138
+ .ui-widget .ui-widget {
139
+ font-size: 1em;
140
+ }
141
+ .ui-widget input,
142
+ .ui-widget select,
143
+ .ui-widget textarea,
144
+ .ui-widget button {
145
+ font-family: Verdana,Arial,sans-serif;
146
+ font-size: 1em;
147
+ }
148
+ .ui-widget-content {
149
+ border: 1px solid #aaaaaa;
150
+ background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
151
+ color: #222222;
152
+ }
153
+ .ui-widget-content a {
154
+ color: #222222;
155
+ }
156
+ .ui-widget-header {
157
+ border: 1px solid #aaaaaa;
158
+ background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
159
+ color: #222222;
160
+ font-weight: bold;
161
+ }
162
+ .ui-widget-header a {
163
+ color: #222222;
164
+ }
165
+
166
+ /* Interaction states
167
+ ----------------------------------*/
168
+ .ui-state-default,
169
+ .ui-widget-content .ui-state-default,
170
+ .ui-widget-header .ui-state-default {
171
+ border: 1px solid #d3d3d3;
172
+ background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
173
+ font-weight: normal;
174
+ color: #555555;
175
+ }
176
+ .ui-state-default a,
177
+ .ui-state-default a:link,
178
+ .ui-state-default a:visited {
179
+ color: #555555;
180
+ text-decoration: none;
181
+ }
182
+ .ui-state-hover,
183
+ .ui-widget-content .ui-state-hover,
184
+ .ui-widget-header .ui-state-hover,
185
+ .ui-state-focus,
186
+ .ui-widget-content .ui-state-focus,
187
+ .ui-widget-header .ui-state-focus {
188
+ border: 1px solid #999999;
189
+ background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
190
+ font-weight: normal;
191
+ color: #212121;
192
+ }
193
+ .ui-state-hover a,
194
+ .ui-state-hover a:hover,
195
+ .ui-state-hover a:link,
196
+ .ui-state-hover a:visited {
197
+ color: #212121;
198
+ text-decoration: none;
199
+ }
200
+ .ui-state-active,
201
+ .ui-widget-content .ui-state-active,
202
+ .ui-widget-header .ui-state-active {
203
+ border: 1px solid #aaaaaa;
204
+ background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
205
+ font-weight: normal;
206
+ color: #212121;
207
+ }
208
+ .ui-state-active a,
209
+ .ui-state-active a:link,
210
+ .ui-state-active a:visited {
211
+ color: #212121;
212
+ text-decoration: none;
213
+ }
214
+
215
+ /* Interaction Cues
216
+ ----------------------------------*/
217
+ .ui-state-highlight,
218
+ .ui-widget-content .ui-state-highlight,
219
+ .ui-widget-header .ui-state-highlight {
220
+ border: 1px solid #fcefa1;
221
+ background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
222
+ color: #363636;
223
+ }
224
+ .ui-state-highlight a,
225
+ .ui-widget-content .ui-state-highlight a,
226
+ .ui-widget-header .ui-state-highlight a {
227
+ color: #363636;
228
+ }
229
+ .ui-state-error,
230
+ .ui-widget-content .ui-state-error,
231
+ .ui-widget-header .ui-state-error {
232
+ border: 1px solid #cd0a0a;
233
+ background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
234
+ color: #cd0a0a;
235
+ }
236
+ .ui-state-error a,
237
+ .ui-widget-content .ui-state-error a,
238
+ .ui-widget-header .ui-state-error a {
239
+ color: #cd0a0a;
240
+ }
241
+ .ui-state-error-text,
242
+ .ui-widget-content .ui-state-error-text,
243
+ .ui-widget-header .ui-state-error-text {
244
+ color: #cd0a0a;
245
+ }
246
+ .ui-priority-primary,
247
+ .ui-widget-content .ui-priority-primary,
248
+ .ui-widget-header .ui-priority-primary {
249
+ font-weight: bold;
250
+ }
251
+ .ui-priority-secondary,
252
+ .ui-widget-content .ui-priority-secondary,
253
+ .ui-widget-header .ui-priority-secondary {
254
+ opacity: .7;
255
+ filter:Alpha(Opacity=70);
256
+ font-weight: normal;
257
+ }
258
+ .ui-state-disabled,
259
+ .ui-widget-content .ui-state-disabled,
260
+ .ui-widget-header .ui-state-disabled {
261
+ opacity: .35;
262
+ filter:Alpha(Opacity=35);
263
+ background-image: none;
264
+ }
265
+ .ui-state-disabled .ui-icon {
266
+ filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
267
+ }
268
+
269
+ /* Icons
270
+ ----------------------------------*/
271
+
272
+ /* states and images */
273
+ .ui-icon {
274
+ width: 16px;
275
+ height: 16px;
276
+ }
277
+ .ui-icon,
278
+ .ui-widget-content .ui-icon {
279
+ background-image: url(images/ui-icons_222222_256x240.png);
280
+ }
281
+ .ui-widget-header .ui-icon {
282
+ background-image: url(images/ui-icons_222222_256x240.png);
283
+ }
284
+ .ui-state-default .ui-icon {
285
+ background-image: url(images/ui-icons_888888_256x240.png);
286
+ }
287
+ .ui-state-hover .ui-icon,
288
+ .ui-state-focus .ui-icon {
289
+ background-image: url(images/ui-icons_454545_256x240.png);
290
+ }
291
+ .ui-state-active .ui-icon {
292
+ background-image: url(images/ui-icons_454545_256x240.png);
293
+ }
294
+ .ui-state-highlight .ui-icon {
295
+ background-image: url(images/ui-icons_2e83ff_256x240.png);
296
+ }
297
+ .ui-state-error .ui-icon,
298
+ .ui-state-error-text .ui-icon {
299
+ background-image: url(images/ui-icons_cd0a0a_256x240.png);
300
+ }
301
+
302
+ /* positioning */
303
+ .ui-icon-blank { background-position: 16px 16px; }
304
+ .ui-icon-carat-1-n { background-position: 0 0; }
305
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
306
+ .ui-icon-carat-1-e { background-position: -32px 0; }
307
+ .ui-icon-carat-1-se { background-position: -48px 0; }
308
+ .ui-icon-carat-1-s { background-position: -64px 0; }
309
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
310
+ .ui-icon-carat-1-w { background-position: -96px 0; }
311
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
312
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
313
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
314
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
315
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
316
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
317
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
318
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
319
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
320
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
321
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
322
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
323
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
324
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
325
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
326
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
327
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
328
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
329
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
330
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
331
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
332
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
333
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
334
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
335
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
336
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
337
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
338
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
339
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
340
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
341
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
342
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
343
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
344
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
345
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
346
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
347
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
348
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
349
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
350
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
351
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
352
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
353
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
354
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
355
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
356
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
357
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
358
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
359
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
360
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
361
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
362
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
363
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
364
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
365
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
366
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
367
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
368
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
369
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
370
+ .ui-icon-extlink { background-position: -32px -80px; }
371
+ .ui-icon-newwin { background-position: -48px -80px; }
372
+ .ui-icon-refresh { background-position: -64px -80px; }
373
+ .ui-icon-shuffle { background-position: -80px -80px; }
374
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
375
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
376
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
377
+ .ui-icon-folder-open { background-position: -16px -96px; }
378
+ .ui-icon-document { background-position: -32px -96px; }
379
+ .ui-icon-document-b { background-position: -48px -96px; }
380
+ .ui-icon-note { background-position: -64px -96px; }
381
+ .ui-icon-mail-closed { background-position: -80px -96px; }
382
+ .ui-icon-mail-open { background-position: -96px -96px; }
383
+ .ui-icon-suitcase { background-position: -112px -96px; }
384
+ .ui-icon-comment { background-position: -128px -96px; }
385
+ .ui-icon-person { background-position: -144px -96px; }
386
+ .ui-icon-print { background-position: -160px -96px; }
387
+ .ui-icon-trash { background-position: -176px -96px; }
388
+ .ui-icon-locked { background-position: -192px -96px; }
389
+ .ui-icon-unlocked { background-position: -208px -96px; }
390
+ .ui-icon-bookmark { background-position: -224px -96px; }
391
+ .ui-icon-tag { background-position: -240px -96px; }
392
+ .ui-icon-home { background-position: 0 -112px; }
393
+ .ui-icon-flag { background-position: -16px -112px; }
394
+ .ui-icon-calendar { background-position: -32px -112px; }
395
+ .ui-icon-cart { background-position: -48px -112px; }
396
+ .ui-icon-pencil { background-position: -64px -112px; }
397
+ .ui-icon-clock { background-position: -80px -112px; }
398
+ .ui-icon-disk { background-position: -96px -112px; }
399
+ .ui-icon-calculator { background-position: -112px -112px; }
400
+ .ui-icon-zoomin { background-position: -128px -112px; }
401
+ .ui-icon-zoomout { background-position: -144px -112px; }
402
+ .ui-icon-search { background-position: -160px -112px; }
403
+ .ui-icon-wrench { background-position: -176px -112px; }
404
+ .ui-icon-gear { background-position: -192px -112px; }
405
+ .ui-icon-heart { background-position: -208px -112px; }
406
+ .ui-icon-star { background-position: -224px -112px; }
407
+ .ui-icon-link { background-position: -240px -112px; }
408
+ .ui-icon-cancel { background-position: 0 -128px; }
409
+ .ui-icon-plus { background-position: -16px -128px; }
410
+ .ui-icon-plusthick { background-position: -32px -128px; }
411
+ .ui-icon-minus { background-position: -48px -128px; }
412
+ .ui-icon-minusthick { background-position: -64px -128px; }
413
+ .ui-icon-close { background-position: -80px -128px; }
414
+ .ui-icon-closethick { background-position: -96px -128px; }
415
+ .ui-icon-key { background-position: -112px -128px; }
416
+ .ui-icon-lightbulb { background-position: -128px -128px; }
417
+ .ui-icon-scissors { background-position: -144px -128px; }
418
+ .ui-icon-clipboard { background-position: -160px -128px; }
419
+ .ui-icon-copy { background-position: -176px -128px; }
420
+ .ui-icon-contact { background-position: -192px -128px; }
421
+ .ui-icon-image { background-position: -208px -128px; }
422
+ .ui-icon-video { background-position: -224px -128px; }
423
+ .ui-icon-script { background-position: -240px -128px; }
424
+ .ui-icon-alert { background-position: 0 -144px; }
425
+ .ui-icon-info { background-position: -16px -144px; }
426
+ .ui-icon-notice { background-position: -32px -144px; }
427
+ .ui-icon-help { background-position: -48px -144px; }
428
+ .ui-icon-check { background-position: -64px -144px; }
429
+ .ui-icon-bullet { background-position: -80px -144px; }
430
+ .ui-icon-radio-on { background-position: -96px -144px; }
431
+ .ui-icon-radio-off { background-position: -112px -144px; }
432
+ .ui-icon-pin-w { background-position: -128px -144px; }
433
+ .ui-icon-pin-s { background-position: -144px -144px; }
434
+ .ui-icon-play { background-position: 0 -160px; }
435
+ .ui-icon-pause { background-position: -16px -160px; }
436
+ .ui-icon-seek-next { background-position: -32px -160px; }
437
+ .ui-icon-seek-prev { background-position: -48px -160px; }
438
+ .ui-icon-seek-end { background-position: -64px -160px; }
439
+ .ui-icon-seek-start { background-position: -80px -160px; }
440
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
441
+ .ui-icon-seek-first { background-position: -80px -160px; }
442
+ .ui-icon-stop { background-position: -96px -160px; }
443
+ .ui-icon-eject { background-position: -112px -160px; }
444
+ .ui-icon-volume-off { background-position: -128px -160px; }
445
+ .ui-icon-volume-on { background-position: -144px -160px; }
446
+ .ui-icon-power { background-position: 0 -176px; }
447
+ .ui-icon-signal-diag { background-position: -16px -176px; }
448
+ .ui-icon-signal { background-position: -32px -176px; }
449
+ .ui-icon-battery-0 { background-position: -48px -176px; }
450
+ .ui-icon-battery-1 { background-position: -64px -176px; }
451
+ .ui-icon-battery-2 { background-position: -80px -176px; }
452
+ .ui-icon-battery-3 { background-position: -96px -176px; }
453
+ .ui-icon-circle-plus { background-position: 0 -192px; }
454
+ .ui-icon-circle-minus { background-position: -16px -192px; }
455
+ .ui-icon-circle-close { background-position: -32px -192px; }
456
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
457
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
458
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
459
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
460
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
461
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
462
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
463
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
464
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
465
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
466
+ .ui-icon-circle-check { background-position: -208px -192px; }
467
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
468
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
469
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
470
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
471
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
472
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
473
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
474
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
475
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
476
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
477
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
478
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
479
+
480
+
481
+ /* Misc visuals
482
+ ----------------------------------*/
483
+
484
+ /* Corner radius */
485
+ .ui-corner-all,
486
+ .ui-corner-top,
487
+ .ui-corner-left,
488
+ .ui-corner-tl {
489
+ border-top-left-radius: 4px;
490
+ }
491
+ .ui-corner-all,
492
+ .ui-corner-top,
493
+ .ui-corner-right,
494
+ .ui-corner-tr {
495
+ border-top-right-radius: 4px;
496
+ }
497
+ .ui-corner-all,
498
+ .ui-corner-bottom,
499
+ .ui-corner-left,
500
+ .ui-corner-bl {
501
+ border-bottom-left-radius: 4px;
502
+ }
503
+ .ui-corner-all,
504
+ .ui-corner-bottom,
505
+ .ui-corner-right,
506
+ .ui-corner-br {
507
+ border-bottom-right-radius: 4px;
508
+ }
509
+
510
+ /* Overlays */
511
+ .ui-widget-overlay {
512
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
513
+ opacity: .3;
514
+ filter: Alpha(Opacity=30);
515
+ }
516
+ .ui-widget-shadow {
517
+ margin: -8px 0 0 -8px;
518
+ padding: 8px;
519
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
520
+ opacity: .3;
521
+ filter: Alpha(Opacity=30);
522
+ border-radius: 8px;
523
+ }
css/jquery-ui-1.10.3.custom.css ADDED
@@ -0,0 +1,1177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.10.3 - 2013-11-09
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=333333&bgTextureHeader=gloss_wave&bgImgOpacityHeader=25&borderColorHeader=333333&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=000000&bgTextureContent=inset_soft&bgImgOpacityContent=25&borderColorContent=666666&fcContent=ffffff&iconColorContent=cccccc&bgColorDefault=555555&bgTextureDefault=glass&bgImgOpacityDefault=20&borderColorDefault=666666&fcDefault=eeeeee&iconColorDefault=cccccc&bgColorHover=0078a3&bgTextureHover=glass&bgImgOpacityHover=40&borderColorHover=59b4d4&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=f58400&bgTextureActive=inset_soft&bgImgOpacityActive=30&borderColorActive=ffaf0f&fcActive=ffffff&iconColorActive=222222&bgColorHighlight=eeeeee&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=80&borderColorHighlight=cccccc&fcHighlight=2e7db2&iconColorHighlight=4b8e0b&bgColorError=ffc73d&bgTextureError=glass&bgImgOpacityError=40&borderColorError=ffb73d&fcError=111111&iconColorError=a83300&bgColorOverlay=5c5c5c&bgTextureOverlay=flat&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=flat&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
5
+ * Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-clearfix {
42
+ min-height: 0; /* support: IE7 */
43
+ }
44
+ .ui-helper-zfix {
45
+ width: 100%;
46
+ height: 100%;
47
+ top: 0;
48
+ left: 0;
49
+ position: absolute;
50
+ opacity: 0;
51
+ filter:Alpha(Opacity=0);
52
+ }
53
+
54
+ .ui-front {
55
+ z-index: 100;
56
+ }
57
+
58
+
59
+ /* Interaction Cues
60
+ ----------------------------------*/
61
+ .ui-state-disabled {
62
+ cursor: default !important;
63
+ }
64
+
65
+
66
+ /* Icons
67
+ ----------------------------------*/
68
+
69
+ /* states and images */
70
+ .ui-icon {
71
+ display: block;
72
+ text-indent: -99999px;
73
+ overflow: hidden;
74
+ background-repeat: no-repeat;
75
+ }
76
+
77
+
78
+ /* Misc visuals
79
+ ----------------------------------*/
80
+
81
+ /* Overlays */
82
+ .ui-widget-overlay {
83
+ position: fixed;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ }
89
+ .ui-resizable {
90
+ position: relative;
91
+ }
92
+ .ui-resizable-handle {
93
+ position: absolute;
94
+ font-size: 0.1px;
95
+ display: block;
96
+ }
97
+ .ui-resizable-disabled .ui-resizable-handle,
98
+ .ui-resizable-autohide .ui-resizable-handle {
99
+ display: none;
100
+ }
101
+ .ui-resizable-n {
102
+ cursor: n-resize;
103
+ height: 7px;
104
+ width: 100%;
105
+ top: -5px;
106
+ left: 0;
107
+ }
108
+ .ui-resizable-s {
109
+ cursor: s-resize;
110
+ height: 7px;
111
+ width: 100%;
112
+ bottom: -5px;
113
+ left: 0;
114
+ }
115
+ .ui-resizable-e {
116
+ cursor: e-resize;
117
+ width: 7px;
118
+ right: -5px;
119
+ top: 0;
120
+ height: 100%;
121
+ }
122
+ .ui-resizable-w {
123
+ cursor: w-resize;
124
+ width: 7px;
125
+ left: -5px;
126
+ top: 0;
127
+ height: 100%;
128
+ }
129
+ .ui-resizable-se {
130
+ cursor: se-resize;
131
+ width: 12px;
132
+ height: 12px;
133
+ right: 1px;
134
+ bottom: 1px;
135
+ }
136
+ .ui-resizable-sw {
137
+ cursor: sw-resize;
138
+ width: 9px;
139
+ height: 9px;
140
+ left: -5px;
141
+ bottom: -5px;
142
+ }
143
+ .ui-resizable-nw {
144
+ cursor: nw-resize;
145
+ width: 9px;
146
+ height: 9px;
147
+ left: -5px;
148
+ top: -5px;
149
+ }
150
+ .ui-resizable-ne {
151
+ cursor: ne-resize;
152
+ width: 9px;
153
+ height: 9px;
154
+ right: -5px;
155
+ top: -5px;
156
+ }
157
+ .ui-selectable-helper {
158
+ position: absolute;
159
+ z-index: 100;
160
+ border: 1px dotted black;
161
+ }
162
+ .ui-accordion .ui-accordion-header {
163
+ display: block;
164
+ cursor: pointer;
165
+ position: relative;
166
+ margin-top: 2px;
167
+ padding: .5em .5em .5em .7em;
168
+ min-height: 0; /* support: IE7 */
169
+ }
170
+ .ui-accordion .ui-accordion-icons {
171
+ padding-left: 2.2em;
172
+ }
173
+ .ui-accordion .ui-accordion-noicons {
174
+ padding-left: .7em;
175
+ }
176
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons {
177
+ padding-left: 2.2em;
178
+ }
179
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
180
+ position: absolute;
181
+ left: .5em;
182
+ top: 50%;
183
+ margin-top: -8px;
184
+ }
185
+ .ui-accordion .ui-accordion-content {
186
+ padding: 1em 2.2em;
187
+ border-top: 0;
188
+ overflow: auto;
189
+ }
190
+ .ui-autocomplete {
191
+ position: absolute;
192
+ top: 0;
193
+ left: 0;
194
+ cursor: default;
195
+ }
196
+ .ui-button {
197
+ display: inline-block;
198
+ position: relative;
199
+ padding: 0;
200
+ line-height: normal;
201
+ margin-right: .1em;
202
+ cursor: pointer;
203
+ vertical-align: middle;
204
+ text-align: center;
205
+ overflow: visible; /* removes extra width in IE */
206
+ }
207
+ .ui-button,
208
+ .ui-button:link,
209
+ .ui-button:visited,
210
+ .ui-button:hover,
211
+ .ui-button:active {
212
+ text-decoration: none;
213
+ }
214
+ /* to make room for the icon, a width needs to be set here */
215
+ .ui-button-icon-only {
216
+ width: 2.2em;
217
+ }
218
+ /* button elements seem to need a little more width */
219
+ button.ui-button-icon-only {
220
+ width: 2.4em;
221
+ }
222
+ .ui-button-icons-only {
223
+ width: 3.4em;
224
+ }
225
+ button.ui-button-icons-only {
226
+ width: 3.7em;
227
+ }
228
+
229
+ /* button text element */
230
+ .ui-button .ui-button-text {
231
+ display: block;
232
+ line-height: normal;
233
+ }
234
+ .ui-button-text-only .ui-button-text {
235
+ padding: .4em 1em;
236
+ }
237
+ .ui-button-icon-only .ui-button-text,
238
+ .ui-button-icons-only .ui-button-text {
239
+ padding: .4em;
240
+ text-indent: -9999999px;
241
+ }
242
+ .ui-button-text-icon-primary .ui-button-text,
243
+ .ui-button-text-icons .ui-button-text {
244
+ padding: .4em 1em .4em 2.1em;
245
+ }
246
+ .ui-button-text-icon-secondary .ui-button-text,
247
+ .ui-button-text-icons .ui-button-text {
248
+ padding: .4em 2.1em .4em 1em;
249
+ }
250
+ .ui-button-text-icons .ui-button-text {
251
+ padding-left: 2.1em;
252
+ padding-right: 2.1em;
253
+ }
254
+ /* no icon support for input elements, provide padding by default */
255
+ input.ui-button {
256
+ padding: .4em 1em;
257
+ }
258
+
259
+ /* button icon element(s) */
260
+ .ui-button-icon-only .ui-icon,
261
+ .ui-button-text-icon-primary .ui-icon,
262
+ .ui-button-text-icon-secondary .ui-icon,
263
+ .ui-button-text-icons .ui-icon,
264
+ .ui-button-icons-only .ui-icon {
265
+ position: absolute;
266
+ top: 50%;
267
+ margin-top: -8px;
268
+ }
269
+ .ui-button-icon-only .ui-icon {
270
+ left: 50%;
271
+ margin-left: -8px;
272
+ }
273
+ .ui-button-text-icon-primary .ui-button-icon-primary,
274
+ .ui-button-text-icons .ui-button-icon-primary,
275
+ .ui-button-icons-only .ui-button-icon-primary {
276
+ left: .5em;
277
+ }
278
+ .ui-button-text-icon-secondary .ui-button-icon-secondary,
279
+ .ui-button-text-icons .ui-button-icon-secondary,
280
+ .ui-button-icons-only .ui-button-icon-secondary {
281
+ right: .5em;
282
+ }
283
+
284
+ /* button sets */
285
+ .ui-buttonset {
286
+ margin-right: 7px;
287
+ }
288
+ .ui-buttonset .ui-button {
289
+ margin-left: 0;
290
+ margin-right: -.3em;
291
+ }
292
+
293
+ /* workarounds */
294
+ /* reset extra padding in Firefox, see h5bp.com/l */
295
+ input.ui-button::-moz-focus-inner,
296
+ button.ui-button::-moz-focus-inner {
297
+ border: 0;
298
+ padding: 0;
299
+ }
300
+ .ui-datepicker {
301
+ width: 17em;
302
+ padding: .2em .2em 0;
303
+ display: none;
304
+ }
305
+ .ui-datepicker .ui-datepicker-header {
306
+ position: relative;
307
+ padding: .2em 0;
308
+ }
309
+ .ui-datepicker .ui-datepicker-prev,
310
+ .ui-datepicker .ui-datepicker-next {
311
+ position: absolute;
312
+ top: 2px;
313
+ width: 1.8em;
314
+ height: 1.8em;
315
+ }
316
+ .ui-datepicker .ui-datepicker-prev-hover,
317
+ .ui-datepicker .ui-datepicker-next-hover {
318
+ top: 1px;
319
+ }
320
+ .ui-datepicker .ui-datepicker-prev {
321
+ left: 2px;
322
+ }
323
+ .ui-datepicker .ui-datepicker-next {
324
+ right: 2px;
325
+ }
326
+ .ui-datepicker .ui-datepicker-prev-hover {
327
+ left: 1px;
328
+ }
329
+ .ui-datepicker .ui-datepicker-next-hover {
330
+ right: 1px;
331
+ }
332
+ .ui-datepicker .ui-datepicker-prev span,
333
+ .ui-datepicker .ui-datepicker-next span {
334
+ display: block;
335
+ position: absolute;
336
+ left: 50%;
337
+ margin-left: -8px;
338
+ top: 50%;
339
+ margin-top: -8px;
340
+ }
341
+ .ui-datepicker .ui-datepicker-title {
342
+ margin: 0 2.3em;
343
+ line-height: 1.8em;
344
+ text-align: center;
345
+ }
346
+ .ui-datepicker .ui-datepicker-title select {
347
+ font-size: 1em;
348
+ margin: 1px 0;
349
+ }
350
+ .ui-datepicker select.ui-datepicker-month-year {
351
+ width: 100%;
352
+ }
353
+ .ui-datepicker select.ui-datepicker-month,
354
+ .ui-datepicker select.ui-datepicker-year {
355
+ width: 49%;
356
+ }
357
+ .ui-datepicker table {
358
+ width: 100%;
359
+ font-size: .9em;
360
+ border-collapse: collapse;
361
+ margin: 0 0 .4em;
362
+ }
363
+ .ui-datepicker th {
364
+ padding: .7em .3em;
365
+ text-align: center;
366
+ font-weight: bold;
367
+ border: 0;
368
+ }
369
+ .ui-datepicker td {
370
+ border: 0;
371
+ padding: 1px;
372
+ }
373
+ .ui-datepicker td span,
374
+ .ui-datepicker td a {
375
+ display: block;
376
+ padding: .2em;
377
+ text-align: right;
378
+ text-decoration: none;
379
+ }
380
+ .ui-datepicker .ui-datepicker-buttonpane {
381
+ background-image: none;
382
+ margin: .7em 0 0 0;
383
+ padding: 0 .2em;
384
+ border-left: 0;
385
+ border-right: 0;
386
+ border-bottom: 0;
387
+ }
388
+ .ui-datepicker .ui-datepicker-buttonpane button {
389
+ float: right;
390
+ margin: .5em .2em .4em;
391
+ cursor: pointer;
392
+ padding: .2em .6em .3em .6em;
393
+ width: auto;
394
+ overflow: visible;
395
+ }
396
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
397
+ float: left;
398
+ }
399
+
400
+ /* with multiple calendars */
401
+ .ui-datepicker.ui-datepicker-multi {
402
+ width: auto;
403
+ }
404
+ .ui-datepicker-multi .ui-datepicker-group {
405
+ float: left;
406
+ }
407
+ .ui-datepicker-multi .ui-datepicker-group table {
408
+ width: 95%;
409
+ margin: 0 auto .4em;
410
+ }
411
+ .ui-datepicker-multi-2 .ui-datepicker-group {
412
+ width: 50%;
413
+ }
414
+ .ui-datepicker-multi-3 .ui-datepicker-group {
415
+ width: 33.3%;
416
+ }
417
+ .ui-datepicker-multi-4 .ui-datepicker-group {
418
+ width: 25%;
419
+ }
420
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
421
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
422
+ border-left-width: 0;
423
+ }
424
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
425
+ clear: left;
426
+ }
427
+ .ui-datepicker-row-break {
428
+ clear: both;
429
+ width: 100%;
430
+ font-size: 0;
431
+ }
432
+
433
+ /* RTL support */
434
+ .ui-datepicker-rtl {
435
+ direction: rtl;
436
+ }
437
+ .ui-datepicker-rtl .ui-datepicker-prev {
438
+ right: 2px;
439
+ left: auto;
440
+ }
441
+ .ui-datepicker-rtl .ui-datepicker-next {
442
+ left: 2px;
443
+ right: auto;
444
+ }
445
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
446
+ right: 1px;
447
+ left: auto;
448
+ }
449
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
450
+ left: 1px;
451
+ right: auto;
452
+ }
453
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
454
+ clear: right;
455
+ }
456
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
457
+ float: left;
458
+ }
459
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
460
+ .ui-datepicker-rtl .ui-datepicker-group {
461
+ float: right;
462
+ }
463
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
464
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
465
+ border-right-width: 0;
466
+ border-left-width: 1px;
467
+ }
468
+ .ui-dialog {
469
+ position: absolute;
470
+ top: 0;
471
+ left: 0;
472
+ padding: .2em;
473
+ outline: 0;
474
+ }
475
+ .ui-dialog .ui-dialog-titlebar {
476
+ padding: .4em 1em;
477
+ position: relative;
478
+ }
479
+ .ui-dialog .ui-dialog-title {
480
+ float: left;
481
+ margin: .1em 0;
482
+ white-space: nowrap;
483
+ width: 90%;
484
+ overflow: hidden;
485
+ text-overflow: ellipsis;
486
+ }
487
+ .ui-dialog .ui-dialog-titlebar-close {
488
+ position: absolute;
489
+ right: .3em;
490
+ top: 50%;
491
+ width: 21px;
492
+ margin: -10px 0 0 0;
493
+ padding: 1px;
494
+ height: 20px;
495
+ }
496
+ .ui-dialog .ui-dialog-content {
497
+ position: relative;
498
+ border: 0;
499
+ padding: .5em 1em;
500
+ background: none;
501
+ overflow: auto;
502
+ }
503
+ .ui-dialog .ui-dialog-buttonpane {
504
+ text-align: left;
505
+ border-width: 1px 0 0 0;
506
+ background-image: none;
507
+ margin-top: .5em;
508
+ padding: .3em 1em .5em .4em;
509
+ }
510
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
511
+ float: right;
512
+ }
513
+ .ui-dialog .ui-dialog-buttonpane button {
514
+ margin: .5em .4em .5em 0;
515
+ cursor: pointer;
516
+ }
517
+ .ui-dialog .ui-resizable-se {
518
+ width: 12px;
519
+ height: 12px;
520
+ right: -5px;
521
+ bottom: -5px;
522
+ background-position: 16px 16px;
523
+ }
524
+ .ui-draggable .ui-dialog-titlebar {
525
+ cursor: move;
526
+ }
527
+ .ui-menu {
528
+ list-style: none;
529
+ padding: 2px;
530
+ margin: 0;
531
+ display: block;
532
+ outline: none;
533
+ }
534
+ .ui-menu .ui-menu {
535
+ margin-top: -3px;
536
+ position: absolute;
537
+ }
538
+ .ui-menu .ui-menu-item {
539
+ margin: 0;
540
+ padding: 0;
541
+ width: 100%;
542
+ /* support: IE10, see #8844 */
543
+ list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
544
+ }
545
+ .ui-menu .ui-menu-divider {
546
+ margin: 5px -2px 5px -2px;
547
+ height: 0;
548
+ font-size: 0;
549
+ line-height: 0;
550
+ border-width: 1px 0 0 0;
551
+ }
552
+ .ui-menu .ui-menu-item a {
553
+ text-decoration: none;
554
+ display: block;
555
+ padding: 2px .4em;
556
+ line-height: 1.5;
557
+ min-height: 0; /* support: IE7 */
558
+ font-weight: normal;
559
+ }
560
+ .ui-menu .ui-menu-item a.ui-state-focus,
561
+ .ui-menu .ui-menu-item a.ui-state-active {
562
+ font-weight: normal;
563
+ margin: -1px;
564
+ }
565
+
566
+ .ui-menu .ui-state-disabled {
567
+ font-weight: normal;
568
+ margin: .4em 0 .2em;
569
+ line-height: 1.5;
570
+ }
571
+ .ui-menu .ui-state-disabled a {
572
+ cursor: default;
573
+ }
574
+
575
+ /* icon support */
576
+ .ui-menu-icons {
577
+ position: relative;
578
+ }
579
+ .ui-menu-icons .ui-menu-item a {
580
+ position: relative;
581
+ padding-left: 2em;
582
+ }
583
+
584
+ /* left-aligned */
585
+ .ui-menu .ui-icon {
586
+ position: absolute;
587
+ top: .2em;
588
+ left: .2em;
589
+ }
590
+
591
+ /* right-aligned */
592
+ .ui-menu .ui-menu-icon {
593
+ position: static;
594
+ float: right;
595
+ }
596
+ .ui-progressbar {
597
+ height: 2em;
598
+ text-align: left;
599
+ overflow: hidden;
600
+ }
601
+ .ui-progressbar .ui-progressbar-value {
602
+ margin: -1px;
603
+ height: 100%;
604
+ }
605
+ .ui-progressbar .ui-progressbar-overlay {
606
+ background: url("images/animated-overlay.gif");
607
+ height: 100%;
608
+ filter: alpha(opacity=25);
609
+ opacity: 0.25;
610
+ }
611
+ .ui-progressbar-indeterminate .ui-progressbar-value {
612
+ background-image: none;
613
+ }
614
+ .ui-slider {
615
+ position: relative;
616
+ text-align: left;
617
+ }
618
+ .ui-slider .ui-slider-handle {
619
+ position: absolute;
620
+ z-index: 2;
621
+ width: 1.2em;
622
+ height: 1.2em;
623
+ cursor: default;
624
+ }
625
+ .ui-slider .ui-slider-range {
626
+ position: absolute;
627
+ z-index: 1;
628
+ font-size: .7em;
629
+ display: block;
630
+ border: 0;
631
+ background-position: 0 0;
632
+ }
633
+
634
+ /* For IE8 - See #6727 */
635
+ .ui-slider.ui-state-disabled .ui-slider-handle,
636
+ .ui-slider.ui-state-disabled .ui-slider-range {
637
+ filter: inherit;
638
+ }
639
+
640
+ .ui-slider-horizontal {
641
+ height: .8em;
642
+ }
643
+ .ui-slider-horizontal .ui-slider-handle {
644
+ top: -.3em;
645
+ margin-left: -.6em;
646
+ }
647
+ .ui-slider-horizontal .ui-slider-range {
648
+ top: 0;
649
+ height: 100%;
650
+ }
651
+ .ui-slider-horizontal .ui-slider-range-min {
652
+ left: 0;
653
+ }
654
+ .ui-slider-horizontal .ui-slider-range-max {
655
+ right: 0;
656
+ }
657
+
658
+ .ui-slider-vertical {
659
+ width: .8em;
660
+ height: 100px;
661
+ }
662
+ .ui-slider-vertical .ui-slider-handle {
663
+ left: -.3em;
664
+ margin-left: 0;
665
+ margin-bottom: -.6em;
666
+ }
667
+ .ui-slider-vertical .ui-slider-range {
668
+ left: 0;
669
+ width: 100%;
670
+ }
671
+ .ui-slider-vertical .ui-slider-range-min {
672
+ bottom: 0;
673
+ }
674
+ .ui-slider-vertical .ui-slider-range-max {
675
+ top: 0;
676
+ }
677
+ .ui-spinner {
678
+ position: relative;
679
+ display: inline-block;
680
+ overflow: hidden;
681
+ padding: 0;
682
+ vertical-align: middle;
683
+ }
684
+ .ui-spinner-input {
685
+ border: none;
686
+ background: none;
687
+ color: inherit;
688
+ padding: 0;
689
+ margin: .2em 0;
690
+ vertical-align: middle;
691
+ margin-left: .4em;
692
+ margin-right: 22px;
693
+ }
694
+ .ui-spinner-button {
695
+ width: 16px;
696
+ height: 50%;
697
+ font-size: .5em;
698
+ padding: 0;
699
+ margin: 0;
700
+ text-align: center;
701
+ position: absolute;
702
+ cursor: default;
703
+ display: block;
704
+ overflow: hidden;
705
+ right: 0;
706
+ }
707
+ /* more specificity required here to overide default borders */
708
+ .ui-spinner a.ui-spinner-button {
709
+ border-top: none;
710
+ border-bottom: none;
711
+ border-right: none;
712
+ }
713
+ /* vertical centre icon */
714
+ .ui-spinner .ui-icon {
715
+ position: absolute;
716
+ margin-top: -8px;
717
+ top: 50%;
718
+ left: 0;
719
+ }
720
+ .ui-spinner-up {
721
+ top: 0;
722
+ }
723
+ .ui-spinner-down {
724
+ bottom: 0;
725
+ }
726
+
727
+ /* TR overrides */
728
+ .ui-spinner .ui-icon-triangle-1-s {
729
+ /* need to fix icons sprite */
730
+ background-position: -65px -16px;
731
+ }
732
+ .ui-tabs {
733
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
734
+ padding: .2em;
735
+ }
736
+ .ui-tabs .ui-tabs-nav {
737
+ margin: 0;
738
+ padding: .2em .2em 0;
739
+ }
740
+ .ui-tabs .ui-tabs-nav li {
741
+ list-style: none;
742
+ float: left;
743
+ position: relative;
744
+ top: 0;
745
+ margin: 1px .2em 0 0;
746
+ border-bottom-width: 0;
747
+ padding: 0;
748
+ white-space: nowrap;
749
+ }
750
+ .ui-tabs .ui-tabs-nav li a {
751
+ float: left;
752
+ padding: .5em 1em;
753
+ text-decoration: none;
754
+ }
755
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
756
+ margin-bottom: -1px;
757
+ padding-bottom: 1px;
758
+ }
759
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
760
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
761
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
762
+ cursor: text;
763
+ }
764
+ .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
765
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
766
+ cursor: pointer;
767
+ }
768
+ .ui-tabs .ui-tabs-panel {
769
+ display: block;
770
+ border-width: 0;
771
+ padding: 1em 1.4em;
772
+ background: none;
773
+ }
774
+ .ui-tooltip {
775
+ padding: 8px;
776
+ position: absolute;
777
+ z-index: 9999;
778
+ max-width: 300px;
779
+ -webkit-box-shadow: 0 0 5px #aaa;
780
+ box-shadow: 0 0 5px #aaa;
781
+ }
782
+ body .ui-tooltip {
783
+ border-width: 2px;
784
+ }
785
+
786
+ /* Component containers
787
+ ----------------------------------*/
788
+ .ui-widget {
789
+ font-family: Segoe UI,Arial,sans-serif;
790
+ font-size: 1.1em;
791
+ }
792
+ .ui-widget .ui-widget {
793
+ font-size: 1em;
794
+ }
795
+ .ui-widget input,
796
+ .ui-widget select,
797
+ .ui-widget textarea,
798
+ .ui-widget button {
799
+ font-family: Segoe UI,Arial,sans-serif;
800
+ font-size: 1em;
801
+ }
802
+ .ui-widget-content {
803
+ border: 1px solid #666666;
804
+ background: #000000 url(images/ui-bg_inset-soft_25_000000_1x100.png) 50% bottom repeat-x;
805
+ color: #ffffff;
806
+ }
807
+ .ui-widget-content a {
808
+ color: #ffffff;
809
+ }
810
+ .ui-widget-header {
811
+ border: 1px solid #333333;
812
+ background: #333333 url(images/ui-bg_gloss-wave_25_333333_500x100.png) 50% 50% repeat-x;
813
+ color: #ffffff;
814
+ font-weight: bold;
815
+ }
816
+ .ui-widget-header a {
817
+ color: #ffffff;
818
+ }
819
+
820
+ /* Interaction states
821
+ ----------------------------------*/
822
+ .ui-state-default,
823
+ .ui-widget-content .ui-state-default,
824
+ .ui-widget-header .ui-state-default {
825
+ border: 1px solid #666666;
826
+ background: #555555 url(images/ui-bg_glass_20_555555_1x400.png) 50% 50% repeat-x;
827
+ font-weight: bold;
828
+ color: #eeeeee;
829
+ }
830
+ .ui-state-default a,
831
+ .ui-state-default a:link,
832
+ .ui-state-default a:visited {
833
+ color: #eeeeee;
834
+ text-decoration: none;
835
+ }
836
+ .ui-state-hover,
837
+ .ui-widget-content .ui-state-hover,
838
+ .ui-widget-header .ui-state-hover,
839
+ .ui-state-focus,
840
+ .ui-widget-content .ui-state-focus,
841
+ .ui-widget-header .ui-state-focus {
842
+ border: 1px solid #59b4d4;
843
+ background: #0078a3 url(images/ui-bg_glass_40_0078a3_1x400.png) 50% 50% repeat-x;
844
+ font-weight: bold;
845
+ color: #ffffff;
846
+ }
847
+ .ui-state-hover a,
848
+ .ui-state-hover a:hover,
849
+ .ui-state-hover a:link,
850
+ .ui-state-hover a:visited {
851
+ color: #ffffff;
852
+ text-decoration: none;
853
+ }
854
+ .ui-state-active,
855
+ .ui-widget-content .ui-state-active,
856
+ .ui-widget-header .ui-state-active {
857
+ border: 1px solid #ffaf0f;
858
+ background: #f58400 url(images/ui-bg_inset-soft_30_f58400_1x100.png) 50% 50% repeat-x;
859
+ font-weight: bold;
860
+ color: #ffffff;
861
+ }
862
+ .ui-state-active a,
863
+ .ui-state-active a:link,
864
+ .ui-state-active a:visited {
865
+ color: #ffffff;
866
+ text-decoration: none;
867
+ }
868
+
869
+ /* Interaction Cues
870
+ ----------------------------------*/
871
+ .ui-state-highlight,
872
+ .ui-widget-content .ui-state-highlight,
873
+ .ui-widget-header .ui-state-highlight {
874
+ border: 1px solid #cccccc;
875
+ background: #eeeeee url(images/ui-bg_highlight-soft_80_eeeeee_1x100.png) 50% top repeat-x;
876
+ color: #2e7db2;
877
+ }
878
+ .ui-state-highlight a,
879
+ .ui-widget-content .ui-state-highlight a,
880
+ .ui-widget-header .ui-state-highlight a {
881
+ color: #2e7db2;
882
+ }
883
+ .ui-state-error,
884
+ .ui-widget-content .ui-state-error,
885
+ .ui-widget-header .ui-state-error {
886
+ border: 1px solid #ffb73d;
887
+ background: #ffc73d url(images/ui-bg_glass_40_ffc73d_1x400.png) 50% 50% repeat-x;
888
+ color: #111111;
889
+ }
890
+ .ui-state-error a,
891
+ .ui-widget-content .ui-state-error a,
892
+ .ui-widget-header .ui-state-error a {
893
+ color: #111111;
894
+ }
895
+ .ui-state-error-text,
896
+ .ui-widget-content .ui-state-error-text,
897
+ .ui-widget-header .ui-state-error-text {
898
+ color: #111111;
899
+ }
900
+ .ui-priority-primary,
901
+ .ui-widget-content .ui-priority-primary,
902
+ .ui-widget-header .ui-priority-primary {
903
+ font-weight: bold;
904
+ }
905
+ .ui-priority-secondary,
906
+ .ui-widget-content .ui-priority-secondary,
907
+ .ui-widget-header .ui-priority-secondary {
908
+ opacity: .7;
909
+ filter:Alpha(Opacity=70);
910
+ font-weight: normal;
911
+ }
912
+ .ui-state-disabled,
913
+ .ui-widget-content .ui-state-disabled,
914
+ .ui-widget-header .ui-state-disabled {
915
+ opacity: .35;
916
+ filter:Alpha(Opacity=35);
917
+ background-image: none;
918
+ }
919
+ .ui-state-disabled .ui-icon {
920
+ filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
921
+ }
922
+
923
+ /* Icons
924
+ ----------------------------------*/
925
+
926
+ /* states and images */
927
+ .ui-icon {
928
+ width: 16px;
929
+ height: 16px;
930
+ }
931
+ .ui-icon,
932
+ .ui-widget-content .ui-icon {
933
+ background-image: url(images/ui-icons_cccccc_256x240.png);
934
+ }
935
+ .ui-widget-header .ui-icon {
936
+ background-image: url(images/ui-icons_ffffff_256x240.png);
937
+ }
938
+ .ui-state-default .ui-icon {
939
+ background-image: url(images/ui-icons_cccccc_256x240.png);
940
+ }
941
+ .ui-state-hover .ui-icon,
942
+ .ui-state-focus .ui-icon {
943
+ background-image: url(images/ui-icons_ffffff_256x240.png);
944
+ }
945
+ .ui-state-active .ui-icon {
946
+ background-image: url(images/ui-icons_222222_256x240.png);
947
+ }
948
+ .ui-state-highlight .ui-icon {
949
+ background-image: url(images/ui-icons_4b8e0b_256x240.png);
950
+ }
951
+ .ui-state-error .ui-icon,
952
+ .ui-state-error-text .ui-icon {
953
+ background-image: url(images/ui-icons_a83300_256x240.png);
954
+ }
955
+
956
+ /* positioning */
957
+ .ui-icon-blank { background-position: 16px 16px; }
958
+ .ui-icon-carat-1-n { background-position: 0 0; }
959
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
960
+ .ui-icon-carat-1-e { background-position: -32px 0; }
961
+ .ui-icon-carat-1-se { background-position: -48px 0; }
962
+ .ui-icon-carat-1-s { background-position: -64px 0; }
963
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
964
+ .ui-icon-carat-1-w { background-position: -96px 0; }
965
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
966
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
967
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
968
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
969
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
970
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
971
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
972
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
973
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
974
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
975
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
976
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
977
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
978
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
979
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
980
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
981
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
982
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
983
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
984
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
985
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
986
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
987
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
988
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
989
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
990
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
991
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
992
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
993
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
994
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
995
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
996
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
997
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
998
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
999
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1000
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1001
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1002
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1003
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1004
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1005
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1006
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1007
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1008
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1009
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1010
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1011
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1012
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1013
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1014
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1015
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1016
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1017
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1018
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1019
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1020
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1021
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1022
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
1023
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1024
+ .ui-icon-extlink { background-position: -32px -80px; }
1025
+ .ui-icon-newwin { background-position: -48px -80px; }
1026
+ .ui-icon-refresh { background-position: -64px -80px; }
1027
+ .ui-icon-shuffle { background-position: -80px -80px; }
1028
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
1029
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1030
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
1031
+ .ui-icon-folder-open { background-position: -16px -96px; }
1032
+ .ui-icon-document { background-position: -32px -96px; }
1033
+ .ui-icon-document-b { background-position: -48px -96px; }
1034
+ .ui-icon-note { background-position: -64px -96px; }
1035
+ .ui-icon-mail-closed { background-position: -80px -96px; }
1036
+ .ui-icon-mail-open { background-position: -96px -96px; }
1037
+ .ui-icon-suitcase { background-position: -112px -96px; }
1038
+ .ui-icon-comment { background-position: -128px -96px; }
1039
+ .ui-icon-person { background-position: -144px -96px; }
1040
+ .ui-icon-print { background-position: -160px -96px; }
1041
+ .ui-icon-trash { background-position: -176px -96px; }
1042
+ .ui-icon-locked { background-position: -192px -96px; }
1043
+ .ui-icon-unlocked { background-position: -208px -96px; }
1044
+ .ui-icon-bookmark { background-position: -224px -96px; }
1045
+ .ui-icon-tag { background-position: -240px -96px; }
1046
+ .ui-icon-home { background-position: 0 -112px; }
1047
+ .ui-icon-flag { background-position: -16px -112px; }
1048
+ .ui-icon-calendar { background-position: -32px -112px; }
1049
+ .ui-icon-cart { background-position: -48px -112px; }
1050
+ .ui-icon-pencil { background-position: -64px -112px; }
1051
+ .ui-icon-clock { background-position: -80px -112px; }
1052
+ .ui-icon-disk { background-position: -96px -112px; }
1053
+ .ui-icon-calculator { background-position: -112px -112px; }
1054
+ .ui-icon-zoomin { background-position: -128px -112px; }
1055
+ .ui-icon-zoomout { background-position: -144px -112px; }
1056
+ .ui-icon-search { background-position: -160px -112px; }
1057
+ .ui-icon-wrench { background-position: -176px -112px; }
1058
+ .ui-icon-gear { background-position: -192px -112px; }
1059
+ .ui-icon-heart { background-position: -208px -112px; }
1060
+ .ui-icon-star { background-position: -224px -112px; }
1061
+ .ui-icon-link { background-position: -240px -112px; }
1062
+ .ui-icon-cancel { background-position: 0 -128px; }
1063
+ .ui-icon-plus { background-position: -16px -128px; }
1064
+ .ui-icon-plusthick { background-position: -32px -128px; }
1065
+ .ui-icon-minus { background-position: -48px -128px; }
1066
+ .ui-icon-minusthick { background-position: -64px -128px; }
1067
+ .ui-icon-close { background-position: -80px -128px; }
1068
+ .ui-icon-closethick { background-position: -96px -128px; }
1069
+ .ui-icon-key { background-position: -112px -128px; }
1070
+ .ui-icon-lightbulb { background-position: -128px -128px; }
1071
+ .ui-icon-scissors { background-position: -144px -128px; }
1072
+ .ui-icon-clipboard { background-position: -160px -128px; }
1073
+ .ui-icon-copy { background-position: -176px -128px; }
1074
+ .ui-icon-contact { background-position: -192px -128px; }
1075
+ .ui-icon-image { background-position: -208px -128px; }
1076
+ .ui-icon-video { background-position: -224px -128px; }
1077
+ .ui-icon-script { background-position: -240px -128px; }
1078
+ .ui-icon-alert { background-position: 0 -144px; }
1079
+ .ui-icon-info { background-position: -16px -144px; }
1080
+ .ui-icon-notice { background-position: -32px -144px; }
1081
+ .ui-icon-help { background-position: -48px -144px; }
1082
+ .ui-icon-check { background-position: -64px -144px; }
1083
+ .ui-icon-bullet { background-position: -80px -144px; }
1084
+ .ui-icon-radio-on { background-position: -96px -144px; }
1085
+ .ui-icon-radio-off { background-position: -112px -144px; }
1086
+ .ui-icon-pin-w { background-position: -128px -144px; }
1087
+ .ui-icon-pin-s { background-position: -144px -144px; }
1088
+ .ui-icon-play { background-position: 0 -160px; }
1089
+ .ui-icon-pause { background-position: -16px -160px; }
1090
+ .ui-icon-seek-next { background-position: -32px -160px; }
1091
+ .ui-icon-seek-prev { background-position: -48px -160px; }
1092
+ .ui-icon-seek-end { background-position: -64px -160px; }
1093
+ .ui-icon-seek-start { background-position: -80px -160px; }
1094
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1095
+ .ui-icon-seek-first { background-position: -80px -160px; }
1096
+ .ui-icon-stop { background-position: -96px -160px; }
1097
+ .ui-icon-eject { background-position: -112px -160px; }
1098
+ .ui-icon-volume-off { background-position: -128px -160px; }
1099
+ .ui-icon-volume-on { background-position: -144px -160px; }
1100
+ .ui-icon-power { background-position: 0 -176px; }
1101
+ .ui-icon-signal-diag { background-position: -16px -176px; }
1102
+ .ui-icon-signal { background-position: -32px -176px; }
1103
+ .ui-icon-battery-0 { background-position: -48px -176px; }
1104
+ .ui-icon-battery-1 { background-position: -64px -176px; }
1105
+ .ui-icon-battery-2 { background-position: -80px -176px; }
1106
+ .ui-icon-battery-3 { background-position: -96px -176px; }
1107
+ .ui-icon-circle-plus { background-position: 0 -192px; }
1108
+ .ui-icon-circle-minus { background-position: -16px -192px; }
1109
+ .ui-icon-circle-close { background-position: -32px -192px; }
1110
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1111
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1112
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1113
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1114
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1115
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1116
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1117
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1118
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
1119
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
1120
+ .ui-icon-circle-check { background-position: -208px -192px; }
1121
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1122
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1123
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
1124
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1125
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1126
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
1127
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1128
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1129
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1130
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1131
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1132
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1133
+
1134
+
1135
+ /* Misc visuals
1136
+ ----------------------------------*/
1137
+
1138
+ /* Corner radius */
1139
+ .ui-corner-all,
1140
+ .ui-corner-top,
1141
+ .ui-corner-left,
1142
+ .ui-corner-tl {
1143
+ border-top-left-radius: 6px;
1144
+ }
1145
+ .ui-corner-all,
1146
+ .ui-corner-top,
1147
+ .ui-corner-right,
1148
+ .ui-corner-tr {
1149
+ border-top-right-radius: 6px;
1150
+ }
1151
+ .ui-corner-all,
1152
+ .ui-corner-bottom,
1153
+ .ui-corner-left,
1154
+ .ui-corner-bl {
1155
+ border-bottom-left-radius: 6px;
1156
+ }
1157
+ .ui-corner-all,
1158
+ .ui-corner-bottom,
1159
+ .ui-corner-right,
1160
+ .ui-corner-br {
1161
+ border-bottom-right-radius: 6px;
1162
+ }
1163
+
1164
+ /* Overlays */
1165
+ .ui-widget-overlay {
1166
+ background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x;
1167
+ opacity: .8;
1168
+ filter: Alpha(Opacity=80);
1169
+ }
1170
+ .ui-widget-shadow {
1171
+ margin: -7px 0 0 -7px;
1172
+ padding: 7px;
1173
+ background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x;
1174
+ opacity: .6;
1175
+ filter: Alpha(Opacity=60);
1176
+ border-radius: 8px;
1177
+ }
css/jquery-ui-1.10.3.custom.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.10.3 - 2013-11-09
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=333333&bgTextureHeader=gloss_wave&bgImgOpacityHeader=25&borderColorHeader=333333&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=000000&bgTextureContent=inset_soft&bgImgOpacityContent=25&borderColorContent=666666&fcContent=ffffff&iconColorContent=cccccc&bgColorDefault=555555&bgTextureDefault=glass&bgImgOpacityDefault=20&borderColorDefault=666666&fcDefault=eeeeee&iconColorDefault=cccccc&bgColorHover=0078a3&bgTextureHover=glass&bgImgOpacityHover=40&borderColorHover=59b4d4&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=f58400&bgTextureActive=inset_soft&bgImgOpacityActive=30&borderColorActive=ffaf0f&fcActive=ffffff&iconColorActive=222222&bgColorHighlight=eeeeee&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=80&borderColorHighlight=cccccc&fcHighlight=2e7db2&iconColorHighlight=4b8e0b&bgColorError=ffc73d&bgTextureError=glass&bgImgOpacityError=40&borderColorError=ffb73d&fcError=111111&iconColorError=a83300&bgColorOverlay=5c5c5c&bgTextureOverlay=flat&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=flat&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
5
+ * Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.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}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.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}.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}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.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}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.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}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:21px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("images/animated-overlay.gif");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Segoe UI,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Segoe UI,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #666;background:#000 url(images/ui-bg_inset-soft_25_000000_1x100.png) 50% bottom repeat-x;color:#fff}.ui-widget-content a{color:#fff}.ui-widget-header{border:1px solid #333;background:#333 url(images/ui-bg_gloss-wave_25_333333_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #666;background:#555 url(images/ui-bg_glass_20_555555_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eee}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#eee;text-decoration:none}.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 #59b4d4;background:#0078a3 url(images/ui-bg_glass_40_0078a3_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#fff;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #ffaf0f;background:#f58400 url(images/ui-bg_inset-soft_30_f58400_1x100.png) 50% 50% repeat-x;font-weight:bold;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #ccc;background:#eee url(images/ui-bg_highlight-soft_80_eeeeee_1x100.png) 50% top repeat-x;color:#2e7db2}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#2e7db2}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #ffb73d;background:#ffc73d url(images/ui-bg_glass_40_ffc73d_1x400.png) 50% 50% repeat-x;color:#111}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#111}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#111}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_cccccc_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_cccccc_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_4b8e0b_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_a83300_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:6px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:6px}.ui-widget-overlay{background:#5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x;opacity:.8;filter:Alpha(Opacity=80)}.ui-widget-shadow{margin:-7px 0 0 -7px;padding:7px;background:#ccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x;opacity:.6;filter:Alpha(Opacity=60);border-radius:8px}
css/ure-admin.css CHANGED
@@ -95,16 +95,16 @@ input.warning:hover, a.warning:hover {
95
  border-radius: 3px;
96
  background: #f5f5f5;
97
  padding: 5px;
98
- max-width: 132px;
99
  }
100
 
101
  .ure_toolbar_button {
102
- width: 130px;
103
  }
104
 
105
  #ure_update {
106
- margin-top: 70px;
107
- margin-bottom: 70px;
108
  }
109
 
110
  #ure_update_user {
@@ -114,7 +114,7 @@ input.warning:hover, a.warning:hover {
114
 
115
 
116
  #ure_service_tools {
117
- margin-top: 100px;
118
  }
119
 
120
  .ure-modal-dialog {
@@ -144,4 +144,26 @@ input.warning:hover, a.warning:hover {
144
  border-top: 1px solid #ccc;
145
  border-right: 1px solid #ccc;
146
  min-width: 120px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  }
95
  border-radius: 3px;
96
  background: #f5f5f5;
97
  padding: 5px;
98
+ max-width: 145px;
99
  }
100
 
101
  .ure_toolbar_button {
102
+ width: 143px;
103
  }
104
 
105
  #ure_update {
106
+ margin-top: 30px;
107
+ margin-bottom: 30px;
108
  }
109
 
110
  #ure_update_user {
114
 
115
 
116
  #ure_service_tools {
117
+ margin-top: 30px;
118
  }
119
 
120
  .ure-modal-dialog {
144
  border-top: 1px solid #ccc;
145
  border-right: 1px solid #ccc;
146
  min-width: 120px;
147
+ }
148
+
149
+ /* Multipe select */
150
+ .countLabel
151
+ {
152
+ color:Gray;
153
+ font-style:italic;
154
+ }
155
+
156
+ .storageBox
157
+ {
158
+ display:none;
159
+ }
160
+
161
+ .copiedOption
162
+ {
163
+ background-color:Yellow;
164
+ }
165
+
166
+ #ure-icon {
167
+ background-image: url("../images/user-role-editor-page-icon.png");
168
+ background-position: 0 0;
169
  }
images/user-role-editor-page-icon.png CHANGED
Binary file
includes/class-garvs-wp-lib.php CHANGED
@@ -210,6 +210,15 @@ class Garvs_WP_Lib {
210
  // end of option_selected()
211
 
212
 
 
 
 
 
 
 
 
 
 
213
  //
214
  }
215
  // end of Garvs_WP_Lib class
210
  // end of option_selected()
211
 
212
 
213
+ public function get_current_url() {
214
+ global $wp;
215
+ $current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );
216
+
217
+ return $current_url;
218
+ }
219
+ // end of get_current_url()
220
+
221
+
222
  //
223
  }
224
  // end of Garvs_WP_Lib class
includes/class-ure-lib.php CHANGED
@@ -72,7 +72,7 @@ class Ure_Lib extends Garvs_WP_Lib {
72
 
73
  if ($this->multisite && $current_blog!=$this->main_blog_id) {
74
  // return back to the current blog
75
- switch_to_blog($current_blog);
76
  }
77
 
78
  }
@@ -88,14 +88,16 @@ class Ure_Lib extends Garvs_WP_Lib {
88
 
89
  if ($this->multisite) {
90
  $current_blog = $wpdb->blogid;
91
- switch_to_blog($this->main_blog_id); // in order to save URE options to the main blog
 
 
92
  }
93
 
94
  update_option($this->options_id, $this->options);
95
 
96
- if ($this->multisite) {
97
  // return back to the current blog
98
- switch_to_blog($current_blog);
99
  }
100
 
101
  }
@@ -219,13 +221,12 @@ class Ure_Lib extends Garvs_WP_Lib {
219
  $this->show_message($this->notification);
220
  ?>
221
  <div class="wrap">
222
- <div class="icon32" id="icon-options-general"><br/></div>
223
  <h2><?php _e('User Role Editor', 'ure'); ?></h2>
224
  <div id="poststuff">
225
  <div class="ure-sidebar" >
226
  <?php
227
  $this->advertisement();
228
- $this->about();
229
  ?>
230
  </div>
231
 
@@ -408,7 +409,7 @@ class Ure_Lib extends Garvs_WP_Lib {
408
  exit;
409
  } else if ($action == 'add-new-role') {
410
  // process new role create request
411
- $this->notification = $this->new_role_create();
412
  } else if ($action == 'delete-role') {
413
  $this->notification = $this->delete_role();
414
  } else if ($action == 'change-default-role') {
@@ -563,7 +564,7 @@ class Ure_Lib extends Garvs_WP_Lib {
563
 
564
 
565
  /**
566
- * Checks if user is superadmin under multi-site environment or has administrator role for the standalone WP
567
  *
568
  * @global int $current_user
569
  * @param int $user_id
@@ -581,6 +582,7 @@ class Ure_Lib extends Garvs_WP_Lib {
581
 
582
  return $result;
583
  /*
 
584
  if (!$user_id) {
585
  if (empty($current_user) && function_exists('get_currentuserinfo')) {
586
  get_currentuserinfo();
@@ -762,7 +764,25 @@ class Ure_Lib extends Garvs_WP_Lib {
762
  return true;
763
  }
764
  // end of ure_make_roles_backup()
765
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
766
 
767
  /**
768
  * return array with roles which we could delete, e.g self-created and not used with any blog user
@@ -790,6 +810,11 @@ class Ure_Lib extends Garvs_WP_Lib {
790
  if (in_array($key, $standard_roles)) {
791
  continue;
792
  }
 
 
 
 
 
793
  // check if user with such role exists
794
  $query = "SELECT meta_value
795
  FROM $table_name
@@ -1004,13 +1029,53 @@ class Ure_Lib extends Garvs_WP_Lib {
1004
  // end of get_deprecated_caps()
1005
 
1006
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1007
  /**
1008
  * output HTML-code for capabilities list
1009
  * @param boolean $core - if true, then show WordPress core capabilities, else custom (plugins and themes created)
1010
  * @param boolean $for_role - if true, it is role capabilities list, else - user specific capabilities list
1011
  */
1012
  protected function show_capabilities($core = true, $for_role = true) {
1013
-
 
 
 
 
 
 
1014
  $onclick_for_admin = '';
1015
  if (!( $this->multisite && is_super_admin() )) { // do not limit SuperAdmin for multi-site
1016
  if ($core && 'administrator' == $this->current_role) {
@@ -1027,7 +1092,7 @@ class Ure_Lib extends Garvs_WP_Lib {
1027
  }
1028
  $quant_in_column = (int) $quant / 3;
1029
  $printed_quant = 0;
1030
- foreach ($this->full_capabilities as $capability) {
1031
  if ($core) {
1032
  if (!$capability['wp_core']) { // show WP built-in capabilities 1st
1033
  continue;
@@ -1043,9 +1108,18 @@ class Ure_Lib extends Garvs_WP_Lib {
1043
  $hidden_class = '';
1044
  }
1045
  if (isset($deprecated_caps[$capability['inner']])) {
1046
- $labelStyle = 'style="color:#BBBBBB;"';
1047
  } else {
1048
- $labelStyle = '';
 
 
 
 
 
 
 
 
 
1049
  }
1050
  $checked = '';
1051
  $disabled = '';
@@ -1063,8 +1137,8 @@ class Ure_Lib extends Garvs_WP_Lib {
1063
  }
1064
  }
1065
  $cap_id = str_replace(' ', URE_SPACE_REPLACER, $capability['inner']);
1066
- echo '<div id="ure_div_cap_'.$cap_id.'"><input type="checkbox" name="' . $cap_id . '" id="' . $cap_id . '" value="' . $capability['inner'] . '" ' .
1067
- $hidden_class . ' ' . $checked . ' ' . $disabled . ' ' . $onclick_for_admin . ' />';
1068
  if (empty($hidden_class)) {
1069
  if ($this->caps_readable) {
1070
  $cap_ind = 'human';
@@ -1073,14 +1147,17 @@ class Ure_Lib extends Garvs_WP_Lib {
1073
  $cap_ind = 'inner';
1074
  $cap_ind_alt = 'human';
1075
  }
1076
- echo '<label for="' . $cap_id . '" title="' . $capability[$cap_ind_alt] . '" ' . $labelStyle . ' > ' .
1077
- $capability[$cap_ind] . '</label> ' . $this->capability_help_link($capability['inner']) . '</div>';
 
1078
  $printed_quant++;
1079
  if ($printed_quant >= $quant_in_column) {
1080
  $printed_quant = 0;
1081
  echo '</td>
1082
- <td style="vertical-align:top;">';
1083
  }
 
 
1084
  } // if (empty($hidden_class
1085
  }
1086
  }
@@ -1095,60 +1172,78 @@ class Ure_Lib extends Garvs_WP_Lib {
1095
  * @param boolean $capability_remove
1096
  */
1097
  protected function toolbar($role_delete = false, $capability_remove = false) {
1098
-
1099
- ?>
 
 
 
 
 
 
 
1100
  <div id="ure_toolbar" >
1101
  <button id="ure_select_all" class="ure_toolbar_button">Select All</button>
1102
- <?php
1103
  if ('administrator' != $this->current_role) {
1104
- ?>
1105
  <button id="ure_unselect_all" class="ure_toolbar_button">Unselect All</button>
1106
  <button id="ure_reverse_selection" class="ure_toolbar_button">Reverse</button>
1107
- <?php
1108
  }
1109
  if ($this->ure_object == 'role') {
1110
-
1111
- ?>
1112
-
1113
  <hr />
1114
  <div id="ure_update">
1115
  <button id="ure_update_role" class="ure_toolbar_button button-primary" >Update</button>
1116
  <?php
1117
- do_action('ure_role_edit_toolbar_update');
1118
- ?>
1119
-
1120
  </div>
1121
- <hr />
 
 
 
1122
  <button id="ure_add_role" class="ure_toolbar_button">Add New Role</button>
 
 
 
 
1123
  <button id="ure_add_capability" class="ure_toolbar_button">Add New Capability</button>
1124
- <?php
1125
- if (!empty($role_delete)) {
1126
- ?>
 
 
 
1127
  <button id="ure_delete_role" class="ure_toolbar_button">Delete Role</button>
1128
- <?php
1129
- }
1130
- if ($capability_remove) {
1131
- ?>
 
 
 
1132
  <button id="ure_delete_capability" class="ure_toolbar_button">Delete Capability</button>
1133
- <?php
1134
- }
1135
- ?>
1136
  <hr />
1137
  <button id="ure_default_role" class="ure_toolbar_button">Default Role</button>
1138
  <hr />
1139
  <div id="ure_service_tools">
1140
  <?php
1141
- do_action('ure_role_edit_toolbar_service');
1142
- if (!is_multisite() ||
1143
- (is_main_site( get_current_blog_id()) || (is_network_admin() && is_super_admin()))
1144
- ) {
1145
  ?>
1146
  <button id="ure_reset_roles" class="ure_toolbar_button" style="color: red;" title="Reset Roles to its original state">Reset</button>
1147
  <?php
1148
- }
1149
  ?>
1150
  </div>
1151
  <?php
 
1152
  } else {
1153
  ?>
1154
 
@@ -1429,6 +1524,8 @@ class Ure_Lib extends Garvs_WP_Lib {
1429
  if (!isset($this->roles[$this->current_role])) {
1430
  return false;
1431
  }
 
 
1432
  $this->roles[$this->current_role]['capabilities'] = $this->capabilities_to_save;
1433
  $option_name = $wpdb->prefix . 'user_roles';
1434
 
@@ -1496,6 +1593,9 @@ class Ure_Lib extends Garvs_WP_Lib {
1496
  }
1497
  }
1498
  switch_to_blog($old_blog);
 
 
 
1499
  $this->roles = $this->get_user_roles();
1500
 
1501
  return $result;
@@ -1579,6 +1679,24 @@ class Ure_Lib extends Garvs_WP_Lib {
1579
  // end of log_event()
1580
 
1581
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1582
  /**
1583
  * process new role create request
1584
  *
@@ -1587,7 +1705,7 @@ class Ure_Lib extends Garvs_WP_Lib {
1587
  * @return string - message about operation result
1588
  *
1589
  */
1590
- protected function new_role_create() {
1591
 
1592
  global $wp_roles;
1593
 
@@ -1598,9 +1716,13 @@ class Ure_Lib extends Garvs_WP_Lib {
1598
  // sanitize user input for security
1599
  $valid_name = preg_match('/[A-Za-z0-9_\-]*/', $user_role_id, $match);
1600
  if (!$valid_name || ($valid_name && ($match[0] != $user_role_id))) { // some non-alphanumeric charactes found!
1601
- return __('Error: Role ID must contain latin characters, digits, hyphens or underscore only!', 'ure');
1602
  }
1603
-
 
 
 
 
1604
  if ($user_role_id) {
1605
  $user_role_name = isset($_POST['user_role_name']) ? $_POST['user_role_name'] : false;
1606
  if (!empty($user_role_name)) {
@@ -1621,7 +1743,7 @@ class Ure_Lib extends Garvs_WP_Lib {
1621
  $user_role_copy_from = isset($_POST['user_role_copy_from']) ? $_POST['user_role_copy_from'] : false;
1622
  if (!empty($user_role_copy_from) && $user_role_copy_from != 'none' && $wp_roles->is_role($user_role_copy_from)) {
1623
  $role = $wp_roles->get_role($user_role_copy_from);
1624
- $capabilities = $role->capabilities;
1625
  } else {
1626
  $capabilities = array('read' => 1, 'level_0' => 1);
1627
  }
@@ -1648,16 +1770,19 @@ class Ure_Lib extends Garvs_WP_Lib {
1648
  if (!isset($wp_roles)) {
1649
  $wp_roles = new WP_Roles();
1650
  }
1651
- $result = true;
1652
  foreach($roles_to_del as $role_id) {
1653
- if (isset($wp_roles->roles[$role_id])) {
1654
- unset($wp_roles->role_objects[$role_id]);
1655
- unset($wp_roles->role_names[$role_id]);
1656
- unset($wp_roles->roles[$role_id]);
1657
- } else {
1658
  $result = false;
1659
  break;
1660
- }
 
 
 
 
 
 
 
1661
  } // foreach()
1662
  if ($result) {
1663
  update_option($wp_roles->role_key, $wp_roles->roles);
@@ -1671,7 +1796,7 @@ class Ure_Lib extends Garvs_WP_Lib {
1671
  protected function delete_all_unused_roles() {
1672
 
1673
  $this->roles = $this->get_user_roles();
1674
- $roles_to_del = array_keys($this->get_roles_can_delete());
1675
  $result = $this->delete_wp_roles($roles_to_del);
1676
  $this->roles = null; // to force roles refresh
1677
 
@@ -2081,17 +2206,21 @@ class Ure_Lib extends Garvs_WP_Lib {
2081
  // end of display_box_end()
2082
 
2083
 
2084
- protected function about() {
2085
- $this->display_box_start(__('About this Plugin:', 'ure'));
2086
- ?>
2087
- <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/vladimir.png'; ?>);" target="_blank" href="http://www.shinephp.com/"><?php _e("Author's website", 'ure'); ?></a>
2088
- <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="http://role-editor.com"><?php _e('Plugin webpage', 'ure'); ?></a>
2089
- <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/changelog-icon.png'; ?>);" target="_blank" href="http://www.shinephp.com/user-role-editor-wordpress-plugin/#changelog"><?php _e('Changelog', 'ure'); ?></a>
2090
- <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/faq-icon.png'; ?>);" target="_blank" href="http://www.shinephp.com/user-role-editor-wordpress-plugin/#faq"><?php _e('FAQ', 'ure'); ?></a>
2091
- <?php
2092
- if (!class_exists('User_Role_Editor_Pro')) {
2093
- ?>
2094
- <hr />
 
 
 
 
2095
  <div style="text-align: center;">
2096
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
2097
  <input type="hidden" name="cmd" value="_s-xclick">
@@ -2101,9 +2230,7 @@ class Ure_Lib extends Garvs_WP_Lib {
2101
  <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
2102
  </form>
2103
  </div>
2104
- <?php
2105
- }
2106
- $this->display_box_end();
2107
  }
2108
  // end of about()
2109
 
@@ -2121,11 +2248,18 @@ class Ure_Lib extends Garvs_WP_Lib {
2121
  // end of set_current_role()
2122
 
2123
 
2124
- protected function role_edit_prepare_html() {
2125
-
2126
  $show_admin_role = $this->get_option('show_admin_role', 0);
2127
- $you_are_admin = ((defined('URE_SHOW_ADMIN_ROLE') && URE_SHOW_ADMIN_ROLE==1) || $show_admin_role==1) && $this->user_is_admin();
2128
-
 
 
 
 
 
 
 
 
2129
  $this->role_default_html = '<select id="default_user_role" name="default_user_role" width="200" style="width: 200px">';
2130
  $this->role_to_copy_html = '<select id="user_role_copy_from" name="user_role_copy_from" width="200" style="width: 200px">
2131
  <option value="none" selected="selected">' . __('None', 'ure') . '</option>';
@@ -2133,15 +2267,16 @@ class Ure_Lib extends Garvs_WP_Lib {
2133
  foreach ($this->roles as $key => $value) {
2134
  $selected1 = $this->option_selected($key, $this->current_role);
2135
  $selected2 = $this->option_selected($key, $this->wp_default_role);
2136
- if ($you_are_admin || $key != 'administrator') {
2137
- $translated_name = __($value['name'], 'ure'); // get translation from URE language file, if exists
 
2138
  if ($translated_name === $value['name']) { // get WordPress internal translation
2139
  $translated_name = translate_user_role($translated_name);
2140
  }
2141
- $translated_name .= ' (' . $key . ')';
2142
- $this->role_select_html .= '<option value="' . $key . '" ' . $selected1 . '>' . $translated_name . '</option>';
2143
- $this->role_default_html .= '<option value="' . $key . '" ' . $selected2 . '>' . $translated_name . '</option>';
2144
- $this->role_to_copy_html .= '<option value="' . $key . '" >' . $translated_name . '</option>';
2145
  }
2146
  }
2147
  $this->role_select_html .= '</select>';
@@ -2233,5 +2368,6 @@ class Ure_Lib extends Garvs_WP_Lib {
2233
  }
2234
  // end of user_has_capability()
2235
 
 
2236
  }
2237
  // end of URE_Lib class
72
 
73
  if ($this->multisite && $current_blog!=$this->main_blog_id) {
74
  // return back to the current blog
75
+ restore_current_blog();
76
  }
77
 
78
  }
88
 
89
  if ($this->multisite) {
90
  $current_blog = $wpdb->blogid;
91
+ if ($current_blog!==$this->main_blog_id) {
92
+ switch_to_blog($this->main_blog_id); // in order to save URE options to the main blog
93
+ }
94
  }
95
 
96
  update_option($this->options_id, $this->options);
97
 
98
+ if ($this->multisite && $current_blog!==$this->main_blog_id) {
99
  // return back to the current blog
100
+ restore_current_blog();
101
  }
102
 
103
  }
221
  $this->show_message($this->notification);
222
  ?>
223
  <div class="wrap">
224
+ <div id="ure-icon" class="icon32"><br/></div>
225
  <h2><?php _e('User Role Editor', 'ure'); ?></h2>
226
  <div id="poststuff">
227
  <div class="ure-sidebar" >
228
  <?php
229
  $this->advertisement();
 
230
  ?>
231
  </div>
232
 
409
  exit;
410
  } else if ($action == 'add-new-role') {
411
  // process new role create request
412
+ $this->notification = $this->add_new_role();
413
  } else if ($action == 'delete-role') {
414
  $this->notification = $this->delete_role();
415
  } else if ($action == 'change-default-role') {
564
 
565
 
566
  /**
567
+ * Checks if user is allowed to user User Role Editor
568
  *
569
  * @global int $current_user
570
  * @param int $user_id
582
 
583
  return $result;
584
  /*
585
+ // Checks if user is superadmin under multi-site environment or has administrator role for the standalone WP
586
  if (!$user_id) {
587
  if (empty($current_user) && function_exists('get_currentuserinfo')) {
588
  get_currentuserinfo();
764
  return true;
765
  }
766
  // end of ure_make_roles_backup()
767
+
768
+
769
+ protected function role_contains_caps_not_allowed_for_simple_admin($role_id) {
770
+
771
+ $result = false;
772
+ $role = $this->roles[$role_id];
773
+ if (!is_array($role['capabilities'])) {
774
+ return false;
775
+ }
776
+ foreach (array_keys($role['capabilities']) as $cap) {
777
+ if ($this->block_cap_for_single_admin($cap)) {
778
+ $result = true;
779
+ break;
780
+ }
781
+ }
782
+
783
+ return $result;
784
+ }
785
+ // end of role_contains_caps_not_allowed_for_simple_admin()
786
 
787
  /**
788
  * return array with roles which we could delete, e.g self-created and not used with any blog user
810
  if (in_array($key, $standard_roles)) {
811
  continue;
812
  }
813
+ // check if role has capabilities prohibited for the single site administrator
814
+ if ($this->role_contains_caps_not_allowed_for_simple_admin($key)) {
815
+ continue;
816
+ }
817
+
818
  // check if user with such role exists
819
  $query = "SELECT meta_value
820
  FROM $table_name
1029
  // end of get_deprecated_caps()
1030
 
1031
 
1032
+ /**
1033
+ * Return true if $capability is included to the list of capabilities allowed for the single site administrator
1034
+ * @param string $capability - capability ID
1035
+ * @param boolean $ignore_super_admin - if
1036
+ * @return boolean
1037
+ */
1038
+ protected function block_cap_for_single_admin($capability, $ignore_super_admin=false) {
1039
+
1040
+ if (!class_exists('User_Role_Editor_Pro')) { // this functionality is for the Pro version only.
1041
+ return false;
1042
+ }
1043
+
1044
+ if (!$this->multisite) { // work for multisite only
1045
+ return false;
1046
+ }
1047
+ if (!$ignore_super_admin && is_super_admin()) { // Do not block superadmin
1048
+ return false;
1049
+ }
1050
+ $caps_access_restrict_for_simple_admin = $this->get_option('caps_access_restrict_for_simple_admin', 0);
1051
+ if (!$caps_access_restrict_for_simple_admin) {
1052
+ return false;
1053
+ }
1054
+ $allowed_caps = $this->get_option('caps_allowed_for_single_admin', array());
1055
+ if (in_array($capability, $allowed_caps)) {
1056
+ $block_this_cap = false;
1057
+ } else {
1058
+ $block_this_cap = true;
1059
+ }
1060
+
1061
+ return $block_this_cap;
1062
+ }
1063
+ // end of block_cap_for_single_admin()
1064
+
1065
+
1066
  /**
1067
  * output HTML-code for capabilities list
1068
  * @param boolean $core - if true, then show WordPress core capabilities, else custom (plugins and themes created)
1069
  * @param boolean $for_role - if true, it is role capabilities list, else - user specific capabilities list
1070
  */
1071
  protected function show_capabilities($core = true, $for_role = true) {
1072
+
1073
+ if ($this->multisite && !is_super_admin()) {
1074
+ $help_links_enabled = $this->get_option('enable_help_links_for_simple_admin_ms', 1);
1075
+ } else {
1076
+ $help_links_enabled = true;
1077
+ }
1078
+
1079
  $onclick_for_admin = '';
1080
  if (!( $this->multisite && is_super_admin() )) { // do not limit SuperAdmin for multi-site
1081
  if ($core && 'administrator' == $this->current_role) {
1092
  }
1093
  $quant_in_column = (int) $quant / 3;
1094
  $printed_quant = 0;
1095
+ foreach ($this->full_capabilities as $capability) {
1096
  if ($core) {
1097
  if (!$capability['wp_core']) { // show WP built-in capabilities 1st
1098
  continue;
1108
  $hidden_class = '';
1109
  }
1110
  if (isset($deprecated_caps[$capability['inner']])) {
1111
+ $label_style = 'style="color:#BBBBBB;"';
1112
  } else {
1113
+ $label_style = '';
1114
+ }
1115
+ if ($this->multisite && $this->block_cap_for_single_admin($capability['inner'], true)) {
1116
+ if (is_super_admin()) {
1117
+ if (!is_network_admin()) {
1118
+ $label_style = 'style="color: red;"';
1119
+ }
1120
+ } else {
1121
+ $hidden_class = 'class="hidden"';
1122
+ }
1123
  }
1124
  $checked = '';
1125
  $disabled = '';
1137
  }
1138
  }
1139
  $cap_id = str_replace(' ', URE_SPACE_REPLACER, $capability['inner']);
1140
+ echo '<div id="ure_div_cap_'. $cap_id.'" '. $hidden_class .'><input type="checkbox" name="' . $cap_id . '" id="' .
1141
+ $cap_id . '" value="' . $capability['inner'] .'" '. $checked . ' ' . $disabled . ' ' . $onclick_for_admin . '>';
1142
  if (empty($hidden_class)) {
1143
  if ($this->caps_readable) {
1144
  $cap_ind = 'human';
1147
  $cap_ind = 'inner';
1148
  $cap_ind_alt = 'human';
1149
  }
1150
+ $help_link = $help_links_enabled ? $this->capability_help_link($capability['inner']) : '';
1151
+ echo '<label for="' . $cap_id . '" title="' . $capability[$cap_ind_alt] . '" ' . $label_style . ' > ' .
1152
+ $capability[$cap_ind] . '</label> ' . $help_link . '</div>';
1153
  $printed_quant++;
1154
  if ($printed_quant >= $quant_in_column) {
1155
  $printed_quant = 0;
1156
  echo '</td>
1157
+ <td style="vertical-align:top;">';
1158
  }
1159
+ } else { // if (empty($hidden_class
1160
+ echo '</div>';
1161
  } // if (empty($hidden_class
1162
  }
1163
  }
1172
  * @param boolean $capability_remove
1173
  */
1174
  protected function toolbar($role_delete = false, $capability_remove = false) {
1175
+ $caps_access_restrict_for_simple_admin = $this->get_option('caps_access_restrict_for_simple_admin', 0);
1176
+ if ($caps_access_restrict_for_simple_admin) {
1177
+ $add_del_role_for_simple_admin = $this->get_option('add_del_role_for_simple_admin', 1);
1178
+ } else {
1179
+ $add_del_role_for_simple_admin = 1;
1180
+ }
1181
+ $super_admin = is_super_admin();
1182
+
1183
+ ?>
1184
  <div id="ure_toolbar" >
1185
  <button id="ure_select_all" class="ure_toolbar_button">Select All</button>
1186
+ <?php
1187
  if ('administrator' != $this->current_role) {
1188
+ ?>
1189
  <button id="ure_unselect_all" class="ure_toolbar_button">Unselect All</button>
1190
  <button id="ure_reverse_selection" class="ure_toolbar_button">Reverse</button>
1191
+ <?php
1192
  }
1193
  if ($this->ure_object == 'role') {
1194
+ ?>
 
 
1195
  <hr />
1196
  <div id="ure_update">
1197
  <button id="ure_update_role" class="ure_toolbar_button button-primary" >Update</button>
1198
  <?php
1199
+ do_action('ure_role_edit_toolbar_update');
1200
+ ?>
 
1201
  </div>
1202
+ <?php
1203
+ if (!$this->multisite || $super_admin || $add_del_role_for_simple_admin) { // restrict single site admin
1204
+ ?>
1205
+ <hr />
1206
  <button id="ure_add_role" class="ure_toolbar_button">Add New Role</button>
1207
+ <?php
1208
+ } // restrict single site admin
1209
+ if (!$this->multisite || $super_admin || !$caps_access_restrict_for_simple_admin) { // restrict single site admin
1210
+ ?>
1211
  <button id="ure_add_capability" class="ure_toolbar_button">Add New Capability</button>
1212
+ <?php
1213
+ } // restrict single site admin
1214
+
1215
+ if (!$this->multisite || $super_admin || $add_del_role_for_simple_admin) { // restrict single site admin
1216
+ if (!empty($role_delete)) {
1217
+ ?>
1218
  <button id="ure_delete_role" class="ure_toolbar_button">Delete Role</button>
1219
+ <?php
1220
+ }
1221
+ } // restrict single site admin
1222
+
1223
+ if (!$this->multisite || $super_admin || !$caps_access_restrict_for_simple_admin) { // restrict single site admin
1224
+ if ($capability_remove) {
1225
+ ?>
1226
  <button id="ure_delete_capability" class="ure_toolbar_button">Delete Capability</button>
1227
+ <?php
1228
+ }
1229
+ ?>
1230
  <hr />
1231
  <button id="ure_default_role" class="ure_toolbar_button">Default Role</button>
1232
  <hr />
1233
  <div id="ure_service_tools">
1234
  <?php
1235
+ do_action('ure_role_edit_toolbar_service');
1236
+ if (!is_multisite() ||
1237
+ (is_main_site( get_current_blog_id()) || (is_network_admin() && is_super_admin()))
1238
+ ) {
1239
  ?>
1240
  <button id="ure_reset_roles" class="ure_toolbar_button" style="color: red;" title="Reset Roles to its original state">Reset</button>
1241
  <?php
1242
+ }
1243
  ?>
1244
  </div>
1245
  <?php
1246
+ } // restrict single site admin
1247
  } else {
1248
  ?>
1249
 
1524
  if (!isset($this->roles[$this->current_role])) {
1525
  return false;
1526
  }
1527
+
1528
+ $this->capabilities_to_save = $this->remove_caps_not_allowed_for_single_admin($this->capabilities_to_save);
1529
  $this->roles[$this->current_role]['capabilities'] = $this->capabilities_to_save;
1530
  $option_name = $wpdb->prefix . 'user_roles';
1531
 
1593
  }
1594
  }
1595
  switch_to_blog($old_blog);
1596
+ // cleanup blog switching data
1597
+ $GLOBALS['_wp_switched_stack'] = array();
1598
+ $GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );
1599
  $this->roles = $this->get_user_roles();
1600
 
1601
  return $result;
1679
  // end of log_event()
1680
 
1681
 
1682
+ /**
1683
+ * returns array without capabilities blocked for single site administrators
1684
+ * @param array $capabilities
1685
+ * @return array
1686
+ */
1687
+ protected function remove_caps_not_allowed_for_single_admin($capabilities) {
1688
+
1689
+ foreach(array_keys($capabilities) as $cap) {
1690
+ if ($this->block_cap_for_single_admin($cap)) {
1691
+ unset($capabilities[$cap]);
1692
+ }
1693
+ }
1694
+
1695
+ return $capabilities;
1696
+ }
1697
+ // end of remove_caps_not_allowed_for_single_admin()
1698
+
1699
+
1700
  /**
1701
  * process new role create request
1702
  *
1705
  * @return string - message about operation result
1706
  *
1707
  */
1708
+ protected function add_new_role() {
1709
 
1710
  global $wp_roles;
1711
 
1716
  // sanitize user input for security
1717
  $valid_name = preg_match('/[A-Za-z0-9_\-]*/', $user_role_id, $match);
1718
  if (!$valid_name || ($valid_name && ($match[0] != $user_role_id))) { // some non-alphanumeric charactes found!
1719
+ return esc_html__('Error: Role ID must contain latin characters, digits, hyphens or underscore only!', 'ure');
1720
  }
1721
+ $numeric_name = preg_match('/[0-9]*/', $user_role_id, $match);
1722
+ if ($numeric_name && ($match[0] == $user_role_id)) { // numeric name discovered
1723
+ return esc_html__('Error: WordPress does not support numeric Role name (ID). Add latin characters to it.', 'ure');
1724
+ }
1725
+
1726
  if ($user_role_id) {
1727
  $user_role_name = isset($_POST['user_role_name']) ? $_POST['user_role_name'] : false;
1728
  if (!empty($user_role_name)) {
1743
  $user_role_copy_from = isset($_POST['user_role_copy_from']) ? $_POST['user_role_copy_from'] : false;
1744
  if (!empty($user_role_copy_from) && $user_role_copy_from != 'none' && $wp_roles->is_role($user_role_copy_from)) {
1745
  $role = $wp_roles->get_role($user_role_copy_from);
1746
+ $capabilities = $this->remove_caps_not_allowed_for_single_admin($role->capabilities);
1747
  } else {
1748
  $capabilities = array('read' => 1, 'level_0' => 1);
1749
  }
1770
  if (!isset($wp_roles)) {
1771
  $wp_roles = new WP_Roles();
1772
  }
1773
+ $result = false;
1774
  foreach($roles_to_del as $role_id) {
1775
+ if (!isset($wp_roles->roles[$role_id])) {
 
 
 
 
1776
  $result = false;
1777
  break;
1778
+ }
1779
+ if ($this->role_contains_caps_not_allowed_for_simple_admin($role_id)) { // do not delete
1780
+ continue;
1781
+ }
1782
+ unset($wp_roles->role_objects[$role_id]);
1783
+ unset($wp_roles->role_names[$role_id]);
1784
+ unset($wp_roles->roles[$role_id]);
1785
+ $result = true;
1786
  } // foreach()
1787
  if ($result) {
1788
  update_option($wp_roles->role_key, $wp_roles->roles);
1796
  protected function delete_all_unused_roles() {
1797
 
1798
  $this->roles = $this->get_user_roles();
1799
+ $roles_to_del = array_keys($this->get_roles_can_delete());
1800
  $result = $this->delete_wp_roles($roles_to_del);
1801
  $this->roles = null; // to force roles refresh
1802
 
2206
  // end of display_box_end()
2207
 
2208
 
2209
+ public function about() {
2210
+ if (class_exists('User_Role_Editor_Pro')) {
2211
+ return;
2212
+ }
2213
+
2214
+ ?>
2215
+ <h2>User Role Editor</h2>
2216
+
2217
+ <strong>Version:</strong> <?php echo URE_VERSION; ?><br/><br/>
2218
+ <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/vladimir.png'; ?>);" target="_blank" href="http://www.shinephp.com/"><?php _e("Author's website", 'ure'); ?></a><br/>
2219
+ <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="http://role-editor.com"><?php _e('Plugin webpage', 'ure'); ?></a><br/>
2220
+ <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="http://role-editor.com/download-plugin"><?php _e('Plugin download', 'ure'); ?></a><br/>
2221
+ <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/changelog-icon.png'; ?>);" target="_blank" href="http://role-editor.com/changelog"><?php _e('Changelog', 'ure'); ?></a><br/>
2222
+ <a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/faq-icon.png'; ?>);" target="_blank" href="http://www.shinephp.com/user-role-editor-wordpress-plugin/#faq"><?php _e('FAQ', 'ure'); ?></a><br/>
2223
+ <hr />
2224
  <div style="text-align: center;">
2225
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
2226
  <input type="hidden" name="cmd" value="_s-xclick">
2230
  <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
2231
  </form>
2232
  </div>
2233
+ <?php
 
 
2234
  }
2235
  // end of about()
2236
 
2248
  // end of set_current_role()
2249
 
2250
 
2251
+ protected function show_admin_role_allowed() {
 
2252
  $show_admin_role = $this->get_option('show_admin_role', 0);
2253
+ $show_admin_role = ((defined('URE_SHOW_ADMIN_ROLE') && URE_SHOW_ADMIN_ROLE==1) || $show_admin_role==1) && $this->user_is_admin();
2254
+
2255
+ return $show_admin_role;
2256
+ }
2257
+ // end of show_admin_role()
2258
+
2259
+
2260
+ protected function role_edit_prepare_html() {
2261
+ $caps_access_restrict_for_simple_admin = $this->get_option('caps_access_restrict_for_simple_admin', 0);
2262
+ $show_admin_role = $this->show_admin_role_allowed();
2263
  $this->role_default_html = '<select id="default_user_role" name="default_user_role" width="200" style="width: 200px">';
2264
  $this->role_to_copy_html = '<select id="user_role_copy_from" name="user_role_copy_from" width="200" style="width: 200px">
2265
  <option value="none" selected="selected">' . __('None', 'ure') . '</option>';
2267
  foreach ($this->roles as $key => $value) {
2268
  $selected1 = $this->option_selected($key, $this->current_role);
2269
  $selected2 = $this->option_selected($key, $this->wp_default_role);
2270
+ $disabled = ($key==='administrator' && $caps_access_restrict_for_simple_admin && !is_super_admin()) ? 'disabled' : '';
2271
+ if ($show_admin_role || $key != 'administrator') {
2272
+ $translated_name = esc_html__($value['name'], 'ure'); // get translation from URE language file, if exists
2273
  if ($translated_name === $value['name']) { // get WordPress internal translation
2274
  $translated_name = translate_user_role($translated_name);
2275
  }
2276
+ $translated_name .= ' (' . $key . ')';
2277
+ $this->role_select_html .= '<option value="' . $key . '" ' . $selected1 .' '. $disabled .'>' . $translated_name . '</option>';
2278
+ $this->role_default_html .= '<option value="' . $key . '" ' . $selected2 .' '. $disabled .'>' . $translated_name . '</option>';
2279
+ $this->role_to_copy_html .= '<option value="' . $key .'" '. $disabled .'>' . $translated_name . '</option>';
2280
  }
2281
  }
2282
  $this->role_select_html .= '</select>';
2368
  }
2369
  // end of user_has_capability()
2370
 
2371
+
2372
  }
2373
  // end of URE_Lib class
includes/class-user-role-editor.php CHANGED
@@ -4,7 +4,7 @@
4
  * Author: Vladimir Garagulya
5
  * Author email: vladimir@shinephp.com
6
  * Author URI: http://shinephp.com
7
- * License: GPL v3
8
  *
9
  */
10
 
@@ -23,10 +23,10 @@ class User_Role_Editor {
23
  {
24
 
25
  // activation action
26
- register_activation_hook(URE_PLUGIN_FULL_PATH, array(&$this, 'setup'));
27
 
28
  // deactivation action
29
- register_deactivation_hook(URE_PLUGIN_FULL_PATH, array(&$this, 'cleanup'));
30
 
31
  // get plugin specific library object
32
  $this->lib = $library;
@@ -37,31 +37,31 @@ class User_Role_Editor {
37
  if ($this->lib->multisite) {
38
  // new blog may be registered not at admin back-end only but automatically after new user registration, e.g.
39
  // Gravity Forms User Registration Addon does
40
- add_action( 'wpmu_new_blog', array( &$this, 'duplicate_roles_for_new_blog'), 10, 2 );
41
  }
42
 
43
  if (!is_admin()) {
44
  return;
45
  }
46
 
47
- add_action('admin_init', array(&$this, 'plugin_init'), 1);
48
 
49
  // Add the translation function after the plugins loaded hook.
50
- add_action('plugins_loaded', array(&$this, 'load_translation'));
51
 
52
  // add own submenu
53
- add_action('admin_menu', array(&$this, 'plugin_menu'));
54
 
55
  if ($this->lib->multisite) {
56
  // add own submenu
57
- add_action('network_admin_menu', array(&$this, 'network_plugin_menu'));
58
  }
59
 
60
 
61
  // add a Settings link in the installed plugins page
62
- add_filter('plugin_action_links', array(&$this, 'plugin_action_links'), 10, 2);
63
 
64
- add_filter('plugin_row_meta', array(&$this, 'plugin_row_meta'), 10, 2);
65
 
66
  }
67
  // end of __construct()
@@ -85,22 +85,22 @@ class User_Role_Editor {
85
  // by other users with 'edit_users' capability
86
  if (!$this->lib->user_is_admin($user_id)) {
87
  // Exclude administrator role from edit list.
88
- add_filter('editable_roles', array( &$this, 'exclude_admin_role' ) );
89
  // prohibit any actions with user who has Administrator role
90
- add_filter('user_has_cap', array( &$this, 'not_edit_admin' ), 10, 3);
91
  // exclude users with 'Administrator' role from users list
92
- add_action('pre_user_query', array( &$this, 'exclude_administrators' ) );
93
  // do not show 'Administrator (s)' view above users list
94
- add_filter('views_users', array( &$this, 'exclude_admins_view' ) );
95
  }
96
 
97
- add_action( 'admin_enqueue_scripts', array( &$this, 'admin_load_js' ) );
98
- add_action( 'user_row_actions', array( &$this, 'user_row'), 10, 2 );
99
- add_action( 'edit_user_profile', array(&$this, 'edit_user_profile'), 10, 2 );
100
- add_filter( 'manage_users_columns', array(&$this, 'user_role_column'), 10, 5 );
101
- add_filter( 'manage_users_custom_column', array(&$this, 'user_role_row'), 10, 3 );
102
- add_action( 'profile_update', array(&$this, 'user_profile_update'), 10 );
103
- add_filter( 'all_plugins', array( &$this, 'exclude_from_plugins_list' ) );
104
 
105
  if ($this->lib->multisite) {
106
  $allow_edit_users_to_not_super_admin = $this->lib->get_option('allow_edit_users_to_not_super_admin', 0);
@@ -162,6 +162,10 @@ class User_Role_Editor {
162
  function edit_user_permission_check() {
163
  global $current_user, $profileuser;
164
 
 
 
 
 
165
  $screen = get_current_screen();
166
 
167
  get_currentuserinfo();
@@ -456,8 +460,8 @@ class User_Role_Editor {
456
  $translated_title,
457
  $this->key_capability,
458
  'users-' . URE_PLUGIN_FILE,
459
- array(&$this, 'edit_roles'));
460
- add_action("admin_print_styles-$ure_page", array(&$this, 'admin_css_action'));
461
  }
462
 
463
  if (!$this->lib->multisite) {
@@ -466,9 +470,9 @@ class User_Role_Editor {
466
  $translated_title,
467
  $this->key_capability,
468
  'settings-' . URE_PLUGIN_FILE,
469
- array(&$this, 'settings'));
470
  add_action( 'load-'.$this->settings_page_hook, array($this,'settings_screen_configure') );
471
-
472
  }
473
  }
474
  // end of plugin_menu()
@@ -485,58 +489,105 @@ class User_Role_Editor {
485
  'settings-' . URE_PLUGIN_FILE,
486
  array(&$this, 'settings'));
487
  add_action( 'load-'.$this->settings_page_hook, array($this,'settings_screen_configure') );
 
488
  }
489
 
490
  }
491
 
492
  // end of network_plugin_menu()
493
 
 
 
494
 
495
- public function settings() {
496
- if (!current_user_can($this->key_capability)) {
497
- __( 'You do not have sufficient permissions to manage options for User Role Editor.' );
498
- }
499
- if (isset($_POST['user_role_editor_settings_update'])) { // process update from the options form
500
- $nonce = $_POST['_wpnonce'];
501
- if (!wp_verify_nonce($nonce, 'user-role-editor')) {
502
- wp_die('Security check');
503
  }
504
-
505
- if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
506
- $show_admin_role = 1;
507
- } else {
508
- $show_admin_role = $this->lib->get_request_var('show_admin_role', 'checkbox');
509
  }
510
- $this->lib->put_option('show_admin_role', $show_admin_role);
 
 
511
 
512
- $caps_readable = $this->lib->get_request_var('caps_readable', 'checkbox');
513
- $this->lib->put_option('ure_caps_readable', $caps_readable);
514
 
515
- $show_deprecated_caps = $this->lib->get_request_var('show_deprecated_caps', 'checkbox');
516
- $this->lib->put_option('ure_show_deprecated_caps', $show_deprecated_caps);
517
 
518
- if ($this->lib->multisite) {
519
- $allow_edit_users_to_not_super_admin = $this->lib->get_request_var('allow_edit_users_to_not_super_admin', 'checkbox');
520
- $this->lib->put_option('allow_edit_users_to_not_super_admin', $allow_edit_users_to_not_super_admin);
521
- }
 
 
 
 
522
 
523
- do_action('ure_settings_update');
 
524
 
525
- $this->lib->flush_options();
526
- $this->lib->show_message(__('User Role Editor options are updated', 'ure'));
527
- } else { // get options from the options storage
528
- if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
529
- $show_admin_role = 1;
530
- } else {
531
- $show_admin_role = $this->lib->get_option('show_admin_role', 0);
532
- }
533
- $caps_readable = $this->lib->get_option('ure_caps_readable', 0);
534
- $show_deprecated_caps = $this->lib->get_option('ure_show_deprecated_caps', 0);
535
- if ($this->lib->multisite) {
536
- $allow_edit_users_to_not_super_admin = $this->lib->get_option('allow_edit_users_to_not_super_admin', 0);
537
- }
538
- do_action('ure_settings_load');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
539
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
540
 
541
  if (is_multisite()) {
542
  $link = 'settings.php';
@@ -551,7 +602,8 @@ class User_Role_Editor {
551
  public function admin_css_action() {
552
 
553
  wp_enqueue_style('wp-jquery-ui-dialog');
554
- wp_enqueue_style('ure_admin_css', URE_PLUGIN_URL . 'css/ure-admin.css', array(), false, 'screen');
 
555
  }
556
  // end of admin_css_action()
557
 
@@ -607,45 +659,47 @@ class User_Role_Editor {
607
  * @param string $hook_suffix
608
  */
609
  public function admin_load_js($hook_suffix){
610
-
611
  if (class_exists('User_Role_Editor_Pro')) {
612
- $ure_hook_suffix = 'users_page_users-user-role-editor-pro';
613
  } else {
614
- $ure_hook_suffix = 'users_page_users-user-role-editor';
615
  }
616
- if ($hook_suffix===$ure_hook_suffix) {
617
- wp_enqueue_script('jquery-ui-dialog', false, array('jquery-ui-core','jquery-ui-button', 'jquery') );
 
618
  wp_register_script( 'ure-js', plugins_url( '/js/ure-js.js', URE_PLUGIN_FULL_PATH ) );
619
  wp_enqueue_script ( 'ure-js' );
620
  wp_localize_script( 'ure-js', 'ure_data', array(
621
  'wp_nonce' => wp_create_nonce('user-role-editor'),
622
  'page_url' => URE_WP_ADMIN_URL . URE_PARENT .'?page=users-'.URE_PLUGIN_FILE,
623
  'is_multisite' => is_multisite() ? 1 : 0,
624
- 'select_all' => __('Select All', 'ure'),
625
- 'unselect_all' => __('Unselect All', 'ure'),
626
- 'reverse' => __('Reverse', 'ure'),
627
- 'update' => __('Update', 'ure'),
628
- 'confirm_submit' => __('Please confirm permissions update', 'ure'),
629
- 'add_new_role_title' => __('Add New Role', 'ure'),
630
- 'role_name_required' => __(' Role name (ID) can not be empty!', 'ure'),
631
- 'role_name_valid_chars' => __(' Role name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
632
- 'add_role' => __('Add Role', 'ure'),
633
- 'delete_role' => __('Delete Role', 'ure'),
634
- 'cancel' => __('Cancel', 'ure'),
635
- 'add_capability' => __('Add Capability', 'ure'),
636
- 'delete_capability' => __('Delete Capability', 'ure'),
637
- 'reset' => __('Reset', 'ure'),
638
- 'reset_warning' => __('DANGER! Resetting will restore default settings from WordPress Core.','ure')."\n\n".
639
- __('If any plugins have changed capabilities in any way upon installation (such as S2Member, WooCommerce, and many more), those capabilities will be DELETED!', 'ure')."\n\n" .
640
- __('For more information on how to undo changes and restore plugin capabilities go to', 'ure')."\n".
 
641
  'http://role-editor.com/how-to-restore-deleted-wordpress-user-roles/'."\n\n".
642
- __('Continue?', 'ure'),
643
- 'default_role' => __('Default Role', 'ure'),
644
- 'set_new_default_role' => __('Set New Default Role', 'ure'),
645
- 'delete_capability' => __('Delete Capability', 'ure'),
646
- 'delete_capability_warning' => __('Warning! Be careful - removing critical capability could crash some plugin or other custom code', 'ure'),
647
- 'capability_name_required' => __(' Capability name (ID) can not be empty!', 'ure'),
648
- 'capability_name_valid_chars' => __(' Capability name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
649
  ) );
650
  // load additional JS stuff for Pro version, if exists
651
  do_action('ure_load_js');
4
  * Author: Vladimir Garagulya
5
  * Author email: vladimir@shinephp.com
6
  * Author URI: http://shinephp.com
7
+ * License: GPL v2+
8
  *
9
  */
10
 
23
  {
24
 
25
  // activation action
26
+ register_activation_hook(URE_PLUGIN_FULL_PATH, array($this, 'setup'));
27
 
28
  // deactivation action
29
+ register_deactivation_hook(URE_PLUGIN_FULL_PATH, array($this, 'cleanup'));
30
 
31
  // get plugin specific library object
32
  $this->lib = $library;
37
  if ($this->lib->multisite) {
38
  // new blog may be registered not at admin back-end only but automatically after new user registration, e.g.
39
  // Gravity Forms User Registration Addon does
40
+ add_action( 'wpmu_new_blog', array($this, 'duplicate_roles_for_new_blog'), 10, 2);
41
  }
42
 
43
  if (!is_admin()) {
44
  return;
45
  }
46
 
47
+ add_action('admin_init', array($this, 'plugin_init'), 1);
48
 
49
  // Add the translation function after the plugins loaded hook.
50
+ add_action('plugins_loaded', array($this, 'load_translation'));
51
 
52
  // add own submenu
53
+ add_action('admin_menu', array($this, 'plugin_menu'));
54
 
55
  if ($this->lib->multisite) {
56
  // add own submenu
57
+ add_action('network_admin_menu', array($this, 'network_plugin_menu'));
58
  }
59
 
60
 
61
  // add a Settings link in the installed plugins page
62
+ add_filter('plugin_action_links', array($this, 'plugin_action_links'), 10, 2);
63
 
64
+ add_filter('plugin_row_meta', array($this, 'plugin_row_meta'), 10, 2);
65
 
66
  }
67
  // end of __construct()
85
  // by other users with 'edit_users' capability
86
  if (!$this->lib->user_is_admin($user_id)) {
87
  // Exclude administrator role from edit list.
88
+ add_filter('editable_roles', array($this, 'exclude_admin_role' ) );
89
  // prohibit any actions with user who has Administrator role
90
+ add_filter('user_has_cap', array($this, 'not_edit_admin' ), 10, 3);
91
  // exclude users with 'Administrator' role from users list
92
+ add_action('pre_user_query', array($this, 'exclude_administrators' ) );
93
  // do not show 'Administrator (s)' view above users list
94
+ add_filter('views_users', array($this, 'exclude_admins_view' ) );
95
  }
96
 
97
+ add_action( 'admin_enqueue_scripts', array($this, 'admin_load_js' ) );
98
+ add_action( 'user_row_actions', array($this, 'user_row'), 10, 2 );
99
+ add_action( 'edit_user_profile', array($this, 'edit_user_profile'), 10, 2 );
100
+ add_filter( 'manage_users_columns', array($this, 'user_role_column'), 10, 5 );
101
+ add_filter( 'manage_users_custom_column', array($this, 'user_role_row'), 10, 3 );
102
+ add_action( 'profile_update', array($this, 'user_profile_update'), 10 );
103
+ add_filter( 'all_plugins', array($this, 'exclude_from_plugins_list' ) );
104
 
105
  if ($this->lib->multisite) {
106
  $allow_edit_users_to_not_super_admin = $this->lib->get_option('allow_edit_users_to_not_super_admin', 0);
162
  function edit_user_permission_check() {
163
  global $current_user, $profileuser;
164
 
165
+ if (is_super_admin()) { // Superadmin may do all
166
+ return;
167
+ }
168
+
169
  $screen = get_current_screen();
170
 
171
  get_currentuserinfo();
460
  $translated_title,
461
  $this->key_capability,
462
  'users-' . URE_PLUGIN_FILE,
463
+ array($this, 'edit_roles'));
464
+ add_action("admin_print_styles-$ure_page", array($this, 'admin_css_action'));
465
  }
466
 
467
  if (!$this->lib->multisite) {
470
  $translated_title,
471
  $this->key_capability,
472
  'settings-' . URE_PLUGIN_FILE,
473
+ array($this, 'settings'));
474
  add_action( 'load-'.$this->settings_page_hook, array($this,'settings_screen_configure') );
475
+ add_action("admin_print_styles-{$this->settings_page_hook}", array($this, 'admin_css_action'));
476
  }
477
  }
478
  // end of plugin_menu()
489
  'settings-' . URE_PLUGIN_FILE,
490
  array(&$this, 'settings'));
491
  add_action( 'load-'.$this->settings_page_hook, array($this,'settings_screen_configure') );
492
+ add_action("admin_print_styles-{$this->settings_page_hook}", array($this, 'admin_css_action'));
493
  }
494
 
495
  }
496
 
497
  // end of network_plugin_menu()
498
 
499
+
500
+ protected function get_settings_action() {
501
 
502
+ $action = 'show';
503
+ $update_buttons = array('ure_settings_update', 'ure_settings_ms_update');
504
+ foreach($update_buttons as $update_button) {
505
+ if (!isset($_POST[$update_button])) {
506
+ continue;
 
 
 
507
  }
508
+ if (!wp_verify_nonce($_POST['_wpnonce'], 'user-role-editor')) {
509
+ wp_die('Security check failed');
 
 
 
510
  }
511
+ $action = $update_button;
512
+ break;
513
+ }
514
 
515
+ return $action;
 
516
 
517
+ }
518
+ // end of get_settings_action()
519
 
520
+
521
+ protected function update_general_options() {
522
+ if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
523
+ $show_admin_role = 1;
524
+ } else {
525
+ $show_admin_role = $this->lib->get_request_var('show_admin_role', 'checkbox');
526
+ }
527
+ $this->lib->put_option('show_admin_role', $show_admin_role);
528
 
529
+ $caps_readable = $this->lib->get_request_var('caps_readable', 'checkbox');
530
+ $this->lib->put_option('ure_caps_readable', $caps_readable);
531
 
532
+ $show_deprecated_caps = $this->lib->get_request_var('show_deprecated_caps', 'checkbox');
533
+ $this->lib->put_option('ure_show_deprecated_caps', $show_deprecated_caps);
534
+
535
+ do_action('ure_settings_update');
536
+
537
+ $this->lib->flush_options();
538
+ $this->lib->show_message(__('User Role Editor options are updated', 'ure'));
539
+
540
+ }
541
+ // end of update_general_options()
542
+
543
+
544
+ protected function update_multisite_options() {
545
+ if (!$this->lib->multisite) {
546
+ return;
547
+ }
548
+
549
+ $allow_edit_users_to_not_super_admin = $this->lib->get_request_var('allow_edit_users_to_not_super_admin', 'checkbox');
550
+ $this->lib->put_option('allow_edit_users_to_not_super_admin', $allow_edit_users_to_not_super_admin);
551
+
552
+ do_action('ure_settings_ms_update');
553
+
554
+ $this->lib->flush_options();
555
+ $this->lib->show_message(__('User Role Editor options are updated', 'ure'));
556
+
557
+ }
558
+ // end of update_multisite_options()
559
+
560
+
561
+ public function settings() {
562
+ if (!current_user_can($this->key_capability)) {
563
+ __( 'You do not have sufficient permissions to manage options for User Role Editor.', 'ure' );
564
  }
565
+ $action = $this->get_settings_action();
566
+ switch ($action) {
567
+ case 'ure_settings_update':
568
+ $this->update_general_options();
569
+ break;
570
+ case 'ure_settings_ms_update':
571
+ $this->update_multisite_options();
572
+ break;
573
+ case 'show':
574
+ default:
575
+ ;
576
+ } // switch()
577
+
578
+ if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
579
+ $show_admin_role = 1;
580
+ } else {
581
+ $show_admin_role = $this->lib->get_option('show_admin_role', 0);
582
+ }
583
+ $caps_readable = $this->lib->get_option('ure_caps_readable', 0);
584
+ $show_deprecated_caps = $this->lib->get_option('ure_show_deprecated_caps', 0);
585
+ if ($this->lib->multisite) {
586
+ $allow_edit_users_to_not_super_admin = $this->lib->get_option('allow_edit_users_to_not_super_admin', 0);
587
+ }
588
+ $ure_tab_idx = $this->lib->get_request_var('ure_tab_idx', 'int');
589
+
590
+ do_action('ure_settings_load');
591
 
592
  if (is_multisite()) {
593
  $link = 'settings.php';
602
  public function admin_css_action() {
603
 
604
  wp_enqueue_style('wp-jquery-ui-dialog');
605
+ wp_enqueue_style('ure-jquery-ui-tabs', URE_PLUGIN_URL . 'css/jquery-ui-1.10.3.css', array(), false, 'screen');
606
+ wp_enqueue_style('ure-admin-css', URE_PLUGIN_URL . 'css/ure-admin.css', array(), false, 'screen');
607
  }
608
  // end of admin_css_action()
609
 
659
  * @param string $hook_suffix
660
  */
661
  public function admin_load_js($hook_suffix){
662
+
663
  if (class_exists('User_Role_Editor_Pro')) {
664
+ $ure_hook_suffixes = array('settings_page_settings-user-role-editor-pro', 'users_page_users-user-role-editor-pro');
665
  } else {
666
+ $ure_hook_suffixes = array('settings_page_settings-user-role-editor', 'users_page_users-user-role-editor');
667
  }
668
+ if (in_array($hook_suffix, $ure_hook_suffixes)) {
669
+ wp_enqueue_script('jquery-ui-dialog', false, array('jquery-ui-core','jquery-ui-button', 'jquery-ui-tabs', 'jquery') );
670
+ wp_enqueue_script('jquery-ui-tabs', false, array('jquery-ui-core', 'jquery') );
671
  wp_register_script( 'ure-js', plugins_url( '/js/ure-js.js', URE_PLUGIN_FULL_PATH ) );
672
  wp_enqueue_script ( 'ure-js' );
673
  wp_localize_script( 'ure-js', 'ure_data', array(
674
  'wp_nonce' => wp_create_nonce('user-role-editor'),
675
  'page_url' => URE_WP_ADMIN_URL . URE_PARENT .'?page=users-'.URE_PLUGIN_FILE,
676
  'is_multisite' => is_multisite() ? 1 : 0,
677
+ 'select_all' => esc_html__('Select All', 'ure'),
678
+ 'unselect_all' => esc_html__('Unselect All', 'ure'),
679
+ 'reverse' => esc_html__('Reverse', 'ure'),
680
+ 'update' => esc_html__('Update', 'ure'),
681
+ 'confirm_submit' => esc_html__('Please confirm permissions update', 'ure'),
682
+ 'add_new_role_title' => esc_html__('Add New Role', 'ure'),
683
+ 'role_name_required' => esc_html__(' Role name (ID) can not be empty!', 'ure'),
684
+ 'role_name_valid_chars' => esc_html__(' Role name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
685
+ 'numeric_role_name_prohibited' => esc_html__(' WordPress does not support numeric Role name (ID). Add latin characters to it.', 'ure'),
686
+ 'add_role' => esc_html__('Add Role', 'ure'),
687
+ 'delete_role' => esc_html__('Delete Role', 'ure'),
688
+ 'cancel' => esc_html__('Cancel', 'ure'),
689
+ 'add_capability' => esc_html__('Add Capability', 'ure'),
690
+ 'delete_capability' => esc_html__('Delete Capability', 'ure'),
691
+ 'reset' => esc_html__('Reset', 'ure'),
692
+ 'reset_warning' => esc_html__('DANGER! Resetting will restore default settings from WordPress Core.','ure')."\n\n".
693
+ esc_html__('If any plugins have changed capabilities in any way upon installation (such as S2Member, WooCommerce, and many more), those capabilities will be DELETED!', 'ure')."\n\n" .
694
+ esc_html__('For more information on how to undo changes and restore plugin capabilities go to', 'ure')."\n".
695
  'http://role-editor.com/how-to-restore-deleted-wordpress-user-roles/'."\n\n".
696
+ esc_html__('Continue?', 'ure'),
697
+ 'default_role' => esc_html__('Default Role', 'ure'),
698
+ 'set_new_default_role' => esc_html__('Set New Default Role', 'ure'),
699
+ 'delete_capability' => esc_html__('Delete Capability', 'ure'),
700
+ 'delete_capability_warning' => esc_html__('Warning! Be careful - removing critical capability could crash some plugin or other custom code', 'ure'),
701
+ 'capability_name_required' => esc_html__(' Capability name (ID) can not be empty!', 'ure'),
702
+ 'capability_name_valid_chars' => esc_html__(' Capability name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
703
  ) );
704
  // load additional JS stuff for Pro version, if exists
705
  do_action('ure_load_js');
includes/define-constants.php CHANGED
@@ -1,20 +1,15 @@
1
  <?php
2
 
3
  /*
4
- * Constant definitions for use in WordPress plugin
5
  * Author: Vladimir Garagulya
6
  * Author email: vladimir@shinephp.com
7
  * Author URI: http://shinephp.com
8
  *
9
  */
10
 
11
- // general for any plugin
12
  define('URE_WP_ADMIN_URL', admin_url());
13
  define('URE_ERROR', 'Error is encountered');
14
-
15
- // specific for User Role Editor plugin only
16
- define('URE_PRO_VERSION', 0);
17
-
18
  define('URE_SPACE_REPLACER', '_URE-SR_');
19
  define('URE_PARENT', is_network_admin() ? 'network/users.php':'users.php');
20
  define('URE_KEY_CAPABILITY', 'administrator');
1
  <?php
2
 
3
  /*
4
+ * Constant definitions for use in User Role Editor WordPress plugin
5
  * Author: Vladimir Garagulya
6
  * Author email: vladimir@shinephp.com
7
  * Author URI: http://shinephp.com
8
  *
9
  */
10
 
 
11
  define('URE_WP_ADMIN_URL', admin_url());
12
  define('URE_ERROR', 'Error is encountered');
 
 
 
 
13
  define('URE_SPACE_REPLACER', '_URE-SR_');
14
  define('URE_PARENT', is_network_admin() ? 'network/users.php':'users.php');
15
  define('URE_KEY_CAPABILITY', 'administrator');
includes/settings-template.php CHANGED
@@ -11,59 +11,111 @@
11
 
12
  ?>
13
  <div class="wrap">
14
- <div id="ure-settings-header">
15
- <div id="icon-ure-options" style="float: left; margin-right: 20px;"><img src="<?php echo URE_PLUGIN_URL . 'images/user-role-editor-page-icon.png'; ?>" alt="User Role Editor icon" height="64" width="105"/></div>
16
- <h2><?php esc_html_e('User Role Editor - Options', 'ure'); ?></h2>
17
- </div>
18
- <div id="ure-settings-form" style="clear: left;">
19
- <hr/>
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  <form method="post" action="<?php echo $link; ?>?page=settings-<?php echo URE_PLUGIN_FILE; ?>" >
21
  <table id="ure_settings">
22
  <tr>
23
- <td><label for="show_admin_role"><?php esc_html_e('Show Administrator role at User Role Editor:', 'ure'); ?></label></td>
24
- <td><input type="checkbox" name="show_admin_role" id="show_admin_role" value="1"
25
  <?php echo ($show_admin_role == 1) ? 'checked="checked"' : ''; ?>
26
- <?php echo defined('URE_SHOW_ADMIN_ROLE') ? 'disabled="disabled" title="Predefined by \'URE_SHOW_ADMIN_ROLE\' constant at wp-config.php"' : ''; ?> />
 
 
27
  </td>
28
  </tr>
29
  <tr>
30
- <td><label for="caps_readable"><?php esc_html_e('Show capabilities in the human readable form:', 'ure'); ?></label></td>
31
  <td>
32
  <input type="checkbox" name="caps_readable" id="caps_readable" value="1"
33
- <?php echo ($caps_readable == 1) ? 'checked="checked"' : ''; ?> />
 
 
34
  </td>
35
  </tr>
36
  <tr>
37
- <td><label for="show_deprecated_caps"><?php esc_html_e('Show deprecated capabilities:', 'ure'); ?></label></td>
38
  <td>
39
  <input type="checkbox" name="show_deprecated_caps" id="show_deprecated_caps" value="1"
40
  <?php echo ($show_deprecated_caps == 1) ? 'checked="checked"' : ''; ?> />
 
 
41
  </td>
42
  </tr>
43
- <?php
44
- if ($this->lib->multisite) {
45
- ?>
46
- <tr>
47
- <td>
48
- <label for="allow_edit_users_to_not_super_admin"><?php esc_html_e('Allow create, edit and delete users to not super-admininstrators:', 'ure'); ?></label>
49
- </td>
50
- <td>
51
- <input type="checkbox" name="allow_edit_users_to_not_super_admin" id="allow_edit_users_to_not_super_admin" value="1"
52
- <?php echo ($allow_edit_users_to_not_super_admin == 1) ? 'checked="checked"' : ''; ?> />
53
- </td>
54
- </tr>
55
  <?php
56
- }
57
-
58
  do_action('ure_settings_show');
59
  ?>
60
  </table>
61
  <?php wp_nonce_field('user-role-editor'); ?>
 
62
  <p class="submit">
63
- <input type="submit" class="button-primary" name="user_role_editor_settings_update" value="<?php _e('Save', 'ure') ?>" />
64
  </p>
65
 
66
  </form>
67
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  </div>
69
-
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  ?>
13
  <div class="wrap">
14
+ <a href="http://role-editor.com">
15
+ <div id="ure-icon" class="icon32"><br></div>
16
+ </a>
17
+ <h2><?php esc_html_e('User Role Editor - Options', 'ure'); ?></h2>
18
+
19
+ <div id="ure_tabs" style="clear: left;">
20
+ <ul>
21
+ <li><a href="#ure_tabs-1"><?php esc_html_e('General', 'ure');?></a></li>
22
+ <?php
23
+ if ($this->lib->multisite) {
24
+ ?>
25
+ <li><a href="#ure_tabs-2"><?php esc_html_e('Multisite', 'ure');?></a></li>
26
+ <?php
27
+ }
28
+ ?>
29
+ <li><a href="#ure_tabs-3"><?php esc_html_e('About', 'ure');?></a></li>
30
+ </ul>
31
+ <div id="ure_tabs-1">
32
+ <div id="ure-settings-form">
33
  <form method="post" action="<?php echo $link; ?>?page=settings-<?php echo URE_PLUGIN_FILE; ?>" >
34
  <table id="ure_settings">
35
  <tr>
36
+ <td>
37
+ <input type="checkbox" name="show_admin_role" id="show_admin_role" value="1"
38
  <?php echo ($show_admin_role == 1) ? 'checked="checked"' : ''; ?>
39
+ <?php echo defined('URE_SHOW_ADMIN_ROLE') ? 'disabled="disabled" title="Predefined by \'URE_SHOW_ADMIN_ROLE\' constant at wp-config.php"' : ''; ?> />
40
+ <label for="show_admin_role"><?php esc_html_e('Show Administrator role at User Role Editor', 'ure'); ?></label></td>
41
+ <td>
42
  </td>
43
  </tr>
44
  <tr>
 
45
  <td>
46
  <input type="checkbox" name="caps_readable" id="caps_readable" value="1"
47
+ <?php echo ($caps_readable == 1) ? 'checked="checked"' : ''; ?> />
48
+ <label for="caps_readable"><?php esc_html_e('Show capabilities in the human readable form', 'ure'); ?></label></td>
49
+ <td>
50
  </td>
51
  </tr>
52
  <tr>
 
53
  <td>
54
  <input type="checkbox" name="show_deprecated_caps" id="show_deprecated_caps" value="1"
55
  <?php echo ($show_deprecated_caps == 1) ? 'checked="checked"' : ''; ?> />
56
+ <label for="show_deprecated_caps"><?php esc_html_e('Show deprecated capabilities', 'ure'); ?></label></td>
57
+ <td>
58
  </td>
59
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
60
  <?php
 
 
61
  do_action('ure_settings_show');
62
  ?>
63
  </table>
64
  <?php wp_nonce_field('user-role-editor'); ?>
65
+ <input type="hidden" name="ure_tab_idx" value="0" />
66
  <p class="submit">
67
+ <input type="submit" class="button-primary" name="ure_settings_update" value="<?php _e('Save', 'ure') ?>" />
68
  </p>
69
 
70
  </form>
71
+ </div>
72
+ </div><!-- ure_tabs-1 -->
73
+ <?php
74
+ if ($this->lib->multisite) {
75
+ ?>
76
+ <div id="ure_tabs-2">
77
+ <div id="ure-settings-form-ms">
78
+ <form name="ure_settings_ms" method="post" action="<?php echo $link; ?>?page=settings-<?php echo URE_PLUGIN_FILE; ?>" >
79
+ <table id="ure_settings_ms">
80
+ <tr>
81
+ <td>
82
+ <input type="checkbox" name="allow_edit_users_to_not_super_admin" id="allow_edit_users_to_not_super_admin" value="1"
83
+ <?php echo ($allow_edit_users_to_not_super_admin == 1) ? 'checked="checked"' : ''; ?> />
84
+ <label for="allow_edit_users_to_not_super_admin"><?php esc_html_e('Allow non super administrators to create, edit, and delete users', 'ure'); ?></label>
85
+ </td>
86
+ <td>
87
+ </td>
88
+ </tr>
89
+
90
+ <?php
91
+ do_action('ure_settings_ms_show');
92
+ ?>
93
+ </table>
94
+ <?php wp_nonce_field('user-role-editor'); ?>
95
+ <input type="hidden" name="ure_tab_idx" value="1" />
96
+ <p class="submit">
97
+ <input type="submit" class="button-primary" name="ure_settings_ms_update" value="<?php _e('Save', 'ure') ?>" />
98
+ </p>
99
+ </form>
100
+ </div> <!-- ure-settings-form-ms -->
101
+ </div> <!-- ure_tabs-2 -->
102
+ <?php
103
+ }
104
+ ?>
105
+ <div id="ure_tabs-3">
106
+ <?php $this->lib->about(); ?>
107
+ </div>
108
+ </div> <!-- ure_tabs -->
109
  </div>
110
+ <script>
111
+ jQuery(function() {
112
+ jQuery('#ure_tabs').tabs();
113
+ <?php
114
+ if ($ure_tab_idx>0) {
115
+ ?>
116
+ jQuery("#ure_tabs").tabs("option", "active", <?php echo $ure_tab_idx; ?>);
117
+ <?php
118
+ }
119
+ ?>
120
+ });
121
+ </script>
includes/ure-role-edit.php CHANGED
@@ -13,21 +13,21 @@ if (!defined('URE_PLUGIN_URL')) {
13
  ?>
14
 
15
  <div class="has-sidebar-content">
16
- <?php
17
- $this->display_box_start(__('Select Role and change its capabilities list', 'ure'), 'min-width:820px;');
18
- ?>
19
- <div style="float: left;"><?php echo __('Select Role:', 'ure').' '.$this->role_select_html; ?></div>
20
  <?php
21
  if ($this->caps_readable) {
22
  $checked = 'checked="checked"';
23
  } else {
24
  $checked = '';
25
  }
26
- ?>
27
- <div style="display:inline;float:right;">
28
- <input type="checkbox" name="ure_caps_readable" id="ure_caps_readable" value="1"
29
- <?php echo $checked; ?> onclick="ure_turn_caps_readable(0);"/>
30
- <label for="ure_caps_readable"><?php _e('Show capabilities in human readable form', 'ure'); ?></label><br />
 
31
  <?php
32
  if ($this->show_deprecated_caps) {
33
  $checked = 'checked="checked"';
@@ -35,12 +35,11 @@ if (!defined('URE_PLUGIN_URL')) {
35
  $checked = '';
36
  }
37
  ?>
38
- <input type="checkbox" name="ure_show_deprecated_caps" id="ure_show_deprecated_caps" value="1"
39
- <?php echo $checked; ?> onclick="ure_turn_deprecated_caps(0);"/>
40
- <label for="ure_show_deprecated_caps"><?php _e('Show deprecated capabilities', 'ure'); ?></label>
41
- </div>
42
-
43
  <?php
 
44
  if (is_multisite() && !is_network_admin() && is_main_site( get_current_blog_id() ) && is_super_admin()) {
45
  $hint = __('If checked, then apply action to ALL sites of this Network');
46
  if ($this->apply_to_all) {
13
  ?>
14
 
15
  <div class="has-sidebar-content">
16
+ <div class="postbox" style="float: left; min-width:850px;">
17
+ <h3><?php esc_html_e('Select Role and change its capabilities:', 'ure'); ?> <?php echo $this->role_select_html; ?></h3>
18
+ <div class="inside">
 
19
  <?php
20
  if ($this->caps_readable) {
21
  $checked = 'checked="checked"';
22
  } else {
23
  $checked = '';
24
  }
25
+ $caps_access_restrict_for_simple_admin = $this->get_option('caps_access_restrict_for_simple_admin', 0);
26
+ if (is_super_admin() || !$this->multisite || !class_exists('User_Role_Editor_Pro') || !$caps_access_restrict_for_simple_admin) {
27
+ ?>
28
+ <input type="checkbox" name="ure_caps_readable" id="ure_caps_readable" value="1"
29
+ <?php echo $checked; ?> onclick="ure_turn_caps_readable(0);"/>
30
+ <label for="ure_caps_readable"><?php _e('Show capabilities in human readable form', 'ure'); ?></label>&nbsp;&nbsp;
31
  <?php
32
  if ($this->show_deprecated_caps) {
33
  $checked = 'checked="checked"';
35
  $checked = '';
36
  }
37
  ?>
38
+ <input type="checkbox" name="ure_show_deprecated_caps" id="ure_show_deprecated_caps" value="1"
39
+ <?php echo $checked; ?> onclick="ure_turn_deprecated_caps(0);"/>
40
+ <label for="ure_show_deprecated_caps"><?php _e('Show deprecated capabilities', 'ure'); ?></label>
 
 
41
  <?php
42
+ }
43
  if (is_multisite() && !is_network_admin() && is_main_site( get_current_blog_id() ) && is_super_admin()) {
44
  $hint = __('If checked, then apply action to ALL sites of this Network');
45
  if ($this->apply_to_all) {
includes/ure-user-edit.php CHANGED
@@ -31,19 +31,21 @@ if (!defined('URE_PLUGIN_URL')) {
31
  $user_info .= ' <span style="font-weight: bold; color:red;">'. esc_html__('Network Super Admin', 'ure') .'</span>';
32
  }
33
 
34
- $this->display_box_start(__('Change capabilities for user', 'ure').$user_info, 'min-width:900px;');
35
 
36
  ?>
37
- <table cellpadding="0" cellspacing="0">
38
  <tr>
39
  <td>&nbsp;</td>
40
  <td style="padding-left: 10px; padding-bottom: 5px;">
41
  <?php
42
- if ($this->caps_readable) {
43
- $checked = 'checked="checked"';
44
- } else {
45
- $checked = '';
46
- }
 
 
47
  ?>
48
 
49
  <input type="checkbox" name="ure_caps_readable" id="ure_caps_readable" value="1"
@@ -59,12 +61,16 @@ if (!defined('URE_PLUGIN_URL')) {
59
  <input type="checkbox" name="ure_show_deprecated_caps" id="ure_show_deprecated_caps" value="1"
60
  <?php echo $checked; ?> onclick="ure_turn_deprecated_caps(<?php echo $this->user_to_edit->ID; ?>);"/>
61
  <label for="ure_show_deprecated_caps"><?php _e('Show deprecated capabilities', 'ure'); ?></label>
 
 
 
62
  </td>
63
  </tr>
64
  <tr>
65
  <td class="ure-user-roles">
66
  <div style="margin-bottom: 5px; font-weight: bold;"><?php echo __('Primary Role:', 'ure'); ?></div>
67
  <?php
 
68
  // output primary role selection dropdown list
69
  $this->user_primary_role_dropdown_list($this->user_to_edit->roles);
70
 
@@ -83,11 +89,10 @@ if (function_exists('bbp_filter_blog_editable_roles') ) { // bbPress plugin is
83
  }
84
  ?>
85
  <div style="margin-top: 5px;margin-bottom: 5px; font-weight: bold;"><?php echo __('Other Roles:', 'ure'); ?></div>
86
- <?php
87
- $show_admin_role = $this->get_option('show_admin_role', 0);
88
- $you_are_admin = ((defined('URE_SHOW_ADMIN_ROLE') && URE_SHOW_ADMIN_ROLE==1) || $show_admin_role==1) && $this->user_is_admin();
89
  foreach ($this->roles as $role_id => $role) {
90
- if ( ($you_are_admin || $role_id!='administrator') && ($role_id!==$primary_role) ) {
91
  if ( $this->user_can( $role_id ) ) {
92
  $checked = 'checked="checked"';
93
  } else {
31
  $user_info .= ' <span style="font-weight: bold; color:red;">'. esc_html__('Network Super Admin', 'ure') .'</span>';
32
  }
33
 
34
+ $this->display_box_start(__('Change capabilities for user', 'ure').$user_info, 'min-width:1050px;');
35
 
36
  ?>
37
+ <table cellpadding="0" cellspacing="0" style="width: 100%;">
38
  <tr>
39
  <td>&nbsp;</td>
40
  <td style="padding-left: 10px; padding-bottom: 5px;">
41
  <?php
42
+ $caps_access_restrict_for_simple_admin = $this->get_option('caps_access_restrict_for_simple_admin', 0);
43
+ if (is_super_admin() || !$this->multisite || !class_exists('User_Role_Editor_Pro') || !$caps_access_restrict_for_simple_admin) {
44
+ if ($this->caps_readable) {
45
+ $checked = 'checked="checked"';
46
+ } else {
47
+ $checked = '';
48
+ }
49
  ?>
50
 
51
  <input type="checkbox" name="ure_caps_readable" id="ure_caps_readable" value="1"
61
  <input type="checkbox" name="ure_show_deprecated_caps" id="ure_show_deprecated_caps" value="1"
62
  <?php echo $checked; ?> onclick="ure_turn_deprecated_caps(<?php echo $this->user_to_edit->ID; ?>);"/>
63
  <label for="ure_show_deprecated_caps"><?php _e('Show deprecated capabilities', 'ure'); ?></label>
64
+ <?php
65
+ }
66
+ ?>
67
  </td>
68
  </tr>
69
  <tr>
70
  <td class="ure-user-roles">
71
  <div style="margin-bottom: 5px; font-weight: bold;"><?php echo __('Primary Role:', 'ure'); ?></div>
72
  <?php
73
+ $show_admin_role = $this->show_admin_role_allowed();
74
  // output primary role selection dropdown list
75
  $this->user_primary_role_dropdown_list($this->user_to_edit->roles);
76
 
89
  }
90
  ?>
91
  <div style="margin-top: 5px;margin-bottom: 5px; font-weight: bold;"><?php echo __('Other Roles:', 'ure'); ?></div>
92
+ <?php
93
+
 
94
  foreach ($this->roles as $role_id => $role) {
95
+ if ( ($show_admin_role || $role_id!='administrator') && ($role_id!==$primary_role) ) {
96
  if ( $this->user_can( $role_id ) ) {
97
  $checked = 'checked="checked"';
98
  } else {
js/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ ?>
js/ure-js.js CHANGED
@@ -83,6 +83,10 @@ jQuery("#ure_add_role").button({
83
  alert( ure_data.role_name_valid_chars );
84
  return false;
85
  }
 
 
 
 
86
  var role_name = $('#user_role_name').val();
87
  var role_copy_from = $('#user_role_copy_from').val();
88
 
83
  alert( ure_data.role_name_valid_chars );
84
  return false;
85
  }
86
+ if ((/^[0-9]*$/.test(role_id))) {
87
+ alert( ure_data.numeric_role_name_prohibited );
88
+ return false;
89
+ }
90
  var role_name = $('#user_role_name').val();
91
  var role_copy_from = $('#user_role_copy_from').val();
92
 
lang/ure-id_ID.mo ADDED
Binary file
lang/ure-id_ID.po ADDED
@@ -0,0 +1,731 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: User Role Editor 2.0\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2013-11-04 08:39+0700\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Nasrulhaq Muiz <nasroel@al-badar.net>\n"
8
+ "Language-Team: http://al-badar.net <nasrulhaq81@gmail.com>\n"
9
+ "Language: id_ID\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-SourceCharset: UTF-8\n"
14
+ "X-Poedit-KeywordsList: __;_e;esc_html__\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Generator: Poedit 1.5.7\n"
17
+ "X-Poedit-SearchPath-0: ..\n"
18
+
19
+ #: ../includes/settings-template.php:63
20
+ msgid "Save"
21
+ msgstr "Simpan"
22
+
23
+ #: ../includes/class-user-role-editor.php:171
24
+ #: ../includes/class-user-role-editor.php:173
25
+ msgid "You do not have permission to edit this user."
26
+ msgstr "Anda tidak diizinkan untuk menyunting user ini. "
27
+
28
+ #: ../includes/class-user-role-editor.php:314
29
+ msgid "Capabilities"
30
+ msgstr "Kemampuan"
31
+
32
+ #: ../includes/class-user-role-editor.php:407
33
+ msgid "Settings"
34
+ msgstr "Pengaturan"
35
+
36
+ #: ../includes/class-user-role-editor.php:420
37
+ #: ../includes/class-ure-lib.php:2089
38
+ msgid "Changelog"
39
+ msgstr "log Perubahan"
40
+
41
+ #: ../includes/class-user-role-editor.php:442
42
+ msgid "Overview"
43
+ msgstr "Ikhtisar"
44
+
45
+ #: ../includes/class-user-role-editor.php:451
46
+ #: ../includes/class-user-role-editor.php:479
47
+ #: ../includes/class-user-role-editor.php:678
48
+ #: ../includes/class-ure-lib.php:223
49
+ msgid "User Role Editor"
50
+ msgstr "User Role Editor"
51
+
52
+ #: ../includes/class-user-role-editor.php:497
53
+ msgid ""
54
+ "You do not have sufficient permissions to manage options for User Role "
55
+ "Editor."
56
+ msgstr ""
57
+ "Anda tidak memiliki izin yang memadai untuk mengelola pilihan User Role "
58
+ "Editor."
59
+
60
+ #: ../includes/class-user-role-editor.php:526
61
+ msgid "User Role Editor options are updated"
62
+ msgstr "Pilihan User Role Editor diperbarui"
63
+
64
+ #: ../includes/class-user-role-editor.php:571
65
+ msgid "Insufficient permissions to work with User Role Editor"
66
+ msgstr "Izin yang tidak sesuai untuk bekerja dengan User Role Editor"
67
+
68
+ #: ../includes/class-user-role-editor.php:624
69
+ msgid "Select All"
70
+ msgstr "Pilih Semua"
71
+
72
+ #: ../includes/class-user-role-editor.php:625
73
+ msgid "Unselect All"
74
+ msgstr "Batalkan Semua"
75
+
76
+ #: ../includes/class-user-role-editor.php:626
77
+ msgid "Reverse"
78
+ msgstr "Memutar"
79
+
80
+ #: ../includes/class-user-role-editor.php:627
81
+ msgid "Update"
82
+ msgstr "Pembaruan"
83
+
84
+ #: ../includes/class-user-role-editor.php:628
85
+ msgid "Please confirm permissions update"
86
+ msgstr "Harap konfirmasi pembaruan izin"
87
+
88
+ #: ../includes/class-user-role-editor.php:629
89
+ msgid "Add New Role"
90
+ msgstr "Tambah Peran Baru"
91
+
92
+ #: ../includes/class-user-role-editor.php:630
93
+ msgid " Role name (ID) can not be empty!"
94
+ msgstr "Nama peran (ID) tidak boleh kosong!"
95
+
96
+ #: ../includes/class-user-role-editor.php:631
97
+ msgid ""
98
+ " Role name (ID) must contain latin characters, digits, hyphens or underscore "
99
+ "only!"
100
+ msgstr ""
101
+ "Nama peran (ID) harus berisi karakter latin, angka, tanda hubung atau garis "
102
+ "bawah saja!"
103
+
104
+ #: ../includes/class-user-role-editor.php:632
105
+ msgid "Add Role"
106
+ msgstr "Tambah Peran"
107
+
108
+ #: ../includes/class-user-role-editor.php:633
109
+ msgid "Delete Role"
110
+ msgstr "Hapus Peran"
111
+
112
+ #: ../includes/class-user-role-editor.php:634
113
+ msgid "Cancel"
114
+ msgstr "Batalkan"
115
+
116
+ #: ../includes/class-user-role-editor.php:635
117
+ msgid "Add Capability"
118
+ msgstr "Tambah Kemampuan"
119
+
120
+ #: ../includes/class-user-role-editor.php:636
121
+ #: ../includes/class-user-role-editor.php:645
122
+ msgid "Delete Capability"
123
+ msgstr "Hapus Kemampuan"
124
+
125
+ #: ../includes/class-user-role-editor.php:637
126
+ msgid "Reset"
127
+ msgstr "Atur Ulang"
128
+
129
+ #: ../includes/class-user-role-editor.php:638
130
+ msgid "DANGER! Resetting will restore default settings from WordPress Core."
131
+ msgstr ""
132
+ "BAHAYA! Reset akan mengembalikan pengaturan default dari WordPress Inti."
133
+
134
+ #: ../includes/class-user-role-editor.php:639
135
+ msgid ""
136
+ "If any plugins have changed capabilities in any way upon installation (such "
137
+ "as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
138
+ msgstr ""
139
+ "Jika ada plugin telah mengubah kemampuan dengan cara apapun atas instalasi "
140
+ "(seperti S2Member, WooCommerce, dan banyak lagi), kemampuan mereka akan "
141
+ "DIHAPUS!"
142
+
143
+ #: ../includes/class-user-role-editor.php:640
144
+ msgid ""
145
+ "For more information on how to undo changes and restore plugin capabilities "
146
+ "go to"
147
+ msgstr ""
148
+ "Untuk informasi lebih lanjut tentang cara membatalkan perubahan dan "
149
+ "mengembalikan kemampuan Plugin pergi ke"
150
+
151
+ #: ../includes/class-user-role-editor.php:642
152
+ msgid "Continue?"
153
+ msgstr "Lanjut?"
154
+
155
+ #: ../includes/class-user-role-editor.php:643
156
+ msgid "Default Role"
157
+ msgstr "Peran "
158
+
159
+ #: ../includes/class-user-role-editor.php:644
160
+ msgid "Set New Default Role"
161
+ msgstr "Atur Peran Baru Default"
162
+
163
+ #: ../includes/class-user-role-editor.php:646
164
+ msgid ""
165
+ "Warning! Be careful - removing critical capability could crash some plugin "
166
+ "or other custom code"
167
+ msgstr ""
168
+ "Peringatan! Hati-hati - menghapus kemampuan kritis dapat menyebabkan crash "
169
+ "beberapa Plugin atau kode kustom lainnya"
170
+
171
+ #: ../includes/class-user-role-editor.php:647
172
+ msgid " Capability name (ID) can not be empty!"
173
+ msgstr "Nama Kemampuan (ID) tidak boleh kosong!"
174
+
175
+ #: ../includes/class-user-role-editor.php:648
176
+ msgid ""
177
+ " Capability name (ID) must contain latin characters, digits, hyphens or "
178
+ "underscore only!"
179
+ msgstr ""
180
+ "Nama Kemampuan (ID) harus mengandung karakter latin, angka, kata penghubung "
181
+ "atau garis bawah saja!"
182
+
183
+ #: ../includes/class-user-role-editor.php:681
184
+ #: ../includes/class-user-role-editor.php:709
185
+ msgid "Other Roles"
186
+ msgstr "Peran Lainnya"
187
+
188
+ #: ../includes/class-user-role-editor.php:691
189
+ msgid "Edit"
190
+ msgstr "Sunting"
191
+
192
+ #: ../includes/ure-role-edit.php:17
193
+ msgid "Select Role and change its capabilities list"
194
+ msgstr "Pilih Peran dan ubah daftar kemampuan"
195
+
196
+ #: ../includes/ure-role-edit.php:19 ../includes/class-ure-lib.php:184
197
+ msgid "Select Role:"
198
+ msgstr "Pilih Peran:"
199
+
200
+ #: ../includes/ure-role-edit.php:30 ../includes/ure-user-edit.php:51
201
+ msgid "Show capabilities in human readable form"
202
+ msgstr "Tampilkan kemampuan dalam bentuk yang dapat dibaca manusia"
203
+
204
+ #: ../includes/ure-role-edit.php:40 ../includes/ure-user-edit.php:61
205
+ #: ../includes/class-ure-screen-help.php:21
206
+ msgid "Show deprecated capabilities"
207
+ msgstr "Tampilkan kemampuan usang"
208
+
209
+ #: ../includes/ure-role-edit.php:45
210
+ msgid "If checked, then apply action to ALL sites of this Network"
211
+ msgstr ""
212
+ "Jika dicentang, kemudian terapkan tindakan untuk SEMUA situs Jaringan ini"
213
+
214
+ #: ../includes/ure-role-edit.php:57
215
+ msgid "Apply to All Sites"
216
+ msgstr "Terapkan ke Semua Situs"
217
+
218
+ #: ../includes/ure-role-edit.php:64 ../includes/ure-user-edit.php:104
219
+ msgid "Core capabilities:"
220
+ msgstr "Kemampuan inti:"
221
+
222
+ #: ../includes/ure-role-edit.php:66 ../includes/ure-user-edit.php:106
223
+ msgid "Quick filter:"
224
+ msgstr "Saring Cepat:"
225
+
226
+ #: ../includes/ure-role-edit.php:84 ../includes/ure-user-edit.php:125
227
+ msgid "Custom capabilities:"
228
+ msgstr "Kustom kemampuan:"
229
+
230
+ #: ../includes/class-ure-lib.php:141
231
+ msgid "Error: wrong request"
232
+ msgstr "Salah: salah permintaan"
233
+
234
+ #: ../includes/class-ure-lib.php:173
235
+ msgid "Role name (ID): "
236
+ msgstr "Nama Peran (ID):"
237
+
238
+ #: ../includes/class-ure-lib.php:175
239
+ msgid "Display Role Name: "
240
+ msgstr "Tampilkan Nama Peran:"
241
+
242
+ #: ../includes/class-ure-lib.php:177
243
+ msgid "Make copy of: "
244
+ msgstr "buat salinan:"
245
+
246
+ #: ../includes/class-ure-lib.php:199
247
+ msgid "Delete:"
248
+ msgstr "Hapus:"
249
+
250
+ #: ../includes/class-ure-lib.php:206
251
+ msgid "Capability name (ID): "
252
+ msgstr "Nama Kemampuan (ID):"
253
+
254
+ #: ../includes/class-ure-lib.php:321
255
+ msgid "Error: "
256
+ msgstr "Salah:"
257
+
258
+ #: ../includes/class-ure-lib.php:321
259
+ msgid "Role"
260
+ msgstr "Peran"
261
+
262
+ #: ../includes/class-ure-lib.php:321
263
+ msgid "does not exist"
264
+ msgstr "tidak ada"
265
+
266
+ #: ../includes/class-ure-lib.php:364
267
+ msgid "Role is updated successfully"
268
+ msgstr "Peran berhasil diperbarui"
269
+
270
+ #: ../includes/class-ure-lib.php:366
271
+ msgid "Roles are updated for all network"
272
+ msgstr "Peran diperbarui untuk semua jaringan"
273
+
274
+ #: ../includes/class-ure-lib.php:372
275
+ msgid "Error occured during role(s) update"
276
+ msgstr "Kesalahan terjadi selama pembaruan peran"
277
+
278
+ #: ../includes/class-ure-lib.php:379
279
+ msgid "User capabilities are updated successfully"
280
+ msgstr "Kemampuan pengguna berhasil diperbarui"
281
+
282
+ #: ../includes/class-ure-lib.php:384
283
+ msgid "Error occured during user update"
284
+ msgstr "Kesalahan terjadi sepanjang pembaruan pengguna"
285
+
286
+ #: ../includes/class-ure-lib.php:439
287
+ msgid "User Roles are restored to WordPress default values. "
288
+ msgstr "Peran Pengguna dikembalikan ke nilai Wordpress default."
289
+
290
+ #: ../includes/class-ure-lib.php:1237
291
+ msgid "Help"
292
+ msgstr "Bantuan"
293
+
294
+ #: ../includes/class-ure-lib.php:1576
295
+ msgid "Error is occur. Please check the log file."
296
+ msgstr "kesalahan terjadi, Harap periksa log data."
297
+
298
+ #: ../includes/class-ure-lib.php:1601
299
+ msgid ""
300
+ "Error: Role ID must contain latin characters, digits, hyphens or underscore "
301
+ "only!"
302
+ msgstr ""
303
+ "Kesalahan: ID Peran harus mengandung karakter latin, angka, kata penghubung "
304
+ "dan garis bawah saja!"
305
+
306
+ #: ../includes/class-ure-lib.php:1616
307
+ #, php-format
308
+ msgid "Role %s exists already"
309
+ msgstr "Peran %s telah ada"
310
+
311
+ #: ../includes/class-ure-lib.php:1631
312
+ msgid "Error is encountered during new role create operation"
313
+ msgstr "Kesalahan ditemui selama peran baru membuat operasi"
314
+
315
+ #: ../includes/class-ure-lib.php:1633
316
+ #, php-format
317
+ msgid "Role %s is created successfully"
318
+ msgstr "Peran %s berhasil dibuat"
319
+
320
+ #: ../includes/class-ure-lib.php:1699
321
+ msgid "Error encountered during role delete operation"
322
+ msgstr "Kesalahan ditemui selama operasi penghapusan peran"
323
+
324
+ #: ../includes/class-ure-lib.php:1701
325
+ msgid "Unused roles are deleted successfully"
326
+ msgstr "Peran yang tidak digunakan berhasil dihapus"
327
+
328
+ #: ../includes/class-ure-lib.php:1703
329
+ #, php-format
330
+ msgid "Role %s is deleted successfully"
331
+ msgstr "Peran %s berhasil dihapus"
332
+
333
+ #: ../includes/class-ure-lib.php:1728
334
+ msgid "Error encountered during default role change operation"
335
+ msgstr "Kesalahan ditemui selama operasi perubahan peran standar"
336
+
337
+ #: ../includes/class-ure-lib.php:1734
338
+ #, php-format
339
+ msgid "Default role for new users is set to %s successfully"
340
+ msgstr "Peran standar untuk pengguna baru diatur ke %s dengan sukses"
341
+
342
+ #: ../includes/class-ure-lib.php:1753
343
+ msgid "Editor"
344
+ msgstr "Penyunting"
345
+
346
+ #: ../includes/class-ure-lib.php:1754
347
+ msgid "Author"
348
+ msgstr "Pengarang"
349
+
350
+ #: ../includes/class-ure-lib.php:1755
351
+ msgid "Contributor"
352
+ msgstr "Kontributor"
353
+
354
+ #: ../includes/class-ure-lib.php:1756
355
+ msgid "Subscriber"
356
+ msgstr "Pelanggan"
357
+
358
+ #: ../includes/class-ure-lib.php:1758
359
+ msgid "Switch themes"
360
+ msgstr "Ganti tema"
361
+
362
+ #: ../includes/class-ure-lib.php:1759
363
+ msgid "Edit themes"
364
+ msgstr "Sunting tema"
365
+
366
+ #: ../includes/class-ure-lib.php:1760
367
+ msgid "Activate plugins"
368
+ msgstr "Aktifkan plugin"
369
+
370
+ #: ../includes/class-ure-lib.php:1761
371
+ msgid "Edit plugins"
372
+ msgstr "Sunting plugin"
373
+
374
+ #: ../includes/class-ure-lib.php:1762
375
+ msgid "Edit users"
376
+ msgstr "Sunting pengguna"
377
+
378
+ #: ../includes/class-ure-lib.php:1763
379
+ msgid "Edit files"
380
+ msgstr "Sunting data"
381
+
382
+ #: ../includes/class-ure-lib.php:1764
383
+ msgid "Manage options"
384
+ msgstr "kelola pilihan"
385
+
386
+ #: ../includes/class-ure-lib.php:1765
387
+ msgid "Moderate comments"
388
+ msgstr "Moderasi komentar"
389
+
390
+ #: ../includes/class-ure-lib.php:1766
391
+ msgid "Manage categories"
392
+ msgstr "Kelola kategori"
393
+
394
+ #: ../includes/class-ure-lib.php:1767
395
+ msgid "Manage links"
396
+ msgstr "Kelola tautan"
397
+
398
+ #: ../includes/class-ure-lib.php:1768
399
+ msgid "Upload files"
400
+ msgstr "Unggah data"
401
+
402
+ #: ../includes/class-ure-lib.php:1769
403
+ msgid "Import"
404
+ msgstr "Impor"
405
+
406
+ #: ../includes/class-ure-lib.php:1770
407
+ msgid "Unfiltered html"
408
+ msgstr "HTML tidak tersaring"
409
+
410
+ #: ../includes/class-ure-lib.php:1771
411
+ msgid "Edit posts"
412
+ msgstr "Sunting posting"
413
+
414
+ #: ../includes/class-ure-lib.php:1772
415
+ msgid "Edit others posts"
416
+ msgstr "Sunting posting lainnya"
417
+
418
+ #: ../includes/class-ure-lib.php:1773
419
+ msgid "Edit published posts"
420
+ msgstr "Sunting posting terpublikasi"
421
+
422
+ #: ../includes/class-ure-lib.php:1774
423
+ msgid "Publish posts"
424
+ msgstr "Publikasi posting"
425
+
426
+ #: ../includes/class-ure-lib.php:1775
427
+ msgid "Edit pages"
428
+ msgstr "Sunting halaman"
429
+
430
+ #: ../includes/class-ure-lib.php:1776
431
+ msgid "Read"
432
+ msgstr "Baca"
433
+
434
+ #: ../includes/class-ure-lib.php:1777
435
+ msgid "Level 10"
436
+ msgstr "Tingkat 10"
437
+
438
+ #: ../includes/class-ure-lib.php:1778
439
+ msgid "Level 9"
440
+ msgstr "Tingkat 9"
441
+
442
+ #: ../includes/class-ure-lib.php:1779
443
+ msgid "Level 8"
444
+ msgstr "Tingkat 8"
445
+
446
+ #: ../includes/class-ure-lib.php:1780
447
+ msgid "Level 7"
448
+ msgstr "Tingkat 7"
449
+
450
+ #: ../includes/class-ure-lib.php:1781
451
+ msgid "Level 6"
452
+ msgstr "Tingkat 6"
453
+
454
+ #: ../includes/class-ure-lib.php:1782
455
+ msgid "Level 5"
456
+ msgstr "Tingkat 5"
457
+
458
+ #: ../includes/class-ure-lib.php:1783
459
+ msgid "Level 4"
460
+ msgstr "Tingkat 4"
461
+
462
+ #: ../includes/class-ure-lib.php:1784
463
+ msgid "Level 3"
464
+ msgstr "Tingkat 3"
465
+
466
+ #: ../includes/class-ure-lib.php:1785
467
+ msgid "Level 2"
468
+ msgstr "Tingkat 2"
469
+
470
+ #: ../includes/class-ure-lib.php:1786
471
+ msgid "Level 1"
472
+ msgstr "Tingkat 1"
473
+
474
+ #: ../includes/class-ure-lib.php:1787
475
+ msgid "Level 0"
476
+ msgstr "Tingkat 0"
477
+
478
+ #: ../includes/class-ure-lib.php:1788
479
+ msgid "Edit others pages"
480
+ msgstr "Sunting halaman lainnya"
481
+
482
+ #: ../includes/class-ure-lib.php:1789
483
+ msgid "Edit published pages"
484
+ msgstr "Sunting halaman terpublikasi"
485
+
486
+ #: ../includes/class-ure-lib.php:1790
487
+ msgid "Publish pages"
488
+ msgstr "Publikasi halaman"
489
+
490
+ #: ../includes/class-ure-lib.php:1791
491
+ msgid "Delete pages"
492
+ msgstr "Hapus halaman"
493
+
494
+ #: ../includes/class-ure-lib.php:1792
495
+ msgid "Delete others pages"
496
+ msgstr "Hapus halaman lainnya"
497
+
498
+ #: ../includes/class-ure-lib.php:1793
499
+ msgid "Delete published pages"
500
+ msgstr "Hapus halaman terpublikasi"
501
+
502
+ #: ../includes/class-ure-lib.php:1794
503
+ msgid "Delete posts"
504
+ msgstr "hapus posting"
505
+
506
+ #: ../includes/class-ure-lib.php:1795
507
+ msgid "Delete others posts"
508
+ msgstr "Hapus posting lainnya"
509
+
510
+ #: ../includes/class-ure-lib.php:1796
511
+ msgid "Delete published posts"
512
+ msgstr "Hapus posting terpublikasi"
513
+
514
+ #: ../includes/class-ure-lib.php:1797
515
+ msgid "Delete private posts"
516
+ msgstr "Hapus posting pribadi"
517
+
518
+ #: ../includes/class-ure-lib.php:1798
519
+ msgid "Edit private posts"
520
+ msgstr "Sunting posting pribadi"
521
+
522
+ #: ../includes/class-ure-lib.php:1799
523
+ msgid "Read private posts"
524
+ msgstr "Baca posting pribadi"
525
+
526
+ #: ../includes/class-ure-lib.php:1800
527
+ msgid "Delete private pages"
528
+ msgstr "Hapus halaman pribadi"
529
+
530
+ #: ../includes/class-ure-lib.php:1801
531
+ msgid "Edit private pages"
532
+ msgstr "Sunting halaman pribadi"
533
+
534
+ #: ../includes/class-ure-lib.php:1802
535
+ msgid "Read private pages"
536
+ msgstr "baca halaman pribadi"
537
+
538
+ #: ../includes/class-ure-lib.php:1803
539
+ msgid "Delete users"
540
+ msgstr "Hapus pengguna"
541
+
542
+ #: ../includes/class-ure-lib.php:1804
543
+ msgid "Create users"
544
+ msgstr "Buat pengguna"
545
+
546
+ #: ../includes/class-ure-lib.php:1805
547
+ msgid "Unfiltered upload"
548
+ msgstr "Unggahan tidak tersaring"
549
+
550
+ #: ../includes/class-ure-lib.php:1806
551
+ msgid "Edit dashboard"
552
+ msgstr "Sunting dasbor"
553
+
554
+ #: ../includes/class-ure-lib.php:1807
555
+ msgid "Update plugins"
556
+ msgstr "Perbarui plugin"
557
+
558
+ #: ../includes/class-ure-lib.php:1808
559
+ msgid "Delete plugins"
560
+ msgstr "Hapus plugin"
561
+
562
+ #: ../includes/class-ure-lib.php:1809
563
+ msgid "Install plugins"
564
+ msgstr "Pasang plugin"
565
+
566
+ #: ../includes/class-ure-lib.php:1810
567
+ msgid "Update themes"
568
+ msgstr "Perbarui tema"
569
+
570
+ #: ../includes/class-ure-lib.php:1811
571
+ msgid "Install themes"
572
+ msgstr "Pasang tema"
573
+
574
+ #: ../includes/class-ure-lib.php:1812
575
+ msgid "Update core"
576
+ msgstr "Perbarui inti"
577
+
578
+ #: ../includes/class-ure-lib.php:1813
579
+ msgid "List users"
580
+ msgstr "Daftar pengguna"
581
+
582
+ #: ../includes/class-ure-lib.php:1814
583
+ msgid "Remove users"
584
+ msgstr "Hapus pengguna"
585
+
586
+ #: ../includes/class-ure-lib.php:1815
587
+ msgid "Add users"
588
+ msgstr "Tambah pengguna"
589
+
590
+ #: ../includes/class-ure-lib.php:1816
591
+ msgid "Promote users"
592
+ msgstr "Promosi pengguna"
593
+
594
+ #: ../includes/class-ure-lib.php:1817
595
+ msgid "Edit theme options"
596
+ msgstr "Sunting pilihan tema"
597
+
598
+ #: ../includes/class-ure-lib.php:1818
599
+ msgid "Delete themes"
600
+ msgstr "Hapus tema"
601
+
602
+ #: ../includes/class-ure-lib.php:1819
603
+ msgid "Export"
604
+ msgstr "Ekspor"
605
+
606
+ #: ../includes/class-ure-lib.php:1929
607
+ msgid "Error: Capability name must contain latin characters and digits only!"
608
+ msgstr "Salah: Kemampuan nama harus mengandung karakter latin dan angka saja!"
609
+
610
+ #: ../includes/class-ure-lib.php:1942
611
+ #, php-format
612
+ msgid "Capability %s is added successfully"
613
+ msgstr "Kemampuan %s berhasil ditambahkan"
614
+
615
+ #: ../includes/class-ure-lib.php:1944
616
+ #, php-format
617
+ msgid "Capability %s exists already"
618
+ msgstr "Kemampuan %s telah ada"
619
+
620
+ #: ../includes/class-ure-lib.php:1969
621
+ #, php-format
622
+ msgid "Error! You do not have permission to delete this capability: %s!"
623
+ msgstr "Salah! Anda tidak memiliki izin untuk menghapus kemampuan ini: %s!"
624
+
625
+ #: ../includes/class-ure-lib.php:1988
626
+ #, php-format
627
+ msgid "Capability %s is removed successfully"
628
+ msgstr "Kemampuan %s berhasil dihapus"
629
+
630
+ #: ../includes/class-ure-lib.php:2085
631
+ msgid "About this Plugin:"
632
+ msgstr "Tentang Plugin ini:"
633
+
634
+ #: ../includes/class-ure-lib.php:2087
635
+ msgid "Author's website"
636
+ msgstr "Website pengarang"
637
+
638
+ #: ../includes/class-ure-lib.php:2088
639
+ msgid "Plugin webpage"
640
+ msgstr "Halaman web Plugin"
641
+
642
+ #: ../includes/class-ure-lib.php:2090
643
+ msgid "FAQ"
644
+ msgstr "FAQ"
645
+
646
+ #: ../includes/class-ure-lib.php:2131
647
+ msgid "None"
648
+ msgstr "Nihil"
649
+
650
+ #: ../includes/class-ure-lib.php:2157
651
+ msgid "Delete All Unused Roles"
652
+ msgstr "Hapus Peran Tidak Terpakai"
653
+
654
+ #: ../includes/class-ure-lib.php:2181
655
+ msgid "&mdash; No role for this site &mdash;"
656
+ msgstr "&mdash; Tidak ada peran untuk situs ini &mdash;"
657
+
658
+ #: ../includes/ure-user-edit.php:31
659
+ msgid "Network Super Admin"
660
+ msgstr "Jaringan Super Admin"
661
+
662
+ #: ../includes/ure-user-edit.php:34
663
+ msgid "Change capabilities for user"
664
+ msgstr "Ubah kemampuan untuk pengguna"
665
+
666
+ #: ../includes/ure-user-edit.php:66
667
+ msgid "Primary Role:"
668
+ msgstr "Peran Utama:"
669
+
670
+ #: ../includes/ure-user-edit.php:75
671
+ msgid "bbPress Role:"
672
+ msgstr "Peran bbPress:"
673
+
674
+ #: ../includes/ure-user-edit.php:85
675
+ msgid "Other Roles:"
676
+ msgstr "Peran Lain:"
677
+
678
+ #: ../includes/class-ure-screen-help.php:15
679
+ msgid "Show Administrator role at User Role Editor"
680
+ msgstr "Tampilkan peran Administrator di User Role Editor"
681
+
682
+ #: ../includes/class-ure-screen-help.php:16
683
+ msgid ""
684
+ "turn this option on in order to make the \"Administrator\" role available at "
685
+ "the User Role Editor roles selection drop-down list. It is hidden by default "
686
+ "for security reasons."
687
+ msgstr ""
688
+ "Aktifkan pilihan ini untuk membuat peran \"Administrator\" tersedia pada "
689
+ "daftar seleksi pilihan peran User Role Editor. Akan tersembunyi secara "
690
+ "default demi alasan keamanan."
691
+
692
+ #: ../includes/class-ure-screen-help.php:18
693
+ msgid "Show capabilities in the human readable form"
694
+ msgstr "Tampilkan kemampuan dalam bentuk yang dapat dibaca manusia"
695
+
696
+ #: ../includes/class-ure-screen-help.php:19
697
+ msgid ""
698
+ "automatically converts capability names from the technical form for internal "
699
+ "use like \"edit_others_posts\" to more user friendly form, e.g. \"Edit "
700
+ "others posts\"."
701
+ msgstr ""
702
+ "secara otomatis mengkonversi nama kemampuan dari bentuk teknis untuk "
703
+ "penggunaan internal seperti \"edit_others_posts\" ke bentuk yang lebih user "
704
+ "friendly, misalnya \"Edit posting orang lain\"."
705
+
706
+ #: ../includes/class-ure-screen-help.php:22
707
+ msgid ""
708
+ "Capabilities like \"level_0\", \"level_1\" are deprecated and are not used "
709
+ "by WordPress. They are left at the user roles for the compatibility purpose "
710
+ "with the old themes and plugins code. Turning on this option will show those "
711
+ "deprecated capabilities."
712
+ msgstr ""
713
+ "Kemampuan seperti \"level_0 \", \"level_1\" yang usang dan tidak digunakan "
714
+ "oleh WordPress. Mereka tersisa pada peran pengguna untuk tujuan "
715
+ "kompatibilitas dengan tema lama dan kode plugin. Menyalakan opsi ini akan "
716
+ "menunjukkan kemampuan mereka usang."
717
+
718
+ #: ../includes/class-ure-screen-help.php:27
719
+ msgid "Allow create, edit and delete users to not super-admininstrators"
720
+ msgstr ""
721
+ "Izinkan membuat, menyunting dan menghapus pengguna untuk yang bukan super-"
722
+ "administrator"
723
+
724
+ #: ../includes/class-ure-screen-help.php:28
725
+ msgid ""
726
+ "Super administrator only may create, edit and delete users under WordPress "
727
+ "multi-site. Turn this option on in order to remove this limitation."
728
+ msgstr ""
729
+ "Super administrator hanya dapat membuat, mengedit dan menghapus pengguna di "
730
+ "bawah WordPress multi-situs. Aktifkan pilihan ini dalam rangka menghapus "
731
+ "keterbatasan ini."
lang/ure.mo CHANGED
Binary file
lang/ure.pot CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: User Role Editor 2.0\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2013-11-04 08:39+0700\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
8
  "Language-Team: ShinePHP.com <vladimir@shinephp.com>\n"
@@ -16,625 +16,634 @@ msgstr ""
16
  "X-Generator: Poedit 1.5.4\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
 
19
- #: ../includes/settings-template.php:63
20
  msgid "Save"
21
  msgstr ""
22
 
23
- #: ../includes/class-user-role-editor.php:171
24
- #: ../includes/class-user-role-editor.php:173
25
  msgid "You do not have permission to edit this user."
26
  msgstr ""
27
 
28
- #: ../includes/class-user-role-editor.php:314
29
  msgid "Capabilities"
30
  msgstr ""
31
 
32
- #: ../includes/class-user-role-editor.php:407
33
  msgid "Settings"
34
  msgstr ""
35
 
36
- #: ../includes/class-user-role-editor.php:420
37
- #: ../includes/class-ure-lib.php:2089
38
  msgid "Changelog"
39
  msgstr ""
40
 
41
- #: ../includes/class-user-role-editor.php:442
42
  msgid "Overview"
43
  msgstr ""
44
 
45
- #: ../includes/class-user-role-editor.php:451
46
- #: ../includes/class-user-role-editor.php:479
47
- #: ../includes/class-user-role-editor.php:678
48
- #: ../includes/class-ure-lib.php:223
49
  msgid "User Role Editor"
50
  msgstr ""
51
 
52
- #: ../includes/class-user-role-editor.php:497
 
 
 
 
 
53
  msgid ""
54
  "You do not have sufficient permissions to manage options for User Role "
55
  "Editor."
56
  msgstr ""
57
 
58
- #: ../includes/class-user-role-editor.php:526
59
- msgid "User Role Editor options are updated"
60
- msgstr ""
61
-
62
- #: ../includes/class-user-role-editor.php:571
63
  msgid "Insufficient permissions to work with User Role Editor"
64
  msgstr ""
65
 
66
- #: ../includes/class-user-role-editor.php:624
67
  msgid "Select All"
68
  msgstr ""
69
 
70
- #: ../includes/class-user-role-editor.php:625
71
  msgid "Unselect All"
72
  msgstr ""
73
 
74
- #: ../includes/class-user-role-editor.php:626
75
  msgid "Reverse"
76
  msgstr ""
77
 
78
- #: ../includes/class-user-role-editor.php:627
79
  msgid "Update"
80
  msgstr ""
81
 
82
- #: ../includes/class-user-role-editor.php:628
83
  msgid "Please confirm permissions update"
84
  msgstr ""
85
 
86
- #: ../includes/class-user-role-editor.php:629
87
  msgid "Add New Role"
88
  msgstr ""
89
 
90
- #: ../includes/class-user-role-editor.php:630
91
  msgid " Role name (ID) can not be empty!"
92
  msgstr ""
93
 
94
- #: ../includes/class-user-role-editor.php:631
95
  msgid ""
96
  " Role name (ID) must contain latin characters, digits, hyphens or underscore "
97
  "only!"
98
  msgstr ""
99
 
100
- #: ../includes/class-user-role-editor.php:632
 
 
 
 
 
 
101
  msgid "Add Role"
102
  msgstr ""
103
 
104
- #: ../includes/class-user-role-editor.php:633
105
  msgid "Delete Role"
106
  msgstr ""
107
 
108
- #: ../includes/class-user-role-editor.php:634
109
  msgid "Cancel"
110
  msgstr ""
111
 
112
- #: ../includes/class-user-role-editor.php:635
113
  msgid "Add Capability"
114
  msgstr ""
115
 
116
- #: ../includes/class-user-role-editor.php:636
117
- #: ../includes/class-user-role-editor.php:645
118
  msgid "Delete Capability"
119
  msgstr ""
120
 
121
- #: ../includes/class-user-role-editor.php:637
122
  msgid "Reset"
123
  msgstr ""
124
 
125
- #: ../includes/class-user-role-editor.php:638
126
  msgid "DANGER! Resetting will restore default settings from WordPress Core."
127
  msgstr ""
128
 
129
- #: ../includes/class-user-role-editor.php:639
130
  msgid ""
131
  "If any plugins have changed capabilities in any way upon installation (such "
132
  "as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
133
  msgstr ""
134
 
135
- #: ../includes/class-user-role-editor.php:640
136
  msgid ""
137
  "For more information on how to undo changes and restore plugin capabilities "
138
  "go to"
139
  msgstr ""
140
 
141
- #: ../includes/class-user-role-editor.php:642
142
  msgid "Continue?"
143
  msgstr ""
144
 
145
- #: ../includes/class-user-role-editor.php:643
146
  msgid "Default Role"
147
  msgstr ""
148
 
149
- #: ../includes/class-user-role-editor.php:644
150
  msgid "Set New Default Role"
151
  msgstr ""
152
 
153
- #: ../includes/class-user-role-editor.php:646
154
  msgid ""
155
  "Warning! Be careful - removing critical capability could crash some plugin "
156
  "or other custom code"
157
  msgstr ""
158
 
159
- #: ../includes/class-user-role-editor.php:647
160
  msgid " Capability name (ID) can not be empty!"
161
  msgstr ""
162
 
163
- #: ../includes/class-user-role-editor.php:648
164
  msgid ""
165
  " Capability name (ID) must contain latin characters, digits, hyphens or "
166
  "underscore only!"
167
  msgstr ""
168
 
169
- #: ../includes/class-user-role-editor.php:681
170
- #: ../includes/class-user-role-editor.php:709
171
  msgid "Other Roles"
172
  msgstr ""
173
 
174
- #: ../includes/class-user-role-editor.php:691
175
  msgid "Edit"
176
  msgstr ""
177
 
178
- #: ../includes/ure-role-edit.php:17
179
- msgid "Select Role and change its capabilities list"
180
- msgstr ""
181
-
182
- #: ../includes/ure-role-edit.php:19 ../includes/class-ure-lib.php:184
183
- msgid "Select Role:"
184
- msgstr ""
185
-
186
- #: ../includes/ure-role-edit.php:30 ../includes/ure-user-edit.php:51
187
  msgid "Show capabilities in human readable form"
188
  msgstr ""
189
 
190
- #: ../includes/ure-role-edit.php:40 ../includes/ure-user-edit.php:61
191
  #: ../includes/class-ure-screen-help.php:21
192
  msgid "Show deprecated capabilities"
193
  msgstr ""
194
 
195
- #: ../includes/ure-role-edit.php:45
196
  msgid "If checked, then apply action to ALL sites of this Network"
197
  msgstr ""
198
 
199
- #: ../includes/ure-role-edit.php:57
200
  msgid "Apply to All Sites"
201
  msgstr ""
202
 
203
- #: ../includes/ure-role-edit.php:64 ../includes/ure-user-edit.php:104
204
  msgid "Core capabilities:"
205
  msgstr ""
206
 
207
- #: ../includes/ure-role-edit.php:66 ../includes/ure-user-edit.php:106
208
  msgid "Quick filter:"
209
  msgstr ""
210
 
211
- #: ../includes/ure-role-edit.php:84 ../includes/ure-user-edit.php:125
212
  msgid "Custom capabilities:"
213
  msgstr ""
214
 
215
- #: ../includes/class-ure-lib.php:141
216
  msgid "Error: wrong request"
217
  msgstr ""
218
 
219
- #: ../includes/class-ure-lib.php:173
220
  msgid "Role name (ID): "
221
  msgstr ""
222
 
223
- #: ../includes/class-ure-lib.php:175
224
  msgid "Display Role Name: "
225
  msgstr ""
226
 
227
- #: ../includes/class-ure-lib.php:177
228
  msgid "Make copy of: "
229
  msgstr ""
230
 
231
- #: ../includes/class-ure-lib.php:199
 
 
 
 
232
  msgid "Delete:"
233
  msgstr ""
234
 
235
- #: ../includes/class-ure-lib.php:206
236
  msgid "Capability name (ID): "
237
  msgstr ""
238
 
239
- #: ../includes/class-ure-lib.php:321
240
  msgid "Error: "
241
  msgstr ""
242
 
243
- #: ../includes/class-ure-lib.php:321
244
  msgid "Role"
245
  msgstr ""
246
 
247
- #: ../includes/class-ure-lib.php:321
248
  msgid "does not exist"
249
  msgstr ""
250
 
251
- #: ../includes/class-ure-lib.php:364
252
  msgid "Role is updated successfully"
253
  msgstr ""
254
 
255
- #: ../includes/class-ure-lib.php:366
256
  msgid "Roles are updated for all network"
257
  msgstr ""
258
 
259
- #: ../includes/class-ure-lib.php:372
260
  msgid "Error occured during role(s) update"
261
  msgstr ""
262
 
263
- #: ../includes/class-ure-lib.php:379
264
  msgid "User capabilities are updated successfully"
265
  msgstr ""
266
 
267
- #: ../includes/class-ure-lib.php:384
268
  msgid "Error occured during user update"
269
  msgstr ""
270
 
271
- #: ../includes/class-ure-lib.php:439
272
  msgid "User Roles are restored to WordPress default values. "
273
  msgstr ""
274
 
275
- #: ../includes/class-ure-lib.php:1237
276
  msgid "Help"
277
  msgstr ""
278
 
279
- #: ../includes/class-ure-lib.php:1576
280
  msgid "Error is occur. Please check the log file."
281
  msgstr ""
282
 
283
- #: ../includes/class-ure-lib.php:1601
284
  msgid ""
285
  "Error: Role ID must contain latin characters, digits, hyphens or underscore "
286
  "only!"
287
  msgstr ""
288
 
289
- #: ../includes/class-ure-lib.php:1616
 
 
 
 
 
 
290
  #, php-format
291
  msgid "Role %s exists already"
292
  msgstr ""
293
 
294
- #: ../includes/class-ure-lib.php:1631
295
  msgid "Error is encountered during new role create operation"
296
  msgstr ""
297
 
298
- #: ../includes/class-ure-lib.php:1633
299
  #, php-format
300
  msgid "Role %s is created successfully"
301
  msgstr ""
302
 
303
- #: ../includes/class-ure-lib.php:1699
304
  msgid "Error encountered during role delete operation"
305
  msgstr ""
306
 
307
- #: ../includes/class-ure-lib.php:1701
308
  msgid "Unused roles are deleted successfully"
309
  msgstr ""
310
 
311
- #: ../includes/class-ure-lib.php:1703
312
  #, php-format
313
  msgid "Role %s is deleted successfully"
314
  msgstr ""
315
 
316
- #: ../includes/class-ure-lib.php:1728
317
  msgid "Error encountered during default role change operation"
318
  msgstr ""
319
 
320
- #: ../includes/class-ure-lib.php:1734
321
  #, php-format
322
  msgid "Default role for new users is set to %s successfully"
323
  msgstr ""
324
 
325
- #: ../includes/class-ure-lib.php:1753
326
  msgid "Editor"
327
  msgstr ""
328
 
329
- #: ../includes/class-ure-lib.php:1754
330
  msgid "Author"
331
  msgstr ""
332
 
333
- #: ../includes/class-ure-lib.php:1755
334
  msgid "Contributor"
335
  msgstr ""
336
 
337
- #: ../includes/class-ure-lib.php:1756
338
  msgid "Subscriber"
339
  msgstr ""
340
 
341
- #: ../includes/class-ure-lib.php:1758
342
  msgid "Switch themes"
343
  msgstr ""
344
 
345
- #: ../includes/class-ure-lib.php:1759
346
  msgid "Edit themes"
347
  msgstr ""
348
 
349
- #: ../includes/class-ure-lib.php:1760
350
  msgid "Activate plugins"
351
  msgstr ""
352
 
353
- #: ../includes/class-ure-lib.php:1761
354
  msgid "Edit plugins"
355
  msgstr ""
356
 
357
- #: ../includes/class-ure-lib.php:1762
358
  msgid "Edit users"
359
  msgstr ""
360
 
361
- #: ../includes/class-ure-lib.php:1763
362
  msgid "Edit files"
363
  msgstr ""
364
 
365
- #: ../includes/class-ure-lib.php:1764
366
  msgid "Manage options"
367
  msgstr ""
368
 
369
- #: ../includes/class-ure-lib.php:1765
370
  msgid "Moderate comments"
371
  msgstr ""
372
 
373
- #: ../includes/class-ure-lib.php:1766
374
  msgid "Manage categories"
375
  msgstr ""
376
 
377
- #: ../includes/class-ure-lib.php:1767
378
  msgid "Manage links"
379
  msgstr ""
380
 
381
- #: ../includes/class-ure-lib.php:1768
382
  msgid "Upload files"
383
  msgstr ""
384
 
385
- #: ../includes/class-ure-lib.php:1769
386
  msgid "Import"
387
  msgstr ""
388
 
389
- #: ../includes/class-ure-lib.php:1770
390
  msgid "Unfiltered html"
391
  msgstr ""
392
 
393
- #: ../includes/class-ure-lib.php:1771
394
  msgid "Edit posts"
395
  msgstr ""
396
 
397
- #: ../includes/class-ure-lib.php:1772
398
  msgid "Edit others posts"
399
  msgstr ""
400
 
401
- #: ../includes/class-ure-lib.php:1773
402
  msgid "Edit published posts"
403
  msgstr ""
404
 
405
- #: ../includes/class-ure-lib.php:1774
406
  msgid "Publish posts"
407
  msgstr ""
408
 
409
- #: ../includes/class-ure-lib.php:1775
410
  msgid "Edit pages"
411
  msgstr ""
412
 
413
- #: ../includes/class-ure-lib.php:1776
414
  msgid "Read"
415
  msgstr ""
416
 
417
- #: ../includes/class-ure-lib.php:1777
418
  msgid "Level 10"
419
  msgstr ""
420
 
421
- #: ../includes/class-ure-lib.php:1778
422
  msgid "Level 9"
423
  msgstr ""
424
 
425
- #: ../includes/class-ure-lib.php:1779
426
  msgid "Level 8"
427
  msgstr ""
428
 
429
- #: ../includes/class-ure-lib.php:1780
430
  msgid "Level 7"
431
  msgstr ""
432
 
433
- #: ../includes/class-ure-lib.php:1781
434
  msgid "Level 6"
435
  msgstr ""
436
 
437
- #: ../includes/class-ure-lib.php:1782
438
  msgid "Level 5"
439
  msgstr ""
440
 
441
- #: ../includes/class-ure-lib.php:1783
442
  msgid "Level 4"
443
  msgstr ""
444
 
445
- #: ../includes/class-ure-lib.php:1784
446
  msgid "Level 3"
447
  msgstr ""
448
 
449
- #: ../includes/class-ure-lib.php:1785
450
  msgid "Level 2"
451
  msgstr ""
452
 
453
- #: ../includes/class-ure-lib.php:1786
454
  msgid "Level 1"
455
  msgstr ""
456
 
457
- #: ../includes/class-ure-lib.php:1787
458
  msgid "Level 0"
459
  msgstr ""
460
 
461
- #: ../includes/class-ure-lib.php:1788
462
  msgid "Edit others pages"
463
  msgstr ""
464
 
465
- #: ../includes/class-ure-lib.php:1789
466
  msgid "Edit published pages"
467
  msgstr ""
468
 
469
- #: ../includes/class-ure-lib.php:1790
470
  msgid "Publish pages"
471
  msgstr ""
472
 
473
- #: ../includes/class-ure-lib.php:1791
474
  msgid "Delete pages"
475
  msgstr ""
476
 
477
- #: ../includes/class-ure-lib.php:1792
478
  msgid "Delete others pages"
479
  msgstr ""
480
 
481
- #: ../includes/class-ure-lib.php:1793
482
  msgid "Delete published pages"
483
  msgstr ""
484
 
485
- #: ../includes/class-ure-lib.php:1794
486
  msgid "Delete posts"
487
  msgstr ""
488
 
489
- #: ../includes/class-ure-lib.php:1795
490
  msgid "Delete others posts"
491
  msgstr ""
492
 
493
- #: ../includes/class-ure-lib.php:1796
494
  msgid "Delete published posts"
495
  msgstr ""
496
 
497
- #: ../includes/class-ure-lib.php:1797
498
  msgid "Delete private posts"
499
  msgstr ""
500
 
501
- #: ../includes/class-ure-lib.php:1798
502
  msgid "Edit private posts"
503
  msgstr ""
504
 
505
- #: ../includes/class-ure-lib.php:1799
506
  msgid "Read private posts"
507
  msgstr ""
508
 
509
- #: ../includes/class-ure-lib.php:1800
510
  msgid "Delete private pages"
511
  msgstr ""
512
 
513
- #: ../includes/class-ure-lib.php:1801
514
  msgid "Edit private pages"
515
  msgstr ""
516
 
517
- #: ../includes/class-ure-lib.php:1802
518
  msgid "Read private pages"
519
  msgstr ""
520
 
521
- #: ../includes/class-ure-lib.php:1803
522
  msgid "Delete users"
523
  msgstr ""
524
 
525
- #: ../includes/class-ure-lib.php:1804
526
  msgid "Create users"
527
  msgstr ""
528
 
529
- #: ../includes/class-ure-lib.php:1805
530
  msgid "Unfiltered upload"
531
  msgstr ""
532
 
533
- #: ../includes/class-ure-lib.php:1806
534
  msgid "Edit dashboard"
535
  msgstr ""
536
 
537
- #: ../includes/class-ure-lib.php:1807
538
  msgid "Update plugins"
539
  msgstr ""
540
 
541
- #: ../includes/class-ure-lib.php:1808
542
  msgid "Delete plugins"
543
  msgstr ""
544
 
545
- #: ../includes/class-ure-lib.php:1809
546
  msgid "Install plugins"
547
  msgstr ""
548
 
549
- #: ../includes/class-ure-lib.php:1810
550
  msgid "Update themes"
551
  msgstr ""
552
 
553
- #: ../includes/class-ure-lib.php:1811
554
  msgid "Install themes"
555
  msgstr ""
556
 
557
- #: ../includes/class-ure-lib.php:1812
558
  msgid "Update core"
559
  msgstr ""
560
 
561
- #: ../includes/class-ure-lib.php:1813
562
  msgid "List users"
563
  msgstr ""
564
 
565
- #: ../includes/class-ure-lib.php:1814
566
  msgid "Remove users"
567
  msgstr ""
568
 
569
- #: ../includes/class-ure-lib.php:1815
570
  msgid "Add users"
571
  msgstr ""
572
 
573
- #: ../includes/class-ure-lib.php:1816
574
  msgid "Promote users"
575
  msgstr ""
576
 
577
- #: ../includes/class-ure-lib.php:1817
578
  msgid "Edit theme options"
579
  msgstr ""
580
 
581
- #: ../includes/class-ure-lib.php:1818
582
  msgid "Delete themes"
583
  msgstr ""
584
 
585
- #: ../includes/class-ure-lib.php:1819
586
  msgid "Export"
587
  msgstr ""
588
 
589
- #: ../includes/class-ure-lib.php:1929
590
  msgid "Error: Capability name must contain latin characters and digits only!"
591
  msgstr ""
592
 
593
- #: ../includes/class-ure-lib.php:1942
594
  #, php-format
595
  msgid "Capability %s is added successfully"
596
  msgstr ""
597
 
598
- #: ../includes/class-ure-lib.php:1944
599
  #, php-format
600
  msgid "Capability %s exists already"
601
  msgstr ""
602
 
603
- #: ../includes/class-ure-lib.php:1969
604
  #, php-format
605
  msgid "Error! You do not have permission to delete this capability: %s!"
606
  msgstr ""
607
 
608
- #: ../includes/class-ure-lib.php:1988
609
  #, php-format
610
  msgid "Capability %s is removed successfully"
611
  msgstr ""
612
 
613
- #: ../includes/class-ure-lib.php:2085
614
- msgid "About this Plugin:"
615
- msgstr ""
616
-
617
- #: ../includes/class-ure-lib.php:2087
618
  msgid "Author's website"
619
  msgstr ""
620
 
621
- #: ../includes/class-ure-lib.php:2088
622
  msgid "Plugin webpage"
623
  msgstr ""
624
 
625
- #: ../includes/class-ure-lib.php:2090
 
 
 
 
626
  msgid "FAQ"
627
  msgstr ""
628
 
629
- #: ../includes/class-ure-lib.php:2131
630
  msgid "None"
631
  msgstr ""
632
 
633
- #: ../includes/class-ure-lib.php:2157
634
  msgid "Delete All Unused Roles"
635
  msgstr ""
636
 
637
- #: ../includes/class-ure-lib.php:2181
638
  msgid "&mdash; No role for this site &mdash;"
639
  msgstr ""
640
 
@@ -646,15 +655,15 @@ msgstr ""
646
  msgid "Change capabilities for user"
647
  msgstr ""
648
 
649
- #: ../includes/ure-user-edit.php:66
650
  msgid "Primary Role:"
651
  msgstr ""
652
 
653
- #: ../includes/ure-user-edit.php:75
654
  msgid "bbPress Role:"
655
  msgstr ""
656
 
657
- #: ../includes/ure-user-edit.php:85
658
  msgid "Other Roles:"
659
  msgstr ""
660
 
2
  msgstr ""
3
  "Project-Id-Version: User Role Editor 2.0\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2013-12-07 20:31+0700\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
8
  "Language-Team: ShinePHP.com <vladimir@shinephp.com>\n"
16
  "X-Generator: Poedit 1.5.4\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
 
19
+ #: ../includes/settings-template.php:67 ../includes/settings-template.php:97
20
  msgid "Save"
21
  msgstr ""
22
 
23
+ #: ../includes/class-user-role-editor.php:175
24
+ #: ../includes/class-user-role-editor.php:177
25
  msgid "You do not have permission to edit this user."
26
  msgstr ""
27
 
28
+ #: ../includes/class-user-role-editor.php:318
29
  msgid "Capabilities"
30
  msgstr ""
31
 
32
+ #: ../includes/class-user-role-editor.php:411
33
  msgid "Settings"
34
  msgstr ""
35
 
36
+ #: ../includes/class-user-role-editor.php:424
37
+ #: ../includes/class-ure-lib.php:2219
38
  msgid "Changelog"
39
  msgstr ""
40
 
41
+ #: ../includes/class-user-role-editor.php:446
42
  msgid "Overview"
43
  msgstr ""
44
 
45
+ #: ../includes/class-user-role-editor.php:455
46
+ #: ../includes/class-user-role-editor.php:483
47
+ #: ../includes/class-user-role-editor.php:732
48
+ #: ../includes/class-ure-lib.php:225
49
  msgid "User Role Editor"
50
  msgstr ""
51
 
52
+ #: ../includes/class-user-role-editor.php:538
53
+ #: ../includes/class-user-role-editor.php:555
54
+ msgid "User Role Editor options are updated"
55
+ msgstr ""
56
+
57
+ #: ../includes/class-user-role-editor.php:563
58
  msgid ""
59
  "You do not have sufficient permissions to manage options for User Role "
60
  "Editor."
61
  msgstr ""
62
 
63
+ #: ../includes/class-user-role-editor.php:623
 
 
 
 
64
  msgid "Insufficient permissions to work with User Role Editor"
65
  msgstr ""
66
 
67
+ #: ../includes/class-user-role-editor.php:677
68
  msgid "Select All"
69
  msgstr ""
70
 
71
+ #: ../includes/class-user-role-editor.php:678
72
  msgid "Unselect All"
73
  msgstr ""
74
 
75
+ #: ../includes/class-user-role-editor.php:679
76
  msgid "Reverse"
77
  msgstr ""
78
 
79
+ #: ../includes/class-user-role-editor.php:680
80
  msgid "Update"
81
  msgstr ""
82
 
83
+ #: ../includes/class-user-role-editor.php:681
84
  msgid "Please confirm permissions update"
85
  msgstr ""
86
 
87
+ #: ../includes/class-user-role-editor.php:682
88
  msgid "Add New Role"
89
  msgstr ""
90
 
91
+ #: ../includes/class-user-role-editor.php:683
92
  msgid " Role name (ID) can not be empty!"
93
  msgstr ""
94
 
95
+ #: ../includes/class-user-role-editor.php:684
96
  msgid ""
97
  " Role name (ID) must contain latin characters, digits, hyphens or underscore "
98
  "only!"
99
  msgstr ""
100
 
101
+ #: ../includes/class-user-role-editor.php:685
102
+ msgid ""
103
+ " WordPress does not support numeric Role name (ID). Add latin characters to "
104
+ "it."
105
+ msgstr ""
106
+
107
+ #: ../includes/class-user-role-editor.php:686
108
  msgid "Add Role"
109
  msgstr ""
110
 
111
+ #: ../includes/class-user-role-editor.php:687
112
  msgid "Delete Role"
113
  msgstr ""
114
 
115
+ #: ../includes/class-user-role-editor.php:688
116
  msgid "Cancel"
117
  msgstr ""
118
 
119
+ #: ../includes/class-user-role-editor.php:689
120
  msgid "Add Capability"
121
  msgstr ""
122
 
123
+ #: ../includes/class-user-role-editor.php:690
124
+ #: ../includes/class-user-role-editor.php:699
125
  msgid "Delete Capability"
126
  msgstr ""
127
 
128
+ #: ../includes/class-user-role-editor.php:691
129
  msgid "Reset"
130
  msgstr ""
131
 
132
+ #: ../includes/class-user-role-editor.php:692
133
  msgid "DANGER! Resetting will restore default settings from WordPress Core."
134
  msgstr ""
135
 
136
+ #: ../includes/class-user-role-editor.php:693
137
  msgid ""
138
  "If any plugins have changed capabilities in any way upon installation (such "
139
  "as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
140
  msgstr ""
141
 
142
+ #: ../includes/class-user-role-editor.php:694
143
  msgid ""
144
  "For more information on how to undo changes and restore plugin capabilities "
145
  "go to"
146
  msgstr ""
147
 
148
+ #: ../includes/class-user-role-editor.php:696
149
  msgid "Continue?"
150
  msgstr ""
151
 
152
+ #: ../includes/class-user-role-editor.php:697
153
  msgid "Default Role"
154
  msgstr ""
155
 
156
+ #: ../includes/class-user-role-editor.php:698
157
  msgid "Set New Default Role"
158
  msgstr ""
159
 
160
+ #: ../includes/class-user-role-editor.php:700
161
  msgid ""
162
  "Warning! Be careful - removing critical capability could crash some plugin "
163
  "or other custom code"
164
  msgstr ""
165
 
166
+ #: ../includes/class-user-role-editor.php:701
167
  msgid " Capability name (ID) can not be empty!"
168
  msgstr ""
169
 
170
+ #: ../includes/class-user-role-editor.php:702
171
  msgid ""
172
  " Capability name (ID) must contain latin characters, digits, hyphens or "
173
  "underscore only!"
174
  msgstr ""
175
 
176
+ #: ../includes/class-user-role-editor.php:735
177
+ #: ../includes/class-user-role-editor.php:763
178
  msgid "Other Roles"
179
  msgstr ""
180
 
181
+ #: ../includes/class-user-role-editor.php:745
182
  msgid "Edit"
183
  msgstr ""
184
 
185
+ #: ../includes/ure-role-edit.php:30 ../includes/ure-user-edit.php:53
 
 
 
 
 
 
 
 
186
  msgid "Show capabilities in human readable form"
187
  msgstr ""
188
 
189
+ #: ../includes/ure-role-edit.php:40 ../includes/ure-user-edit.php:63
190
  #: ../includes/class-ure-screen-help.php:21
191
  msgid "Show deprecated capabilities"
192
  msgstr ""
193
 
194
+ #: ../includes/ure-role-edit.php:44
195
  msgid "If checked, then apply action to ALL sites of this Network"
196
  msgstr ""
197
 
198
+ #: ../includes/ure-role-edit.php:56
199
  msgid "Apply to All Sites"
200
  msgstr ""
201
 
202
+ #: ../includes/ure-role-edit.php:63 ../includes/ure-user-edit.php:109
203
  msgid "Core capabilities:"
204
  msgstr ""
205
 
206
+ #: ../includes/ure-role-edit.php:65 ../includes/ure-user-edit.php:111
207
  msgid "Quick filter:"
208
  msgstr ""
209
 
210
+ #: ../includes/ure-role-edit.php:83 ../includes/ure-user-edit.php:130
211
  msgid "Custom capabilities:"
212
  msgstr ""
213
 
214
+ #: ../includes/class-ure-lib.php:143
215
  msgid "Error: wrong request"
216
  msgstr ""
217
 
218
+ #: ../includes/class-ure-lib.php:175
219
  msgid "Role name (ID): "
220
  msgstr ""
221
 
222
+ #: ../includes/class-ure-lib.php:177
223
  msgid "Display Role Name: "
224
  msgstr ""
225
 
226
+ #: ../includes/class-ure-lib.php:179
227
  msgid "Make copy of: "
228
  msgstr ""
229
 
230
+ #: ../includes/class-ure-lib.php:186
231
+ msgid "Select Role:"
232
+ msgstr ""
233
+
234
+ #: ../includes/class-ure-lib.php:201
235
  msgid "Delete:"
236
  msgstr ""
237
 
238
+ #: ../includes/class-ure-lib.php:208
239
  msgid "Capability name (ID): "
240
  msgstr ""
241
 
242
+ #: ../includes/class-ure-lib.php:322
243
  msgid "Error: "
244
  msgstr ""
245
 
246
+ #: ../includes/class-ure-lib.php:322
247
  msgid "Role"
248
  msgstr ""
249
 
250
+ #: ../includes/class-ure-lib.php:322
251
  msgid "does not exist"
252
  msgstr ""
253
 
254
+ #: ../includes/class-ure-lib.php:365
255
  msgid "Role is updated successfully"
256
  msgstr ""
257
 
258
+ #: ../includes/class-ure-lib.php:367
259
  msgid "Roles are updated for all network"
260
  msgstr ""
261
 
262
+ #: ../includes/class-ure-lib.php:373
263
  msgid "Error occured during role(s) update"
264
  msgstr ""
265
 
266
+ #: ../includes/class-ure-lib.php:380
267
  msgid "User capabilities are updated successfully"
268
  msgstr ""
269
 
270
+ #: ../includes/class-ure-lib.php:385
271
  msgid "Error occured during user update"
272
  msgstr ""
273
 
274
+ #: ../includes/class-ure-lib.php:440
275
  msgid "User Roles are restored to WordPress default values. "
276
  msgstr ""
277
 
278
+ #: ../includes/class-ure-lib.php:1330
279
  msgid "Help"
280
  msgstr ""
281
 
282
+ #: ../includes/class-ure-lib.php:1674
283
  msgid "Error is occur. Please check the log file."
284
  msgstr ""
285
 
286
+ #: ../includes/class-ure-lib.php:1717
287
  msgid ""
288
  "Error: Role ID must contain latin characters, digits, hyphens or underscore "
289
  "only!"
290
  msgstr ""
291
 
292
+ #: ../includes/class-ure-lib.php:1721
293
+ msgid ""
294
+ "Error: WordPress does not support numeric Role name (ID). Add latin "
295
+ "characters to it."
296
+ msgstr ""
297
+
298
+ #: ../includes/class-ure-lib.php:1736
299
  #, php-format
300
  msgid "Role %s exists already"
301
  msgstr ""
302
 
303
+ #: ../includes/class-ure-lib.php:1751
304
  msgid "Error is encountered during new role create operation"
305
  msgstr ""
306
 
307
+ #: ../includes/class-ure-lib.php:1753
308
  #, php-format
309
  msgid "Role %s is created successfully"
310
  msgstr ""
311
 
312
+ #: ../includes/class-ure-lib.php:1822
313
  msgid "Error encountered during role delete operation"
314
  msgstr ""
315
 
316
+ #: ../includes/class-ure-lib.php:1824
317
  msgid "Unused roles are deleted successfully"
318
  msgstr ""
319
 
320
+ #: ../includes/class-ure-lib.php:1826
321
  #, php-format
322
  msgid "Role %s is deleted successfully"
323
  msgstr ""
324
 
325
+ #: ../includes/class-ure-lib.php:1851
326
  msgid "Error encountered during default role change operation"
327
  msgstr ""
328
 
329
+ #: ../includes/class-ure-lib.php:1857
330
  #, php-format
331
  msgid "Default role for new users is set to %s successfully"
332
  msgstr ""
333
 
334
+ #: ../includes/class-ure-lib.php:1876
335
  msgid "Editor"
336
  msgstr ""
337
 
338
+ #: ../includes/class-ure-lib.php:1877
339
  msgid "Author"
340
  msgstr ""
341
 
342
+ #: ../includes/class-ure-lib.php:1878
343
  msgid "Contributor"
344
  msgstr ""
345
 
346
+ #: ../includes/class-ure-lib.php:1879
347
  msgid "Subscriber"
348
  msgstr ""
349
 
350
+ #: ../includes/class-ure-lib.php:1881
351
  msgid "Switch themes"
352
  msgstr ""
353
 
354
+ #: ../includes/class-ure-lib.php:1882
355
  msgid "Edit themes"
356
  msgstr ""
357
 
358
+ #: ../includes/class-ure-lib.php:1883
359
  msgid "Activate plugins"
360
  msgstr ""
361
 
362
+ #: ../includes/class-ure-lib.php:1884
363
  msgid "Edit plugins"
364
  msgstr ""
365
 
366
+ #: ../includes/class-ure-lib.php:1885
367
  msgid "Edit users"
368
  msgstr ""
369
 
370
+ #: ../includes/class-ure-lib.php:1886
371
  msgid "Edit files"
372
  msgstr ""
373
 
374
+ #: ../includes/class-ure-lib.php:1887
375
  msgid "Manage options"
376
  msgstr ""
377
 
378
+ #: ../includes/class-ure-lib.php:1888
379
  msgid "Moderate comments"
380
  msgstr ""
381
 
382
+ #: ../includes/class-ure-lib.php:1889
383
  msgid "Manage categories"
384
  msgstr ""
385
 
386
+ #: ../includes/class-ure-lib.php:1890
387
  msgid "Manage links"
388
  msgstr ""
389
 
390
+ #: ../includes/class-ure-lib.php:1891
391
  msgid "Upload files"
392
  msgstr ""
393
 
394
+ #: ../includes/class-ure-lib.php:1892
395
  msgid "Import"
396
  msgstr ""
397
 
398
+ #: ../includes/class-ure-lib.php:1893
399
  msgid "Unfiltered html"
400
  msgstr ""
401
 
402
+ #: ../includes/class-ure-lib.php:1894
403
  msgid "Edit posts"
404
  msgstr ""
405
 
406
+ #: ../includes/class-ure-lib.php:1895
407
  msgid "Edit others posts"
408
  msgstr ""
409
 
410
+ #: ../includes/class-ure-lib.php:1896
411
  msgid "Edit published posts"
412
  msgstr ""
413
 
414
+ #: ../includes/class-ure-lib.php:1897
415
  msgid "Publish posts"
416
  msgstr ""
417
 
418
+ #: ../includes/class-ure-lib.php:1898
419
  msgid "Edit pages"
420
  msgstr ""
421
 
422
+ #: ../includes/class-ure-lib.php:1899
423
  msgid "Read"
424
  msgstr ""
425
 
426
+ #: ../includes/class-ure-lib.php:1900
427
  msgid "Level 10"
428
  msgstr ""
429
 
430
+ #: ../includes/class-ure-lib.php:1901
431
  msgid "Level 9"
432
  msgstr ""
433
 
434
+ #: ../includes/class-ure-lib.php:1902
435
  msgid "Level 8"
436
  msgstr ""
437
 
438
+ #: ../includes/class-ure-lib.php:1903
439
  msgid "Level 7"
440
  msgstr ""
441
 
442
+ #: ../includes/class-ure-lib.php:1904
443
  msgid "Level 6"
444
  msgstr ""
445
 
446
+ #: ../includes/class-ure-lib.php:1905
447
  msgid "Level 5"
448
  msgstr ""
449
 
450
+ #: ../includes/class-ure-lib.php:1906
451
  msgid "Level 4"
452
  msgstr ""
453
 
454
+ #: ../includes/class-ure-lib.php:1907
455
  msgid "Level 3"
456
  msgstr ""
457
 
458
+ #: ../includes/class-ure-lib.php:1908
459
  msgid "Level 2"
460
  msgstr ""
461
 
462
+ #: ../includes/class-ure-lib.php:1909
463
  msgid "Level 1"
464
  msgstr ""
465
 
466
+ #: ../includes/class-ure-lib.php:1910
467
  msgid "Level 0"
468
  msgstr ""
469
 
470
+ #: ../includes/class-ure-lib.php:1911
471
  msgid "Edit others pages"
472
  msgstr ""
473
 
474
+ #: ../includes/class-ure-lib.php:1912
475
  msgid "Edit published pages"
476
  msgstr ""
477
 
478
+ #: ../includes/class-ure-lib.php:1913
479
  msgid "Publish pages"
480
  msgstr ""
481
 
482
+ #: ../includes/class-ure-lib.php:1914
483
  msgid "Delete pages"
484
  msgstr ""
485
 
486
+ #: ../includes/class-ure-lib.php:1915
487
  msgid "Delete others pages"
488
  msgstr ""
489
 
490
+ #: ../includes/class-ure-lib.php:1916
491
  msgid "Delete published pages"
492
  msgstr ""
493
 
494
+ #: ../includes/class-ure-lib.php:1917
495
  msgid "Delete posts"
496
  msgstr ""
497
 
498
+ #: ../includes/class-ure-lib.php:1918
499
  msgid "Delete others posts"
500
  msgstr ""
501
 
502
+ #: ../includes/class-ure-lib.php:1919
503
  msgid "Delete published posts"
504
  msgstr ""
505
 
506
+ #: ../includes/class-ure-lib.php:1920
507
  msgid "Delete private posts"
508
  msgstr ""
509
 
510
+ #: ../includes/class-ure-lib.php:1921
511
  msgid "Edit private posts"
512
  msgstr ""
513
 
514
+ #: ../includes/class-ure-lib.php:1922
515
  msgid "Read private posts"
516
  msgstr ""
517
 
518
+ #: ../includes/class-ure-lib.php:1923
519
  msgid "Delete private pages"
520
  msgstr ""
521
 
522
+ #: ../includes/class-ure-lib.php:1924
523
  msgid "Edit private pages"
524
  msgstr ""
525
 
526
+ #: ../includes/class-ure-lib.php:1925
527
  msgid "Read private pages"
528
  msgstr ""
529
 
530
+ #: ../includes/class-ure-lib.php:1926
531
  msgid "Delete users"
532
  msgstr ""
533
 
534
+ #: ../includes/class-ure-lib.php:1927
535
  msgid "Create users"
536
  msgstr ""
537
 
538
+ #: ../includes/class-ure-lib.php:1928
539
  msgid "Unfiltered upload"
540
  msgstr ""
541
 
542
+ #: ../includes/class-ure-lib.php:1929
543
  msgid "Edit dashboard"
544
  msgstr ""
545
 
546
+ #: ../includes/class-ure-lib.php:1930
547
  msgid "Update plugins"
548
  msgstr ""
549
 
550
+ #: ../includes/class-ure-lib.php:1931
551
  msgid "Delete plugins"
552
  msgstr ""
553
 
554
+ #: ../includes/class-ure-lib.php:1932
555
  msgid "Install plugins"
556
  msgstr ""
557
 
558
+ #: ../includes/class-ure-lib.php:1933
559
  msgid "Update themes"
560
  msgstr ""
561
 
562
+ #: ../includes/class-ure-lib.php:1934
563
  msgid "Install themes"
564
  msgstr ""
565
 
566
+ #: ../includes/class-ure-lib.php:1935
567
  msgid "Update core"
568
  msgstr ""
569
 
570
+ #: ../includes/class-ure-lib.php:1936
571
  msgid "List users"
572
  msgstr ""
573
 
574
+ #: ../includes/class-ure-lib.php:1937
575
  msgid "Remove users"
576
  msgstr ""
577
 
578
+ #: ../includes/class-ure-lib.php:1938
579
  msgid "Add users"
580
  msgstr ""
581
 
582
+ #: ../includes/class-ure-lib.php:1939
583
  msgid "Promote users"
584
  msgstr ""
585
 
586
+ #: ../includes/class-ure-lib.php:1940
587
  msgid "Edit theme options"
588
  msgstr ""
589
 
590
+ #: ../includes/class-ure-lib.php:1941
591
  msgid "Delete themes"
592
  msgstr ""
593
 
594
+ #: ../includes/class-ure-lib.php:1942
595
  msgid "Export"
596
  msgstr ""
597
 
598
+ #: ../includes/class-ure-lib.php:2052
599
  msgid "Error: Capability name must contain latin characters and digits only!"
600
  msgstr ""
601
 
602
+ #: ../includes/class-ure-lib.php:2065
603
  #, php-format
604
  msgid "Capability %s is added successfully"
605
  msgstr ""
606
 
607
+ #: ../includes/class-ure-lib.php:2067
608
  #, php-format
609
  msgid "Capability %s exists already"
610
  msgstr ""
611
 
612
+ #: ../includes/class-ure-lib.php:2092
613
  #, php-format
614
  msgid "Error! You do not have permission to delete this capability: %s!"
615
  msgstr ""
616
 
617
+ #: ../includes/class-ure-lib.php:2111
618
  #, php-format
619
  msgid "Capability %s is removed successfully"
620
  msgstr ""
621
 
622
+ #: ../includes/class-ure-lib.php:2216
 
 
 
 
623
  msgid "Author's website"
624
  msgstr ""
625
 
626
+ #: ../includes/class-ure-lib.php:2217
627
  msgid "Plugin webpage"
628
  msgstr ""
629
 
630
+ #: ../includes/class-ure-lib.php:2218
631
+ msgid "Plugin download"
632
+ msgstr ""
633
+
634
+ #: ../includes/class-ure-lib.php:2220
635
  msgid "FAQ"
636
  msgstr ""
637
 
638
+ #: ../includes/class-ure-lib.php:2263
639
  msgid "None"
640
  msgstr ""
641
 
642
+ #: ../includes/class-ure-lib.php:2290
643
  msgid "Delete All Unused Roles"
644
  msgstr ""
645
 
646
+ #: ../includes/class-ure-lib.php:2314
647
  msgid "&mdash; No role for this site &mdash;"
648
  msgstr ""
649
 
655
  msgid "Change capabilities for user"
656
  msgstr ""
657
 
658
+ #: ../includes/ure-user-edit.php:71
659
  msgid "Primary Role:"
660
  msgstr ""
661
 
662
+ #: ../includes/ure-user-edit.php:81
663
  msgid "bbPress Role:"
664
  msgstr ""
665
 
666
+ #: ../includes/ure-user-edit.php:91
667
  msgid "Other Roles:"
668
  msgstr ""
669
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: shinephp
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=vladimir%40shinephp%2ecom&lc=RU&item_name=ShinePHP%2ecom&item_number=User%20Role%20Editor%20WordPress%20plugin&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
4
  Tags: user, role, editor, security, access, permission, capability
5
  Requires at least: 3.5
6
- Tested up to: 3.7.1
7
  Stable tag: trunk
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -78,6 +78,19 @@ Share with me new ideas about plugin further development and link to your site w
78
 
79
  == Changelog ==
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  = 4.7 =
82
  * 04.11.2013
83
  * "Delete Role" menu has "Delete All Unused Roles" menu item now.
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=vladimir%40shinephp%2ecom&lc=RU&item_name=ShinePHP%2ecom&item_number=User%20Role%20Editor%20WordPress%20plugin&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
4
  Tags: user, role, editor, security, access, permission, capability
5
  Requires at least: 3.5
6
+ Tested up to: 3.8
7
  Stable tag: trunk
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
78
 
79
  == Changelog ==
80
 
81
+ = 4.8 =
82
+ * 10.12.2013
83
+ * Role ID validation rule was added to prohibit numeric role ID - WordPress does not support them.
84
+ * Plugin "Options" page was divided into sections (tabs): General, Multisite, About. Section with information about plugin author, his site, etc. was moved from User Role Editor main page to its "Options" page - "About" tab.
85
+ * HTML markup was updated to provide compatibility with upcoming WordPress 3.8 new administrator backend theme "MP6".
86
+ * Restore previous blog 'switch_to_blog($old_blog_id)' call was replaced to 'restore_current_blog()' where it is possible to provide better compatibility with WordPress API.
87
+ After use 'switch_to_blog()' in cycle, URE clears '_wp_switched_stack' global variable directly instead of call 'restore_current_blog()' inside the cycle to work faster.
88
+ * Pro version: It is possible to restrict access of single sites administrators to the selected user capabilities and Add/Delete role operations inside User Role Editor.
89
+ * Pro version: Shortcode [user_role_editor roles="none"]text for not logged in users[/user_role_editor] is available. Recursive processing of other shortcodes inside enclosed text is available now.
90
+ * Pro version: Gravity Forms available at "Export Entries", "Export Forms" pages is under URE access restriction now, if such one was set for the user.
91
+ * Pro version: Gravity Forms import was set under "gravityforms_import" user capability control.
92
+ * Pro version: Option was added to show/hide help links (question signs) near the capabilities from single site administrators.
93
+
94
  = 4.7 =
95
  * 04.11.2013
96
  * "Delete Role" menu has "Delete All Unused Roles" menu item now.
user-role-editor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: User Role Editor
4
  Plugin URI: http://role-editor.com
5
  Description: Change/add/delete WordPress user roles and capabilities.
6
- Version: 4.7
7
  Author: Vladimir Garagulya
8
  Author URI: http://www.shinephp.com
9
  Text Domain: ure
@@ -23,12 +23,15 @@ if (defined('URE_PLUGIN_URL')) {
23
  wp_die('It seems that other version of User Role Editor is active. Please deactivate it before use this version');
24
  }
25
 
 
26
  define('URE_PLUGIN_URL', plugin_dir_url(__FILE__));
27
  define('URE_PLUGIN_DIR', plugin_dir_path(__FILE__));
28
  define('URE_PLUGIN_FILE', basename(__FILE__));
29
  define('URE_PLUGIN_FULL_PATH', __FILE__);
30
 
31
- require_once(URE_PLUGIN_DIR.'includes/class-garvs-wp-lib.php');
 
 
32
  require_once(URE_PLUGIN_DIR.'includes/class-ure-lib.php');
33
 
34
  // check PHP version
3
  Plugin Name: User Role Editor
4
  Plugin URI: http://role-editor.com
5
  Description: Change/add/delete WordPress user roles and capabilities.
6
+ Version: 4.8
7
  Author: Vladimir Garagulya
8
  Author URI: http://www.shinephp.com
9
  Text Domain: ure
23
  wp_die('It seems that other version of User Role Editor is active. Please deactivate it before use this version');
24
  }
25
 
26
+ define('URE_VERSION', '4.8');
27
  define('URE_PLUGIN_URL', plugin_dir_url(__FILE__));
28
  define('URE_PLUGIN_DIR', plugin_dir_path(__FILE__));
29
  define('URE_PLUGIN_FILE', basename(__FILE__));
30
  define('URE_PLUGIN_FULL_PATH', __FILE__);
31
 
32
+ if (!class_exists('Garvs_WP_Lib')) {
33
+ require_once(URE_PLUGIN_DIR.'includes/class-garvs-wp-lib.php');
34
+ }
35
  require_once(URE_PLUGIN_DIR.'includes/class-ure-lib.php');
36
 
37
  // check PHP version