Version Description
- Fix: Undefined var $mashsb_options
- Fix: Default caching method async cache not working after update 2.5 > 3.x when settings were not saved manually
Download this release
Release Info
Developer | ReneHermi |
Plugin | Social Media Share Buttons | MashShare |
Version | 3.1.0 |
Comparing to | |
See all releases |
Version 3.1.0
- CONTRIBUTING.md +38 -0
- LICENSE +340 -0
- README.md +39 -0
- assets/css/chosen-sprite.png +0 -0
- assets/css/chosen-sprite@2x.png +0 -0
- assets/css/chosen.css +430 -0
- assets/css/chosen.min.css +3 -0
- assets/css/mashsb-admin.css +1183 -0
- assets/css/mashsb-admin.min.css +1 -0
- assets/images/mashshare.png +0 -0
- assets/images/mashsharer.png +0 -0
- assets/images/og_placeholder_1200_627.png +0 -0
- assets/images/og_placeholder_1200_627_v1.png +0 -0
- assets/images/og_placeholder_1200_627_v2.png +0 -0
- assets/images/og_placeholder_1200_630.png +0 -0
- assets/images/pinterest_placeholder_600_900.png +0 -0
- assets/images/screenshots/async_cache_refresh.png +0 -0
- assets/images/screenshots/dashboard.png +0 -0
- assets/images/screenshots/most-shared-posts.png +0 -0
- assets/images/screenshots/open_graph_settings.png +0 -0
- assets/images/screenshots/shortcodes.png +0 -0
- assets/images/screenshots/social-networks-settings.png +0 -0
- assets/images/screenshots/social_media_integration.png +0 -0
- assets/images/screenshots/social_sharing_settings.png +0 -0
- assets/images/upgrade_to_pro.png +0 -0
- assets/js/chosen.jquery.js +1284 -0
- assets/js/chosen.jquery.min.js +2 -0
- assets/js/mashsb-admin.js +1557 -0
- assets/js/mashsb-admin.min.js +1 -0
- assets/js/mashsb.js +332 -0
- assets/js/mashsb.min.js +1 -0
- changelog +36 -0
- includes/MASHSB_SL_Plugin_Updater.php +337 -0
- includes/actions.php +76 -0
- includes/admin/add-ons.php +59 -0
- includes/admin/admin-actions.php +121 -0
- includes/admin/admin-footer.php +38 -0
- includes/admin/admin-notices.php +320 -0
- includes/admin/admin-pages.php +60 -0
- includes/admin/dashboard.php +75 -0
- includes/admin/meta-box/css/autocomplete.css +14 -0
- includes/admin/meta-box/css/checkbox.css +4 -0
- includes/admin/meta-box/css/color.css +7 -0
- includes/admin/meta-box/css/datepicker.css +231 -0
- includes/admin/meta-box/css/divider.css +7 -0
- includes/admin/meta-box/css/file.css +58 -0
- includes/admin/meta-box/css/heading.css +12 -0
- includes/admin/meta-box/css/image-advanced.css +43 -0
- includes/admin/meta-box/css/image-select.css +21 -0
- includes/admin/meta-box/css/image.css +67 -0
- includes/admin/meta-box/css/input-list.css +7 -0
- includes/admin/meta-box/css/jqueryui/jquery-ui-timepicker-addon.min.css +5 -0
- includes/admin/meta-box/css/jqueryui/jquery.ui.core.css +38 -0
- includes/admin/meta-box/css/jqueryui/jquery.ui.datepicker.css +68 -0
- includes/admin/meta-box/css/jqueryui/jquery.ui.slider.css +24 -0
- includes/admin/meta-box/css/jqueryui/jquery.ui.theme.css +249 -0
- includes/admin/meta-box/css/map.css +4 -0
- includes/admin/meta-box/css/media.css +81 -0
- includes/admin/meta-box/css/oembed.css +11 -0
- includes/admin/meta-box/css/plupload-image.css +25 -0
- includes/admin/meta-box/css/range.css +13 -0
- includes/admin/meta-box/css/select-advanced.css +8 -0
- includes/admin/meta-box/css/select-tree.css +7 -0
- includes/admin/meta-box/css/select.css +4 -0
- includes/admin/meta-box/css/select2/select2.css +483 -0
- includes/admin/meta-box/css/slider.css +13 -0
- includes/admin/meta-box/css/style-rtl.css +7 -0
- includes/admin/meta-box/css/style.css +328 -0
- includes/admin/meta-box/css/upload.css +30 -0
- includes/admin/meta-box/css/wysiwyg.css +6 -0
- includes/admin/meta-box/img/drag_icon.gif +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_glass_75_dadada_1x400.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-icons_222222_256x240.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-icons_2e83ff_256x240.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-icons_454545_256x240.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-icons_888888_256x240.png +0 -0
- includes/admin/meta-box/img/jqueryui/ui-icons_cd0a0a_256x240.png +0 -0
- includes/admin/meta-box/img/loader.gif +0 -0
- includes/admin/meta-box/inc/core.php +142 -0
- includes/admin/meta-box/inc/field.php +495 -0
- includes/admin/meta-box/inc/fields/autocomplete.php +120 -0
- includes/admin/meta-box/inc/fields/button.php +47 -0
- includes/admin/meta-box/inc/fields/checkbox-list.php +19 -0
- includes/admin/meta-box/inc/fields/checkbox.php +87 -0
- includes/admin/meta-box/inc/fields/choice.php +160 -0
- includes/admin/meta-box/inc/fields/color.php +85 -0
- includes/admin/meta-box/inc/fields/custom-html.php +43 -0
- includes/admin/meta-box/inc/fields/date.php +31 -0
- includes/admin/meta-box/inc/fields/datetime.php +264 -0
- includes/admin/meta-box/inc/fields/divider.php +43 -0
- includes/admin/meta-box/inc/fields/email.php +50 -0
- includes/admin/meta-box/inc/fields/fieldset-text.php +84 -0
- includes/admin/meta-box/inc/fields/file-advanced.php +43 -0
- includes/admin/meta-box/inc/fields/file-input.php +64 -0
- includes/admin/meta-box/inc/fields/file-upload.php +39 -0
- includes/admin/meta-box/inc/fields/file.php +367 -0
- includes/admin/meta-box/inc/fields/force-creation.php +41 -0
- includes/admin/meta-box/inc/fields/heading.php +45 -0
- includes/admin/meta-box/inc/fields/hidden-data.php +28 -0
- includes/admin/meta-box/inc/fields/hidden.php +22 -0
- includes/admin/meta-box/inc/fields/image-advanced.php +90 -0
- includes/admin/meta-box/inc/fields/image-select.php +116 -0
- includes/admin/meta-box/inc/fields/image-upload.php +30 -0
- includes/admin/meta-box/inc/fields/image.php +234 -0
- includes/admin/meta-box/inc/fields/input-list.php +91 -0
- includes/admin/meta-box/inc/fields/input.php +83 -0
- includes/admin/meta-box/inc/fields/key-value.php +149 -0
- includes/admin/meta-box/inc/fields/map.php +162 -0
- includes/admin/meta-box/inc/fields/media.php +152 -0
- includes/admin/meta-box/inc/fields/multiple-values.php +73 -0
- includes/admin/meta-box/inc/fields/number.php +47 -0
- includes/admin/meta-box/inc/fields/object-choice.php +145 -0
- includes/admin/meta-box/inc/fields/oembed.php +122 -0
- includes/admin/meta-box/inc/fields/password.php +34 -0
- includes/admin/meta-box/inc/fields/plupload-image.php +5 -0
- includes/admin/meta-box/inc/fields/post.php +132 -0
- includes/admin/meta-box/inc/fields/radio.php +19 -0
- includes/admin/meta-box/inc/fields/range.php +93 -0
- includes/admin/meta-box/inc/fields/select-advanced.php +102 -0
- includes/admin/meta-box/inc/fields/select-tree.php +64 -0
- includes/admin/meta-box/inc/fields/select.php +95 -0
- includes/admin/meta-box/inc/fields/slider.php +66 -0
- includes/admin/meta-box/inc/fields/taxonomy-advanced.php +89 -0
- includes/admin/meta-box/inc/fields/taxonomy.php +164 -0
- includes/admin/meta-box/inc/fields/text-list.php +91 -0
- includes/admin/meta-box/inc/fields/text.php +48 -0
- includes/admin/meta-box/inc/fields/textarea.php +79 -0
- includes/admin/meta-box/inc/fields/thickbox-image.php +79 -0
- includes/admin/meta-box/inc/fields/time.php +31 -0
- includes/admin/meta-box/inc/fields/url.php +37 -0
- includes/admin/meta-box/inc/fields/user.php +89 -0
- includes/admin/meta-box/inc/fields/validate-og.php +43 -0
- includes/admin/meta-box/inc/fields/wysiwyg.php +106 -0
- includes/admin/meta-box/inc/functions.php +136 -0
- includes/admin/meta-box/inc/helper.php +135 -0
- includes/admin/meta-box/inc/loader.php +132 -0
- includes/admin/meta-box/inc/meta-box.php +427 -0
- includes/admin/meta-box/inc/templates/image-advanced.php +20 -0
- includes/admin/meta-box/inc/templates/image-advanced_1.php +31 -0
- includes/admin/meta-box/inc/templates/media.php +47 -0
- includes/admin/meta-box/inc/templates/upload.php +7 -0
- includes/admin/meta-box/inc/validation.php +45 -0
- includes/admin/meta-box/inc/walkers/input-list-walker.php +70 -0
- includes/admin/meta-box/inc/walkers/select-tree-walker.php +75 -0
- includes/admin/meta-box/inc/walkers/select-walker.php +32 -0
- includes/admin/meta-box/inc/walkers/walker.php +34 -0
- includes/admin/meta-box/js/autocomplete.js +55 -0
- includes/admin/meta-box/js/autosave.js +19 -0
- includes/admin/meta-box/js/clone.js +211 -0
- includes/admin/meta-box/js/color.js +38 -0
- includes/admin/meta-box/js/date.js +57 -0
- includes/admin/meta-box/js/datetime.js +67 -0
- includes/admin/meta-box/js/file-input.js +42 -0
- includes/admin/meta-box/js/file-upload.js +199 -0
- includes/admin/meta-box/js/file.js +157 -0
- includes/admin/meta-box/js/image-advanced.js +36 -0
- includes/admin/meta-box/js/image-select.js +26 -0
- includes/admin/meta-box/js/image-upload.js +31 -0
- includes/admin/meta-box/js/image.js +25 -0
- includes/admin/meta-box/js/input-list.js +25 -0
- includes/admin/meta-box/js/jquery.validate.min.js +2 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-af.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ar.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-az.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-be.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-bg.js +24 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-bs.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ca.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-cs.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-cy-GB.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-da.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-de.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-el.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-en-AU.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-en-GB.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-en-NZ.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-eo.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-es.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-et.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-eu.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fa.js +59 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fi.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fo.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fr-CA.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fr-CH.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fr.js +25 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-gl.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-he.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hi.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hr.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hu.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hy.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-id.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-is.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-it.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ja.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ka.js +21 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-kk.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-km.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ko.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ky.js +24 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-lb.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-lt.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-lv.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-mk.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ml.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ms.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nb.js +22 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nl-BE.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nl.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nn.js +22 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-no.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-pl.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-pt-BR.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-pt.js +22 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-rm.js +21 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ro.js +26 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ru.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sk.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sl.js +24 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sq.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sr-SR.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sr.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sv.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ta.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-th.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-tj.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-tr.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-uk.js +24 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-vi.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-zh-CN.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-zh-HK.js +23 -0
- includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-zh-TW.js +23 -0
- includes/admin/meta-box/js/jqueryui/jquery-ui-timepicker-addon-i18n.min.js +4 -0
- includes/admin/meta-box/js/jqueryui/jquery-ui-timepicker-addon.min.js +5 -0
- includes/admin/meta-box/js/map-frontend.js +71 -0
- includes/admin/meta-box/js/map.js +227 -0
- includes/admin/meta-box/js/media.js +451 -0
- includes/admin/meta-box/js/oembed.js +24 -0
- includes/admin/meta-box/js/range.js +23 -0
- includes/admin/meta-box/js/select-advanced.js +23 -0
- includes/admin/meta-box/js/select-tree.js +22 -0
- includes/admin/meta-box/js/select.js +84 -0
- includes/admin/meta-box/js/select2/i18n/ar.js +3 -0
- includes/admin/meta-box/js/select2/i18n/az.js +3 -0
- includes/admin/meta-box/js/select2/i18n/bg.js +3 -0
- includes/admin/meta-box/js/select2/i18n/ca.js +3 -0
- includes/admin/meta-box/js/select2/i18n/cs.js +3 -0
- includes/admin/meta-box/js/select2/i18n/da.js +3 -0
- includes/admin/meta-box/js/select2/i18n/de.js +3 -0
- includes/admin/meta-box/js/select2/i18n/en.js +3 -0
- includes/admin/meta-box/js/select2/i18n/es.js +3 -0
- includes/admin/meta-box/js/select2/i18n/et.js +3 -0
- includes/admin/meta-box/js/select2/i18n/eu.js +3 -0
- includes/admin/meta-box/js/select2/i18n/fa.js +3 -0
- includes/admin/meta-box/js/select2/i18n/fi.js +3 -0
- includes/admin/meta-box/js/select2/i18n/fr.js +3 -0
- includes/admin/meta-box/js/select2/i18n/gl.js +3 -0
- includes/admin/meta-box/js/select2/i18n/he.js +3 -0
- includes/admin/meta-box/js/select2/i18n/hi.js +3 -0
- includes/admin/meta-box/js/select2/i18n/hr.js +3 -0
- includes/admin/meta-box/js/select2/i18n/hu.js +3 -0
- includes/admin/meta-box/js/select2/i18n/id.js +3 -0
- includes/admin/meta-box/js/select2/i18n/is.js +3 -0
- includes/admin/meta-box/js/select2/i18n/it.js +3 -0
- includes/admin/meta-box/js/select2/i18n/ja.js +3 -0
- includes/admin/meta-box/js/select2/i18n/ko.js +3 -0
- includes/admin/meta-box/js/select2/i18n/lt.js +3 -0
- includes/admin/meta-box/js/select2/i18n/lv.js +3 -0
- includes/admin/meta-box/js/select2/i18n/mk.js +3 -0
- includes/admin/meta-box/js/select2/i18n/ms.js +3 -0
- includes/admin/meta-box/js/select2/i18n/nb.js +3 -0
- includes/admin/meta-box/js/select2/i18n/nl.js +3 -0
- includes/admin/meta-box/js/select2/i18n/pl.js +3 -0
- includes/admin/meta-box/js/select2/i18n/pt-BR.js +3 -0
- includes/admin/meta-box/js/select2/i18n/pt.js +3 -0
- includes/admin/meta-box/js/select2/i18n/ro.js +3 -0
- includes/admin/meta-box/js/select2/i18n/ru.js +3 -0
- includes/admin/meta-box/js/select2/i18n/sk.js +3 -0
- includes/admin/meta-box/js/select2/i18n/sr-Cyrl.js +3 -0
- includes/admin/meta-box/js/select2/i18n/sr.js +3 -0
- includes/admin/meta-box/js/select2/i18n/sv.js +3 -0
- includes/admin/meta-box/js/select2/i18n/th.js +3 -0
- includes/admin/meta-box/js/select2/i18n/tr.js +3 -0
- includes/admin/meta-box/js/select2/i18n/uk.js +3 -0
- includes/admin/meta-box/js/select2/i18n/vi.js +3 -0
- includes/admin/meta-box/js/select2/i18n/zh-CN.js +3 -0
- includes/admin/meta-box/js/select2/i18n/zh-TW.js +3 -0
- includes/admin/meta-box/js/select2/select2.min.js +2 -0
CONTRIBUTING.md
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#Contribute To Mashshare
|
2 |
+
|
3 |
+
Community made patches, localisations, bug reports and contributions are always welcome.
|
4 |
+
|
5 |
+
When contributing please ensure you follow the guidelines below so that we can keep on top of things.
|
6 |
+
|
7 |
+
__Please Note:__ GitHub is for bug reports and contributions only - if you have a support question or a request for a customisation don't post here, go to our [Support Forum](https://www.mashshare.net/support/) instead.
|
8 |
+
|
9 |
+
## Getting Started
|
10 |
+
|
11 |
+
* Submit a ticket for your issue, assuming one does not already exist.
|
12 |
+
* Raise it on our [Issue Tracker](https://github.com/mashshare/Mashshare/issues)
|
13 |
+
* Clearly describe the issue including steps to reproduce the bug.
|
14 |
+
* Make sure you fill in the earliest version that you know has the issue as well as the version of WordPress you're using.
|
15 |
+
|
16 |
+
## Making Changes
|
17 |
+
|
18 |
+
* Fork the repository on GitHub
|
19 |
+
* Make the changes to your forked repository
|
20 |
+
* Ensure you stick to the [WordPress Coding Standards](https://codex.wordpress.org/WordPress_Coding_Standards)
|
21 |
+
* When committing, reference your issue (if present) and include a note about the fix
|
22 |
+
* (coming soon) If possible, and if applicable, please also add/update unit tests for your changes
|
23 |
+
* Push the changes to your fork and submit a pull request to the 'master' branch of the Mashshare repository
|
24 |
+
|
25 |
+
## Code Documentation
|
26 |
+
|
27 |
+
* We ensure that every Mashshare function is documented well and follows the standards set by phpDoc
|
28 |
+
* An example function can be found [here](https://gist.github.com/rene-hermenau/8d3d7ee0633ee2f64b4b)
|
29 |
+
* Please make sure that every function is documented so that when we update our API Documentation it will complete
|
30 |
+
* If you're adding/editing a function in a class, make sure to add `@access {private|public|protected}`
|
31 |
+
* Finally, please use tabs and not spaces. The tab indent size should be 4 for all Mashshare code.
|
32 |
+
|
33 |
+
At this point you're waiting on us to merge your pull request. We'll review all pull requests, and make suggestions and changes if necessary.
|
34 |
+
|
35 |
+
# Additional Resources
|
36 |
+
* [General GitHub Documentation](http://help.github.com/)
|
37 |
+
* [GitHub Pull Request documentation](http://help.github.com/send-pull-requests/)
|
38 |
+
* [PHPUnit Tests Guide](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html)
|
LICENSE
ADDED
@@ -0,0 +1,340 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
GNU GENERAL PUBLIC LICENSE
|
2 |
+
Version 2, June 1991
|
3 |
+
|
4 |
+
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
5 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
6 |
+
Everyone is permitted to copy and distribute verbatim copies
|
7 |
+
of this license document, but changing it is not allowed.
|
8 |
+
|
9 |
+
Preamble
|
10 |
+
|
11 |
+
The licenses for most software are designed to take away your
|
12 |
+
freedom to share and change it. By contrast, the GNU General Public
|
13 |
+
License is intended to guarantee your freedom to share and change free
|
14 |
+
software--to make sure the software is free for all its users. This
|
15 |
+
General Public License applies to most of the Free Software
|
16 |
+
Foundation's software and to any other program whose authors commit to
|
17 |
+
using it. (Some other Free Software Foundation software is covered by
|
18 |
+
the GNU Lesser General Public License instead.) You can apply it to
|
19 |
+
your programs, too.
|
20 |
+
|
21 |
+
When we speak of free software, we are referring to freedom, not
|
22 |
+
price. Our General Public Licenses are designed to make sure that you
|
23 |
+
have the freedom to distribute copies of free software (and charge for
|
24 |
+
this service if you wish), that you receive source code or can get it
|
25 |
+
if you want it, that you can change the software or use pieces of it
|
26 |
+
in new free programs; and that you know you can do these things.
|
27 |
+
|
28 |
+
To protect your rights, we need to make restrictions that forbid
|
29 |
+
anyone to deny you these rights or to ask you to surrender the rights.
|
30 |
+
These restrictions translate to certain responsibilities for you if you
|
31 |
+
distribute copies of the software, or if you modify it.
|
32 |
+
|
33 |
+
For example, if you distribute copies of such a program, whether
|
34 |
+
gratis or for a fee, you must give the recipients all the rights that
|
35 |
+
you have. You must make sure that they, too, receive or can get the
|
36 |
+
source code. And you must show them these terms so they know their
|
37 |
+
rights.
|
38 |
+
|
39 |
+
We protect your rights with two steps: (1) copyright the software, and
|
40 |
+
(2) offer you this license which gives you legal permission to copy,
|
41 |
+
distribute and/or modify the software.
|
42 |
+
|
43 |
+
Also, for each author's protection and ours, we want to make certain
|
44 |
+
that everyone understands that there is no warranty for this free
|
45 |
+
software. If the software is modified by someone else and passed on, we
|
46 |
+
want its recipients to know that what they have is not the original, so
|
47 |
+
that any problems introduced by others will not reflect on the original
|
48 |
+
authors' reputations.
|
49 |
+
|
50 |
+
Finally, any free program is threatened constantly by software
|
51 |
+
patents. We wish to avoid the danger that redistributors of a free
|
52 |
+
program will individually obtain patent licenses, in effect making the
|
53 |
+
program proprietary. To prevent this, we have made it clear that any
|
54 |
+
patent must be licensed for everyone's free use or not licensed at all.
|
55 |
+
|
56 |
+
The precise terms and conditions for copying, distribution and
|
57 |
+
modification follow.
|
58 |
+
|
59 |
+
GNU GENERAL PUBLIC LICENSE
|
60 |
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
61 |
+
|
62 |
+
0. This License applies to any program or other work which contains
|
63 |
+
a notice placed by the copyright holder saying it may be distributed
|
64 |
+
under the terms of this General Public License. The "Program", below,
|
65 |
+
refers to any such program or work, and a "work based on the Program"
|
66 |
+
means either the Program or any derivative work under copyright law:
|
67 |
+
that is to say, a work containing the Program or a portion of it,
|
68 |
+
either verbatim or with modifications and/or translated into another
|
69 |
+
language. (Hereinafter, translation is included without limitation in
|
70 |
+
the term "modification".) Each licensee is addressed as "you".
|
71 |
+
|
72 |
+
Activities other than copying, distribution and modification are not
|
73 |
+
covered by this License; they are outside its scope. The act of
|
74 |
+
running the Program is not restricted, and the output from the Program
|
75 |
+
is covered only if its contents constitute a work based on the
|
76 |
+
Program (independent of having been made by running the Program).
|
77 |
+
Whether that is true depends on what the Program does.
|
78 |
+
|
79 |
+
1. You may copy and distribute verbatim copies of the Program's
|
80 |
+
source code as you receive it, in any medium, provided that you
|
81 |
+
conspicuously and appropriately publish on each copy an appropriate
|
82 |
+
copyright notice and disclaimer of warranty; keep intact all the
|
83 |
+
notices that refer to this License and to the absence of any warranty;
|
84 |
+
and give any other recipients of the Program a copy of this License
|
85 |
+
along with the Program.
|
86 |
+
|
87 |
+
You may charge a fee for the physical act of transferring a copy, and
|
88 |
+
you may at your option offer warranty protection in exchange for a fee.
|
89 |
+
|
90 |
+
2. You may modify your copy or copies of the Program or any portion
|
91 |
+
of it, thus forming a work based on the Program, and copy and
|
92 |
+
distribute such modifications or work under the terms of Section 1
|
93 |
+
above, provided that you also meet all of these conditions:
|
94 |
+
|
95 |
+
a) You must cause the modified files to carry prominent notices
|
96 |
+
stating that you changed the files and the date of any change.
|
97 |
+
|
98 |
+
b) You must cause any work that you distribute or publish, that in
|
99 |
+
whole or in part contains or is derived from the Program or any
|
100 |
+
part thereof, to be licensed as a whole at no charge to all third
|
101 |
+
parties under the terms of this License.
|
102 |
+
|
103 |
+
c) If the modified program normally reads commands interactively
|
104 |
+
when run, you must cause it, when started running for such
|
105 |
+
interactive use in the most ordinary way, to print or display an
|
106 |
+
announcement including an appropriate copyright notice and a
|
107 |
+
notice that there is no warranty (or else, saying that you provide
|
108 |
+
a warranty) and that users may redistribute the program under
|
109 |
+
these conditions, and telling the user how to view a copy of this
|
110 |
+
License. (Exception: if the Program itself is interactive but
|
111 |
+
does not normally print such an announcement, your work based on
|
112 |
+
the Program is not required to print an announcement.)
|
113 |
+
|
114 |
+
These requirements apply to the modified work as a whole. If
|
115 |
+
identifiable sections of that work are not derived from the Program,
|
116 |
+
and can be reasonably considered independent and separate works in
|
117 |
+
themselves, then this License, and its terms, do not apply to those
|
118 |
+
sections when you distribute them as separate works. But when you
|
119 |
+
distribute the same sections as part of a whole which is a work based
|
120 |
+
on the Program, the distribution of the whole must be on the terms of
|
121 |
+
this License, whose permissions for other licensees extend to the
|
122 |
+
entire whole, and thus to each and every part regardless of who wrote it.
|
123 |
+
|
124 |
+
Thus, it is not the intent of this section to claim rights or contest
|
125 |
+
your rights to work written entirely by you; rather, the intent is to
|
126 |
+
exercise the right to control the distribution of derivative or
|
127 |
+
collective works based on the Program.
|
128 |
+
|
129 |
+
In addition, mere aggregation of another work not based on the Program
|
130 |
+
with the Program (or with a work based on the Program) on a volume of
|
131 |
+
a storage or distribution medium does not bring the other work under
|
132 |
+
the scope of this License.
|
133 |
+
|
134 |
+
3. You may copy and distribute the Program (or a work based on it,
|
135 |
+
under Section 2) in object code or executable form under the terms of
|
136 |
+
Sections 1 and 2 above provided that you also do one of the following:
|
137 |
+
|
138 |
+
a) Accompany it with the complete corresponding machine-readable
|
139 |
+
source code, which must be distributed under the terms of Sections
|
140 |
+
1 and 2 above on a medium customarily used for software interchange; or,
|
141 |
+
|
142 |
+
b) Accompany it with a written offer, valid for at least three
|
143 |
+
years, to give any third party, for a charge no more than your
|
144 |
+
cost of physically performing source distribution, a complete
|
145 |
+
machine-readable copy of the corresponding source code, to be
|
146 |
+
distributed under the terms of Sections 1 and 2 above on a medium
|
147 |
+
customarily used for software interchange; or,
|
148 |
+
|
149 |
+
c) Accompany it with the information you received as to the offer
|
150 |
+
to distribute corresponding source code. (This alternative is
|
151 |
+
allowed only for noncommercial distribution and only if you
|
152 |
+
received the program in object code or executable form with such
|
153 |
+
an offer, in accord with Subsection b above.)
|
154 |
+
|
155 |
+
The source code for a work means the preferred form of the work for
|
156 |
+
making modifications to it. For an executable work, complete source
|
157 |
+
code means all the source code for all modules it contains, plus any
|
158 |
+
associated interface definition files, plus the scripts used to
|
159 |
+
control compilation and installation of the executable. However, as a
|
160 |
+
special exception, the source code distributed need not include
|
161 |
+
anything that is normally distributed (in either source or binary
|
162 |
+
form) with the major components (compiler, kernel, and so on) of the
|
163 |
+
operating system on which the executable runs, unless that component
|
164 |
+
itself accompanies the executable.
|
165 |
+
|
166 |
+
If distribution of executable or object code is made by offering
|
167 |
+
access to copy from a designated place, then offering equivalent
|
168 |
+
access to copy the source code from the same place counts as
|
169 |
+
distribution of the source code, even though third parties are not
|
170 |
+
compelled to copy the source along with the object code.
|
171 |
+
|
172 |
+
4. You may not copy, modify, sublicense, or distribute the Program
|
173 |
+
except as expressly provided under this License. Any attempt
|
174 |
+
otherwise to copy, modify, sublicense or distribute the Program is
|
175 |
+
void, and will automatically terminate your rights under this License.
|
176 |
+
However, parties who have received copies, or rights, from you under
|
177 |
+
this License will not have their licenses terminated so long as such
|
178 |
+
parties remain in full compliance.
|
179 |
+
|
180 |
+
5. You are not required to accept this License, since you have not
|
181 |
+
signed it. However, nothing else grants you permission to modify or
|
182 |
+
distribute the Program or its derivative works. These actions are
|
183 |
+
prohibited by law if you do not accept this License. Therefore, by
|
184 |
+
modifying or distributing the Program (or any work based on the
|
185 |
+
Program), you indicate your acceptance of this License to do so, and
|
186 |
+
all its terms and conditions for copying, distributing or modifying
|
187 |
+
the Program or works based on it.
|
188 |
+
|
189 |
+
6. Each time you redistribute the Program (or any work based on the
|
190 |
+
Program), the recipient automatically receives a license from the
|
191 |
+
original licensor to copy, distribute or modify the Program subject to
|
192 |
+
these terms and conditions. You may not impose any further
|
193 |
+
restrictions on the recipients' exercise of the rights granted herein.
|
194 |
+
You are not responsible for enforcing compliance by third parties to
|
195 |
+
this License.
|
196 |
+
|
197 |
+
7. If, as a consequence of a court judgment or allegation of patent
|
198 |
+
infringement or for any other reason (not limited to patent issues),
|
199 |
+
conditions are imposed on you (whether by court order, agreement or
|
200 |
+
otherwise) that contradict the conditions of this License, they do not
|
201 |
+
excuse you from the conditions of this License. If you cannot
|
202 |
+
distribute so as to satisfy simultaneously your obligations under this
|
203 |
+
License and any other pertinent obligations, then as a consequence you
|
204 |
+
may not distribute the Program at all. For example, if a patent
|
205 |
+
license would not permit royalty-free redistribution of the Program by
|
206 |
+
all those who receive copies directly or indirectly through you, then
|
207 |
+
the only way you could satisfy both it and this License would be to
|
208 |
+
refrain entirely from distribution of the Program.
|
209 |
+
|
210 |
+
If any portion of this section is held invalid or unenforceable under
|
211 |
+
any particular circumstance, the balance of the section is intended to
|
212 |
+
apply and the section as a whole is intended to apply in other
|
213 |
+
circumstances.
|
214 |
+
|
215 |
+
It is not the purpose of this section to induce you to infringe any
|
216 |
+
patents or other property right claims or to contest validity of any
|
217 |
+
such claims; this section has the sole purpose of protecting the
|
218 |
+
integrity of the free software distribution system, which is
|
219 |
+
implemented by public license practices. Many people have made
|
220 |
+
generous contributions to the wide range of software distributed
|
221 |
+
through that system in reliance on consistent application of that
|
222 |
+
system; it is up to the author/donor to decide if he or she is willing
|
223 |
+
to distribute software through any other system and a licensee cannot
|
224 |
+
impose that choice.
|
225 |
+
|
226 |
+
This section is intended to make thoroughly clear what is believed to
|
227 |
+
be a consequence of the rest of this License.
|
228 |
+
|
229 |
+
8. If the distribution and/or use of the Program is restricted in
|
230 |
+
certain countries either by patents or by copyrighted interfaces, the
|
231 |
+
original copyright holder who places the Program under this License
|
232 |
+
may add an explicit geographical distribution limitation excluding
|
233 |
+
those countries, so that distribution is permitted only in or among
|
234 |
+
countries not thus excluded. In such case, this License incorporates
|
235 |
+
the limitation as if written in the body of this License.
|
236 |
+
|
237 |
+
9. The Free Software Foundation may publish revised and/or new versions
|
238 |
+
of the General Public License from time to time. Such new versions will
|
239 |
+
be similar in spirit to the present version, but may differ in detail to
|
240 |
+
address new problems or concerns.
|
241 |
+
|
242 |
+
Each version is given a distinguishing version number. If the Program
|
243 |
+
specifies a version number of this License which applies to it and "any
|
244 |
+
later version", you have the option of following the terms and conditions
|
245 |
+
either of that version or of any later version published by the Free
|
246 |
+
Software Foundation. If the Program does not specify a version number of
|
247 |
+
this License, you may choose any version ever published by the Free Software
|
248 |
+
Foundation.
|
249 |
+
|
250 |
+
10. If you wish to incorporate parts of the Program into other free
|
251 |
+
programs whose distribution conditions are different, write to the author
|
252 |
+
to ask for permission. For software which is copyrighted by the Free
|
253 |
+
Software Foundation, write to the Free Software Foundation; we sometimes
|
254 |
+
make exceptions for this. Our decision will be guided by the two goals
|
255 |
+
of preserving the free status of all derivatives of our free software and
|
256 |
+
of promoting the sharing and reuse of software generally.
|
257 |
+
|
258 |
+
NO WARRANTY
|
259 |
+
|
260 |
+
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
261 |
+
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
262 |
+
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
263 |
+
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
264 |
+
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
265 |
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
266 |
+
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
267 |
+
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
268 |
+
REPAIR OR CORRECTION.
|
269 |
+
|
270 |
+
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
271 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
272 |
+
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
273 |
+
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
274 |
+
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
275 |
+
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
276 |
+
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
277 |
+
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
278 |
+
POSSIBILITY OF SUCH DAMAGES.
|
279 |
+
|
280 |
+
END OF TERMS AND CONDITIONS
|
281 |
+
|
282 |
+
How to Apply These Terms to Your New Programs
|
283 |
+
|
284 |
+
If you develop a new program, and you want it to be of the greatest
|
285 |
+
possible use to the public, the best way to achieve this is to make it
|
286 |
+
free software which everyone can redistribute and change under these terms.
|
287 |
+
|
288 |
+
To do so, attach the following notices to the program. It is safest
|
289 |
+
to attach them to the start of each source file to most effectively
|
290 |
+
convey the exclusion of warranty; and each file should have at least
|
291 |
+
the "copyright" line and a pointer to where the full notice is found.
|
292 |
+
|
293 |
+
{description}
|
294 |
+
Copyright (C) {year} {fullname}
|
295 |
+
|
296 |
+
This program is free software; you can redistribute it and/or modify
|
297 |
+
it under the terms of the GNU General Public License as published by
|
298 |
+
the Free Software Foundation; either version 2 of the License, or
|
299 |
+
(at your option) any later version.
|
300 |
+
|
301 |
+
This program is distributed in the hope that it will be useful,
|
302 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
303 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
304 |
+
GNU General Public License for more details.
|
305 |
+
|
306 |
+
You should have received a copy of the GNU General Public License along
|
307 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
308 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
309 |
+
|
310 |
+
Also add information on how to contact you by electronic and paper mail.
|
311 |
+
|
312 |
+
If the program is interactive, make it output a short notice like this
|
313 |
+
when it starts in an interactive mode:
|
314 |
+
|
315 |
+
Gnomovision version 69, Copyright (C) year name of author
|
316 |
+
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
317 |
+
This is free software, and you are welcome to redistribute it
|
318 |
+
under certain conditions; type `show c' for details.
|
319 |
+
|
320 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
321 |
+
parts of the General Public License. Of course, the commands you use may
|
322 |
+
be called something other than `show w' and `show c'; they could even be
|
323 |
+
mouse-clicks or menu items--whatever suits your program.
|
324 |
+
|
325 |
+
You should also get your employer (if you work as a programmer) or your
|
326 |
+
school, if any, to sign a "copyright disclaimer" for the program, if
|
327 |
+
necessary. Here is a sample; alter the names:
|
328 |
+
|
329 |
+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
330 |
+
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
331 |
+
|
332 |
+
{signature of Ty Coon}, 1 April 1989
|
333 |
+
Ty Coon, President of Vice
|
334 |
+
|
335 |
+
This General Public License does not permit incorporating your program into
|
336 |
+
proprietary programs. If your program is a subroutine library, you may
|
337 |
+
consider it more useful to permit linking proprietary applications with the
|
338 |
+
library. If this is what you want to do, use the GNU Lesser General
|
339 |
+
Public License instead of this License.
|
340 |
+
|
README.md
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# [Mashshare](https://www.mashshare.net)
|
2 |
+
|
3 |
+
### Welcome to the Mashshare GitHub Repository
|
4 |
+
|
5 |
+
Social sharing optimization is essential for every website that aims to be succesfull regarding traffic and social interaction.
|
6 |
+
Mashshare aspires to give you all the necessary tools for best possible sharing interaction out of your content from one source. It´s not only a set of big prominent fast loading share buttons, it optimizes your content in the background with open graph tags and optimizes all your contest in the best way to get the maximum amount of shares.
|
7 |
+
|
8 |
+
More information can be found at [mashshare.net](https://www.mashshare.net/).
|
9 |
+
|
10 |
+
## Note ##
|
11 |
+
|
12 |
+
This is the latest developer version of Mashshare.
|
13 |
+
if you just want to use Mashshare install the productive version which you get at [wordpress.org](http://wordpress.org/plugins/mashsharer/)
|
14 |
+
|
15 |
+
## Installation ##
|
16 |
+
|
17 |
+
For detailed setup instructions, visit the official [Documentation](http://www.mashshare.net/documentation/) page.
|
18 |
+
|
19 |
+
1. You can clone the GitHub repository: `https://github.com/mashshare/Mashshare.git`
|
20 |
+
2. Or download it directly as a ZIP file: `https://github.com/mashshare/Mashshare/archive/master.zip`
|
21 |
+
|
22 |
+
This will download the latest developer copy of Mashshare.
|
23 |
+
|
24 |
+
## Bugs ##
|
25 |
+
If you find an issue, let us know [here](https://github.com/mashshare/Mashshare/issues?state=open)!
|
26 |
+
|
27 |
+
## Support ##
|
28 |
+
This is a developer's portal for Mashshare and should _not_ be used for support.
|
29 |
+
Please visit the [support forums](https://www.mashshare.net/support).
|
30 |
+
|
31 |
+
## Contributions ##
|
32 |
+
Anyone is welcome to contribute to Mashshare. Please read the [guidelines for contributing](https://github.com/mashshare/Mashshare/blob/master/CONTRIBUTING.md) to this repository.
|
33 |
+
|
34 |
+
There are various ways you can contribute:
|
35 |
+
|
36 |
+
1. Raise an [Issue](https://github.com/mashshare/Mashshare/issues) on GitHub
|
37 |
+
2. Send us a Pull Request with your bug fixes and/or new features
|
38 |
+
3. Translate Mashshare into different languages
|
39 |
+
4. Provide feedback and suggestions on [enhancements](https://github.com/mashshare/Mashshare/issues?direction=desc&labels=Enhancement&page=1&sort=created&state=open)
|
assets/css/chosen-sprite.png
ADDED
Binary file
|
assets/css/chosen-sprite@2x.png
ADDED
Binary file
|
assets/css/chosen.css
ADDED
@@ -0,0 +1,430 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* @group Base */
|
2 |
+
.chosen-container {
|
3 |
+
position: relative;
|
4 |
+
display: inline-block;
|
5 |
+
vertical-align: middle;
|
6 |
+
font-size: 13px;
|
7 |
+
zoom: 1;
|
8 |
+
*display: inline;
|
9 |
+
-webkit-user-select: none;
|
10 |
+
-moz-user-select: none;
|
11 |
+
user-select: none;
|
12 |
+
}
|
13 |
+
.chosen-container .chosen-drop {
|
14 |
+
position: absolute;
|
15 |
+
top: 100%;
|
16 |
+
left: -9999px;
|
17 |
+
z-index: 1010;
|
18 |
+
-webkit-box-sizing: border-box;
|
19 |
+
-moz-box-sizing: border-box;
|
20 |
+
box-sizing: border-box;
|
21 |
+
width: 100%;
|
22 |
+
border: 1px solid #aaa;
|
23 |
+
border-top: 0;
|
24 |
+
background: #fff;
|
25 |
+
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
|
26 |
+
}
|
27 |
+
.chosen-container.chosen-with-drop .chosen-drop {
|
28 |
+
left: 0;
|
29 |
+
}
|
30 |
+
.chosen-container a {
|
31 |
+
cursor: pointer;
|
32 |
+
}
|
33 |
+
|
34 |
+
/* @end */
|
35 |
+
/* @group Single Chosen */
|
36 |
+
.chosen-container-single .chosen-single {
|
37 |
+
position: relative;
|
38 |
+
display: block;
|
39 |
+
overflow: hidden;
|
40 |
+
padding: 0 0 0 8px;
|
41 |
+
height: 23px;
|
42 |
+
border: 1px solid #aaa;
|
43 |
+
border-radius: 5px;
|
44 |
+
background-color: #fff;
|
45 |
+
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
|
46 |
+
background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
47 |
+
background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
48 |
+
background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
49 |
+
background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
50 |
+
background-clip: padding-box;
|
51 |
+
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
|
52 |
+
color: #444;
|
53 |
+
text-decoration: none;
|
54 |
+
white-space: nowrap;
|
55 |
+
line-height: 24px;
|
56 |
+
}
|
57 |
+
.chosen-container-single .chosen-default {
|
58 |
+
color: #999;
|
59 |
+
}
|
60 |
+
.chosen-container-single .chosen-single span {
|
61 |
+
display: block;
|
62 |
+
overflow: hidden;
|
63 |
+
margin-right: 26px;
|
64 |
+
text-overflow: ellipsis;
|
65 |
+
white-space: nowrap;
|
66 |
+
}
|
67 |
+
.chosen-container-single .chosen-single-with-deselect span {
|
68 |
+
margin-right: 38px;
|
69 |
+
}
|
70 |
+
.chosen-container-single .chosen-single abbr {
|
71 |
+
position: absolute;
|
72 |
+
top: 6px;
|
73 |
+
right: 26px;
|
74 |
+
display: block;
|
75 |
+
width: 12px;
|
76 |
+
height: 12px;
|
77 |
+
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
78 |
+
font-size: 1px;
|
79 |
+
}
|
80 |
+
.chosen-container-single .chosen-single abbr:hover {
|
81 |
+
background-position: -42px -10px;
|
82 |
+
}
|
83 |
+
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
|
84 |
+
background-position: -42px -10px;
|
85 |
+
}
|
86 |
+
.chosen-container-single .chosen-single div {
|
87 |
+
position: absolute;
|
88 |
+
top: 0;
|
89 |
+
right: 0;
|
90 |
+
display: block;
|
91 |
+
width: 18px;
|
92 |
+
height: 100%;
|
93 |
+
}
|
94 |
+
.chosen-container-single .chosen-single div b {
|
95 |
+
display: block;
|
96 |
+
width: 100%;
|
97 |
+
height: 100%;
|
98 |
+
background: url('chosen-sprite.png') no-repeat 0px 2px;
|
99 |
+
}
|
100 |
+
.chosen-container-single .chosen-search {
|
101 |
+
position: relative;
|
102 |
+
z-index: 1010;
|
103 |
+
margin: 0;
|
104 |
+
padding: 3px 4px;
|
105 |
+
white-space: nowrap;
|
106 |
+
}
|
107 |
+
.chosen-container-single .chosen-search input[type="text"] {
|
108 |
+
-webkit-box-sizing: border-box;
|
109 |
+
-moz-box-sizing: border-box;
|
110 |
+
box-sizing: border-box;
|
111 |
+
margin: 1px 0;
|
112 |
+
padding: 4px 20px 4px 5px;
|
113 |
+
width: 100%;
|
114 |
+
height: auto;
|
115 |
+
outline: 0;
|
116 |
+
border: 1px solid #aaa;
|
117 |
+
background: white url('chosen-sprite.png') no-repeat 100% -20px;
|
118 |
+
background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
119 |
+
background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
120 |
+
background: url('chosen-sprite.png') no-repeat 100% -20px, -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
121 |
+
background: url('chosen-sprite.png') no-repeat 100% -20px, -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
122 |
+
background: url('chosen-sprite.png') no-repeat 100% -20px, linear-gradient(#eeeeee 1%, #ffffff 15%);
|
123 |
+
font-size: 1em;
|
124 |
+
font-family: sans-serif;
|
125 |
+
line-height: normal;
|
126 |
+
border-radius: 0;
|
127 |
+
}
|
128 |
+
.chosen-container-single .chosen-drop {
|
129 |
+
margin-top: -1px;
|
130 |
+
border-radius: 0 0 4px 4px;
|
131 |
+
background-clip: padding-box;
|
132 |
+
}
|
133 |
+
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
|
134 |
+
position: absolute;
|
135 |
+
left: -9999px;
|
136 |
+
}
|
137 |
+
|
138 |
+
/* @end */
|
139 |
+
/* @group Results */
|
140 |
+
.chosen-container .chosen-results {
|
141 |
+
position: relative;
|
142 |
+
overflow-x: hidden;
|
143 |
+
overflow-y: auto;
|
144 |
+
margin: 0 4px 4px 0;
|
145 |
+
padding: 0 0 0 4px;
|
146 |
+
max-height: 240px;
|
147 |
+
-webkit-overflow-scrolling: touch;
|
148 |
+
}
|
149 |
+
.chosen-container .chosen-results li {
|
150 |
+
display: none;
|
151 |
+
margin: 0;
|
152 |
+
padding: 5px 6px;
|
153 |
+
list-style: none;
|
154 |
+
line-height: 15px;
|
155 |
+
}
|
156 |
+
.chosen-container .chosen-results li.active-result {
|
157 |
+
display: list-item;
|
158 |
+
cursor: pointer;
|
159 |
+
}
|
160 |
+
.chosen-container .chosen-results li.disabled-result {
|
161 |
+
display: list-item;
|
162 |
+
color: #ccc;
|
163 |
+
cursor: default;
|
164 |
+
}
|
165 |
+
.chosen-container .chosen-results li.highlighted {
|
166 |
+
background-color: #3875d7;
|
167 |
+
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
|
168 |
+
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
169 |
+
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
170 |
+
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
171 |
+
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
|
172 |
+
color: #fff;
|
173 |
+
}
|
174 |
+
.chosen-container .chosen-results li.no-results {
|
175 |
+
display: list-item;
|
176 |
+
background: #f4f4f4;
|
177 |
+
}
|
178 |
+
.chosen-container .chosen-results li.group-result {
|
179 |
+
display: list-item;
|
180 |
+
font-weight: bold;
|
181 |
+
cursor: default;
|
182 |
+
}
|
183 |
+
.chosen-container .chosen-results li.group-option {
|
184 |
+
padding-left: 15px;
|
185 |
+
}
|
186 |
+
.chosen-container .chosen-results li em {
|
187 |
+
font-style: normal;
|
188 |
+
text-decoration: underline;
|
189 |
+
}
|
190 |
+
|
191 |
+
/* @end */
|
192 |
+
/* @group Multi Chosen */
|
193 |
+
.chosen-container-multi .chosen-choices {
|
194 |
+
position: relative;
|
195 |
+
overflow: hidden;
|
196 |
+
-webkit-box-sizing: border-box;
|
197 |
+
-moz-box-sizing: border-box;
|
198 |
+
box-sizing: border-box;
|
199 |
+
margin: 0;
|
200 |
+
padding: 0;
|
201 |
+
width: 100%;
|
202 |
+
height: auto !important;
|
203 |
+
height: 1%;
|
204 |
+
border: 1px solid #aaa;
|
205 |
+
background-color: #fff;
|
206 |
+
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
207 |
+
background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
208 |
+
background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
209 |
+
background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
210 |
+
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
|
211 |
+
cursor: text;
|
212 |
+
}
|
213 |
+
.chosen-container-multi .chosen-choices li {
|
214 |
+
float: left;
|
215 |
+
list-style: none;
|
216 |
+
}
|
217 |
+
.chosen-container-multi .chosen-choices li.search-field {
|
218 |
+
margin: 0;
|
219 |
+
padding: 0;
|
220 |
+
white-space: nowrap;
|
221 |
+
}
|
222 |
+
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
|
223 |
+
margin: 1px 0;
|
224 |
+
padding: 5px;
|
225 |
+
height: 15px;
|
226 |
+
outline: 0;
|
227 |
+
border: 0 !important;
|
228 |
+
background: transparent !important;
|
229 |
+
box-shadow: none;
|
230 |
+
color: #666;
|
231 |
+
font-size: 100%;
|
232 |
+
font-family: sans-serif;
|
233 |
+
line-height: normal;
|
234 |
+
border-radius: 0;
|
235 |
+
}
|
236 |
+
.chosen-container-multi .chosen-choices li.search-field .default {
|
237 |
+
color: #999;
|
238 |
+
}
|
239 |
+
.chosen-container-multi .chosen-choices li.search-choice {
|
240 |
+
position: relative;
|
241 |
+
margin: 3px 0 3px 5px;
|
242 |
+
padding: 3px 20px 3px 5px;
|
243 |
+
border: 1px solid #aaa;
|
244 |
+
border-radius: 3px;
|
245 |
+
background-color: #e4e4e4;
|
246 |
+
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
247 |
+
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
248 |
+
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
249 |
+
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
250 |
+
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
251 |
+
background-clip: padding-box;
|
252 |
+
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
|
253 |
+
color: #333;
|
254 |
+
line-height: 13px;
|
255 |
+
cursor: default;
|
256 |
+
}
|
257 |
+
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
|
258 |
+
position: absolute;
|
259 |
+
top: 4px;
|
260 |
+
right: 3px;
|
261 |
+
display: block;
|
262 |
+
width: 12px;
|
263 |
+
height: 12px;
|
264 |
+
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
265 |
+
font-size: 1px;
|
266 |
+
}
|
267 |
+
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
|
268 |
+
background-position: -42px -10px;
|
269 |
+
}
|
270 |
+
.chosen-container-multi .chosen-choices li.search-choice-disabled {
|
271 |
+
padding-right: 5px;
|
272 |
+
border: 1px solid #ccc;
|
273 |
+
background-color: #e4e4e4;
|
274 |
+
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
275 |
+
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
276 |
+
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
277 |
+
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
278 |
+
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
279 |
+
color: #666;
|
280 |
+
}
|
281 |
+
.chosen-container-multi .chosen-choices li.search-choice-focus {
|
282 |
+
background: #d4d4d4;
|
283 |
+
}
|
284 |
+
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
|
285 |
+
background-position: -42px -10px;
|
286 |
+
}
|
287 |
+
.chosen-container-multi .chosen-results {
|
288 |
+
margin: 0;
|
289 |
+
padding: 0;
|
290 |
+
}
|
291 |
+
.chosen-container-multi .chosen-drop .result-selected {
|
292 |
+
display: list-item;
|
293 |
+
color: #ccc;
|
294 |
+
cursor: default;
|
295 |
+
}
|
296 |
+
|
297 |
+
/* @end */
|
298 |
+
/* @group Active */
|
299 |
+
.chosen-container-active .chosen-single {
|
300 |
+
border: 1px solid #5897fb;
|
301 |
+
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
302 |
+
}
|
303 |
+
.chosen-container-active.chosen-with-drop .chosen-single {
|
304 |
+
border: 1px solid #aaa;
|
305 |
+
-moz-border-radius-bottomright: 0;
|
306 |
+
border-bottom-right-radius: 0;
|
307 |
+
-moz-border-radius-bottomleft: 0;
|
308 |
+
border-bottom-left-radius: 0;
|
309 |
+
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
|
310 |
+
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
311 |
+
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
312 |
+
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
313 |
+
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
|
314 |
+
box-shadow: 0 1px 0 #fff inset;
|
315 |
+
}
|
316 |
+
.chosen-container-active.chosen-with-drop .chosen-single div {
|
317 |
+
border-left: none;
|
318 |
+
background: transparent;
|
319 |
+
}
|
320 |
+
.chosen-container-active.chosen-with-drop .chosen-single div b {
|
321 |
+
background-position: -18px 2px;
|
322 |
+
}
|
323 |
+
.chosen-container-active .chosen-choices {
|
324 |
+
border: 1px solid #5897fb;
|
325 |
+
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
326 |
+
}
|
327 |
+
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
|
328 |
+
color: #111 !important;
|
329 |
+
}
|
330 |
+
|
331 |
+
/* @end */
|
332 |
+
/* @group Disabled Support */
|
333 |
+
.chosen-disabled {
|
334 |
+
opacity: 0.5 !important;
|
335 |
+
cursor: default;
|
336 |
+
}
|
337 |
+
.chosen-disabled .chosen-single {
|
338 |
+
cursor: default;
|
339 |
+
}
|
340 |
+
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
|
341 |
+
cursor: default;
|
342 |
+
}
|
343 |
+
|
344 |
+
/* @end */
|
345 |
+
/* @group Right to Left */
|
346 |
+
.chosen-rtl {
|
347 |
+
text-align: right;
|
348 |
+
}
|
349 |
+
.chosen-rtl .chosen-single {
|
350 |
+
overflow: visible;
|
351 |
+
padding: 0 8px 0 0;
|
352 |
+
}
|
353 |
+
.chosen-rtl .chosen-single span {
|
354 |
+
margin-right: 0;
|
355 |
+
margin-left: 26px;
|
356 |
+
direction: rtl;
|
357 |
+
}
|
358 |
+
.chosen-rtl .chosen-single-with-deselect span {
|
359 |
+
margin-left: 38px;
|
360 |
+
}
|
361 |
+
.chosen-rtl .chosen-single div {
|
362 |
+
right: auto;
|
363 |
+
left: 3px;
|
364 |
+
}
|
365 |
+
.chosen-rtl .chosen-single abbr {
|
366 |
+
right: auto;
|
367 |
+
left: 26px;
|
368 |
+
}
|
369 |
+
.chosen-rtl .chosen-choices li {
|
370 |
+
float: right;
|
371 |
+
}
|
372 |
+
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
|
373 |
+
direction: rtl;
|
374 |
+
}
|
375 |
+
.chosen-rtl .chosen-choices li.search-choice {
|
376 |
+
margin: 3px 5px 3px 0;
|
377 |
+
padding: 3px 5px 3px 19px;
|
378 |
+
}
|
379 |
+
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
|
380 |
+
right: auto;
|
381 |
+
left: 4px;
|
382 |
+
}
|
383 |
+
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
|
384 |
+
.chosen-rtl .chosen-drop {
|
385 |
+
left: 9999px;
|
386 |
+
}
|
387 |
+
.chosen-rtl.chosen-container-single .chosen-results {
|
388 |
+
margin: 0 0 4px 4px;
|
389 |
+
padding: 0 4px 0 0;
|
390 |
+
}
|
391 |
+
.chosen-rtl .chosen-results li.group-option {
|
392 |
+
padding-right: 15px;
|
393 |
+
padding-left: 0;
|
394 |
+
}
|
395 |
+
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
|
396 |
+
border-right: none;
|
397 |
+
}
|
398 |
+
.chosen-rtl .chosen-search input[type="text"] {
|
399 |
+
padding: 4px 5px 4px 20px;
|
400 |
+
background: white url('chosen-sprite.png') no-repeat -30px -20px;
|
401 |
+
background: url('chosen-sprite.png') no-repeat -30px -20px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
402 |
+
background: url('chosen-sprite.png') no-repeat -30px -20px, -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
403 |
+
background: url('chosen-sprite.png') no-repeat -30px -20px, -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
404 |
+
background: url('chosen-sprite.png') no-repeat -30px -20px, -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
405 |
+
background: url('chosen-sprite.png') no-repeat -30px -20px, linear-gradient(#eeeeee 1%, #ffffff 15%);
|
406 |
+
direction: rtl;
|
407 |
+
}
|
408 |
+
.chosen-rtl.chosen-container-single .chosen-single div b {
|
409 |
+
background-position: 6px 2px;
|
410 |
+
}
|
411 |
+
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
|
412 |
+
background-position: -12px 2px;
|
413 |
+
}
|
414 |
+
|
415 |
+
/* @end */
|
416 |
+
/* @group Retina compatibility */
|
417 |
+
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
|
418 |
+
.chosen-rtl .chosen-search input[type="text"],
|
419 |
+
.chosen-container-single .chosen-single abbr,
|
420 |
+
.chosen-container-single .chosen-single div b,
|
421 |
+
.chosen-container-single .chosen-search input[type="text"],
|
422 |
+
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
|
423 |
+
.chosen-container .chosen-results-scroll-down span,
|
424 |
+
.chosen-container .chosen-results-scroll-up span {
|
425 |
+
background-image: url('chosen-sprite@2x.png') !important;
|
426 |
+
background-size: 52px 37px !important;
|
427 |
+
background-repeat: no-repeat !important;
|
428 |
+
}
|
429 |
+
}
|
430 |
+
/* @end */
|
assets/css/chosen.min.css
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/* Chosen v1.0.0 | (c) 2011-2013 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;*display:inline;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:23px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(chosen-sprite.png) no-repeat 100% -20px;background:url(chosen-sprite.png) no-repeat 100% -20px,-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background:url(chosen-sprite.png) no-repeat 100% -20px,-webkit-linear-gradient(#eee 1%,#fff 15%);background:url(chosen-sprite.png) no-repeat 100% -20px,-moz-linear-gradient(#eee 1%,#fff 15%);background:url(chosen-sprite.png) no-repeat 100% -20px,-o-linear-gradient(#eee 1%,#fff 15%);background:url(chosen-sprite.png) no-repeat 100% -20px,linear-gradient(#eee 1%,#fff 15%);font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:5px;height:15px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#666;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 0 3px 5px;padding:3px 20px 3px 5px;border:1px solid #aaa;border-radius:3px;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(chosen-sprite.png) no-repeat -30px -20px;background:url(chosen-sprite.png) no-repeat -30px -20px,-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background:url(chosen-sprite.png) no-repeat -30px -20px,-webkit-linear-gradient(#eee 1%,#fff 15%);background:url(chosen-sprite.png) no-repeat -30px -20px,-moz-linear-gradient(#eee 1%,#fff 15%);background:url(chosen-sprite.png) no-repeat -30px -20px,-o-linear-gradient(#eee 1%,#fff 15%);background:url(chosen-sprite.png) no-repeat -30px -20px,linear-gradient(#eee 1%,#fff 15%);direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
|
assets/css/mashsb-admin.css
ADDED
@@ -0,0 +1,1183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* MASHSB Admin CSS
|
3 |
+
*
|
4 |
+
* @package MASHSB
|
5 |
+
* @subpackage Admin CSS
|
6 |
+
* @copyright Copyright (c) 2014, René Hermenau
|
7 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
8 |
+
*/
|
9 |
+
|
10 |
+
/* jQuery Drag n drop */
|
11 |
+
#mashsb_network_list tr, .mashsb_list_item td {
|
12 |
+
cursor:move;
|
13 |
+
}
|
14 |
+
|
15 |
+
#mashsb_network_list td {
|
16 |
+
padding: 5px 10px;
|
17 |
+
/*line-height: 1px;*/
|
18 |
+
}
|
19 |
+
|
20 |
+
/* Optimized services screen on responsive layout */
|
21 |
+
@media screen and (max-width: 783px) {
|
22 |
+
#mashsb_network_list td {
|
23 |
+
display: inline-block;
|
24 |
+
width: auto;
|
25 |
+
vertical-align: middle;
|
26 |
+
min-width: 110px;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
/* Input forms */
|
31 |
+
.mashsb-textarea{
|
32 |
+
font-size:11px;
|
33 |
+
}
|
34 |
+
.mashsb-richeditor{
|
35 |
+
font-size:11px;
|
36 |
+
}
|
37 |
+
|
38 |
+
/*@font-face {
|
39 |
+
font-family: 'mashsb-font';
|
40 |
+
src: url('data:application/octet-stream;base64,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') format('woff'),
|
41 |
+
url('data:application/octet-stream;base64,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') format('truetype');
|
42 |
+
}*/
|
43 |
+
|
44 |
+
|
45 |
+
@font-face {
|
46 |
+
font-family: 'mashsb-font';
|
47 |
+
src: url('data:application/octet-stream;base64,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') format('woff'),
|
48 |
+
url('data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk9TLzI+J0mTAAABQAAAAFZjbWFw8LPuxQAAAZgAAAMiY3Z0IAAAAAAAACzYAAAACmZwZ22IkJBZAAAs5AAAC3BnYXNwAAAAEAAALNAAAAAIZ2x5ZnsNUFIAAAS8AAAicmhlYWQKU1hvAAAnMAAAADZoaGVhCG0EqAAAJ2gAAAAkaG10eH/4//gAACeMAAAAhGxvY2F6RoMNAAAoEAAAAERtYXhwAMMMlgAAKFQAAAAgbmFtZbK+JD8AACh0AAAC8XBvc3SITjDCAAAraAAAAWdwcmVw3WsDhQAAOFQAAAB7AAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQPhAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADoHwNS/2oAWgNWAJ0AAAABAAAAAAAAAAAABQAAAAMAAAAsAAAABAAAAZIAAQAAAAAAjAADAAEAAAAsAAMACgAAAZIABABgAAAABAAEAAEAAOgf//8AAOgA//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAZAAAAAAAAAAIAAA6AAAAOgAAAAAAQAA6AEAAOgBAAAAAgAA6AIAAOgCAAAAAwAA6AMAAOgDAAAABAAA6AQAAOgEAAAABQAA6AUAAOgFAAAABgAA6AYAAOgGAAAABwAA6AcAAOgHAAAACAAA6AgAAOgIAAAACQAA6AkAAOgJAAAACgAA6AoAAOgKAAAACwAA6AsAAOgLAAAADAAA6AwAAOgMAAAADQAA6A0AAOgNAAAADgAA6A4AAOgOAAAADwAA6A8AAOgPAAAAEAAA6BAAAOgQAAAAEQAA6BEAAOgRAAAAEgAA6BIAAOgSAAAAEwAA6BMAAOgTAAAAFAAA6BQAAOgUAAAAFQAA6BUAAOgVAAAAFgAA6BYAAOgWAAAAFwAA6BcAAOgXAAAAGAAA6BgAAOgYAAAAGQAA6BkAAOgZAAAAGgAA6BoAAOgaAAAAGwAA6BsAAOgbAAAAHAAA6BwAAOgcAAAAHQAA6B0AAOgdAAAAHgAA6B4AAOgeAAAAHwAA6B8AAOgfAAAAIAAAAAEAAP+xAhcDUgAUAAazEgoBLSsBFSMiBh0BMwcjESMRIzUzNTQ2MzICF1cwIqQWjquOjnRhUgNLkygoaqX+WAGopXpocgAAAAMAAP9pAoYDUgAmAD4AUgAKt0xCOSkjDwMtKzU0NjsBJjU0NwYjIiY1NDYzIQcjHgEHFAcOARUUFhceAQcUBiciJjcUFjcyNic0Jy4BLwEmLwEmJyYrASIHBhMeARczMjc2NTQnLgEnIyIHBhUUsn42KhAKE2iEpGkBNkViLzYBWCUWNhs9MAGkjIW4cHZWd2wBBAMICA4GDS4RCScmBFdCREILZDsEOCIbAgpiPQQ5IhsgV4goLh0dAYJfW4gyEmQ9XUUdIhkTOhQrWkRahgFkc0ViAVhJEw0LFAkQBwkhDAUMLzAB7U9yATQqORAST24CMyk5EAAAAQAA/2oD6ANSAEgABrMJAwEtKxE2ADcWABcGAAciJzY3Njc2NxYXFjc2NzYmJyYEBw4BHgEXFj4BLwEmNjc+ARceAQYHBgcuATc+ATcmJw4BBxYXBgcOAQcVLgEEASTM2wEWAwT+3MxGRw4ODxgGCw4hWGJlJyRYco7+8jQOBgwuKAkOEAIIKRwuSMJEJRYWGzFCJzILAygCBj8xLgMGDBUMBCQBi6ABXtUBHgEE/t7O0/7iAxUWGyJbGisYEykxOnuB3DIpZHktWFRCEgQINgsNQ5IzQAw7KnpuMkwCAjgmFX4fSgIGTDE5FVg1DowlN0D2AAQAAP9qA+gDUgADABAAFAAsAA1ACiQVExEOBwEABC0rFREhEQEeARczPgEnLgEnIgYTMxEjEzM1NDc2MxYdATM1JicmJwYHBgc1IxYVA+j8vAIuHgIjMAECLiAjLgeQkOGQBBsvSJECLS9INSEVFpABlgPo/BgC2SIoAwIsHyEoASz9qQGy/k7yGAw0Al/p+GIzLwICGA8gPRI0AAgAAAAABGICqAALABMAGwAjADEAOQBHAE8AFUASTEhFQTYyKiYeHBYUEAwGAAgtKzURNDsBNTQ7AREUIyczMj0BIyIVExE0OwERFCMDNTQ7ARUUIxMRNDMhERQjITc0OwE1JzMyPQEjIhUTNDsBNSMRNDMhERQjITczMj0BIyIVDbANYgyzQw1DDeENYgxjDGMMMg0BIA3+4AEMsE9DDEMM5Q2wvQ0BHwz+4G1DDUMNmAF0DYEO/f4OUw7ODv7fAXQN/o0OAb1FDkUO/kMBdA3+CA1FDjFTDs4O/qAOMQF0Df4IDdcOzg4AAAAACAAA/2oEtQNSAEkAUwBtAHcAhACPAJgAogAVQBKgnJaSjIeCeHVwaFpQTDsRCC0rETQ2MhczNjM3ExcUMic+ATc2MhYOAQciJjUGJicjBg8BBgcVFzIWHwE2Mjc+AjMyFhUUBgcUBQYHDgEjIicmJy4BJyMmLwEuATcUFz4BNyYjIgYXFB4CFxYzMjY3Iz4BNTQuAicmIyIOAhc0Nh4BBxQGIiYXMx4BFzI2NzMOASImJTQ2MzIWFAYjIiYTFBYyNjQmIgYTHgEXNjU0JiMiZHwrBYbJBUbyAwECFAQiYUQCQDM5PAK+DwMCDh4QAgVImDYDAQIBGRYkGURgNCz+/CkPIHYieG8CRl9yAQUhGgkPCCI5BVY6JS0xSmU+Ymo0S0d73EsDHho0WGA0VWBKmpJcui5INAEySiwjLBluODpoICkZiJKKATcuJiIwMCIlLv4yRy4wRDINN1AQO0Y6LQFhPlgkUgQBCyQBAQEeAyBAZEQBTjkBHAMCM206BgMEKCYCAQESDgxgRS9OFcNsEgUKEiMCJDOCWxEhDBsmE0IuO3IsGlDFNmRGMgkOTlQmPik2YkY0DBckSH4IJS4CKickMDCALS4BMCw+REbgJiwwRDIwAfgjMjJFMDD+xSRwQCs1OlQAAAACAAD/aQUdA1MAHAAtAAi1KycaCwItKz0BMxUUHgE2JxE0Nh4BBxUHJzU0JiIGBxEUBi4BJTUXNxUUHgE2PQEzFRQGIibgKDoqAa7ssAKGWSg6KAGs8awC1FmGKDoo4Kr0qo+1sxwoAiocAad1pgKkd1woKlAdKCgd/l94qgGqeLcqKLgdKAIsG7u1eayqAAABAAD/aQTOA1IAMAAGsy4dAS0rFRYzMjcuAScWMzI3LgEnNRYXLgEnNDcWBBcmNTQ2MzIXNjcGBzY3BgcVFA4DJyIeHrCKUoIYFBsjIFhyATU+NDwBI14BEJoHlGltS1dJHFJJRzBNOnqo6ojRJQNsAWJMBAkRjFoDHgEicEBEO3WKCSEZaJRQEixbMQkfSzghZcq6kFYBAAIAAP/EBFkC+AARABsACLUZEw4DAi0rNRE0NwEWMjcBFhURFAYHISImEzYzITIXAQYiJwIBzCdvJwHMAjQk/FckND8NDAOpDA3+MQ0kDBwChAgK/jQnJwHMCQn9fCUyATQC/AQE/jEMDAAAAAEAAAAABMQCvACXAAazdioBLSsRPgE7ATIXFjMyNzYyFxYXHgMXFh8BHgU3Njc2NTQnLgInPgE7ATIfAhYHFhcUFxQHBhUGFRQXFhc+AT8BPgE3Nj8CNhQ3NjsBMhcWMzI/ATYeARcWFRQHDgIHDgMXFBYfARYfAR4BFRQHBiMiJyYjIgcjJicuAwcOAgcGIyInLgInJi8BLgIKHQsJCg4WCgYgEBoKFAwGDgoMBCY4BwUICgoMCgccAwEPBhIgBw5IPE8aARYUFAgJAgEDBAMCBBoJEAcLBBIBLy8JDAwPEBYJFBogDwkTIA0iEAYDIxEiOggCGAoOAgYHCgMKDEdRMxobFRYUERoTBkJJBBoSHA0XDgQIDUIcJk5+TCtoXRcECgYCjggIAQECAQECBgMUEiAGUlELCAgQBgoCAQVwExBKHAsOCgUcEgMGCQkFEhgHBxQgKgoXFxIULBEBBggMBBgCPmUXGhoMEwcCAgECAQQICQYHHTodLkYMAiAQHA0IDggMBAkLQWgXIQgEAwIFC1MEIhASAwQyRA8YBAhASDiFvTAIIBgAAAAABgAA/5IDrQMqABsAHwAoACwAMAA0ABFADjMxLy0rKSQgHRwXCQYtKwEyFhURFAYrARchNyMiJjURNDY7ATUzNSEVMxUlESERATI2NCYiBhQWEyEnIRcjNTMXIzUzA2IeLS0eTCL9TRtSIS0tIWAiAg8i/fIByf3GFyAhLCAgVQI3L/4c2IuLxouLAjQuIP6SHy6ZmS0gAW4hLXWBgXXH/twBJP57ICsgICsg/krygSMjIwAAAgAA/2oD8QNSAAMABwAItQUEAQACLSsVESERExEhEQH1CAH0lgH1/gsB8wH1/gsAAwAA/2oD0wNSADUAZgCNAAq3hWxdTCsVAy0rNT4CNzIeARcWFxY+ATM3Nj8BNjc2HgEfAR4CFxYXDgIHDgEHDgEPAQYiJyUmLwIuAhE+AjcyFh8CFhcWNj8BNjc+Ajc2HgEzHgMXDgIHBQ4DJyYnLgMnJhE+AjclMh4BHwEWFx4CFxYXDgIPAQYPAQYPAQYmIyUnLgEnJgsqOAwTHiQHL9UTIiwCTTkeKiYWDR4QDxIDGgoGAwEKKjwKK6osBxwJGhEUFP74BhozNh0iCQsqOgwTHhQZf1UqEyQVGURcCyoiExAgKgIFFg4HAQoqQAn+/gcmFCwO1i4GTD4+AwQKLDwLAVweMEAIdU4nBEIqBgMBCSI0CYxdLhQOCRkQFhH/AD87VgUEWA8WEgYIFgIVYgQIHCMaDRUTBQIGCAkLAggIBwQKDRYWBRRUEwMSBAsHAnsDCxYYDRYJARUPFBQFCAsOOicUBQoMDiAoBRgOBAMIGgMGCgsJDhYYBHwDFggMBmUVAyAcIAYEARUPGBQGog4mAzYkEwIaFgkECQ0SFARCLBcLCAQLBwJ3HBooCgQAAQAA/7ED6AMMABwABrMVAAEtKwUiJwEnLgM1NDY3Mh4CFz4DFzIWFAcBBgH0Dgv+pA8KKiIajn0iSD4uExQsQEYjfY6A/qUKTwoBUA8KNDpMJ3uKARgqIhUUJCgaAYz1gP6xCgAAAAAH////agTTA1IAJAA9AFQAagB4AKcAzgATQBC6ro6AdG5jWFBFNCghBQctKzU0NzY3NjMyFhUUBwYWPwE2MhcWFAcGHgEXHgEVFA4CByIuATcWFxYzMjc2NzY1NCcmJyYjIgcOAQcGFRQXJjU0NzY3NjMyFxYXFhQHBgcGIyInJjcWFxYyNzY3NjU0JyYnJiIHBgcGFRQ3FhcWMjc+AS4BBgcGFQEmNTQ3Njc2MzIXHgEXFhUUBxUGBwYjIicmJyY0NzU2NTQnLgEnJiMiBwYjIicmFyY1NDc+ATMyFxYXFhUUBwYHBiInJicmNDc2NTQnJiMiBwYjIicmuHV3OCktNQwEDgkKYJQgDxAHCgYLPlhSjNh5g+icfgpzXHUdH5lmXAEKc111HR5lpCwmoQ0SH0ktLhsbTCERDx9OLCwiIUkcBhgNGgwcDwoDBhgNGQ0bDguPAwoFCgQLCgYSFAYDAUEBCAoTIiIzMVN4EgcQBhELCwcIEwgFAgsEDVY7IyMYGQUFDgwQJAEGCSQSQzAdCQMIBQ8JEAYQCAQCBBUWIAoKBQQLCg6yobp0Lhc1Lh8pDgYCBCgqFj0oCg4EAxNWQDt6aEABTJwwZTwxAw9SS1oJCWQ8MQMKUjw1OAlHHR4jI0AgFAcUPiBCIUchEwsXUxkKBgQJGBAQBwgYCgUECRcQEQdJCQQCAgQSEgcGCgYGAmcFBQ0MEAUHDxuEVyMhMy8BEgkFAgYRCxIHASIkFxk+XhMKBQEIC4oFBQoLDgg1ISoREBgYEAcFAgUPCRAGDgwcFhoCAQcJAAAAAv/7/2QEcQNSACIARwAItUUsHQoCLSsTJjc+BDcyJDsBMh4BBx4DBh0BFAYHDgIuAicmNwYWHwEeAhcWMj4DFj8BPgM3LgEOBAcuAwcGAgcTBAoSChgFiAH0T5U3AlgLEBYKBgIuSUa+xMyohh0P4BpSPyclIjwbCxYSFAwUBAoDCWZGQgIPLjg4PjIwDRtcSEoSGQII1zcJDgoKCgMEBgYHCR4cNCAiMs/wXVhoFCpopGM02Rx6PygmHCoIAwIMAhYCDAMJXkRaHiggDiY6NjAJEFhMNAwPAAAAAAIAAP9qA6wDUgAFAAsACLUKBwMAAi0rNTMTJyMfAQEzARMj262C24K9AVro/qfe6JgBHuXlxAJg/aD+eAAAAAACAAD/ZgO/A1YAFgAqAAi1JhcDAAItKxURNDYzIQcGDwEOASMiPQEjIg4CBxEDPgQzMh0BMzI2JxE3ERQGI6quAiQ0LzVtOE4DDzA7RjgWAZwFYGhyTAMPMHRcAeCosCUCArPGNTA1bThKEJwMKEo7/vr+rAVganJIEJxIcQEG3/3+s8YAAAAABAAA/2kD6ANRAA8AGAA3AEAADUAKPjosGxYSCwMELSsBERQGIyEiJjURNDYzITIWBTQmIgYUFjI2FzQmByIHBiInJiMiBgcUFwcGFBY2PwEXFjI2Ji8BNgMUBiIuATYyFgPoNCT8yCQ0NCQDOCQ0/tl2rnZ2rnYWIhoPDUaLRRAMGSIBk3USJDATcHASMiQCEXWTjjBKLgQ2QjgC+fzIJDQ0JAM4JDQ0/Fd+fq5+fsAaJgEIJCQHJBtEHXkSNCYCEXR0EiQ2EXkeAVskNDRINDQAAAABAAD/agJoA1IAHgAGsxUFAS0rETU+AjczFTMVIxEUFhcWMzI3FQ4BIyInLgEnJjURPFI0CY/t7RIZIipNSj9pPEQ2N0YQDgG4jhREaEz9nf8AVjIPFDGdHxgREz4lIkcBXgAAAwAA/5oDuAMiABYALgB5AAq3cVojFxEJAy0rARQHBgcGIyInBzcmNTQ3Njc2MhcWFxYlIgcGBwYVFBYXBzcWMzI3Njc2NCcmJyYTJicmFycmJyYOBCcWJyYnJicmJyYnJjc2PwE2NzYHNicmJy4BIzIjJyIHBgcGFRQXJhcWFxYXFhcWFxYXFhcWPwE2Nz4BNzYDuDw7ZWd5c2P2UEA9O2Rn8mdlOzz+RGVXVTEzJSIvkF9uZVhUMjMzMlRYfAIFMyUmHwYICwoYCwoIARMRDhQTFRMNBwUDAQURAwMVEAMEBB4ECQQCCRUQDQ8IDywGEQwNExMZGh4fJxkWDgkJDRAZGgwCAQFqeGdkOjw3Tuxpe3hmZDo8PDpkZvozMVNXZDxvLootPTMxVFbJV1MxM/4oAwMbFBIPAgMBDx0LAgQBCQgJDBETGRINBwYEBRMEBSUcBwwHSQoIAQ4PDhsiMT4IGBEPFhMYERUMDwgHAQECAwEQECMQDgAAAAAEAAD/pAPiAxgAMwB1AJoAugANQAqmnJqMVzYNAwQtKwEGBwYnJicmJyY3Njc2FxYfARYXFhcWNzY1MhcWDgEHBicmJyYnJgcOAhcWFxY3Mj8BNhMiBi4BPwE2NzY3Ni8BJicmJyY3Njc2NzY3Njc2JyYvASY+ARcWFxYHBgcGBw4BBwYHBhcWFxYXHgEXFgcGBwYHBgEUDwEGBwYXFhcWFxYXHgEUBisBBgcGJyYnJicmNzY3NjcGNzYTNhceARcWBwYPAQYmJyYXJjc2BzYHNicmJyYnJicmJwH8HSIvMScdPAoQWThYOz03PDkjFxIJGhATBAIKBRkRDxUnKVg8YmAtPRUMFUgdJhAUIwlnAggEAQVkIhUKBgsGJBYMHAUGSxsyIBAaEx8NDAMDCAEBAQYEGAQIQRAYDh46LQ4QBQUCAQYIEQk0CBg/FRsUHxT+PgIERiofExZkNVZBhAwOAwIDQEA4IzEonjIbGiZPCyUDBgGndFkZDgECFwYFAwIFAQIBAQIGAgYBAgIBDR42EyImDwF6EgYKCQciQ0tvSi0PCwoJGhoQCAYBAxMWIwURMBwFAwIEEyoOFh8PQ1guUi0TAgMGAv4wAQEHAygPDgcHDBBXNCRUP10uERUOCA0PGCEeKSAkAwIDAgYrJkk+Dw4JDxwdEBMYExYQGCcvF3gaRikNCAcFAwI1AwMGZGlMUFsnFQsHDAIEBgIEAgEBAgcahUhUflELHgIEAf6eFAoDEBlPSxAHBAICAgkEDhQ8GzoLHBQOBw0GAgECAQAAAwAA/5oDuAMiADoATwBkAAq3WlBFOzEAAy0rAQYHBgcGBwYHBicmJyYnJicmPwEHBgcGBwYHJicmJyYvAR4BFRQHBgcGBwYPAR4BFxYzMjc+ATU0JyYlIgcGBwYUFxYXFjI3Njc2NCcmJyYDIicmJyY0NzY3NjIXFhcWFAcGBwYDCwECBAgLERUeIy4fFRIKCQMCAQEUGBUeExcGARQQHBMYEw8VDQ4WEhYQEA0cZ0ZIU2lTT1kUFP7Ee2lnOz4+O2dp9mlnOz4+O2dpe3BfXTc4ODddX+BfXTc4ODddXwJcDAweGyYaIg4RCwkUERgUFxEQDgoOEhkdJCkhIBoYEg8LEkAjJh8hGhUPCwcFS3QgITMwrWxAPTr4PjtnafZpZzs+PjtnafZpZzs+/KE4N11f4F9dNzg4N11f4F9dNzgAAAAAAwAA/7EDWgNSAAgAPgBuAAq3ZEstEwYDAy0rNzQuAQYUFj4BATQmJyM0Nic0JicOAgcGDwEOAg8BDgEnIxEzMh4EFxY7ATI1NCc+ATQnNjU0Jic+ATcUBxYVFAcWFRQHFAYrASImJyYrASImNRE0NjsBNjc2Nz4CNzYzMh4BFRQHMzIWjxYcFhYcFgKDLBzENgEiNw4OFBcNHg0LDhgKFgwUChISBxYOHAwcAnZJQ2sCEBQKHQoJEhhHGwUVASFgTkg2aEVBDKEdKiodmRQ5IBwNDBYYFhwvSigbYjpWZA8UAhgaGAIUAVAdKgEgciA3NAEPQkoYDSYRDhAgCRMKDAH+mwIGBggGAildDxAJKigSHCcNJAgBMhUyKRIUKyYMDDgrTloaFxcqHQFlHioNSSoeDkJMFhUkTkEzOFQAAAABAAD/sQNZAwsAJAAGswcAAS0rATIWFREUBgcjETM3IzU0Nj8BNSYjIgYXFSMVMxEhIiY1ETQ2NwK4Q15eQ2hvEH8aJkQjQUtcAXBw/tdDXl5DAwtgQf3oQl4BAUyCUx8eAQFzBVpRX4L+tGBBAhhCXgEAAAL//v+wA1kDCwANAGAACLVdVAoCAi0rATQmIyIOAhcUFjI+AQUUDgIrASIHIicmJw4BByImNzQ+ATMyFhc/ATQ2FzMyFxYHAwYVFBYXPgQ3NCYjIg4DHgI3Mjc2Mh8BFgYHDgEnIi4CPgMzMhYCHjo2I0Q2JAE8bFgyATkqQlIoCAUFNRoPAx1aM1pkAUp+SjBMFgEGBgJCAwQDAUMDDhIQIDIkGgHCo0mEYDgCPFyIR39jBg4FFwQCBTmMSlegcEgEQHiYW8DsAaI8RCI8XjU/REpwCj5gNh4BHhIcJTABbGBYlFYmJQsfAwgBBgMG/qkNDRYOAQEEGCBEKqPCOGCEkoRePAJQBQcbBw4FLjQBRHSerp50RO4AAAAABgAA/2oD6ANSAAMAIgAzAD8AWwB5ABFADnBoUkQ8NiojGgkCAAYtKxEhESEBNCcmJyYiBwYHBhUUHgEXFhcWDwIGNzY3Njc2NzYhIyImPQE0NjIWHQEzMhYUBjcUBiImPQE0NjIWFRcUBg8BIi8BFRQGIiY9ATQ2PwEyHwE1NDYyFhUXMhYUBisBFTMyFhQGKwEiJj0BNDY7ATIWFAYrARUD6PwYA2szMlVXzFdVMjNRkFkbBgMBAQUIKBc2PTZDJFD99koIDAwQCzcIDAxFCxAMDBALtAgGBgoGTAwQCwcGBgoGTAwQDHgIDAwINzcIDAwISggMDAhKCAwMCDcDUvwYAilTRkUpKSkpRUZTSoFVDAcMBgsRICURCiInKjMqVwwIlQgMDAiCCxAMFAgMDAiVCAwMCJUHCgIBCGhcCAwMCJUGCwIBCGhcCAwMCDcMEAsjDBAMDAiVCAwMEAwjAAQAAAAAA+UCngBYAJMBBgETABdBCgETAQwA8ADHAIkAZgAiABUABAAtKwEWNzYnJjc2NzQ3NhYXFgcGBw4BFxY3NicmNzY/ATYnJicmBwYHBiYnJicmBwYHBicmJyYHBhcWDwE2BwYVFBY3PgEnJhU0PwE2NzY3NhUUDwE2BwYVBhYXJRQVHgE3Njc2FhcWFxY3NicmPwE2NzY1NCYHBhcWDwEGBwYHBiMGNTQ/ATYHNjUuAQcOARcWDwE0BwYFJgcGBwYnBicmJyYXJicuATc2NzY3NicmBw4BFxYPAQYHBgcGJy4BJyY/ATY3NicuAScmBwYXFhcWNzY3PgEXFg8CBgcGFxYXFj8BNhYGMQcGBwYHBgcGBwYeATc2NzY3PgEXFh8BFhcWFxY3Njc2NSYFBgcGBwYmJzY3Njc2AxcPEgoDBAIQCQMWHQECAgYKAwkdGBQLAwQDBRIEAgIGHhYSFx0EBAIIExYUEhkHAwUNFRoKAwQDGQEGAzETBgMBAgEYAgMQDRYBDwQJAwEQD/5kAScfFx4EBAEFExcVCgMEAxwCAQEtFwkBBAIYAgMMBAkIGAENBwEDASoYBwQCAwIPBwQCWAYICxZJXCBGKDmjQV8uCQIBIhAKAwMeFhQGAwEDAicCBSIkFgsIBwIBAyEHAgQBAhwaPzUKBAgRBwYEAhUiAQEEGxEEAgQPEihCNQMCAgEDAgEBDDIlQwsEFjAkQSUZCgIECD9LVjceLydfRj8sEAH89gsQChENDwECEhMnBwEJAQcFCQwIYjEFAw4CDgkJHzwNQQUFCQUKDg8iYx0QDR8HBQYFEAIBAw8FBQYEDAQGCAQFCgQKDQ+MCCURDBoHCAMGBxMHBgWPBgILAQMWCARaGjUQDA4QAUUDAx8gBQQMAgEEDwMDCQMKDxKbDQcMCRUKCQQKDwiLBgIFAgMBFwgFTiIEEA0WCggDBggNClcCKBZ0BgQICR4CAQgFChwLEAMBAwnAYDIYIAQECQIGBw8L3AcDEggEAwIHCAsMghoJFRAbIQMHLgcSFg4HCAQBEQMRBg5oPREOIBcbAQIgAgECBBMLBwsCBhUiShstGgMGPSk2CAQBBRESDAUKBQwKCh4LEhskLBYOBQMNDRkPEwkCAAAHAAD/YwTaA1IANQBGAGgAeACzAMQA/AATQBD86Ly0mnlwaWNYPzcnBgctKyUWFxYXFhc+ATc2NzY3LxM1PwMmIyIHBgcGFRQfARYXFhcTFjMyNzY1JicmIyIHDgEeARcWHwEWFxYfARYXFhc2NzY3Bjc2NzY/ATY3NicmIgcGFxY3MzI3NjQnJisBIgcGFBcWFyIHHwQVBxUPEBcWFx4BFzY3Njc2NxQ3Njc2NxQ3Njc2NzY0LgInJicyNz4CJicmIyIHBgcUFxYXHgIHDgEHBg8CBgcOASMGJyYnJj4BNwYHBgcVFhcWFx4BNzY3Njc2NzY3Njc+ATc2NzUuAgGkBAoFCQUMDRAFBgMEAQECAwICAgQCAgIGAwIDAgMCAQIDAwYKAxQQCwUqExEKEgYIBgcXBQojDwgCBhEmBwMYGQIZVwIEBgcHBgcIBAwKGBgKDAQHDwYGBwcMDAICEBmPGRACAmwBIRIRERIhASISEREStBAUAwoGAgEBAgECAwYDAgMFAgICAgIDAgUFAQcFEA0MBQkFCgQJBwYIBwgGAwUCAwgSHhYFCgoFFhkDGRkDByYRBgIID7NTf0AHCGtSWW4WKzEvNFkVbElMGhUnb1SFXIQHAggSPDqzbSkYNC1GGhEFGBOM0D5DCAZfnbwbCAUDAgICBggLFDMJCgkaCREIHwcMBhoKCgsKCwsLCyILIRUUBAQBBBgVJhwqQRcuIDIBhQEhEx8bDykBBC1ALcwIEhgbNSQ5RB4MCgICCgweOHw3JjUbMjQhMBwsLBwwIakcGlMaHBwaUxocJgQEFBULCxYLCwwLCwsgCgoJFwYNBxAIGQksPRMMCAYCAgIDBQgbATwxIS4XASAUDhMREyEeFw4CAQ4BBi1ALQQBKRMXHxMhPgEyWDo9hzo9KAgNDQsJCgMdHz0yd3o0NUhmcRYaGzklJRwKBAMICxIJBQIHCDOGT1hNJj1YJgACAAD/sQNZAwsAPQBdAAi1UEA5GwItKwE0LgMvAS4DJzQzMhYfAR4BMzI2NTQuAQciDgIHFB4CHwEWFxYUBiciLgMjIgYVFBYXMj4CFxQGIyInBiMiLgInNDcmNTQ2MzIXNjMyHgIXFAcWAo8WIDIqHFMIFgwGAVAYJgsVChoOGiBAXjYmSD4kARQsLCRRMwwSLiMdLB4UIA4cHIheKUpAIsx+WEk6KyhQkmo8AQktflhJOispT5JqPAEJLQEBHC4eGA4GFAIICg4JKwwKEwkOJBkfMBwBEiI+KSI0IBYHFAwICyweARIaGBIiGDRIARQoQE9Zfi0JPmqQUSkrOkhZfi0JPmqQUSkrOgAAAQAA/7EDWgMMACUABrMZBAEtKwEyFhQGIiY3NDcnBiMiJjQ2MzIXNyY1ND4BHgEGJyInBxYUBxc2AqdKaGiUagEByTNGS2hoS0YzyQFolmYCaklHM8kBAckzARdqkmpqSQcMZDBqkmowZAwHSmgCbJBsATBkDA4MZDAAAAIAAP9qA+gDUgADABoACLUSBgEAAi0rFREhEQEzETMRMzcjNTQ2NzM3JisBIgcGHQEjA+j971yEgQaHGB1QAjsdFx8aY1yWA+j8GAHV/qABYH9eHxgBdQYKJ3NtAAAAAAEAAAABAACpH3XVXw889QALA+gAAAAA0w4KaAAAAADTDgpp//v/YwUdA1YAAAAIAAIAAAAAAAAAAQAAA1L/agAABR3/+///BR0AAQAAAAAAAAAAAAAAAAAAACED6AAAAjsAAAKGAAAD6AAAA+gAAARiAAAEtQAABR0AAATOAAAEWQAABMQAAAOtAAAD8QAAA9MAAAPoAAAE0///BHD/+wOsAAADvwAAA+gAAAJoAAAD6AAAA+gAAAPoAAADWQAAA1kAAANZ//4D6AAAA+gAAATaAAADWQAAA1kAAAPoAAAAAAAAACQAoAEaAWgB3gLSAxoDZgOcBHIEzATkBbwF8AceB4wHrAfwCFoIjAlKCnILFAu0C+4MfA0sDtgQRhDMEQoROQABAAAAIQEUAAgAAAAAAAIAAAAQAHMAAAAmC3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACwA1AAEAAAAAAAIABwBAAAEAAAAAAAMACwBHAAEAAAAAAAQACwBSAAEAAAAAAAUACwBdAAEAAAAAAAYACwBoAAEAAAAAAAoAKwBzAAEAAAAAAAsAEwCeAAMAAQQJAAAAagCxAAMAAQQJAAEAFgEbAAMAAQQJAAIADgExAAMAAQQJAAMAFgE/AAMAAQQJAAQAFgFVAAMAAQQJAAUAFgFrAAMAAQQJAAYAFgGBAAMAAQQJAAoAVgGXAAMAAQQJAAsAJgHtQ29weXJpZ2h0IChDKSAyMDE2IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21tYXNoc2ItZm9udFJlZ3VsYXJtYXNoc2ItZm9udG1hc2hzYi1mb250VmVyc2lvbiAxLjBtYXNoc2ItZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA2ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBtAGEAcwBoAHMAYgAtAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgBtAGEAcwBoAHMAYgAtAGYAbwBuAHQAbQBhAHMAaABzAGIALQBmAG8AbgB0AFYAZQByAHMAaQBvAG4AIAAxAC4AMABtAGEAcwBoAHMAYgAtAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgAKZmFjZWJvb2stMQZnb29nbGUJcGludGVyZXN0CGxpbmtlZGluBGRpZ2cGcmVkZGl0C3N0dW1ibGV1cG9uB3R3aXR0ZXIEbWFpbAJ2awVwcmludAlkZWxpY2lvdXMGYnVmZmVyBWhlYXJ0BXdlaWJvBnBvY2tldAR4aW5nBmZsYXR0chJvZG5va2xhc3NuaWtpLXJlY3QGdHVtYmxyCHdoYXRzYXBwB21lbmVhbWUIbWFuYWdld3AJdGh1bWJzLXVwEGZhY2Vib29rLXNxdWFyZWQGbWFpbHJ1BGxpbmUGeXVtbWx5BWZyeXBlBXNreXBlBXNoYXJlCGZhY2Vib29rAAAAAAEAAf//AA8AAAAAAAAAAAAAAACwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7AAYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7AAYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsABgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsQAAKrEABUKxAAgqsQAFQrEACCqxAAVCuQAAAAkqsQAFQrkAAAAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmxAAwquAH/hbAEjbECAEQA') format('truetype');
|
49 |
+
}
|
50 |
+
|
51 |
+
/* social icons */
|
52 |
+
|
53 |
+
|
54 |
+
/* Hover effect */
|
55 |
+
[class^="mashicon-"]:hover, [class*=" mashicon-"]:hover {
|
56 |
+
opacity: 0.8;
|
57 |
+
}
|
58 |
+
/* Icon Color */
|
59 |
+
[class^="mashicon-"] .icon, [class*=" mashicon-"] .icon{
|
60 |
+
color:#ffffff;
|
61 |
+
}
|
62 |
+
/* Text Color */
|
63 |
+
[class^="mashicon-"] .text, [class*=" mashicon-"] .text {
|
64 |
+
color:#ffffff;
|
65 |
+
}
|
66 |
+
/* General visual settings,like border, shadow, shine etc. */
|
67 |
+
[class^="mashicon-"], [class*=" mashicon-"]{
|
68 |
+
font-size:15px;
|
69 |
+
border-radius: 0px;
|
70 |
+
cursor: pointer;
|
71 |
+
}
|
72 |
+
/* Icon visual appearance */
|
73 |
+
[class^="mashicon-"] .icon:before, [class*=" mashicon-"] .icon:before, .mashicon-share:before {
|
74 |
+
font-family: "mashsb-font";
|
75 |
+
font-style: normal;
|
76 |
+
font-weight: normal;
|
77 |
+
speak: none;
|
78 |
+
font-size:18px;
|
79 |
+
display: inline-block;
|
80 |
+
text-decoration: inherit;
|
81 |
+
width: 1em;
|
82 |
+
margin-right: 0.7em;
|
83 |
+
text-align: center;
|
84 |
+
/* opacity: .8; */
|
85 |
+
/* For safety - reset parent styles, that can break glyph codes*/
|
86 |
+
font-variant: normal;
|
87 |
+
text-transform: none;
|
88 |
+
/* fix buttons height, for twitter bootstrap */
|
89 |
+
/*line-height: 1em;*/
|
90 |
+
|
91 |
+
/* Animation center compensation - margins should be symmetric */
|
92 |
+
/* remove if not needed */
|
93 |
+
/*margin-left: 0.7em;*/
|
94 |
+
|
95 |
+
/* you can be more comfortable with increased icons size */
|
96 |
+
/* font-size: 120%; */
|
97 |
+
|
98 |
+
/* Uncomment for 3D effect */
|
99 |
+
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
100 |
+
|
101 |
+
/* Reset margin-top for twitter bootstrap */
|
102 |
+
margin-top:0px;
|
103 |
+
/* For IE 8 Important */
|
104 |
+
float:left;
|
105 |
+
}
|
106 |
+
/* Icon definations */
|
107 |
+
.mashicon-facebook .icon:before { content: '\e800'; } /* '' */
|
108 |
+
.mashicon-google .icon:before { content: '\e801'; } /* '' */
|
109 |
+
.mashicon-pinterest .icon:before { content: '\e802'; } /* '' */
|
110 |
+
.mashicon-linkedin .icon:before { content: '\e803'; } /* '' */
|
111 |
+
.mashicon-digg .icon:before { content: '\e804'; } /* '' */
|
112 |
+
.mashicon-reddit .icon:before { content: '\e805'; } /* '' */
|
113 |
+
.mashicon-stumbleupon .icon:before { content: '\e806'; } /* '' */
|
114 |
+
.mashicon-twitter .icon:before { content: '\e807'; } /* '' */
|
115 |
+
.mashicon-mail .icon:before { content: '\e808'; } /* '' */
|
116 |
+
.mashicon-vk .icon:before { content: '\e809'; } /* '' */
|
117 |
+
.mashicon-print .icon:before { content: '\e80a'; } /* '' */
|
118 |
+
.mashicon-delicious .icon:before { content: '\e80b'; } /* '' */
|
119 |
+
.mashicon-buffer .icon:before { content: '\e80c'; } /* '' */
|
120 |
+
.mashicon-heart .icon:before { content: '\e80d'; } /* '' */
|
121 |
+
.mashicon-weibo .icon:before { content: '\e80e'; } /* '' */
|
122 |
+
.mashicon-pocket .icon:before { content: '\e80f'; } /* '' */
|
123 |
+
.mashicon-xing .icon:before { content: '\e810'; } /* '' */
|
124 |
+
.mashicon-flattr .icon:before { content: '\e811'; } /* '' */
|
125 |
+
.mashicon-odnoklassniki .icon:before { content: '\e812'; } /* '' */
|
126 |
+
.mashicon-tumblr .icon:before { content: '\e813'; } /* '' */
|
127 |
+
.mashicon-subscribe .icon:before { content: '\e808'; } /* '' */
|
128 |
+
.mashicon-meneame .icon:before { content: '\e815'; } /* '' */
|
129 |
+
.mashicon-managewp .icon:before { content: '\e816'; } /* '' */
|
130 |
+
.mashicon-mailru .icon:before { content: '\E819'; } /* '' */
|
131 |
+
.mashicon-line .icon:before { content: '\E81A'; } /* '' */
|
132 |
+
.mashicon-yummly .icon:before { content: '\E81B'; } /* '' */
|
133 |
+
.mashicon-whatsapp .icon:before { content: '\e814'; }
|
134 |
+
.mashicon-frype .icon:before { content: '\e81c'; } /* '' */
|
135 |
+
.mashicon-skype .icon:before { content: '\e81d'; } /* '' */
|
136 |
+
.mashicon-share:before { content: '\e81E'; } /* '' */
|
137 |
+
|
138 |
+
|
139 |
+
/* Background color of drag and drop services */
|
140 |
+
.mashicon-facebook{
|
141 |
+
background: #2d5f9a;
|
142 |
+
}
|
143 |
+
.mashicon-twitter{
|
144 |
+
background: #00c3f3;
|
145 |
+
}
|
146 |
+
.mashicon-google{
|
147 |
+
background: #d73d32;
|
148 |
+
}
|
149 |
+
.mashicon-subscribe{
|
150 |
+
background: #fff120;
|
151 |
+
}
|
152 |
+
.mashicon-subscribe .text, .mashicon-subscribe .icon{
|
153 |
+
color: #000000;
|
154 |
+
}
|
155 |
+
.mashicon-pinterest{
|
156 |
+
background: #cd252b;
|
157 |
+
}
|
158 |
+
.mashicon-linkedin{
|
159 |
+
background: #2ba3e1;
|
160 |
+
}
|
161 |
+
.mashicon-digg{
|
162 |
+
background: #1b5791;
|
163 |
+
}
|
164 |
+
.mashicon-stumbleupon{
|
165 |
+
background: #eb4723;
|
166 |
+
}
|
167 |
+
.mashicon-vk{
|
168 |
+
background: #5d83aa;
|
169 |
+
}
|
170 |
+
.mashicon-mail{
|
171 |
+
background: #888888;
|
172 |
+
}
|
173 |
+
.mashicon-print{
|
174 |
+
background: #666666;
|
175 |
+
}
|
176 |
+
.mashicon-reddit{
|
177 |
+
background: #333333;
|
178 |
+
}
|
179 |
+
.mashicon-delicious{
|
180 |
+
background: #3399ff;
|
181 |
+
}
|
182 |
+
.mashicon-weibo{
|
183 |
+
background: #ed1c24;
|
184 |
+
}
|
185 |
+
.mashicon-pocket{
|
186 |
+
background: #ee4055;
|
187 |
+
}
|
188 |
+
.mashicon-xing{
|
189 |
+
background: #135a5b;
|
190 |
+
}
|
191 |
+
.mashicon-flattr{
|
192 |
+
background: #8cb55b;
|
193 |
+
}
|
194 |
+
.mashicon-odnoklassniki{
|
195 |
+
background: #f4731c;
|
196 |
+
}
|
197 |
+
.mashicon-managewp{
|
198 |
+
background: #056cad;
|
199 |
+
}
|
200 |
+
.mashicon-tumblr{
|
201 |
+
background: #2c4762;
|
202 |
+
}
|
203 |
+
.mashicon-meneame{
|
204 |
+
background: #ff7d12;
|
205 |
+
}
|
206 |
+
.mashicon-whatsapp{
|
207 |
+
background: #1d9e11;
|
208 |
+
}
|
209 |
+
.mashicon-buffer{
|
210 |
+
background: #000000;
|
211 |
+
}
|
212 |
+
.mashicon-mailru{
|
213 |
+
background: #044b89;
|
214 |
+
}
|
215 |
+
.mashicon-line{
|
216 |
+
background: #1dcd00;
|
217 |
+
}
|
218 |
+
.mashicon-yummly{
|
219 |
+
background: #e16120;
|
220 |
+
}
|
221 |
+
.mashicon-frype{
|
222 |
+
background: #ff6600;
|
223 |
+
}
|
224 |
+
.mashicon-skype{
|
225 |
+
background: #00afef;
|
226 |
+
}
|
227 |
+
|
228 |
+
.mashsb-hidden { display: none; }
|
229 |
+
.mashsb-clearfix:after { display: block; visibility: hidden; content: "."; text-indent: -9999px; height: 0; }
|
230 |
+
.mashsb-wrap a { text-decoration: none; }
|
231 |
+
a.mashsb-delete { color: #a00; }
|
232 |
+
a.mashsb-delete:hover { color: #f00; }
|
233 |
+
|
234 |
+
/* =Add Ons Styles
|
235 |
+
-------------------------------------------------------------- */
|
236 |
+
#mashsb-add-ons h2 { margin: 0 0 15px; }
|
237 |
+
#mashsb-add-ons .mashshare-addons { float: left; margin: 0 15px 15px 0; background: #f0f0f0; border: 1px solid #ccc; width: 320px; padding: 8px; height: 315px; position: relative; }
|
238 |
+
#mashsb-add-ons .mashshare-addons h3 { margin: 0 0 8px; font-size: 13px; }
|
239 |
+
#mashsb-add-ons .mashshare-addons .button-secondary { position: absolute; bottom: 8px; left: 8px; }
|
240 |
+
/*#mashsb-add-ons .mashshare-addons { clear:both; width:100%; }*/
|
241 |
+
#mashsb-add-ons .mashshare-addons .third-party { display: none; }
|
242 |
+
|
243 |
+
|
244 |
+
/* System Info page styles
|
245 |
+
-------------------------------------------------------------- */
|
246 |
+
#system-info-textarea { width: 800px; height: 400px; font-family: Menlo, Monaco, monospace; background: none; white-space: pre; overflow: auto; display: block; }
|
247 |
+
|
248 |
+
|
249 |
+
/* General styles
|
250 |
+
-------------------------------------------------------------- */
|
251 |
+
.mashsb-select-chosen { width: 300px; }
|
252 |
+
|
253 |
+
.chosen-container-multi .chosen-choices{ -webkit-border-radius: 3px; border-radius: 3px; border-color: #dfdfdf; background-image:none; }
|
254 |
+
.chosen-container-multi .chosen-choices input{ margin:2px; height:27px!important; border-color: #dfdfdf; }
|
255 |
+
.chosen-container .chosen-drop { border-color: #aaa; -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); }
|
256 |
+
.chosen-container-active .chosen-choices { -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -webkit-border-bottom-left-radius: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-color: #aaa; -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); }
|
257 |
+
.download_page_mashsb-tools .tablenav .actions { overflow: visible; }
|
258 |
+
.mashsb_user_search_wrap { position: relative; overflow: visible; }
|
259 |
+
.mashsb_user_search_results { position: absolute; left: 0; top: 27px; }
|
260 |
+
.mashsb_user_search_results ul { padding: 10px 10px 4px; margin: 0; background: #f0f0f0; border: 1px solid #DFDFDF; width: 300px; max-height: 200px; overflow-y: scroll; }
|
261 |
+
|
262 |
+
/* Global Graph Styles
|
263 |
+
-------------------------------------------------------------- */
|
264 |
+
.mashsb-graph .y1Axis { color: rgb( 237, 194, 64 )!important; }
|
265 |
+
.mashsb-graph .y2Axis { color: rgb( 175, 216, 248 )!important; }
|
266 |
+
|
267 |
+
|
268 |
+
input.large-text, textarea.large-text {
|
269 |
+
max-width: 600px;
|
270 |
+
}
|
271 |
+
|
272 |
+
|
273 |
+
|
274 |
+
/*
|
275 |
+
colpick Color Picker / colpick.com
|
276 |
+
*/
|
277 |
+
|
278 |
+
#css3lightboxpicker {
|
279 |
+
margin:0;
|
280 |
+
padding:0;
|
281 |
+
border:0;
|
282 |
+
width:70px;
|
283 |
+
height:20px;
|
284 |
+
line-height:20px;
|
285 |
+
}
|
286 |
+
|
287 |
+
/*Main container*/
|
288 |
+
.colpick {
|
289 |
+
position: absolute;
|
290 |
+
width: 346px;
|
291 |
+
height: 170px;
|
292 |
+
overflow: hidden;
|
293 |
+
display: none;
|
294 |
+
font-family: Arial, Helvetica, sans-serif;
|
295 |
+
background:#ebebeb;
|
296 |
+
border: 1px solid #bbb;
|
297 |
+
-webkit-border-radius: 5px;
|
298 |
+
-moz-border-radius: 5px;
|
299 |
+
border-radius: 5px;
|
300 |
+
|
301 |
+
/*Prevents selecting text when dragging the selectors*/
|
302 |
+
-webkit-user-select: none;
|
303 |
+
-moz-user-select: none;
|
304 |
+
-ms-user-select: none;
|
305 |
+
-o-user-select: none;
|
306 |
+
user-select: none;
|
307 |
+
}
|
308 |
+
/*Color selection box with gradients*/
|
309 |
+
.colpick_color {
|
310 |
+
position: absolute;
|
311 |
+
left: 7px;
|
312 |
+
top: 7px;
|
313 |
+
width: 156px;
|
314 |
+
height: 156px;
|
315 |
+
overflow: hidden;
|
316 |
+
outline: 1px solid #aaa;
|
317 |
+
cursor: crosshair;
|
318 |
+
}
|
319 |
+
.colpick_color_overlay1 {
|
320 |
+
position: absolute;
|
321 |
+
left:0;
|
322 |
+
top:0;
|
323 |
+
width: 156px;
|
324 |
+
height: 156px;
|
325 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')"; /* IE8 */
|
326 |
+
background: -moz-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */
|
327 |
+
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
|
328 |
+
background: -webkit-linear-gradient(left, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* Chrome10+,Safari5.1+ */
|
329 |
+
background: -o-linear-gradient(left, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* Opera 11.10+ */
|
330 |
+
background: -ms-linear-gradient(left, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* IE10+ */
|
331 |
+
background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
|
332 |
+
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff'); /* IE6 & IE7 */
|
333 |
+
}
|
334 |
+
.colpick_color_overlay2 {
|
335 |
+
position: absolute;
|
336 |
+
left:0;
|
337 |
+
top:0;
|
338 |
+
width: 156px;
|
339 |
+
height: 156px;
|
340 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')"; /* IE8 */
|
341 |
+
background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%); /* FF3.6+ */
|
342 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,1))); /* Chrome,Safari4+ */
|
343 |
+
background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%); /* Chrome10+,Safari5.1+ */
|
344 |
+
background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%); /* Opera 11.10+ */
|
345 |
+
background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%); /* IE10+ */
|
346 |
+
background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%); /* W3C */
|
347 |
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#000000',GradientType=0 ); /* IE6-9 */
|
348 |
+
}
|
349 |
+
/*Circular color selector*/
|
350 |
+
.colpick_selector_outer {
|
351 |
+
background:none;
|
352 |
+
position: absolute;
|
353 |
+
width: 11px;
|
354 |
+
height: 11px;
|
355 |
+
margin: -6px 0 0 -6px;
|
356 |
+
border: 1px solid black;
|
357 |
+
border-radius: 50%;
|
358 |
+
}
|
359 |
+
.colpick_selector_inner{
|
360 |
+
position: absolute;
|
361 |
+
width: 9px;
|
362 |
+
height: 9px;
|
363 |
+
border: 1px solid white;
|
364 |
+
border-radius: 50%;
|
365 |
+
}
|
366 |
+
/*Vertical hue bar*/
|
367 |
+
.colpick_hue {
|
368 |
+
position: absolute;
|
369 |
+
top: 6px;
|
370 |
+
left: 175px;
|
371 |
+
width: 19px;
|
372 |
+
height: 156px;
|
373 |
+
border: 1px solid #aaa;
|
374 |
+
cursor: n-resize;
|
375 |
+
}
|
376 |
+
/*Hue bar sliding indicator*/
|
377 |
+
.colpick_hue_arrs {
|
378 |
+
position: absolute;
|
379 |
+
left: -8px;
|
380 |
+
width: 35px;
|
381 |
+
height: 7px;
|
382 |
+
margin: -7px 0 0 0;
|
383 |
+
}
|
384 |
+
.colpick_hue_larr {
|
385 |
+
position:absolute;
|
386 |
+
width: 0;
|
387 |
+
height: 0;
|
388 |
+
border-top: 6px solid transparent;
|
389 |
+
border-bottom: 6px solid transparent;
|
390 |
+
border-left: 7px solid #858585;
|
391 |
+
}
|
392 |
+
.colpick_hue_rarr {
|
393 |
+
position:absolute;
|
394 |
+
right:0;
|
395 |
+
width: 0;
|
396 |
+
height: 0;
|
397 |
+
border-top: 6px solid transparent;
|
398 |
+
border-bottom: 6px solid transparent;
|
399 |
+
border-right: 7px solid #858585;
|
400 |
+
}
|
401 |
+
/*New color box*/
|
402 |
+
.colpick_new_color {
|
403 |
+
position: absolute;
|
404 |
+
left: 207px;
|
405 |
+
top: 6px;
|
406 |
+
width: 60px;
|
407 |
+
height: 27px;
|
408 |
+
background: #f00;
|
409 |
+
border: 1px solid #8f8f8f;
|
410 |
+
}
|
411 |
+
/*Current color box*/
|
412 |
+
.colpick_current_color {
|
413 |
+
position: absolute;
|
414 |
+
left: 277px;
|
415 |
+
top: 6px;
|
416 |
+
width: 60px;
|
417 |
+
height: 27px;
|
418 |
+
background: #f00;
|
419 |
+
border: 1px solid #8f8f8f;
|
420 |
+
}
|
421 |
+
/*Input field containers*/
|
422 |
+
.colpick_field, .colpick_hex_field {
|
423 |
+
position: absolute;
|
424 |
+
height: 20px;
|
425 |
+
width: 60px;
|
426 |
+
overflow:hidden;
|
427 |
+
background:#f3f3f3;
|
428 |
+
color:#b8b8b8;
|
429 |
+
font-size:12px;
|
430 |
+
border:1px solid #bdbdbd;
|
431 |
+
-webkit-border-radius: 3px;
|
432 |
+
-moz-border-radius: 3px;
|
433 |
+
border-radius: 3px;
|
434 |
+
}
|
435 |
+
.colpick_rgb_r {
|
436 |
+
top: 40px;
|
437 |
+
left: 207px;
|
438 |
+
}
|
439 |
+
.colpick_rgb_g {
|
440 |
+
top: 67px;
|
441 |
+
left: 207px;
|
442 |
+
}
|
443 |
+
.colpick_rgb_b {
|
444 |
+
top: 94px;
|
445 |
+
left: 207px;
|
446 |
+
}
|
447 |
+
.colpick_hsb_h {
|
448 |
+
top: 40px;
|
449 |
+
left: 277px;
|
450 |
+
}
|
451 |
+
.colpick_hsb_s {
|
452 |
+
top: 67px;
|
453 |
+
left: 277px;
|
454 |
+
}
|
455 |
+
.colpick_hsb_b {
|
456 |
+
top: 94px;
|
457 |
+
left: 277px;
|
458 |
+
}
|
459 |
+
.colpick_hex_field {
|
460 |
+
width: 68px;
|
461 |
+
left: 207px;
|
462 |
+
top: 121px;
|
463 |
+
}
|
464 |
+
/*Text field container on focus*/
|
465 |
+
.colpick_focus {
|
466 |
+
border-color: #999;
|
467 |
+
}
|
468 |
+
/*Field label container*/
|
469 |
+
.colpick_field_letter {
|
470 |
+
position: absolute;
|
471 |
+
width: 12px;
|
472 |
+
height: 20px;
|
473 |
+
line-height: 20px;
|
474 |
+
padding-left: 4px;
|
475 |
+
background: #efefef;
|
476 |
+
border-right: 1px solid #bdbdbd;
|
477 |
+
font-weight: bold;
|
478 |
+
color:#777;
|
479 |
+
}
|
480 |
+
/*Text inputs*/
|
481 |
+
.colpick_field input, .colpick_hex_field input {
|
482 |
+
position: absolute;
|
483 |
+
right: 11px;
|
484 |
+
margin: 0;
|
485 |
+
padding: 0;
|
486 |
+
height: 20px;
|
487 |
+
line-height: 20px;
|
488 |
+
background: transparent;
|
489 |
+
border: none;
|
490 |
+
font-size: 12px;
|
491 |
+
font-family: Arial, Helvetica, sans-serif;
|
492 |
+
color: #555;
|
493 |
+
text-align: right;
|
494 |
+
outline: none;
|
495 |
+
}
|
496 |
+
.colpick_hex_field input {
|
497 |
+
right: 4px;
|
498 |
+
}
|
499 |
+
/*Field up/down arrows*/
|
500 |
+
.colpick_field_arrs {
|
501 |
+
position: absolute;
|
502 |
+
top: 0;
|
503 |
+
right: 0;
|
504 |
+
width: 9px;
|
505 |
+
height: 21px;
|
506 |
+
cursor: n-resize;
|
507 |
+
}
|
508 |
+
.colpick_field_uarr {
|
509 |
+
position: absolute;
|
510 |
+
top: 5px;
|
511 |
+
width: 0;
|
512 |
+
height: 0;
|
513 |
+
border-left: 4px solid transparent;
|
514 |
+
border-right: 4px solid transparent;
|
515 |
+
border-bottom: 4px solid #959595;
|
516 |
+
}
|
517 |
+
.colpick_field_darr {
|
518 |
+
position: absolute;
|
519 |
+
bottom:5px;
|
520 |
+
width: 0;
|
521 |
+
height: 0;
|
522 |
+
border-left: 4px solid transparent;
|
523 |
+
border-right: 4px solid transparent;
|
524 |
+
border-top: 4px solid #959595;
|
525 |
+
}
|
526 |
+
/*Submit/Select button*/
|
527 |
+
.colpick_submit {
|
528 |
+
position: absolute;
|
529 |
+
left: 207px;
|
530 |
+
top: 149px;
|
531 |
+
width: 130px;
|
532 |
+
height: 22px;
|
533 |
+
line-height:22px;
|
534 |
+
background: #efefef;
|
535 |
+
text-align: center;
|
536 |
+
color: #555;
|
537 |
+
font-size: 12px;
|
538 |
+
font-weight:bold;
|
539 |
+
border: 1px solid #bdbdbd;
|
540 |
+
-webkit-border-radius: 3px;
|
541 |
+
-moz-border-radius: 3px;
|
542 |
+
border-radius: 3px;
|
543 |
+
}
|
544 |
+
.colpick_submit:hover {
|
545 |
+
background:#f3f3f3;
|
546 |
+
border-color:#999;
|
547 |
+
cursor: pointer;
|
548 |
+
}
|
549 |
+
|
550 |
+
/*full layout with no submit button*/
|
551 |
+
.colpick_full_ns .colpick_submit, .colpick_full_ns .colpick_current_color{
|
552 |
+
display:none;
|
553 |
+
}
|
554 |
+
.colpick_full_ns .colpick_new_color {
|
555 |
+
width: 130px;
|
556 |
+
height: 25px;
|
557 |
+
}
|
558 |
+
.colpick_full_ns .colpick_rgb_r, .colpick_full_ns .colpick_hsb_h {
|
559 |
+
top: 42px;
|
560 |
+
}
|
561 |
+
.colpick_full_ns .colpick_rgb_g, .colpick_full_ns .colpick_hsb_s {
|
562 |
+
top: 73px;
|
563 |
+
}
|
564 |
+
.colpick_full_ns .colpick_rgb_b, .colpick_full_ns .colpick_hsb_b {
|
565 |
+
top: 104px;
|
566 |
+
}
|
567 |
+
.colpick_full_ns .colpick_hex_field {
|
568 |
+
top: 135px;
|
569 |
+
}
|
570 |
+
|
571 |
+
/*rgbhex layout*/
|
572 |
+
.colpick_rgbhex .colpick_hsb_h, .colpick_rgbhex .colpick_hsb_s, .colpick_rgbhex .colpick_hsb_b {
|
573 |
+
display:none;
|
574 |
+
}
|
575 |
+
.colpick_rgbhex {
|
576 |
+
width:282px;
|
577 |
+
}
|
578 |
+
.colpick_rgbhex .colpick_field, .colpick_rgbhex .colpick_submit {
|
579 |
+
width:68px;
|
580 |
+
}
|
581 |
+
.colpick_rgbhex .colpick_new_color {
|
582 |
+
width:34px;
|
583 |
+
border-right:none;
|
584 |
+
}
|
585 |
+
.colpick_rgbhex .colpick_current_color {
|
586 |
+
width:34px;
|
587 |
+
left:240px;
|
588 |
+
border-left:none;
|
589 |
+
}
|
590 |
+
|
591 |
+
/*rgbhex layout, no submit button*/
|
592 |
+
.colpick_rgbhex_ns .colpick_submit, .colpick_rgbhex_ns .colpick_current_color{
|
593 |
+
display:none;
|
594 |
+
}
|
595 |
+
.colpick_rgbhex_ns .colpick_new_color{
|
596 |
+
width:68px;
|
597 |
+
border: 1px solid #8f8f8f;
|
598 |
+
}
|
599 |
+
.colpick_rgbhex_ns .colpick_rgb_r {
|
600 |
+
top: 42px;
|
601 |
+
}
|
602 |
+
.colpick_rgbhex_ns .colpick_rgb_g {
|
603 |
+
top: 73px;
|
604 |
+
}
|
605 |
+
.colpick_rgbhex_ns .colpick_rgb_b {
|
606 |
+
top: 104px;
|
607 |
+
}
|
608 |
+
.colpick_rgbhex_ns .colpick_hex_field {
|
609 |
+
top: 135px;
|
610 |
+
}
|
611 |
+
|
612 |
+
/*hex layout*/
|
613 |
+
.colpick_hex .colpick_hsb_h, .colpick_hex .colpick_hsb_s, .colpick_hex .colpick_hsb_b, .colpick_hex .colpick_rgb_r, .colpick_hex .colpick_rgb_g, .colpick_hex .colpick_rgb_b {
|
614 |
+
display:none;
|
615 |
+
}
|
616 |
+
.colpick_hex {
|
617 |
+
width:206px;
|
618 |
+
height:201px;
|
619 |
+
}
|
620 |
+
.colpick_hex .colpick_hex_field {
|
621 |
+
width:72px;
|
622 |
+
height:25px;
|
623 |
+
top:168px;
|
624 |
+
left:80px;
|
625 |
+
}
|
626 |
+
.colpick_hex .colpick_hex_field div, .colpick_hex .colpick_hex_field input {
|
627 |
+
height: 25px;
|
628 |
+
line-height: 25px;
|
629 |
+
}
|
630 |
+
.colpick_hex .colpick_new_color {
|
631 |
+
left:9px;
|
632 |
+
top:168px;
|
633 |
+
width:30px;
|
634 |
+
border-right:none;
|
635 |
+
}
|
636 |
+
.colpick_hex .colpick_current_color {
|
637 |
+
left:39px;
|
638 |
+
top:168px;
|
639 |
+
width:30px;
|
640 |
+
border-left:none;
|
641 |
+
}
|
642 |
+
.colpick_hex .colpick_submit {
|
643 |
+
left:164px;
|
644 |
+
top: 168px;
|
645 |
+
width:30px;
|
646 |
+
height:25px;
|
647 |
+
line-height: 25px;
|
648 |
+
}
|
649 |
+
|
650 |
+
/*hex layout, no submit button*/
|
651 |
+
.colpick_hex_ns .colpick_submit, .colpick_hex_ns .colpick_current_color {
|
652 |
+
display:none;
|
653 |
+
}
|
654 |
+
.colpick_hex_ns .colpick_hex_field {
|
655 |
+
width:80px;
|
656 |
+
}
|
657 |
+
.colpick_hex_ns .colpick_new_color{
|
658 |
+
width:60px;
|
659 |
+
border: 1px solid #8f8f8f;
|
660 |
+
}
|
661 |
+
|
662 |
+
/*Dark color scheme*/
|
663 |
+
.colpick_dark {
|
664 |
+
background: #161616;
|
665 |
+
border-color: #2a2a2a;
|
666 |
+
}
|
667 |
+
.colpick_dark .colpick_color {
|
668 |
+
outline-color: #333;
|
669 |
+
}
|
670 |
+
.colpick_dark .colpick_hue {
|
671 |
+
border-color: #555;
|
672 |
+
}
|
673 |
+
.colpick_dark .colpick_field, .colpick_dark .colpick_hex_field {
|
674 |
+
background: #101010;
|
675 |
+
border-color: #2d2d2d;
|
676 |
+
}
|
677 |
+
.colpick_dark .colpick_field_letter {
|
678 |
+
background: #131313;
|
679 |
+
border-color: #2d2d2d;
|
680 |
+
color: #696969;
|
681 |
+
}
|
682 |
+
.colpick_dark .colpick_field input, .colpick_dark .colpick_hex_field input {
|
683 |
+
color: #7a7a7a;
|
684 |
+
}
|
685 |
+
.colpick_dark .colpick_field_uarr {
|
686 |
+
border-bottom-color:#696969;
|
687 |
+
}
|
688 |
+
.colpick_dark .colpick_field_darr {
|
689 |
+
border-top-color:#696969;
|
690 |
+
}
|
691 |
+
.colpick_dark .colpick_focus {
|
692 |
+
border-color:#444;
|
693 |
+
}
|
694 |
+
.colpick_dark .colpick_submit {
|
695 |
+
background: #131313;
|
696 |
+
border-color:#2d2d2d;
|
697 |
+
color:#7a7a7a;
|
698 |
+
}
|
699 |
+
.colpick_dark .colpick_submit:hover {
|
700 |
+
background-color:#101010;
|
701 |
+
border-color:#444;
|
702 |
+
}
|
703 |
+
|
704 |
+
/* CSS for Tabs */
|
705 |
+
|
706 |
+
#tab_container ul {
|
707 |
+
/*height: 200px;*/
|
708 |
+
list-style: none;
|
709 |
+
margin: 0;
|
710 |
+
padding: 0;
|
711 |
+
background: #f1f1f1;
|
712 |
+
float: left;
|
713 |
+
padding-top: 0px;
|
714 |
+
max-width:200px;
|
715 |
+
}
|
716 |
+
|
717 |
+
#tab_container ul li:first-child.selected-tab {
|
718 |
+
border-top: none;
|
719 |
+
}
|
720 |
+
|
721 |
+
#tab_container ul li a.selected-tab {
|
722 |
+
font-weight: bold;
|
723 |
+
text-decoration: none;
|
724 |
+
}
|
725 |
+
|
726 |
+
|
727 |
+
|
728 |
+
#tab_container .row{
|
729 |
+
padding-top:10px;
|
730 |
+
padding-bottom:12px;
|
731 |
+
}
|
732 |
+
|
733 |
+
|
734 |
+
#tab_container .row label strong, #tab_container .row strong {
|
735 |
+
font-weight: bold;
|
736 |
+
}
|
737 |
+
|
738 |
+
.mashsb-tabs a {
|
739 |
+
padding:5px;
|
740 |
+
}
|
741 |
+
|
742 |
+
#tab_container > ul > li.mashsb-tabs.active {
|
743 |
+
background-color:white;
|
744 |
+
}
|
745 |
+
|
746 |
+
|
747 |
+
|
748 |
+
#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4){
|
749 |
+
display:none;
|
750 |
+
}
|
751 |
+
#mashsb_settingsgeneral_header .row:nth-child(6){
|
752 |
+
display:none;
|
753 |
+
}
|
754 |
+
|
755 |
+
/* Layout of admin table and rows
|
756 |
+
*/
|
757 |
+
|
758 |
+
#tab_container .panel-container {
|
759 |
+
background: #FFF;
|
760 |
+
padding:20px;
|
761 |
+
padding-top:0px;
|
762 |
+
overflow:auto;
|
763 |
+
min-width: 550px;
|
764 |
+
}
|
765 |
+
|
766 |
+
#tab_container .form-table th {
|
767 |
+
vertical-align: top;
|
768 |
+
text-align: left;
|
769 |
+
padding: 20px 10px 20px 0;
|
770 |
+
/*width: 200px;*/
|
771 |
+
line-height: 1.3;
|
772 |
+
font-weight: 600;
|
773 |
+
font-size: 15px;
|
774 |
+
color:#484848;
|
775 |
+
/*width: 30%;*/
|
776 |
+
}
|
777 |
+
|
778 |
+
/*#tab_container .form-table tr {
|
779 |
+
border-bottom: 1px solid #E7E7E7;
|
780 |
+
}*/
|
781 |
+
|
782 |
+
#tab_container span.description{
|
783 |
+
display: block;
|
784 |
+
font-weight: 400;
|
785 |
+
font-style: normal;
|
786 |
+
font-size: 13px;
|
787 |
+
margin-top: 7px;
|
788 |
+
color:#484848;
|
789 |
+
}
|
790 |
+
|
791 |
+
#tab_container .col-title{
|
792 |
+
color:#484848;
|
793 |
+
}
|
794 |
+
|
795 |
+
@media only screen and (max-width:680px) {
|
796 |
+
#tab_container ul {
|
797 |
+
float:none;
|
798 |
+
}
|
799 |
+
#tab_container .form-table tr > th {
|
800 |
+
width:100%;
|
801 |
+
}
|
802 |
+
#tab_container span.description{
|
803 |
+
font-size: 14px;
|
804 |
+
}
|
805 |
+
#tab_container .form-table tr > th, #tab_container .form-table tr > td {
|
806 |
+
padding:10px;
|
807 |
+
}
|
808 |
+
}
|
809 |
+
|
810 |
+
#tab_container ul li {
|
811 |
+
margin-bottom:0px;
|
812 |
+
}
|
813 |
+
|
814 |
+
#tab_container ul li a {
|
815 |
+
display: block;
|
816 |
+
padding:10px 4px 10px 14px;
|
817 |
+
border-width: 1px 0;
|
818 |
+
border-style: solid;
|
819 |
+
border-top-color:white;
|
820 |
+
border-bottom-color:#e7e7e7;
|
821 |
+
text-decoration: none;
|
822 |
+
color: #0097DF;
|
823 |
+
font-weight: bold;
|
824 |
+
}
|
825 |
+
#tab_container ul li a:hover {
|
826 |
+
background-color: #e5e5e5;
|
827 |
+
color:#777777;
|
828 |
+
}
|
829 |
+
|
830 |
+
.mashsb_admin .mashsharelogo{
|
831 |
+
display:block;
|
832 |
+
float: left;
|
833 |
+
color:#0097DF;
|
834 |
+
font-weight:600;
|
835 |
+
font-size: 36px;
|
836 |
+
padding-top: 10px;
|
837 |
+
padding-bottom:20px;
|
838 |
+
width:210px;
|
839 |
+
}
|
840 |
+
.mashsb_admin .nav-tab {
|
841 |
+
color: #0097DF;
|
842 |
+
border-left: 1px solid #fff;
|
843 |
+
border-right: 1px solid #fff;
|
844 |
+
border-top: 1px solid #fff;
|
845 |
+
}
|
846 |
+
|
847 |
+
.mashsb.nav-tab-wrapper {
|
848 |
+
border-bottom: none !important;
|
849 |
+
margin:0px;
|
850 |
+
}
|
851 |
+
.mashsb.nav-tab-wrapper .nav-tab-active{
|
852 |
+
background-color: #ffffff;
|
853 |
+
}
|
854 |
+
|
855 |
+
|
856 |
+
#tab_container table tbody tr:nth-child(1) > th > div {
|
857 |
+
font-size: 20px;
|
858 |
+
}
|
859 |
+
|
860 |
+
.mashsb_hidden{
|
861 |
+
display: none;
|
862 |
+
}
|
863 |
+
|
864 |
+
/* End layout of admin table and rows
|
865 |
+
*/
|
866 |
+
#mashtabcontainer > .mashtabs {
|
867 |
+
background-color: #ffffff;
|
868 |
+
}
|
869 |
+
|
870 |
+
#mashtabcontainer ul .active {
|
871 |
+
background-color: #00adef;
|
872 |
+
color: white;
|
873 |
+
border-bottom-color: #0098D2;
|
874 |
+
}
|
875 |
+
|
876 |
+
#mashtabcontainer ul .active:hover {
|
877 |
+
background-color: #00A4E2;
|
878 |
+
color: white;
|
879 |
+
border-bottom-color: #0098D2;
|
880 |
+
}
|
881 |
+
|
882 |
+
#mashtabcontainer ul li a {
|
883 |
+
padding: 10px 14px 10px 14px;
|
884 |
+
background-color: #f3f3f3
|
885 |
+
|
886 |
+
}
|
887 |
+
|
888 |
+
#mashtabcontainer .mashtab-container {
|
889 |
+
border: 0px solid #ececec;
|
890 |
+
}
|
891 |
+
|
892 |
+
.mashsb-admin-settings-header{
|
893 |
+
font-size:20px;
|
894 |
+
font-weight:bold;
|
895 |
+
}
|
896 |
+
|
897 |
+
.mashsb-version{
|
898 |
+
display: block;
|
899 |
+
padding-left:14px;
|
900 |
+
padding-top:17px;
|
901 |
+
font-size:15px;
|
902 |
+
}
|
903 |
+
|
904 |
+
|
905 |
+
#mash-social-admin-head > li{
|
906 |
+
float:left;
|
907 |
+
margin-right:5px;
|
908 |
+
padding-bottom:20px;
|
909 |
+
}
|
910 |
+
|
911 |
+
#mash-social-admin-head a, #mash-social-admin-head .icon:before {
|
912 |
+
font-size: 12px;
|
913 |
+
font-weight: normal;
|
914 |
+
float:none;
|
915 |
+
}
|
916 |
+
#mash-social-admin-head a {
|
917 |
+
padding-right: 5px;
|
918 |
+
padding-left: 5px;
|
919 |
+
padding-top: 2px;
|
920 |
+
padding-bottom: 2px;
|
921 |
+
text-decoration: none;
|
922 |
+
}
|
923 |
+
|
924 |
+
|
925 |
+
|
926 |
+
|
927 |
+
.mashsb.nav-tab-wrapper{
|
928 |
+
clear:both;
|
929 |
+
}
|
930 |
+
|
931 |
+
/*
|
932 |
+
Fancy checkboxes proto.io
|
933 |
+
*/
|
934 |
+
|
935 |
+
/*.mashsb-admin-onoffswitch {
|
936 |
+
position: relative; width: 48px;
|
937 |
+
-webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
|
938 |
+
}
|
939 |
+
.mashsb-admin-onoffswitch-checkbox {
|
940 |
+
display: none !important;
|
941 |
+
}
|
942 |
+
.mashsb-admin-onoffswitch-label {
|
943 |
+
display: block; overflow: hidden; cursor: pointer;
|
944 |
+
height: 22px; padding: 0; line-height: 22px;
|
945 |
+
border: 2px solid #CCCCCC; border-radius: 22px;
|
946 |
+
background-color: #FFFFFF;
|
947 |
+
transition: background-color 0.3s ease-in;
|
948 |
+
}
|
949 |
+
.mashsb-admin-onoffswitch-label:before {
|
950 |
+
content: "";
|
951 |
+
display: block; width: 22px; margin: 0px;
|
952 |
+
background: #FFFFFF;
|
953 |
+
position: absolute; top: 0; bottom: 0;
|
954 |
+
right: 24px;
|
955 |
+
border: 2px solid #CCCCCC; border-radius: 22px;
|
956 |
+
transition: all 0.3s ease-in 0s;
|
957 |
+
}
|
958 |
+
.mashsb-admin-onoffswitch-checkbox:checked + .mashsb-admin-onoffswitch-label {
|
959 |
+
background-color: #1BA819;
|
960 |
+
}
|
961 |
+
.mashsb-admin-onoffswitch-checkbox:checked + .mashsb-admin-onoffswitch-label, .mashsb-admin-onoffswitch-checkbox:checked + .mashsb-admin-onoffswitch-label:before {
|
962 |
+
border-color: #1BA819;
|
963 |
+
}
|
964 |
+
.mashsb-admin-onoffswitch-checkbox:checked + .mashsb-admin-onoffswitch-label:before {
|
965 |
+
right: 0px;
|
966 |
+
}*/
|
967 |
+
|
968 |
+
.mashsb-admin-onoffswitch {
|
969 |
+
position: relative; width: 55px;
|
970 |
+
-webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
|
971 |
+
}
|
972 |
+
.mashsb-admin-onoffswitch-checkbox {
|
973 |
+
display: none !important;
|
974 |
+
}
|
975 |
+
.mashsb-admin-onoffswitch-label {
|
976 |
+
display: block; overflow: hidden; cursor: pointer;
|
977 |
+
border: 1px solid #D6D6D6; border-radius: 0px;
|
978 |
+
}
|
979 |
+
.mashsb-admin-onoffswitch-inner {
|
980 |
+
display: block; width: 200%; margin-left: -100%;
|
981 |
+
transition: margin 0.3s ease-in 0s;
|
982 |
+
}
|
983 |
+
.mashsb-admin-onoffswitch-inner:before, .mashsb-admin-onoffswitch-inner:after {
|
984 |
+
display: block; float: left; width: 50%; height: 22px; padding: 0; line-height: 22px;
|
985 |
+
font-size: 12px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
|
986 |
+
box-sizing: border-box;
|
987 |
+
}
|
988 |
+
.mashsb-admin-onoffswitch-inner:before {
|
989 |
+
content: "ON";
|
990 |
+
padding-left: 10px;
|
991 |
+
background-color: #0097DF; color: #FFFFFF;
|
992 |
+
}
|
993 |
+
.mashsb-admin-onoffswitch-inner:after {
|
994 |
+
content: "OFF";
|
995 |
+
padding-right: 10px;
|
996 |
+
background-color: #EEEEEE; color: #D6D6D6;
|
997 |
+
text-align: right;
|
998 |
+
}
|
999 |
+
.mashsb-admin-onoffswitch-switch {
|
1000 |
+
display: block;
|
1001 |
+
width: 12px;
|
1002 |
+
max-height: 12px;
|
1003 |
+
margin: 5.5px;
|
1004 |
+
background: #FFFFFF;
|
1005 |
+
position: absolute; top: 0; bottom: 0;
|
1006 |
+
right: 33px;
|
1007 |
+
border: 0px solid #D6D6D6; border-radius: 0px;
|
1008 |
+
transition: all 0.3s ease-in 0s;
|
1009 |
+
}
|
1010 |
+
.mashsb-admin-onoffswitch-checkbox:checked + .mashsb-admin-onoffswitch-label .mashsb-admin-onoffswitch-inner {
|
1011 |
+
margin-left: 0;
|
1012 |
+
}
|
1013 |
+
.mashsb-admin-onoffswitch-checkbox:checked + .mashsb-admin-onoffswitch-label .mashsb-admin-onoffswitch-switch {
|
1014 |
+
right: 2px;
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
/* end checkbox */
|
1018 |
+
|
1019 |
+
|
1020 |
+
.mashsb_admin a {
|
1021 |
+
text-decoration: none;
|
1022 |
+
}
|
1023 |
+
|
1024 |
+
#wpbody-content > div.wrap.mashsb_admin > h2 > a.nav-tab.nav-tab-active{
|
1025 |
+
background-color: white;
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
.mashsb_admin .mashsb-helper {
|
1029 |
+
border-radius: 50%;
|
1030 |
+
border: 2px solid #fff;
|
1031 |
+
background-color: #0097df;
|
1032 |
+
width: 15px;
|
1033 |
+
height: 15px;
|
1034 |
+
display: inline-block;
|
1035 |
+
position: relative;
|
1036 |
+
top: 4px;
|
1037 |
+
margin-top: -4px;
|
1038 |
+
cursor: pointer;
|
1039 |
+
margin-left: 2px;
|
1040 |
+
}
|
1041 |
+
|
1042 |
+
.mashsb_admin .mashsb-helper:after {
|
1043 |
+
height: 20px;
|
1044 |
+
font-family: sans-serif;
|
1045 |
+
content: "?";
|
1046 |
+
color: #fff;
|
1047 |
+
font-size: 11px;
|
1048 |
+
font-weight: bold;
|
1049 |
+
left: 4px;
|
1050 |
+
position: absolute;
|
1051 |
+
}
|
1052 |
+
|
1053 |
+
.mashsb_admin .mashsb-message{
|
1054 |
+
display:block;
|
1055 |
+
padding: 10px;
|
1056 |
+
border: 1px solid #FBFBFB;
|
1057 |
+
border-radius: 2px;
|
1058 |
+
background-color: #F8F8F8;
|
1059 |
+
position: absolute;
|
1060 |
+
max-width: 500px;
|
1061 |
+
z-index: 9999;
|
1062 |
+
display: none;
|
1063 |
+
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
|
1064 |
+
font-weight: normal;
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
.mashsb-sidebar{
|
1068 |
+
float:left;
|
1069 |
+
max-width: 299px;
|
1070 |
+
border-left: 1px solid white;
|
1071 |
+
border-right: 1px solid white;
|
1072 |
+
border-bottom: 1px solid white;
|
1073 |
+
}
|
1074 |
+
|
1075 |
+
.mashsb-sidebar h2 {
|
1076 |
+
margin:0px;
|
1077 |
+
}
|
1078 |
+
.mashsb-sidebar p {
|
1079 |
+
|
1080 |
+
}
|
1081 |
+
.mashsb-sidebar .author, .mashsb-sidebar .via {
|
1082 |
+
text-align: right;
|
1083 |
+
margin:0px;
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
.mashsb_admin .panel-container{
|
1087 |
+
float:left;
|
1088 |
+
}
|
1089 |
+
|
1090 |
+
.mashsb_admin .subscribe.block{
|
1091 |
+
padding:20px;
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
.mashsb_admin .block.testimonial{
|
1095 |
+
padding: 20px;
|
1096 |
+
background-color: #E9E9E9;
|
1097 |
+
}
|
1098 |
+
.mashsb_admin .block.testimonial a{
|
1099 |
+
color: #0097df;
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
.mashsb_admin .dashicons-star-filled:before {
|
1103 |
+
color: #0097df;
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
.mashsb_admin .testimonial .via a:before {
|
1107 |
+
content: "\f301";
|
1108 |
+
display: inline-block;
|
1109 |
+
-webkit-font-smoothing: antialiased;
|
1110 |
+
font: normal 18px/1 'dashicons';
|
1111 |
+
vertical-align: top;
|
1112 |
+
margin-right: 3px;
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
|
1116 |
+
.mashsb-license-error-notice,
|
1117 |
+
.mashsb-license-expires-soon-notice {
|
1118 |
+
background-color: #fff;
|
1119 |
+
padding: 10px;
|
1120 |
+
border-left: 4px solid #7ad03a;
|
1121 |
+
overflow: auto;
|
1122 |
+
-webkit-box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
|
1123 |
+
box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
|
1124 |
+
border: 1px solid #ECECEC;
|
1125 |
+
border-radius: 3px;
|
1126 |
+
}
|
1127 |
+
.mashsb-license-error-notice a {
|
1128 |
+
color: #0097df;
|
1129 |
+
text-decoration: underline;
|
1130 |
+
}
|
1131 |
+
.mashsb-license-error-notice { border-left: 4px solid #dd3d36; }
|
1132 |
+
.mashsb-license-lifetime-notice,
|
1133 |
+
.mashsb-license-expiration-date-notice,
|
1134 |
+
.mashsb-license-null { padding: 0 0 0 14px; }
|
1135 |
+
.mashsb-license-lifetime-notice .mashsb-license-data p,
|
1136 |
+
.mashsb-license-expiration-date-notice .mashsb-license-data p { color: #666; font-size: 14px; font-style: italic; margin: 4px 0 0; }
|
1137 |
+
|
1138 |
+
#mashsb_settingslicenses_header-nav{
|
1139 |
+
display:none;
|
1140 |
+
}
|
1141 |
+
|
1142 |
+
#mashsb_settingslicenses_header{
|
1143 |
+
max-width:640px;
|
1144 |
+
}
|
1145 |
+
|
1146 |
+
#mashsb_settingslicenses_header .row.th{
|
1147 |
+
min-width:250px;
|
1148 |
+
}
|
1149 |
+
|
1150 |
+
.mashsb-notice{
|
1151 |
+
background: #fff;
|
1152 |
+
border-left: 4px solid #46b450;
|
1153 |
+
-webkit-box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
|
1154 |
+
box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
|
1155 |
+
margin: 5px 15px 2px;
|
1156 |
+
padding: 1px 12px;
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
#tab_container .form-table th.mashsb-status-col{
|
1160 |
+
width: 50px;
|
1161 |
+
}
|
1162 |
+
|
1163 |
+
#tab_container .form-table th.mashsb-network-col{
|
1164 |
+
width: 150px;
|
1165 |
+
}
|
1166 |
+
|
1167 |
+
|
1168 |
+
.mashsb-about-wrap img {
|
1169 |
+
max-width: 99%;
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
.mashsb-chosen-select ul li .search-choice-close {
|
1173 |
+
padding:0px;
|
1174 |
+
}
|
1175 |
+
|
1176 |
+
#mashsb_settingsshorturl_header ul > li a{
|
1177 |
+
padding:0px;
|
1178 |
+
}
|
1179 |
+
#mashsb_settingsshorturl_header ul{
|
1180 |
+
float:none;
|
1181 |
+
max-width: 400px;
|
1182 |
+
background-color: #fff;
|
1183 |
+
}
|
assets/css/mashsb-admin.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.chosen-container .chosen-drop,.chosen-container-active .chosen-choices{border-color:#aaa;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1)}.colpick_hue_larr,.colpick_hue_rarr{border-bottom:6px solid transparent;width:0;height:0;border-top:6px solid transparent}.colpick,.mashsb-admin-onoffswitch{-webkit-user-select:none;-moz-user-select:none}#mashsb_network_list tr,.mashsb_list_item td{cursor:move}#mashsb_network_list td{padding:5px 10px}@media screen and (max-width:783px){#mashsb_network_list td{display:inline-block;width:auto;vertical-align:middle;min-width:110px}}.mashsb-richeditor,.mashsb-textarea{font-size:11px}@font-face{font-family:mashsb-font;src:url(data:application/octet-stream;base64,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)format('woff'),url(data:application/octet-stream;base64,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)format('truetype')}[class*=" mashicon-"]:hover,[class^=mashicon-]:hover{opacity:.8}[class*=" mashicon-"] .icon,[class*=" mashicon-"] .text,[class^=mashicon-] .icon,[class^=mashicon-] .text{color:#fff}[class*=" mashicon-"],[class^=mashicon-]{font-size:15px;border-radius:0;cursor:pointer}.mashicon-share:before,[class*=" mashicon-"] .icon:before,[class^=mashicon-] .icon:before{font-family:mashsb-font;font-style:normal;font-weight:400;speak:none;font-size:18px;display:inline-block;text-decoration:inherit;width:1em;margin-right:.7em;text-align:center;font-variant:normal;text-transform:none;margin-top:0;float:left}#mash-social-admin-head a,#tab_container ul li a,.mashsb-wrap a,.mashsb_admin a{text-decoration:none}.mashicon-facebook .icon:before{content:'\e800'}.mashicon-google .icon:before{content:'\e801'}.mashicon-pinterest .icon:before{content:'\e802'}.mashicon-linkedin .icon:before{content:'\e803'}.mashicon-digg .icon:before{content:'\e804'}.mashicon-reddit .icon:before{content:'\e805'}.mashicon-stumbleupon .icon:before{content:'\e806'}.mashicon-twitter .icon:before{content:'\e807'}.mashicon-mail .icon:before{content:'\e808'}.mashicon-vk .icon:before{content:'\e809'}.mashicon-print .icon:before{content:'\e80a'}.mashicon-delicious .icon:before{content:'\e80b'}.mashicon-buffer .icon:before{content:'\e80c'}.mashicon-heart .icon:before{content:'\e80d'}.mashicon-weibo .icon:before{content:'\e80e'}.mashicon-pocket .icon:before{content:'\e80f'}.mashicon-xing .icon:before{content:'\e810'}.mashicon-flattr .icon:before{content:'\e811'}.mashicon-odnoklassniki .icon:before{content:'\e812'}.mashicon-tumblr .icon:before{content:'\e813'}.mashicon-subscribe .icon:before{content:'\e808'}.mashicon-meneame .icon:before{content:'\e815'}.mashicon-managewp .icon:before{content:'\e816'}.mashicon-mailru .icon:before{content:'\E819'}.mashicon-line .icon:before{content:'\E81A'}.mashicon-yummly .icon:before{content:'\E81B'}.mashicon-whatsapp .icon:before{content:'\e814'}.mashicon-frype .icon:before{content:'\e81c'}.mashicon-skype .icon:before{content:'\e81d'}.mashicon-share:before{content:'\e81E'}.mashicon-facebook{background:#2d5f9a}.mashicon-twitter{background:#00c3f3}.mashicon-google{background:#d73d32}.mashicon-subscribe{background:#fff120}.mashicon-subscribe .icon,.mashicon-subscribe .text{color:#000}.mashicon-pinterest{background:#cd252b}.mashicon-linkedin{background:#2ba3e1}.mashicon-digg{background:#1b5791}.mashicon-stumbleupon{background:#eb4723}.mashicon-vk{background:#5d83aa}.mashicon-mail{background:#888}.mashicon-print{background:#666}.mashicon-reddit{background:#333}.mashicon-delicious{background:#39f}.mashicon-weibo{background:#ed1c24}.mashicon-pocket{background:#ee4055}.mashicon-xing{background:#135a5b}.mashicon-flattr{background:#8cb55b}.mashicon-odnoklassniki{background:#f4731c}.mashicon-managewp{background:#056cad}.mashicon-tumblr{background:#2c4762}.mashicon-meneame{background:#ff7d12}.mashicon-whatsapp{background:#1d9e11}.mashicon-buffer{background:#000}.mashicon-mailru{background:#044b89}.mashicon-line{background:#1dcd00}.mashicon-yummly{background:#e16120}.mashicon-frype{background:#f60}.mashicon-skype{background:#00afef}.mashsb-hidden{display:none}.mashsb-clearfix:after{display:block;visibility:hidden;content:".";text-indent:-9999px;height:0}a.mashsb-delete{color:#a00}a.mashsb-delete:hover{color:red}#mashsb-add-ons h2{margin:0 0 15px}#mashsb-add-ons .mashshare-addons{float:left;margin:0 15px 15px 0;background:#f0f0f0;border:1px solid #ccc;width:320px;padding:8px;height:315px;position:relative}#mashsb-add-ons .mashshare-addons h3{margin:0 0 8px;font-size:13px}#mashsb-add-ons .mashshare-addons .button-secondary{position:absolute;bottom:8px;left:8px}#mashsb-add-ons .mashshare-addons .third-party{display:none}#system-info-textarea{width:800px;height:400px;font-family:Menlo,Monaco,monospace;background:0 0;white-space:pre;overflow:auto;display:block}#mashsb_settingsgeneral_header .row:nth-child(3),#mashsb_settingsgeneral_header .row:nth-child(4),#mashsb_settingsgeneral_header .row:nth-child(6),.colpick,.colpick_full_ns .colpick_current_color,.colpick_full_ns .colpick_submit,.colpick_hex .colpick_hsb_b,.colpick_hex .colpick_hsb_h,.colpick_hex .colpick_hsb_s,.colpick_hex .colpick_rgb_b,.colpick_hex .colpick_rgb_g,.colpick_hex .colpick_rgb_r,.colpick_hex_ns .colpick_current_color,.colpick_hex_ns .colpick_submit,.colpick_rgbhex .colpick_hsb_b,.colpick_rgbhex .colpick_hsb_h,.colpick_rgbhex .colpick_hsb_s,.colpick_rgbhex_ns .colpick_current_color,.colpick_rgbhex_ns .colpick_submit{display:none}.mashsb-select-chosen{width:300px}.chosen-container-multi .chosen-choices{-webkit-border-radius:3px;border-radius:3px;border-color:#dfdfdf;background-image:none}.chosen-container-multi .chosen-choices input{margin:2px;height:27px!important;border-color:#dfdfdf}.chosen-container-active .chosen-choices{-webkit-border-top-left-radius:3px;border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0}.mashsb-license-error-notice,.mashsb-license-expires-soon-notice,.mashsb-notice{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.download_page_mashsb-tools .tablenav .actions{overflow:visible}.mashsb_user_search_wrap{position:relative;overflow:visible}.mashsb_user_search_results{position:absolute;left:0;top:27px}.mashsb_user_search_results ul{padding:10px 10px 4px;margin:0;background:#f0f0f0;border:1px solid #DFDFDF;width:300px;max-height:200px;overflow-y:scroll}.mashsb-graph .y1Axis{color:#edc240!important}.mashsb-graph .y2Axis{color:#afd8f8!important}input.large-text,textarea.large-text{max-width:600px}#css3lightboxpicker{margin:0;padding:0;border:0;width:70px;height:20px;line-height:20px}.colpick{position:absolute;width:346px;height:170px;overflow:hidden;font-family:Arial,Helvetica,sans-serif;background:#ebebeb;border:1px solid #bbb;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-ms-user-select:none;-o-user-select:none;user-select:none}.colpick_color{position:absolute;left:7px;top:7px;width:156px;height:156px;overflow:hidden;outline:#aaa solid 1px;cursor:crosshair}.colpick_color_overlay1{position:absolute;left:0;top:0;width:156px;height:156px;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:-moz-linear-gradient(left,rgba(255,255,255,1)0,rgba(255,255,255,0)100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,1)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,1)0,rgba(255,255,255,0)100%);background:-o-linear-gradient(left,rgba(255,255,255,1)0,rgba(255,255,255,0)100%);background:-ms-linear-gradient(left,rgba(255,255,255,1)0,rgba(255,255,255,0)100%);background:linear-gradient(to right,rgba(255,255,255,1)0,rgba(255,255,255,0)100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff')}.colpick_color_overlay2{position:absolute;left:0;top:0;width:156px;height:156px;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:-moz-linear-gradient(top,rgba(0,0,0,0)0,rgba(0,0,0,1)100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),color-stop(100%,rgba(0,0,0,1)));background:-webkit-linear-gradient(top,rgba(0,0,0,0)0,rgba(0,0,0,1)100%);background:-o-linear-gradient(top,rgba(0,0,0,0)0,rgba(0,0,0,1)100%);background:-ms-linear-gradient(top,rgba(0,0,0,0)0,rgba(0,0,0,1)100%);background:linear-gradient(to bottom,rgba(0,0,0,0)0,rgba(0,0,0,1)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#000000', GradientType=0)}.colpick_selector_outer{background:0 0;position:absolute;width:11px;height:11px;margin:-6px 0 0 -6px;border:1px solid #000;border-radius:50%}.colpick_selector_inner{position:absolute;width:9px;height:9px;border:1px solid #fff;border-radius:50%}.colpick_field,.colpick_hex_field,.colpick_submit{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.colpick_hue{position:absolute;top:6px;left:175px;width:19px;height:156px;border:1px solid #aaa;cursor:n-resize}.colpick_current_color,.colpick_new_color{width:60px;height:27px;border:1px solid #8f8f8f}.colpick_hue_arrs{position:absolute;left:-8px;width:35px;height:7px;margin:-7px 0 0}.colpick_hue_larr{position:absolute;border-left:7px solid #858585}.colpick_hue_rarr{position:absolute;right:0;border-right:7px solid #858585}.colpick_new_color{position:absolute;left:207px;top:6px;background:red}.colpick_current_color{position:absolute;left:277px;top:6px;background:red}.colpick_field,.colpick_hex_field{position:absolute;height:20px;width:60px;overflow:hidden;background:#f3f3f3;color:#b8b8b8;font-size:12px;border:1px solid #bdbdbd}.colpick_rgb_r{top:40px;left:207px}.colpick_rgb_g{top:67px;left:207px}.colpick_rgb_b{top:94px;left:207px}.colpick_hsb_h{top:40px;left:277px}.colpick_hsb_s{top:67px;left:277px}.colpick_hsb_b{top:94px;left:277px}.colpick_hex_field{width:68px;left:207px;top:121px}.colpick_focus{border-color:#999}.colpick_field_letter{position:absolute;width:12px;height:20px;line-height:20px;padding-left:4px;background:#efefef;border-right:1px solid #bdbdbd;font-weight:700;color:#777}.colpick_field_darr,.colpick_field_uarr{width:0;height:0;border-right:4px solid transparent}.colpick_field input,.colpick_hex_field input{position:absolute;right:11px;margin:0;padding:0;height:20px;line-height:20px;background:0 0;border:none;font-size:12px;font-family:Arial,Helvetica,sans-serif;color:#555;text-align:right;outline:0}.colpick_hex_field input{right:4px}.colpick_field_arrs{position:absolute;top:0;right:0;width:9px;height:21px;cursor:n-resize}.colpick_field_uarr{position:absolute;top:5px;border-left:4px solid transparent;border-bottom:4px solid #959595}.colpick_field_darr{position:absolute;bottom:5px;border-left:4px solid transparent;border-top:4px solid #959595}.colpick_submit{position:absolute;left:207px;top:149px;width:130px;height:22px;line-height:22px;background:#efefef;text-align:center;color:#555;font-size:12px;font-weight:700;border:1px solid #bdbdbd}.colpick_hex .colpick_hex_field div,.colpick_hex .colpick_hex_field input,.colpick_hex .colpick_submit{height:25px;line-height:25px}.colpick_submit:hover{background:#f3f3f3;border-color:#999;cursor:pointer}.colpick_full_ns .colpick_new_color{width:130px;height:25px}.colpick_full_ns .colpick_hsb_h,.colpick_full_ns .colpick_rgb_r{top:42px}.colpick_full_ns .colpick_hsb_s,.colpick_full_ns .colpick_rgb_g{top:73px}.colpick_full_ns .colpick_hsb_b,.colpick_full_ns .colpick_rgb_b{top:104px}.colpick_full_ns .colpick_hex_field{top:135px}.colpick_rgbhex{width:282px}.colpick_rgbhex .colpick_field,.colpick_rgbhex .colpick_submit{width:68px}.colpick_rgbhex .colpick_new_color{width:34px;border-right:none}.colpick_rgbhex .colpick_current_color{width:34px;left:240px;border-left:none}.colpick_rgbhex_ns .colpick_new_color{width:68px;border:1px solid #8f8f8f}.colpick_rgbhex_ns .colpick_rgb_r{top:42px}.colpick_rgbhex_ns .colpick_rgb_g{top:73px}.colpick_rgbhex_ns .colpick_rgb_b{top:104px}.colpick_rgbhex_ns .colpick_hex_field{top:135px}.colpick_hex{width:206px;height:201px}.colpick_hex .colpick_hex_field{width:72px;height:25px;top:168px;left:80px}.colpick_hex .colpick_new_color{left:9px;top:168px;width:30px;border-right:none}.mashsb-sidebar,.mashsb_admin .nav-tab{border-left:1px solid #fff;border-right:1px solid #fff}.colpick_hex .colpick_current_color{left:39px;top:168px;width:30px;border-left:none}.colpick_hex .colpick_submit{left:164px;top:168px;width:30px}.colpick_hex_ns .colpick_hex_field{width:80px}.colpick_hex_ns .colpick_new_color{width:60px;border:1px solid #8f8f8f}.colpick_dark{background:#161616;border-color:#2a2a2a}.colpick_dark .colpick_color{outline-color:#333}.colpick_dark .colpick_hue{border-color:#555}.colpick_dark .colpick_field,.colpick_dark .colpick_hex_field{background:#101010;border-color:#2d2d2d}.colpick_dark .colpick_field_letter{background:#131313;border-color:#2d2d2d;color:#696969}.colpick_dark .colpick_field input,.colpick_dark .colpick_hex_field input{color:#7a7a7a}.colpick_dark .colpick_field_uarr{border-bottom-color:#696969}.colpick_dark .colpick_field_darr{border-top-color:#696969}.colpick_dark .colpick_focus{border-color:#444}.colpick_dark .colpick_submit{background:#131313;border-color:#2d2d2d;color:#7a7a7a}.colpick_dark .colpick_submit:hover{background-color:#101010;border-color:#444}#tab_container ul{list-style:none;margin:0;padding:0;background:#f1f1f1;float:left;max-width:200px}#tab_container ul li:first-child.selected-tab{border-top:none}#tab_container ul li a.selected-tab{font-weight:700;text-decoration:none}#tab_container .row{padding-top:10px;padding-bottom:12px}#tab_container .row label strong,#tab_container .row strong{font-weight:700}.mashsb-tabs a{padding:5px}#tab_container>ul>li.mashsb-tabs.active{background-color:#fff}#tab_container .panel-container{background:#FFF;padding:0 20px 20px;overflow:auto;min-width:550px}#tab_container .form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;line-height:1.3;font-weight:600;font-size:15px;color:#484848}#tab_container span.description{display:block;font-weight:400;font-style:normal;font-size:13px;margin-top:7px;color:#484848}#tab_container .col-title{color:#484848}@media only screen and (max-width:680px){#tab_container ul{float:none}#tab_container .form-table tr>th{width:100%}#tab_container span.description{font-size:14px}#tab_container .form-table tr>td,#tab_container .form-table tr>th{padding:10px}}#tab_container ul li{margin-bottom:0}#tab_container ul li a{display:block;padding:10px 4px 10px 14px;border-width:1px 0;border-style:solid;border-top-color:#fff;border-bottom-color:#e7e7e7;color:#0097DF;font-weight:700}#tab_container ul li a:hover{background-color:#e5e5e5;color:#777}#mashtabcontainer>.mashtabs,.mashsb.nav-tab-wrapper .nav-tab-active{background-color:#fff}.mashsb_admin .mashsharelogo{display:block;float:left;color:#0097DF;font-weight:600;font-size:36px;padding-top:10px;padding-bottom:20px;width:210px}.mashsb_admin .nav-tab{color:#0097DF;border-top:1px solid #fff}.mashsb.nav-tab-wrapper{border-bottom:none!important;margin:0;clear:both}#tab_container table tbody tr:nth-child(1)>th>div{font-size:20px}.mashsb_hidden{display:none}#mashtabcontainer ul .active{background-color:#00adef;color:#fff;border-bottom-color:#0098D2}#mashtabcontainer ul .active:hover{background-color:#00A4E2;color:#fff;border-bottom-color:#0098D2}#mashtabcontainer ul li a{padding:10px 14px;background-color:#f3f3f3}#mashtabcontainer .mashtab-container{border:0 solid #ececec}.mashsb-admin-settings-header{font-size:20px;font-weight:700}.mashsb-version{display:block;padding-left:14px;padding-top:17px;font-size:15px}#mash-social-admin-head>li{float:left;margin-right:5px;padding-bottom:20px}#mash-social-admin-head .icon:before,#mash-social-admin-head a{font-size:12px;font-weight:400;float:none}#mash-social-admin-head a{padding:2px 5px}.mashsb-admin-onoffswitch{position:relative;width:55px;-ms-user-select:none}.mashsb-admin-onoffswitch-checkbox{display:none!important}.mashsb-admin-onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:1px solid #D6D6D6;border-radius:0}.mashsb-admin-onoffswitch-inner{display:block;width:200%;margin-left:-100%;transition:margin .3s ease-in 0s}.mashsb-admin-onoffswitch-inner:after,.mashsb-admin-onoffswitch-inner:before{display:block;float:left;width:50%;height:22px;padding:0;line-height:22px;font-size:12px;font-family:Trebuchet,Arial,sans-serif;font-weight:700;box-sizing:border-box}.mashsb-admin-onoffswitch-inner:before{content:"ON";padding-left:10px;background-color:#0097DF;color:#FFF}.mashsb-admin-onoffswitch-inner:after{content:"OFF";padding-right:10px;background-color:#EEE;color:#D6D6D6;text-align:right}.mashsb-admin-onoffswitch-switch{display:block;width:12px;max-height:12px;margin:5.5px;background:#FFF;position:absolute;top:0;bottom:0;right:33px;border:0 solid #D6D6D6;border-radius:0;transition:all .3s ease-in 0s}.mashsb-admin-onoffswitch-checkbox:checked+.mashsb-admin-onoffswitch-label .mashsb-admin-onoffswitch-inner{margin-left:0}.mashsb-admin-onoffswitch-checkbox:checked+.mashsb-admin-onoffswitch-label .mashsb-admin-onoffswitch-switch{right:2px}#wpbody-content>div.wrap.mashsb_admin>h2>a.nav-tab.nav-tab-active{background-color:#fff}.mashsb_admin .mashsb-helper{border-radius:50%;border:2px solid #fff;background-color:#0097df;width:15px;height:15px;display:inline-block;position:relative;top:4px;margin-top:-4px;cursor:pointer;margin-left:2px}.mashsb_admin .mashsb-helper:after{height:20px;font-family:sans-serif;content:"?";color:#fff;font-size:11px;font-weight:700;left:4px;position:absolute}.mashsb_admin .mashsb-message{padding:10px;border:1px solid #FBFBFB;border-radius:2px;background-color:#F8F8F8;position:absolute;max-width:500px;z-index:9999;display:none;box-shadow:0 0 5px rgba(0,0,0,.2);font-weight:400}.mashsb-sidebar{float:left;max-width:299px;border-bottom:1px solid #fff}.mashsb-sidebar h2{margin:0}.mashsb-sidebar .author,.mashsb-sidebar .via{text-align:right;margin:0}.mashsb_admin .panel-container{float:left}.mashsb_admin .subscribe.block{padding:20px}.mashsb_admin .block.testimonial{padding:20px;background-color:#E9E9E9}.mashsb_admin .block.testimonial a,.mashsb_admin .dashicons-star-filled:before{color:#0097df}.mashsb_admin .testimonial .via a:before{content:"\f301";display:inline-block;-webkit-font-smoothing:antialiased;font:400 18px/1 dashicons;vertical-align:top;margin-right:3px}.mashsb-license-error-notice,.mashsb-license-expires-soon-notice{background-color:#fff;padding:10px;overflow:auto;border:1px solid #ECECEC;border-radius:3px}.mashsb-license-error-notice a{color:#0097df;text-decoration:underline}.mashsb-license-error-notice{border-left:4px solid #dd3d36}.mashsb-license-expiration-date-notice,.mashsb-license-lifetime-notice,.mashsb-license-null{padding:0 0 0 14px}.mashsb-license-expiration-date-notice .mashsb-license-data p,.mashsb-license-lifetime-notice .mashsb-license-data p{color:#666;font-size:14px;font-style:italic;margin:4px 0 0}#mashsb_settingslicenses_header-nav{display:none}#mashsb_settingslicenses_header{max-width:640px}#mashsb_settingslicenses_header .row.th{min-width:250px}.mashsb-notice{background:#fff;border-left:4px solid #46b450;margin:5px 15px 2px;padding:1px 12px}#tab_container .form-table th.mashsb-status-col{width:50px}#tab_container .form-table th.mashsb-network-col{width:150px}.mashsb-about-wrap img{max-width:99%}#mashsb_settingsshorturl_header ul>li a,.mashsb-chosen-select ul li .search-choice-close{padding:0}#mashsb_settingsshorturl_header ul{float:none;max-width:400px;background-color:#fff}
|
assets/images/mashshare.png
ADDED
Binary file
|
assets/images/mashsharer.png
ADDED
Binary file
|
assets/images/og_placeholder_1200_627.png
ADDED
Binary file
|
assets/images/og_placeholder_1200_627_v1.png
ADDED
Binary file
|
assets/images/og_placeholder_1200_627_v2.png
ADDED
Binary file
|
assets/images/og_placeholder_1200_630.png
ADDED
Binary file
|
assets/images/pinterest_placeholder_600_900.png
ADDED
Binary file
|
assets/images/screenshots/async_cache_refresh.png
ADDED
Binary file
|
assets/images/screenshots/dashboard.png
ADDED
Binary file
|
assets/images/screenshots/most-shared-posts.png
ADDED
Binary file
|
assets/images/screenshots/open_graph_settings.png
ADDED
Binary file
|
assets/images/screenshots/shortcodes.png
ADDED
Binary file
|
assets/images/screenshots/social-networks-settings.png
ADDED
Binary file
|
assets/images/screenshots/social_media_integration.png
ADDED
Binary file
|
assets/images/screenshots/social_sharing_settings.png
ADDED
Binary file
|
assets/images/upgrade_to_pro.png
ADDED
Binary file
|
assets/js/chosen.jquery.js
ADDED
@@ -0,0 +1,1284 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
Chosen, a Select Box Enhancer for jQuery and Prototype
|
3 |
+
by Patrick Filler for Harvest, http://getharvest.com
|
4 |
+
|
5 |
+
Version 1.5.1
|
6 |
+
Full source at https://github.com/harvesthq/chosen
|
7 |
+
Copyright (c) 2011-2016 Harvest http://getharvest.com
|
8 |
+
|
9 |
+
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
|
10 |
+
This file is generated by `grunt build`, do not edit it by hand.
|
11 |
+
*/
|
12 |
+
|
13 |
+
(function() {
|
14 |
+
var $, AbstractChosen, Chosen, SelectParser, _ref,
|
15 |
+
__hasProp = {}.hasOwnProperty,
|
16 |
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
17 |
+
|
18 |
+
SelectParser = (function() {
|
19 |
+
function SelectParser() {
|
20 |
+
this.options_index = 0;
|
21 |
+
this.parsed = [];
|
22 |
+
}
|
23 |
+
|
24 |
+
SelectParser.prototype.add_node = function(child) {
|
25 |
+
if (child.nodeName.toUpperCase() === "OPTGROUP") {
|
26 |
+
return this.add_group(child);
|
27 |
+
} else {
|
28 |
+
return this.add_option(child);
|
29 |
+
}
|
30 |
+
};
|
31 |
+
|
32 |
+
SelectParser.prototype.add_group = function(group) {
|
33 |
+
var group_position, option, _i, _len, _ref, _results;
|
34 |
+
group_position = this.parsed.length;
|
35 |
+
this.parsed.push({
|
36 |
+
array_index: group_position,
|
37 |
+
group: true,
|
38 |
+
label: this.escapeExpression(group.label),
|
39 |
+
title: group.title ? group.title : void 0,
|
40 |
+
children: 0,
|
41 |
+
disabled: group.disabled,
|
42 |
+
classes: group.className
|
43 |
+
});
|
44 |
+
_ref = group.childNodes;
|
45 |
+
_results = [];
|
46 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
47 |
+
option = _ref[_i];
|
48 |
+
_results.push(this.add_option(option, group_position, group.disabled));
|
49 |
+
}
|
50 |
+
return _results;
|
51 |
+
};
|
52 |
+
|
53 |
+
SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
|
54 |
+
if (option.nodeName.toUpperCase() === "OPTION") {
|
55 |
+
if (option.text !== "") {
|
56 |
+
if (group_position != null) {
|
57 |
+
this.parsed[group_position].children += 1;
|
58 |
+
}
|
59 |
+
this.parsed.push({
|
60 |
+
array_index: this.parsed.length,
|
61 |
+
options_index: this.options_index,
|
62 |
+
value: option.value,
|
63 |
+
text: option.text,
|
64 |
+
html: option.innerHTML,
|
65 |
+
title: option.title ? option.title : void 0,
|
66 |
+
selected: option.selected,
|
67 |
+
disabled: group_disabled === true ? group_disabled : option.disabled,
|
68 |
+
group_array_index: group_position,
|
69 |
+
group_label: group_position != null ? this.parsed[group_position].label : null,
|
70 |
+
classes: option.className,
|
71 |
+
style: option.style.cssText
|
72 |
+
});
|
73 |
+
} else {
|
74 |
+
this.parsed.push({
|
75 |
+
array_index: this.parsed.length,
|
76 |
+
options_index: this.options_index,
|
77 |
+
empty: true
|
78 |
+
});
|
79 |
+
}
|
80 |
+
return this.options_index += 1;
|
81 |
+
}
|
82 |
+
};
|
83 |
+
|
84 |
+
SelectParser.prototype.escapeExpression = function(text) {
|
85 |
+
var map, unsafe_chars;
|
86 |
+
if ((text == null) || text === false) {
|
87 |
+
return "";
|
88 |
+
}
|
89 |
+
if (!/[\&\<\>\"\'\`]/.test(text)) {
|
90 |
+
return text;
|
91 |
+
}
|
92 |
+
map = {
|
93 |
+
"<": "<",
|
94 |
+
">": ">",
|
95 |
+
'"': """,
|
96 |
+
"'": "'",
|
97 |
+
"`": "`"
|
98 |
+
};
|
99 |
+
unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
|
100 |
+
return text.replace(unsafe_chars, function(chr) {
|
101 |
+
return map[chr] || "&";
|
102 |
+
});
|
103 |
+
};
|
104 |
+
|
105 |
+
return SelectParser;
|
106 |
+
|
107 |
+
})();
|
108 |
+
|
109 |
+
SelectParser.select_to_array = function(select) {
|
110 |
+
var child, parser, _i, _len, _ref;
|
111 |
+
parser = new SelectParser();
|
112 |
+
_ref = select.childNodes;
|
113 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
114 |
+
child = _ref[_i];
|
115 |
+
parser.add_node(child);
|
116 |
+
}
|
117 |
+
return parser.parsed;
|
118 |
+
};
|
119 |
+
|
120 |
+
AbstractChosen = (function() {
|
121 |
+
function AbstractChosen(form_field, options) {
|
122 |
+
this.form_field = form_field;
|
123 |
+
this.options = options != null ? options : {};
|
124 |
+
if (!AbstractChosen.browser_is_supported()) {
|
125 |
+
return;
|
126 |
+
}
|
127 |
+
this.is_multiple = this.form_field.multiple;
|
128 |
+
this.set_default_text();
|
129 |
+
this.set_default_values();
|
130 |
+
this.setup();
|
131 |
+
this.set_up_html();
|
132 |
+
this.register_observers();
|
133 |
+
this.on_ready();
|
134 |
+
}
|
135 |
+
|
136 |
+
AbstractChosen.prototype.set_default_values = function() {
|
137 |
+
var _this = this;
|
138 |
+
this.click_test_action = function(evt) {
|
139 |
+
return _this.test_active_click(evt);
|
140 |
+
};
|
141 |
+
this.activate_action = function(evt) {
|
142 |
+
return _this.activate_field(evt);
|
143 |
+
};
|
144 |
+
this.active_field = false;
|
145 |
+
this.mouse_on_container = false;
|
146 |
+
this.results_showing = false;
|
147 |
+
this.result_highlighted = null;
|
148 |
+
this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
|
149 |
+
this.disable_search_threshold = this.options.disable_search_threshold || 0;
|
150 |
+
this.disable_search = this.options.disable_search || false;
|
151 |
+
this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
|
152 |
+
this.group_search = this.options.group_search != null ? this.options.group_search : true;
|
153 |
+
this.search_contains = this.options.search_contains || false;
|
154 |
+
this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
|
155 |
+
this.max_selected_options = this.options.max_selected_options || Infinity;
|
156 |
+
this.inherit_select_classes = this.options.inherit_select_classes || false;
|
157 |
+
this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
|
158 |
+
this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
|
159 |
+
this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
|
160 |
+
return this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
|
161 |
+
};
|
162 |
+
|
163 |
+
AbstractChosen.prototype.set_default_text = function() {
|
164 |
+
if (this.form_field.getAttribute("data-placeholder")) {
|
165 |
+
this.default_text = this.form_field.getAttribute("data-placeholder");
|
166 |
+
} else if (this.is_multiple) {
|
167 |
+
this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
|
168 |
+
} else {
|
169 |
+
this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
|
170 |
+
}
|
171 |
+
return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
|
172 |
+
};
|
173 |
+
|
174 |
+
AbstractChosen.prototype.choice_label = function(item) {
|
175 |
+
if (this.include_group_label_in_selected && (item.group_label != null)) {
|
176 |
+
return "<b class='group-name'>" + item.group_label + "</b>" + item.html;
|
177 |
+
} else {
|
178 |
+
return item.html;
|
179 |
+
}
|
180 |
+
};
|
181 |
+
|
182 |
+
AbstractChosen.prototype.mouse_enter = function() {
|
183 |
+
return this.mouse_on_container = true;
|
184 |
+
};
|
185 |
+
|
186 |
+
AbstractChosen.prototype.mouse_leave = function() {
|
187 |
+
return this.mouse_on_container = false;
|
188 |
+
};
|
189 |
+
|
190 |
+
AbstractChosen.prototype.input_focus = function(evt) {
|
191 |
+
var _this = this;
|
192 |
+
if (this.is_multiple) {
|
193 |
+
if (!this.active_field) {
|
194 |
+
return setTimeout((function() {
|
195 |
+
return _this.container_mousedown();
|
196 |
+
}), 50);
|
197 |
+
}
|
198 |
+
} else {
|
199 |
+
if (!this.active_field) {
|
200 |
+
return this.activate_field();
|
201 |
+
}
|
202 |
+
}
|
203 |
+
};
|
204 |
+
|
205 |
+
AbstractChosen.prototype.input_blur = function(evt) {
|
206 |
+
var _this = this;
|
207 |
+
if (!this.mouse_on_container) {
|
208 |
+
this.active_field = false;
|
209 |
+
return setTimeout((function() {
|
210 |
+
return _this.blur_test();
|
211 |
+
}), 100);
|
212 |
+
}
|
213 |
+
};
|
214 |
+
|
215 |
+
AbstractChosen.prototype.results_option_build = function(options) {
|
216 |
+
var content, data, data_content, shown_results, _i, _len, _ref;
|
217 |
+
content = '';
|
218 |
+
shown_results = 0;
|
219 |
+
_ref = this.results_data;
|
220 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
221 |
+
data = _ref[_i];
|
222 |
+
data_content = '';
|
223 |
+
if (data.group) {
|
224 |
+
data_content = this.result_add_group(data);
|
225 |
+
} else {
|
226 |
+
data_content = this.result_add_option(data);
|
227 |
+
}
|
228 |
+
if (data_content !== '') {
|
229 |
+
shown_results++;
|
230 |
+
content += data_content;
|
231 |
+
}
|
232 |
+
if (options != null ? options.first : void 0) {
|
233 |
+
if (data.selected && this.is_multiple) {
|
234 |
+
this.choice_build(data);
|
235 |
+
} else if (data.selected && !this.is_multiple) {
|
236 |
+
this.single_set_selected_text(this.choice_label(data));
|
237 |
+
}
|
238 |
+
}
|
239 |
+
if (shown_results >= this.max_shown_results) {
|
240 |
+
break;
|
241 |
+
}
|
242 |
+
}
|
243 |
+
return content;
|
244 |
+
};
|
245 |
+
|
246 |
+
AbstractChosen.prototype.result_add_option = function(option) {
|
247 |
+
var classes, option_el;
|
248 |
+
if (!option.search_match) {
|
249 |
+
return '';
|
250 |
+
}
|
251 |
+
if (!this.include_option_in_results(option)) {
|
252 |
+
return '';
|
253 |
+
}
|
254 |
+
classes = [];
|
255 |
+
if (!option.disabled && !(option.selected && this.is_multiple)) {
|
256 |
+
classes.push("active-result");
|
257 |
+
}
|
258 |
+
if (option.disabled && !(option.selected && this.is_multiple)) {
|
259 |
+
classes.push("disabled-result");
|
260 |
+
}
|
261 |
+
if (option.selected) {
|
262 |
+
classes.push("result-selected");
|
263 |
+
}
|
264 |
+
if (option.group_array_index != null) {
|
265 |
+
classes.push("group-option");
|
266 |
+
}
|
267 |
+
if (option.classes !== "") {
|
268 |
+
classes.push(option.classes);
|
269 |
+
}
|
270 |
+
option_el = document.createElement("li");
|
271 |
+
option_el.className = classes.join(" ");
|
272 |
+
option_el.style.cssText = option.style;
|
273 |
+
option_el.setAttribute("data-option-array-index", option.array_index);
|
274 |
+
option_el.innerHTML = option.search_text;
|
275 |
+
if (option.title) {
|
276 |
+
option_el.title = option.title;
|
277 |
+
}
|
278 |
+
return this.outerHTML(option_el);
|
279 |
+
};
|
280 |
+
|
281 |
+
AbstractChosen.prototype.result_add_group = function(group) {
|
282 |
+
var classes, group_el;
|
283 |
+
if (!(group.search_match || group.group_match)) {
|
284 |
+
return '';
|
285 |
+
}
|
286 |
+
if (!(group.active_options > 0)) {
|
287 |
+
return '';
|
288 |
+
}
|
289 |
+
classes = [];
|
290 |
+
classes.push("group-result");
|
291 |
+
if (group.classes) {
|
292 |
+
classes.push(group.classes);
|
293 |
+
}
|
294 |
+
group_el = document.createElement("li");
|
295 |
+
group_el.className = classes.join(" ");
|
296 |
+
group_el.innerHTML = group.search_text;
|
297 |
+
if (group.title) {
|
298 |
+
group_el.title = group.title;
|
299 |
+
}
|
300 |
+
return this.outerHTML(group_el);
|
301 |
+
};
|
302 |
+
|
303 |
+
AbstractChosen.prototype.results_update_field = function() {
|
304 |
+
this.set_default_text();
|
305 |
+
if (!this.is_multiple) {
|
306 |
+
this.results_reset_cleanup();
|
307 |
+
}
|
308 |
+
this.result_clear_highlight();
|
309 |
+
this.results_build();
|
310 |
+
if (this.results_showing) {
|
311 |
+
return this.winnow_results();
|
312 |
+
}
|
313 |
+
};
|
314 |
+
|
315 |
+
AbstractChosen.prototype.reset_single_select_options = function() {
|
316 |
+
var result, _i, _len, _ref, _results;
|
317 |
+
_ref = this.results_data;
|
318 |
+
_results = [];
|
319 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
320 |
+
result = _ref[_i];
|
321 |
+
if (result.selected) {
|
322 |
+
_results.push(result.selected = false);
|
323 |
+
} else {
|
324 |
+
_results.push(void 0);
|
325 |
+
}
|
326 |
+
}
|
327 |
+
return _results;
|
328 |
+
};
|
329 |
+
|
330 |
+
AbstractChosen.prototype.results_toggle = function() {
|
331 |
+
if (this.results_showing) {
|
332 |
+
return this.results_hide();
|
333 |
+
} else {
|
334 |
+
return this.results_show();
|
335 |
+
}
|
336 |
+
};
|
337 |
+
|
338 |
+
AbstractChosen.prototype.results_search = function(evt) {
|
339 |
+
if (this.results_showing) {
|
340 |
+
return this.winnow_results();
|
341 |
+
} else {
|
342 |
+
return this.results_show();
|
343 |
+
}
|
344 |
+
};
|
345 |
+
|
346 |
+
AbstractChosen.prototype.winnow_results = function() {
|
347 |
+
var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
|
348 |
+
this.no_results_clear();
|
349 |
+
results = 0;
|
350 |
+
searchText = this.get_search_text();
|
351 |
+
escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
352 |
+
zregex = new RegExp(escapedSearchText, 'i');
|
353 |
+
regex = this.get_search_regex(escapedSearchText);
|
354 |
+
_ref = this.results_data;
|
355 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
356 |
+
option = _ref[_i];
|
357 |
+
option.search_match = false;
|
358 |
+
results_group = null;
|
359 |
+
if (this.include_option_in_results(option)) {
|
360 |
+
if (option.group) {
|
361 |
+
option.group_match = false;
|
362 |
+
option.active_options = 0;
|
363 |
+
}
|
364 |
+
if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
|
365 |
+
results_group = this.results_data[option.group_array_index];
|
366 |
+
if (results_group.active_options === 0 && results_group.search_match) {
|
367 |
+
results += 1;
|
368 |
+
}
|
369 |
+
results_group.active_options += 1;
|
370 |
+
}
|
371 |
+
option.search_text = option.group ? option.label : option.html;
|
372 |
+
if (!(option.group && !this.group_search)) {
|
373 |
+
option.search_match = this.search_string_match(option.search_text, regex);
|
374 |
+
if (option.search_match && !option.group) {
|
375 |
+
results += 1;
|
376 |
+
}
|
377 |
+
if (option.search_match) {
|
378 |
+
if (searchText.length) {
|
379 |
+
startpos = option.search_text.search(zregex);
|
380 |
+
text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
|
381 |
+
option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
|
382 |
+
}
|
383 |
+
if (results_group != null) {
|
384 |
+
results_group.group_match = true;
|
385 |
+
}
|
386 |
+
} else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
|
387 |
+
option.search_match = true;
|
388 |
+
}
|
389 |
+
}
|
390 |
+
}
|
391 |
+
}
|
392 |
+
this.result_clear_highlight();
|
393 |
+
if (results < 1 && searchText.length) {
|
394 |
+
this.update_results_content("");
|
395 |
+
return this.no_results(searchText);
|
396 |
+
} else {
|
397 |
+
this.update_results_content(this.results_option_build());
|
398 |
+
return this.winnow_results_set_highlight();
|
399 |
+
}
|
400 |
+
};
|
401 |
+
|
402 |
+
AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
|
403 |
+
var regex_anchor;
|
404 |
+
regex_anchor = this.search_contains ? "" : "^";
|
405 |
+
return new RegExp(regex_anchor + escaped_search_string, 'i');
|
406 |
+
};
|
407 |
+
|
408 |
+
AbstractChosen.prototype.search_string_match = function(search_string, regex) {
|
409 |
+
var part, parts, _i, _len;
|
410 |
+
if (regex.test(search_string)) {
|
411 |
+
return true;
|
412 |
+
} else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
|
413 |
+
parts = search_string.replace(/\[|\]/g, "").split(" ");
|
414 |
+
if (parts.length) {
|
415 |
+
for (_i = 0, _len = parts.length; _i < _len; _i++) {
|
416 |
+
part = parts[_i];
|
417 |
+
if (regex.test(part)) {
|
418 |
+
return true;
|
419 |
+
}
|
420 |
+
}
|
421 |
+
}
|
422 |
+
}
|
423 |
+
};
|
424 |
+
|
425 |
+
AbstractChosen.prototype.choices_count = function() {
|
426 |
+
var option, _i, _len, _ref;
|
427 |
+
if (this.selected_option_count != null) {
|
428 |
+
return this.selected_option_count;
|
429 |
+
}
|
430 |
+
this.selected_option_count = 0;
|
431 |
+
_ref = this.form_field.options;
|
432 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
433 |
+
option = _ref[_i];
|
434 |
+
if (option.selected) {
|
435 |
+
this.selected_option_count += 1;
|
436 |
+
}
|
437 |
+
}
|
438 |
+
return this.selected_option_count;
|
439 |
+
};
|
440 |
+
|
441 |
+
AbstractChosen.prototype.choices_click = function(evt) {
|
442 |
+
evt.preventDefault();
|
443 |
+
if (!(this.results_showing || this.is_disabled)) {
|
444 |
+
return this.results_show();
|
445 |
+
}
|
446 |
+
};
|
447 |
+
|
448 |
+
AbstractChosen.prototype.keyup_checker = function(evt) {
|
449 |
+
var stroke, _ref;
|
450 |
+
stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
|
451 |
+
this.search_field_scale();
|
452 |
+
switch (stroke) {
|
453 |
+
case 8:
|
454 |
+
if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
|
455 |
+
return this.keydown_backstroke();
|
456 |
+
} else if (!this.pending_backstroke) {
|
457 |
+
this.result_clear_highlight();
|
458 |
+
return this.results_search();
|
459 |
+
}
|
460 |
+
break;
|
461 |
+
case 13:
|
462 |
+
evt.preventDefault();
|
463 |
+
if (this.results_showing) {
|
464 |
+
return this.result_select(evt);
|
465 |
+
}
|
466 |
+
break;
|
467 |
+
case 27:
|
468 |
+
if (this.results_showing) {
|
469 |
+
this.results_hide();
|
470 |
+
}
|
471 |
+
return true;
|
472 |
+
case 9:
|
473 |
+
case 38:
|
474 |
+
case 40:
|
475 |
+
case 16:
|
476 |
+
case 91:
|
477 |
+
case 17:
|
478 |
+
case 18:
|
479 |
+
break;
|
480 |
+
default:
|
481 |
+
return this.results_search();
|
482 |
+
}
|
483 |
+
};
|
484 |
+
|
485 |
+
AbstractChosen.prototype.clipboard_event_checker = function(evt) {
|
486 |
+
var _this = this;
|
487 |
+
return setTimeout((function() {
|
488 |
+
return _this.results_search();
|
489 |
+
}), 50);
|
490 |
+
};
|
491 |
+
|
492 |
+
AbstractChosen.prototype.container_width = function() {
|
493 |
+
if (this.options.width != null) {
|
494 |
+
return this.options.width;
|
495 |
+
} else {
|
496 |
+
return "" + this.form_field.offsetWidth + "px";
|
497 |
+
}
|
498 |
+
};
|
499 |
+
|
500 |
+
AbstractChosen.prototype.include_option_in_results = function(option) {
|
501 |
+
if (this.is_multiple && (!this.display_selected_options && option.selected)) {
|
502 |
+
return false;
|
503 |
+
}
|
504 |
+
if (!this.display_disabled_options && option.disabled) {
|
505 |
+
return false;
|
506 |
+
}
|
507 |
+
if (option.empty) {
|
508 |
+
return false;
|
509 |
+
}
|
510 |
+
return true;
|
511 |
+
};
|
512 |
+
|
513 |
+
AbstractChosen.prototype.search_results_touchstart = function(evt) {
|
514 |
+
this.touch_started = true;
|
515 |
+
return this.search_results_mouseover(evt);
|
516 |
+
};
|
517 |
+
|
518 |
+
AbstractChosen.prototype.search_results_touchmove = function(evt) {
|
519 |
+
this.touch_started = false;
|
520 |
+
return this.search_results_mouseout(evt);
|
521 |
+
};
|
522 |
+
|
523 |
+
AbstractChosen.prototype.search_results_touchend = function(evt) {
|
524 |
+
if (this.touch_started) {
|
525 |
+
return this.search_results_mouseup(evt);
|
526 |
+
}
|
527 |
+
};
|
528 |
+
|
529 |
+
AbstractChosen.prototype.outerHTML = function(element) {
|
530 |
+
var tmp;
|
531 |
+
if (element.outerHTML) {
|
532 |
+
return element.outerHTML;
|
533 |
+
}
|
534 |
+
tmp = document.createElement("div");
|
535 |
+
tmp.appendChild(element);
|
536 |
+
return tmp.innerHTML;
|
537 |
+
};
|
538 |
+
|
539 |
+
AbstractChosen.browser_is_supported = function() {
|
540 |
+
if (/iP(od|hone)/i.test(window.navigator.userAgent)) {
|
541 |
+
return false;
|
542 |
+
}
|
543 |
+
if (/Android/i.test(window.navigator.userAgent)) {
|
544 |
+
if (/Mobile/i.test(window.navigator.userAgent)) {
|
545 |
+
return false;
|
546 |
+
}
|
547 |
+
}
|
548 |
+
if (/IEMobile/i.test(window.navigator.userAgent)) {
|
549 |
+
return false;
|
550 |
+
}
|
551 |
+
if (/Windows Phone/i.test(window.navigator.userAgent)) {
|
552 |
+
return false;
|
553 |
+
}
|
554 |
+
if (/BlackBerry/i.test(window.navigator.userAgent)) {
|
555 |
+
return false;
|
556 |
+
}
|
557 |
+
if (/BB10/i.test(window.navigator.userAgent)) {
|
558 |
+
return false;
|
559 |
+
}
|
560 |
+
if (window.navigator.appName === "Microsoft Internet Explorer") {
|
561 |
+
return document.documentMode >= 8;
|
562 |
+
}
|
563 |
+
return true;
|
564 |
+
};
|
565 |
+
|
566 |
+
AbstractChosen.default_multiple_text = "Select Some Options";
|
567 |
+
|
568 |
+
AbstractChosen.default_single_text = "Select an Option";
|
569 |
+
|
570 |
+
AbstractChosen.default_no_result_text = "No results match";
|
571 |
+
|
572 |
+
return AbstractChosen;
|
573 |
+
|
574 |
+
})();
|
575 |
+
|
576 |
+
$ = jQuery;
|
577 |
+
|
578 |
+
$.fn.extend({
|
579 |
+
chosen: function(options) {
|
580 |
+
if (!AbstractChosen.browser_is_supported()) {
|
581 |
+
return this;
|
582 |
+
}
|
583 |
+
return this.each(function(input_field) {
|
584 |
+
var $this, chosen;
|
585 |
+
$this = $(this);
|
586 |
+
chosen = $this.data('chosen');
|
587 |
+
if (options === 'destroy') {
|
588 |
+
if (chosen instanceof Chosen) {
|
589 |
+
chosen.destroy();
|
590 |
+
}
|
591 |
+
return;
|
592 |
+
}
|
593 |
+
if (!(chosen instanceof Chosen)) {
|
594 |
+
$this.data('chosen', new Chosen(this, options));
|
595 |
+
}
|
596 |
+
});
|
597 |
+
}
|
598 |
+
});
|
599 |
+
|
600 |
+
Chosen = (function(_super) {
|
601 |
+
__extends(Chosen, _super);
|
602 |
+
|
603 |
+
function Chosen() {
|
604 |
+
_ref = Chosen.__super__.constructor.apply(this, arguments);
|
605 |
+
return _ref;
|
606 |
+
}
|
607 |
+
|
608 |
+
Chosen.prototype.setup = function() {
|
609 |
+
this.form_field_jq = $(this.form_field);
|
610 |
+
this.current_selectedIndex = this.form_field.selectedIndex;
|
611 |
+
return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
|
612 |
+
};
|
613 |
+
|
614 |
+
Chosen.prototype.set_up_html = function() {
|
615 |
+
var container_classes, container_props;
|
616 |
+
container_classes = ["chosen-container"];
|
617 |
+
container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
|
618 |
+
if (this.inherit_select_classes && this.form_field.className) {
|
619 |
+
container_classes.push(this.form_field.className);
|
620 |
+
}
|
621 |
+
if (this.is_rtl) {
|
622 |
+
container_classes.push("chosen-rtl");
|
623 |
+
}
|
624 |
+
container_props = {
|
625 |
+
'class': container_classes.join(' '),
|
626 |
+
'style': "width: " + (this.container_width()) + ";",
|
627 |
+
'title': this.form_field.title
|
628 |
+
};
|
629 |
+
if (this.form_field.id.length) {
|
630 |
+
container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
|
631 |
+
}
|
632 |
+
this.container = $("<div />", container_props);
|
633 |
+
if (this.is_multiple) {
|
634 |
+
this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
|
635 |
+
} else {
|
636 |
+
this.container.html('<a class="chosen-single chosen-default"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
|
637 |
+
}
|
638 |
+
this.form_field_jq.hide().after(this.container);
|
639 |
+
this.dropdown = this.container.find('div.chosen-drop').first();
|
640 |
+
this.search_field = this.container.find('input').first();
|
641 |
+
this.search_results = this.container.find('ul.chosen-results').first();
|
642 |
+
this.search_field_scale();
|
643 |
+
this.search_no_results = this.container.find('li.no-results').first();
|
644 |
+
if (this.is_multiple) {
|
645 |
+
this.search_choices = this.container.find('ul.chosen-choices').first();
|
646 |
+
this.search_container = this.container.find('li.search-field').first();
|
647 |
+
} else {
|
648 |
+
this.search_container = this.container.find('div.chosen-search').first();
|
649 |
+
this.selected_item = this.container.find('.chosen-single').first();
|
650 |
+
}
|
651 |
+
this.results_build();
|
652 |
+
this.set_tab_index();
|
653 |
+
return this.set_label_behavior();
|
654 |
+
};
|
655 |
+
|
656 |
+
Chosen.prototype.on_ready = function() {
|
657 |
+
return this.form_field_jq.trigger("chosen:ready", {
|
658 |
+
chosen: this
|
659 |
+
});
|
660 |
+
};
|
661 |
+
|
662 |
+
Chosen.prototype.register_observers = function() {
|
663 |
+
var _this = this;
|
664 |
+
this.container.bind('touchstart.chosen', function(evt) {
|
665 |
+
_this.container_mousedown(evt);
|
666 |
+
return evt.preventDefault();
|
667 |
+
});
|
668 |
+
this.container.bind('touchend.chosen', function(evt) {
|
669 |
+
_this.container_mouseup(evt);
|
670 |
+
return evt.preventDefault();
|
671 |
+
});
|
672 |
+
this.container.bind('mousedown.chosen', function(evt) {
|
673 |
+
_this.container_mousedown(evt);
|
674 |
+
});
|
675 |
+
this.container.bind('mouseup.chosen', function(evt) {
|
676 |
+
_this.container_mouseup(evt);
|
677 |
+
});
|
678 |
+
this.container.bind('mouseenter.chosen', function(evt) {
|
679 |
+
_this.mouse_enter(evt);
|
680 |
+
});
|
681 |
+
this.container.bind('mouseleave.chosen', function(evt) {
|
682 |
+
_this.mouse_leave(evt);
|
683 |
+
});
|
684 |
+
this.search_results.bind('mouseup.chosen', function(evt) {
|
685 |
+
_this.search_results_mouseup(evt);
|
686 |
+
});
|
687 |
+
this.search_results.bind('mouseover.chosen', function(evt) {
|
688 |
+
_this.search_results_mouseover(evt);
|
689 |
+
});
|
690 |
+
this.search_results.bind('mouseout.chosen', function(evt) {
|
691 |
+
_this.search_results_mouseout(evt);
|
692 |
+
});
|
693 |
+
this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
|
694 |
+
_this.search_results_mousewheel(evt);
|
695 |
+
});
|
696 |
+
this.search_results.bind('touchstart.chosen', function(evt) {
|
697 |
+
_this.search_results_touchstart(evt);
|
698 |
+
});
|
699 |
+
this.search_results.bind('touchmove.chosen', function(evt) {
|
700 |
+
_this.search_results_touchmove(evt);
|
701 |
+
});
|
702 |
+
this.search_results.bind('touchend.chosen', function(evt) {
|
703 |
+
_this.search_results_touchend(evt);
|
704 |
+
});
|
705 |
+
this.form_field_jq.bind("chosen:updated.chosen", function(evt) {
|
706 |
+
_this.results_update_field(evt);
|
707 |
+
});
|
708 |
+
this.form_field_jq.bind("chosen:activate.chosen", function(evt) {
|
709 |
+
_this.activate_field(evt);
|
710 |
+
});
|
711 |
+
this.form_field_jq.bind("chosen:open.chosen", function(evt) {
|
712 |
+
_this.container_mousedown(evt);
|
713 |
+
});
|
714 |
+
this.form_field_jq.bind("chosen:close.chosen", function(evt) {
|
715 |
+
_this.input_blur(evt);
|
716 |
+
});
|
717 |
+
this.search_field.bind('blur.chosen', function(evt) {
|
718 |
+
_this.input_blur(evt);
|
719 |
+
});
|
720 |
+
this.search_field.bind('keyup.chosen', function(evt) {
|
721 |
+
_this.keyup_checker(evt);
|
722 |
+
});
|
723 |
+
this.search_field.bind('keydown.chosen', function(evt) {
|
724 |
+
_this.keydown_checker(evt);
|
725 |
+
});
|
726 |
+
this.search_field.bind('focus.chosen', function(evt) {
|
727 |
+
_this.input_focus(evt);
|
728 |
+
});
|
729 |
+
this.search_field.bind('cut.chosen', function(evt) {
|
730 |
+
_this.clipboard_event_checker(evt);
|
731 |
+
});
|
732 |
+
this.search_field.bind('paste.chosen', function(evt) {
|
733 |
+
_this.clipboard_event_checker(evt);
|
734 |
+
});
|
735 |
+
if (this.is_multiple) {
|
736 |
+
return this.search_choices.bind('click.chosen', function(evt) {
|
737 |
+
_this.choices_click(evt);
|
738 |
+
});
|
739 |
+
} else {
|
740 |
+
return this.container.bind('click.chosen', function(evt) {
|
741 |
+
evt.preventDefault();
|
742 |
+
});
|
743 |
+
}
|
744 |
+
};
|
745 |
+
|
746 |
+
Chosen.prototype.destroy = function() {
|
747 |
+
$(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
|
748 |
+
if (this.search_field[0].tabIndex) {
|
749 |
+
this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
|
750 |
+
}
|
751 |
+
this.container.remove();
|
752 |
+
this.form_field_jq.removeData('chosen');
|
753 |
+
return this.form_field_jq.show();
|
754 |
+
};
|
755 |
+
|
756 |
+
Chosen.prototype.search_field_disabled = function() {
|
757 |
+
this.is_disabled = this.form_field_jq[0].disabled;
|
758 |
+
if (this.is_disabled) {
|
759 |
+
this.container.addClass('chosen-disabled');
|
760 |
+
this.search_field[0].disabled = true;
|
761 |
+
if (!this.is_multiple) {
|
762 |
+
this.selected_item.unbind("focus.chosen", this.activate_action);
|
763 |
+
}
|
764 |
+
return this.close_field();
|
765 |
+
} else {
|
766 |
+
this.container.removeClass('chosen-disabled');
|
767 |
+
this.search_field[0].disabled = false;
|
768 |
+
if (!this.is_multiple) {
|
769 |
+
return this.selected_item.bind("focus.chosen", this.activate_action);
|
770 |
+
}
|
771 |
+
}
|
772 |
+
};
|
773 |
+
|
774 |
+
Chosen.prototype.container_mousedown = function(evt) {
|
775 |
+
if (!this.is_disabled) {
|
776 |
+
if (evt && evt.type === "mousedown" && !this.results_showing) {
|
777 |
+
evt.preventDefault();
|
778 |
+
}
|
779 |
+
if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
|
780 |
+
if (!this.active_field) {
|
781 |
+
if (this.is_multiple) {
|
782 |
+
this.search_field.val("");
|
783 |
+
}
|
784 |
+
$(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
|
785 |
+
this.results_show();
|
786 |
+
} else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
|
787 |
+
evt.preventDefault();
|
788 |
+
this.results_toggle();
|
789 |
+
}
|
790 |
+
return this.activate_field();
|
791 |
+
}
|
792 |
+
}
|
793 |
+
};
|
794 |
+
|
795 |
+
Chosen.prototype.container_mouseup = function(evt) {
|
796 |
+
if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
|
797 |
+
return this.results_reset(evt);
|
798 |
+
}
|
799 |
+
};
|
800 |
+
|
801 |
+
Chosen.prototype.search_results_mousewheel = function(evt) {
|
802 |
+
var delta;
|
803 |
+
if (evt.originalEvent) {
|
804 |
+
delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
|
805 |
+
}
|
806 |
+
if (delta != null) {
|
807 |
+
evt.preventDefault();
|
808 |
+
if (evt.type === 'DOMMouseScroll') {
|
809 |
+
delta = delta * 40;
|
810 |
+
}
|
811 |
+
return this.search_results.scrollTop(delta + this.search_results.scrollTop());
|
812 |
+
}
|
813 |
+
};
|
814 |
+
|
815 |
+
Chosen.prototype.blur_test = function(evt) {
|
816 |
+
if (!this.active_field && this.container.hasClass("chosen-container-active")) {
|
817 |
+
return this.close_field();
|
818 |
+
}
|
819 |
+
};
|
820 |
+
|
821 |
+
Chosen.prototype.close_field = function() {
|
822 |
+
$(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
|
823 |
+
this.active_field = false;
|
824 |
+
this.results_hide();
|
825 |
+
this.container.removeClass("chosen-container-active");
|
826 |
+
this.clear_backstroke();
|
827 |
+
this.show_search_field_default();
|
828 |
+
return this.search_field_scale();
|
829 |
+
};
|
830 |
+
|
831 |
+
Chosen.prototype.activate_field = function() {
|
832 |
+
this.container.addClass("chosen-container-active");
|
833 |
+
this.active_field = true;
|
834 |
+
this.search_field.val(this.search_field.val());
|
835 |
+
return this.search_field.focus();
|
836 |
+
};
|
837 |
+
|
838 |
+
Chosen.prototype.test_active_click = function(evt) {
|
839 |
+
var active_container;
|
840 |
+
active_container = $(evt.target).closest('.chosen-container');
|
841 |
+
if (active_container.length && this.container[0] === active_container[0]) {
|
842 |
+
return this.active_field = true;
|
843 |
+
} else {
|
844 |
+
return this.close_field();
|
845 |
+
}
|
846 |
+
};
|
847 |
+
|
848 |
+
Chosen.prototype.results_build = function() {
|
849 |
+
this.parsing = true;
|
850 |
+
this.selected_option_count = null;
|
851 |
+
this.results_data = SelectParser.select_to_array(this.form_field);
|
852 |
+
if (this.is_multiple) {
|
853 |
+
this.search_choices.find("li.search-choice").remove();
|
854 |
+
} else if (!this.is_multiple) {
|
855 |
+
this.single_set_selected_text();
|
856 |
+
if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
|
857 |
+
this.search_field[0].readOnly = true;
|
858 |
+
this.container.addClass("chosen-container-single-nosearch");
|
859 |
+
} else {
|
860 |
+
this.search_field[0].readOnly = false;
|
861 |
+
this.container.removeClass("chosen-container-single-nosearch");
|
862 |
+
}
|
863 |
+
}
|
864 |
+
this.update_results_content(this.results_option_build({
|
865 |
+
first: true
|
866 |
+
}));
|
867 |
+
this.search_field_disabled();
|
868 |
+
this.show_search_field_default();
|
869 |
+
this.search_field_scale();
|
870 |
+
return this.parsing = false;
|
871 |
+
};
|
872 |
+
|
873 |
+
Chosen.prototype.result_do_highlight = function(el) {
|
874 |
+
var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
|
875 |
+
if (el.length) {
|
876 |
+
this.result_clear_highlight();
|
877 |
+
this.result_highlight = el;
|
878 |
+
this.result_highlight.addClass("highlighted");
|
879 |
+
maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
|
880 |
+
visible_top = this.search_results.scrollTop();
|
881 |
+
visible_bottom = maxHeight + visible_top;
|
882 |
+
high_top = this.result_highlight.position().top + this.search_results.scrollTop();
|
883 |
+
high_bottom = high_top + this.result_highlight.outerHeight();
|
884 |
+
if (high_bottom >= visible_bottom) {
|
885 |
+
return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
|
886 |
+
} else if (high_top < visible_top) {
|
887 |
+
return this.search_results.scrollTop(high_top);
|
888 |
+
}
|
889 |
+
}
|
890 |
+
};
|
891 |
+
|
892 |
+
Chosen.prototype.result_clear_highlight = function() {
|
893 |
+
if (this.result_highlight) {
|
894 |
+
this.result_highlight.removeClass("highlighted");
|
895 |
+
}
|
896 |
+
return this.result_highlight = null;
|
897 |
+
};
|
898 |
+
|
899 |
+
Chosen.prototype.results_show = function() {
|
900 |
+
if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
|
901 |
+
this.form_field_jq.trigger("chosen:maxselected", {
|
902 |
+
chosen: this
|
903 |
+
});
|
904 |
+
return false;
|
905 |
+
}
|
906 |
+
this.container.addClass("chosen-with-drop");
|
907 |
+
this.results_showing = true;
|
908 |
+
this.search_field.focus();
|
909 |
+
this.search_field.val(this.search_field.val());
|
910 |
+
this.winnow_results();
|
911 |
+
return this.form_field_jq.trigger("chosen:showing_dropdown", {
|
912 |
+
chosen: this
|
913 |
+
});
|
914 |
+
};
|
915 |
+
|
916 |
+
Chosen.prototype.update_results_content = function(content) {
|
917 |
+
return this.search_results.html(content);
|
918 |
+
};
|
919 |
+
|
920 |
+
Chosen.prototype.results_hide = function() {
|
921 |
+
if (this.results_showing) {
|
922 |
+
this.result_clear_highlight();
|
923 |
+
this.container.removeClass("chosen-with-drop");
|
924 |
+
this.form_field_jq.trigger("chosen:hiding_dropdown", {
|
925 |
+
chosen: this
|
926 |
+
});
|
927 |
+
}
|
928 |
+
return this.results_showing = false;
|
929 |
+
};
|
930 |
+
|
931 |
+
Chosen.prototype.set_tab_index = function(el) {
|
932 |
+
var ti;
|
933 |
+
if (this.form_field.tabIndex) {
|
934 |
+
ti = this.form_field.tabIndex;
|
935 |
+
this.form_field.tabIndex = -1;
|
936 |
+
return this.search_field[0].tabIndex = ti;
|
937 |
+
}
|
938 |
+
};
|
939 |
+
|
940 |
+
Chosen.prototype.set_label_behavior = function() {
|
941 |
+
var _this = this;
|
942 |
+
this.form_field_label = this.form_field_jq.parents("label");
|
943 |
+
if (!this.form_field_label.length && this.form_field.id.length) {
|
944 |
+
this.form_field_label = $("label[for='" + this.form_field.id + "']");
|
945 |
+
}
|
946 |
+
if (this.form_field_label.length > 0) {
|
947 |
+
return this.form_field_label.bind('click.chosen', function(evt) {
|
948 |
+
if (_this.is_multiple) {
|
949 |
+
return _this.container_mousedown(evt);
|
950 |
+
} else {
|
951 |
+
return _this.activate_field();
|
952 |
+
}
|
953 |
+
});
|
954 |
+
}
|
955 |
+
};
|
956 |
+
|
957 |
+
Chosen.prototype.show_search_field_default = function() {
|
958 |
+
if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
|
959 |
+
this.search_field.val(this.default_text);
|
960 |
+
return this.search_field.addClass("default");
|
961 |
+
} else {
|
962 |
+
this.search_field.val("");
|
963 |
+
return this.search_field.removeClass("default");
|
964 |
+
}
|
965 |
+
};
|
966 |
+
|
967 |
+
Chosen.prototype.search_results_mouseup = function(evt) {
|
968 |
+
var target;
|
969 |
+
target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
|
970 |
+
if (target.length) {
|
971 |
+
this.result_highlight = target;
|
972 |
+
this.result_select(evt);
|
973 |
+
return this.search_field.focus();
|
974 |
+
}
|
975 |
+
};
|
976 |
+
|
977 |
+
Chosen.prototype.search_results_mouseover = function(evt) {
|
978 |
+
var target;
|
979 |
+
target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
|
980 |
+
if (target) {
|
981 |
+
return this.result_do_highlight(target);
|
982 |
+
}
|
983 |
+
};
|
984 |
+
|
985 |
+
Chosen.prototype.search_results_mouseout = function(evt) {
|
986 |
+
if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
|
987 |
+
return this.result_clear_highlight();
|
988 |
+
}
|
989 |
+
};
|
990 |
+
|
991 |
+
Chosen.prototype.choice_build = function(item) {
|
992 |
+
var choice, close_link,
|
993 |
+
_this = this;
|
994 |
+
choice = $('<li />', {
|
995 |
+
"class": "search-choice"
|
996 |
+
}).html("<span>" + (this.choice_label(item)) + "</span>");
|
997 |
+
if (item.disabled) {
|
998 |
+
choice.addClass('search-choice-disabled');
|
999 |
+
} else {
|
1000 |
+
close_link = $('<a />', {
|
1001 |
+
"class": 'search-choice-close',
|
1002 |
+
'data-option-array-index': item.array_index
|
1003 |
+
});
|
1004 |
+
close_link.bind('click.chosen', function(evt) {
|
1005 |
+
return _this.choice_destroy_link_click(evt);
|
1006 |
+
});
|
1007 |
+
choice.append(close_link);
|
1008 |
+
}
|
1009 |
+
return this.search_container.before(choice);
|
1010 |
+
};
|
1011 |
+
|
1012 |
+
Chosen.prototype.choice_destroy_link_click = function(evt) {
|
1013 |
+
evt.preventDefault();
|
1014 |
+
evt.stopPropagation();
|
1015 |
+
if (!this.is_disabled) {
|
1016 |
+
return this.choice_destroy($(evt.target));
|
1017 |
+
}
|
1018 |
+
};
|
1019 |
+
|
1020 |
+
Chosen.prototype.choice_destroy = function(link) {
|
1021 |
+
if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
|
1022 |
+
this.show_search_field_default();
|
1023 |
+
if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
|
1024 |
+
this.results_hide();
|
1025 |
+
}
|
1026 |
+
link.parents('li').first().remove();
|
1027 |
+
return this.search_field_scale();
|
1028 |
+
}
|
1029 |
+
};
|
1030 |
+
|
1031 |
+
Chosen.prototype.results_reset = function() {
|
1032 |
+
this.reset_single_select_options();
|
1033 |
+
this.form_field.options[0].selected = true;
|
1034 |
+
this.single_set_selected_text();
|
1035 |
+
this.show_search_field_default();
|
1036 |
+
this.results_reset_cleanup();
|
1037 |
+
this.form_field_jq.trigger("change");
|
1038 |
+
if (this.active_field) {
|
1039 |
+
return this.results_hide();
|
1040 |
+
}
|
1041 |
+
};
|
1042 |
+
|
1043 |
+
Chosen.prototype.results_reset_cleanup = function() {
|
1044 |
+
this.current_selectedIndex = this.form_field.selectedIndex;
|
1045 |
+
return this.selected_item.find("abbr").remove();
|
1046 |
+
};
|
1047 |
+
|
1048 |
+
Chosen.prototype.result_select = function(evt) {
|
1049 |
+
var high, item;
|
1050 |
+
if (this.result_highlight) {
|
1051 |
+
high = this.result_highlight;
|
1052 |
+
this.result_clear_highlight();
|
1053 |
+
if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
|
1054 |
+
this.form_field_jq.trigger("chosen:maxselected", {
|
1055 |
+
chosen: this
|
1056 |
+
});
|
1057 |
+
return false;
|
1058 |
+
}
|
1059 |
+
if (this.is_multiple) {
|
1060 |
+
high.removeClass("active-result");
|
1061 |
+
} else {
|
1062 |
+
this.reset_single_select_options();
|
1063 |
+
}
|
1064 |
+
high.addClass("result-selected");
|
1065 |
+
item = this.results_data[high[0].getAttribute("data-option-array-index")];
|
1066 |
+
item.selected = true;
|
1067 |
+
this.form_field.options[item.options_index].selected = true;
|
1068 |
+
this.selected_option_count = null;
|
1069 |
+
if (this.is_multiple) {
|
1070 |
+
this.choice_build(item);
|
1071 |
+
} else {
|
1072 |
+
this.single_set_selected_text(this.choice_label(item));
|
1073 |
+
}
|
1074 |
+
if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
|
1075 |
+
this.results_hide();
|
1076 |
+
}
|
1077 |
+
this.show_search_field_default();
|
1078 |
+
if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
|
1079 |
+
this.form_field_jq.trigger("change", {
|
1080 |
+
'selected': this.form_field.options[item.options_index].value
|
1081 |
+
});
|
1082 |
+
}
|
1083 |
+
this.current_selectedIndex = this.form_field.selectedIndex;
|
1084 |
+
evt.preventDefault();
|
1085 |
+
return this.search_field_scale();
|
1086 |
+
}
|
1087 |
+
};
|
1088 |
+
|
1089 |
+
Chosen.prototype.single_set_selected_text = function(text) {
|
1090 |
+
if (text == null) {
|
1091 |
+
text = this.default_text;
|
1092 |
+
}
|
1093 |
+
if (text === this.default_text) {
|
1094 |
+
this.selected_item.addClass("chosen-default");
|
1095 |
+
} else {
|
1096 |
+
this.single_deselect_control_build();
|
1097 |
+
this.selected_item.removeClass("chosen-default");
|
1098 |
+
}
|
1099 |
+
return this.selected_item.find("span").html(text);
|
1100 |
+
};
|
1101 |
+
|
1102 |
+
Chosen.prototype.result_deselect = function(pos) {
|
1103 |
+
var result_data;
|
1104 |
+
result_data = this.results_data[pos];
|
1105 |
+
if (!this.form_field.options[result_data.options_index].disabled) {
|
1106 |
+
result_data.selected = false;
|
1107 |
+
this.form_field.options[result_data.options_index].selected = false;
|
1108 |
+
this.selected_option_count = null;
|
1109 |
+
this.result_clear_highlight();
|
1110 |
+
if (this.results_showing) {
|
1111 |
+
this.winnow_results();
|
1112 |
+
}
|
1113 |
+
this.form_field_jq.trigger("change", {
|
1114 |
+
deselected: this.form_field.options[result_data.options_index].value
|
1115 |
+
});
|
1116 |
+
this.search_field_scale();
|
1117 |
+
return true;
|
1118 |
+
} else {
|
1119 |
+
return false;
|
1120 |
+
}
|
1121 |
+
};
|
1122 |
+
|
1123 |
+
Chosen.prototype.single_deselect_control_build = function() {
|
1124 |
+
if (!this.allow_single_deselect) {
|
1125 |
+
return;
|
1126 |
+
}
|
1127 |
+
if (!this.selected_item.find("abbr").length) {
|
1128 |
+
this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
|
1129 |
+
}
|
1130 |
+
return this.selected_item.addClass("chosen-single-with-deselect");
|
1131 |
+
};
|
1132 |
+
|
1133 |
+
Chosen.prototype.get_search_text = function() {
|
1134 |
+
return $('<div/>').text($.trim(this.search_field.val())).html();
|
1135 |
+
};
|
1136 |
+
|
1137 |
+
Chosen.prototype.winnow_results_set_highlight = function() {
|
1138 |
+
var do_high, selected_results;
|
1139 |
+
selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
|
1140 |
+
do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
|
1141 |
+
if (do_high != null) {
|
1142 |
+
return this.result_do_highlight(do_high);
|
1143 |
+
}
|
1144 |
+
};
|
1145 |
+
|
1146 |
+
Chosen.prototype.no_results = function(terms) {
|
1147 |
+
var no_results_html;
|
1148 |
+
no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
|
1149 |
+
no_results_html.find("span").first().html(terms);
|
1150 |
+
this.search_results.append(no_results_html);
|
1151 |
+
return this.form_field_jq.trigger("chosen:no_results", {
|
1152 |
+
chosen: this
|
1153 |
+
});
|
1154 |
+
};
|
1155 |
+
|
1156 |
+
Chosen.prototype.no_results_clear = function() {
|
1157 |
+
return this.search_results.find(".no-results").remove();
|
1158 |
+
};
|
1159 |
+
|
1160 |
+
Chosen.prototype.keydown_arrow = function() {
|
1161 |
+
var next_sib;
|
1162 |
+
if (this.results_showing && this.result_highlight) {
|
1163 |
+
next_sib = this.result_highlight.nextAll("li.active-result").first();
|
1164 |
+
if (next_sib) {
|
1165 |
+
return this.result_do_highlight(next_sib);
|
1166 |
+
}
|
1167 |
+
} else {
|
1168 |
+
return this.results_show();
|
1169 |
+
}
|
1170 |
+
};
|
1171 |
+
|
1172 |
+
Chosen.prototype.keyup_arrow = function() {
|
1173 |
+
var prev_sibs;
|
1174 |
+
if (!this.results_showing && !this.is_multiple) {
|
1175 |
+
return this.results_show();
|
1176 |
+
} else if (this.result_highlight) {
|
1177 |
+
prev_sibs = this.result_highlight.prevAll("li.active-result");
|
1178 |
+
if (prev_sibs.length) {
|
1179 |
+
return this.result_do_highlight(prev_sibs.first());
|
1180 |
+
} else {
|
1181 |
+
if (this.choices_count() > 0) {
|
1182 |
+
this.results_hide();
|
1183 |
+
}
|
1184 |
+
return this.result_clear_highlight();
|
1185 |
+
}
|
1186 |
+
}
|
1187 |
+
};
|
1188 |
+
|
1189 |
+
Chosen.prototype.keydown_backstroke = function() {
|
1190 |
+
var next_available_destroy;
|
1191 |
+
if (this.pending_backstroke) {
|
1192 |
+
this.choice_destroy(this.pending_backstroke.find("a").first());
|
1193 |
+
return this.clear_backstroke();
|
1194 |
+
} else {
|
1195 |
+
next_available_destroy = this.search_container.siblings("li.search-choice").last();
|
1196 |
+
if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
|
1197 |
+
this.pending_backstroke = next_available_destroy;
|
1198 |
+
if (this.single_backstroke_delete) {
|
1199 |
+
return this.keydown_backstroke();
|
1200 |
+
} else {
|
1201 |
+
return this.pending_backstroke.addClass("search-choice-focus");
|
1202 |
+
}
|
1203 |
+
}
|
1204 |
+
}
|
1205 |
+
};
|
1206 |
+
|
1207 |
+
Chosen.prototype.clear_backstroke = function() {
|
1208 |
+
if (this.pending_backstroke) {
|
1209 |
+
this.pending_backstroke.removeClass("search-choice-focus");
|
1210 |
+
}
|
1211 |
+
return this.pending_backstroke = null;
|
1212 |
+
};
|
1213 |
+
|
1214 |
+
Chosen.prototype.keydown_checker = function(evt) {
|
1215 |
+
var stroke, _ref1;
|
1216 |
+
stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
|
1217 |
+
this.search_field_scale();
|
1218 |
+
if (stroke !== 8 && this.pending_backstroke) {
|
1219 |
+
this.clear_backstroke();
|
1220 |
+
}
|
1221 |
+
switch (stroke) {
|
1222 |
+
case 8:
|
1223 |
+
this.backstroke_length = this.search_field.val().length;
|
1224 |
+
break;
|
1225 |
+
case 9:
|
1226 |
+
if (this.results_showing && !this.is_multiple) {
|
1227 |
+
this.result_select(evt);
|
1228 |
+
}
|
1229 |
+
this.mouse_on_container = false;
|
1230 |
+
break;
|
1231 |
+
case 13:
|
1232 |
+
if (this.results_showing) {
|
1233 |
+
evt.preventDefault();
|
1234 |
+
}
|
1235 |
+
break;
|
1236 |
+
case 32:
|
1237 |
+
if (this.disable_search) {
|
1238 |
+
evt.preventDefault();
|
1239 |
+
}
|
1240 |
+
break;
|
1241 |
+
case 38:
|
1242 |
+
evt.preventDefault();
|
1243 |
+
this.keyup_arrow();
|
1244 |
+
break;
|
1245 |
+
case 40:
|
1246 |
+
evt.preventDefault();
|
1247 |
+
this.keydown_arrow();
|
1248 |
+
break;
|
1249 |
+
}
|
1250 |
+
};
|
1251 |
+
|
1252 |
+
Chosen.prototype.search_field_scale = function() {
|
1253 |
+
var div, f_width, h, style, style_block, styles, w, _i, _len;
|
1254 |
+
if (this.is_multiple) {
|
1255 |
+
h = 0;
|
1256 |
+
w = 0;
|
1257 |
+
style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
|
1258 |
+
styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
|
1259 |
+
for (_i = 0, _len = styles.length; _i < _len; _i++) {
|
1260 |
+
style = styles[_i];
|
1261 |
+
style_block += style + ":" + this.search_field.css(style) + ";";
|
1262 |
+
}
|
1263 |
+
div = $('<div />', {
|
1264 |
+
'style': style_block
|
1265 |
+
});
|
1266 |
+
div.text(this.search_field.val());
|
1267 |
+
$('body').append(div);
|
1268 |
+
w = div.width() + 25;
|
1269 |
+
div.remove();
|
1270 |
+
f_width = this.container.outerWidth();
|
1271 |
+
if (w > f_width - 10) {
|
1272 |
+
w = f_width - 10;
|
1273 |
+
}
|
1274 |
+
return this.search_field.css({
|
1275 |
+
'width': w + 'px'
|
1276 |
+
});
|
1277 |
+
}
|
1278 |
+
};
|
1279 |
+
|
1280 |
+
return Chosen;
|
1281 |
+
|
1282 |
+
})(AbstractChosen);
|
1283 |
+
|
1284 |
+
}).call(this);
|
assets/js/chosen.jquery.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
/* Chosen v1.5.1 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
|
2 |
+
(function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),title:a.title?a.title:void 0,children:0,disabled:a.disabled,classes:a.className}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,title:a.title?a.title:void 0,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,group_label:null!=b?this.parsed[b].label:null,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"<",">":">",'"':""","'":"'","`":"`"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(a){return this.include_group_label_in_selected&&null!=a.group_label?"<b class='group-name'>"+a.group_label+"</b>"+a.html:a.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(a){var b=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(a){var b=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return b.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f,g,h;for(b="",e=0,h=this.results_data,f=0,g=h.length;g>f&&(c=h[f],d="",d=c.group?this.result_add_group(c):this.result_add_option(c),""!==d&&(e++,b+=d),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(c))),!(e>=this.max_shown_results));f++);return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match&&this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.result_add_group=function(a){var b,c;return(a.search_match||a.group_match)&&a.active_options>0?(b=[],b.push("group-result"),a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),b.search_text=b.group?b.label:b.html,(!b.group||this.group_search)&&(b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b;return b=this.search_contains?"":"^",new RegExp(b+a,"i")},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(a){var b=this;return setTimeout(function(){return b.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:/IEMobile/i.test(window.navigator.userAgent)?!1:/Windows Phone/i.test(window.navigator.userAgent)?!1:/BlackBerry/i.test(window.navigator.userAgent)?!1:/BB10/i.test(window.navigator.userAgent)?!1:"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(c){var d,e;return d=a(this),e=d.data("chosen"),"destroy"===b?void(e instanceof Chosen&&e.destroy()):void(e instanceof Chosen||d.data("chosen",new Chosen(this,b)))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){return a.container_mousedown(b),b.preventDefault()}),this.container.bind("touchend.chosen",function(b){return a.container_mouseup(b),b.preventDefault()}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(a){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(a){var b;return this.form_field.tabIndex?(b=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=b):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(b)+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),b.addClass("result-selected"),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(this.choice_label(c)),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,a.preventDefault(),this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}).call(this);
|
assets/js/mashsb-admin.js
ADDED
@@ -0,0 +1,1557 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function ($) {
|
2 |
+
// Activate chosen select boxes
|
3 |
+
$(".mashsb-chosen-select").chosen({width: "400px"});
|
4 |
+
|
5 |
+
function mashsb_setCookie(name, value, days) {
|
6 |
+
if (days) {
|
7 |
+
var date = new Date();
|
8 |
+
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
9 |
+
var expires = "; expires=" + date.toGMTString();
|
10 |
+
}
|
11 |
+
else
|
12 |
+
var expires = "";
|
13 |
+
document.cookie = name + "=" + value + expires + "; path=/";
|
14 |
+
}
|
15 |
+
|
16 |
+
function mashsb_getCookie(name) {
|
17 |
+
var nameEQ = name + "=";
|
18 |
+
|
19 |
+
var ca = document.cookie.split(";");
|
20 |
+
for (var i = 0; i < ca.length; i++) {
|
21 |
+
var c = ca[i];
|
22 |
+
while (c.charAt(0) == ' ')
|
23 |
+
c = c.substring(1, c.length);
|
24 |
+
if (c.indexOf(nameEQ) == 0)
|
25 |
+
return c.substring(nameEQ.length, c.length);
|
26 |
+
}
|
27 |
+
return null;
|
28 |
+
}
|
29 |
+
|
30 |
+
function mashsb_eraseCookie(name) {
|
31 |
+
setCookie(name, "", -1);
|
32 |
+
}
|
33 |
+
|
34 |
+
/* Fade in sharedcount settings if needed */
|
35 |
+
$('#mashsb_settings\\[mashsb_sharemethod\\]').change(function () {
|
36 |
+
if ($('#mashsb_settings\\[mashsb_sharemethod\\]').val() === "sharedcount")
|
37 |
+
{
|
38 |
+
$('#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4)').fadeIn(500);
|
39 |
+
}
|
40 |
+
else
|
41 |
+
{
|
42 |
+
$('#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4)').fadeOut(500);
|
43 |
+
}
|
44 |
+
});
|
45 |
+
|
46 |
+
/*make visible when sharedcount.com is used*/
|
47 |
+
if ($('#mashsb_settings\\[mashsb_sharemethod\\]').val() === "sharedcount")
|
48 |
+
{
|
49 |
+
$('#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4)').fadeIn(500);
|
50 |
+
}
|
51 |
+
|
52 |
+
|
53 |
+
/* Fade in Caching method settings if needed */
|
54 |
+
$('#mashsb_settings\\[caching_method\\]').change(function () {
|
55 |
+
if ($('#mashsb_settings\\[caching_method\\]').val() === "refresh_loading")
|
56 |
+
{
|
57 |
+
$('#mashsb_settingsgeneral_header .row:nth-child(6)').fadeIn(500);
|
58 |
+
}
|
59 |
+
else
|
60 |
+
{
|
61 |
+
$('#mashsb_settingsgeneral_header .row:nth-child(6)').fadeOut(500);
|
62 |
+
}
|
63 |
+
});
|
64 |
+
|
65 |
+
/*make visible when setting "Refresh on Loading" is used*/
|
66 |
+
if ($('#mashsb_settings\\[caching_method\\]').val() === "refresh_loading")
|
67 |
+
{
|
68 |
+
$('#mashsb_settingsgeneral_header .row:nth-child(6)').fadeIn(500);
|
69 |
+
}
|
70 |
+
|
71 |
+
// Find active tab and set cookie with #ID
|
72 |
+
function find_active_tab() {
|
73 |
+
var tab = jQuery('.mashsb-tabs.active').find("a").attr("href");
|
74 |
+
mashsb_setCookie("mashsb_active_tab", tab);
|
75 |
+
}
|
76 |
+
|
77 |
+
// Get last active tab from cookie or return default value
|
78 |
+
function mashsb_get_tab_from_cookie() {
|
79 |
+
var tab = mashsb_getCookie('mashsb_active_tab');
|
80 |
+
if (tab == null) {
|
81 |
+
tab = '#mashsb_settingsgeneral_header';
|
82 |
+
}
|
83 |
+
return tab;
|
84 |
+
}
|
85 |
+
|
86 |
+
|
87 |
+
function mashsb_get_default_array() {
|
88 |
+
var tab_addons, tab_licenses;
|
89 |
+
var active_sub_tab;
|
90 |
+
|
91 |
+
// If active tab is Add-On Settings return empty defaultTab value
|
92 |
+
tab_addons = jQuery('.mashsb.nav-tab-wrapper a.nav-tab-active:nth-child(2)');
|
93 |
+
tab_licenses = jQuery('.mashsb.nav-tab-wrapper a.nav-tab-active:nth-child(3)');
|
94 |
+
|
95 |
+
if (tab_addons.length > 0 || tab_licenses.length > 0) {
|
96 |
+
return;
|
97 |
+
}
|
98 |
+
// Return active tab from cookie
|
99 |
+
return mashsb_get_tab_from_cookie() + '-nav';
|
100 |
+
}
|
101 |
+
|
102 |
+
// Start easytabs()
|
103 |
+
if ($(".mashsb-tabs").length) {
|
104 |
+
$('#tab_container').easytabs({
|
105 |
+
animate: true,
|
106 |
+
updateHash: true,
|
107 |
+
defaultTab: mashsb_get_default_array()
|
108 |
+
});
|
109 |
+
}
|
110 |
+
|
111 |
+
// Get active tab (Not for Add-On Settings)
|
112 |
+
$('#tab_container').bind('easytabs:after', function () {
|
113 |
+
if (jQuery('.mashsb.nav-tab-wrapper a.nav-tab-active:nth-child(2)').length == 0) {
|
114 |
+
find_active_tab();
|
115 |
+
}
|
116 |
+
});
|
117 |
+
|
118 |
+
if ($(".mashtab").length) {
|
119 |
+
$('.tabcontent_container').easytabs({
|
120 |
+
animate: true,
|
121 |
+
});
|
122 |
+
}
|
123 |
+
|
124 |
+
// Drag n drop social networks
|
125 |
+
$('#mashsb_network_list').sortable({
|
126 |
+
items: '.mashsb_list_item',
|
127 |
+
opacity: 0.6,
|
128 |
+
cursor: 'move',
|
129 |
+
axis: 'y',
|
130 |
+
update: function () {
|
131 |
+
var order = $(this).sortable('serialize') + '&action=mashsb_update_order';
|
132 |
+
$.post(ajaxurl, order, function (response) {
|
133 |
+
//alert(response);
|
134 |
+
|
135 |
+
});
|
136 |
+
}
|
137 |
+
});
|
138 |
+
|
139 |
+
|
140 |
+
// show / hide helper description
|
141 |
+
$('.mashsb-helper').click(function (e) {
|
142 |
+
e.preventDefault();
|
143 |
+
var icon = $(this),
|
144 |
+
bubble = $(this).next();
|
145 |
+
|
146 |
+
// Close any that are already open
|
147 |
+
$('.mashsb-message').not(bubble).hide();
|
148 |
+
|
149 |
+
var position = icon.position();
|
150 |
+
if (bubble.hasClass('bottom')) {
|
151 |
+
bubble.css({
|
152 |
+
'left': (position.left - bubble.width() / 2) + 'px',
|
153 |
+
'top': (position.top + icon.height() + 9) + 'px'
|
154 |
+
});
|
155 |
+
} else {
|
156 |
+
bubble.css({
|
157 |
+
'left': (position.left + icon.width() + 9) + 'px',
|
158 |
+
'top': (position.top + icon.height() / 2 - 18) + 'px'
|
159 |
+
});
|
160 |
+
}
|
161 |
+
|
162 |
+
bubble.toggle();
|
163 |
+
e.stopPropagation();
|
164 |
+
});
|
165 |
+
|
166 |
+
$('body').click(function () {
|
167 |
+
$('.mashsb-message').hide();
|
168 |
+
});
|
169 |
+
|
170 |
+
$('.mashsb-message').click(function (e) {
|
171 |
+
e.stopPropagation();
|
172 |
+
});
|
173 |
+
|
174 |
+
});
|
175 |
+
|
176 |
+
/*
|
177 |
+
* jQuery hashchange event - v1.3 - 7/21/2010
|
178 |
+
* http://benalman.com/projects/jquery-hashchange-plugin/
|
179 |
+
*
|
180 |
+
* Copyright (c) 2010 "Cowboy" Ben Alman
|
181 |
+
* Dual licensed under the MIT and GPL licenses.
|
182 |
+
* http://benalman.com/about/license/
|
183 |
+
*/
|
184 |
+
(function ($, e, b) {
|
185 |
+
var c = "hashchange", h = document, f, g = $.event.special, i = h.documentMode, d = "on" + c in e && (i === b || i > 7);
|
186 |
+
function a(j) {
|
187 |
+
j = j || location.href;
|
188 |
+
return"#" + j.replace(/^[^#]*#?(.*)$/, "$1")
|
189 |
+
}
|
190 |
+
$.fn[c] = function (j) {
|
191 |
+
return j ? this.bind(c, j) : this.trigger(c)
|
192 |
+
};
|
193 |
+
$.fn[c].delay = 50;
|
194 |
+
g[c] = $.extend(g[c], {setup: function () {
|
195 |
+
if (d) {
|
196 |
+
return false
|
197 |
+
}
|
198 |
+
$(f.start)
|
199 |
+
}, teardown: function () {
|
200 |
+
if (d) {
|
201 |
+
return false
|
202 |
+
}
|
203 |
+
$(f.stop)
|
204 |
+
}});
|
205 |
+
f = (function () {
|
206 |
+
var j = {}, p, m = a(), k = function (q) {
|
207 |
+
return q
|
208 |
+
}, l = k, o = k;
|
209 |
+
j.start = function () {
|
210 |
+
p || n()
|
211 |
+
};
|
212 |
+
j.stop = function () {
|
213 |
+
p && clearTimeout(p);
|
214 |
+
p = b
|
215 |
+
};
|
216 |
+
function n() {
|
217 |
+
var r = a(), q = o(m);
|
218 |
+
if (r !== m) {
|
219 |
+
l(m = r, q);
|
220 |
+
$(e).trigger(c)
|
221 |
+
} else {
|
222 |
+
if (q !== m) {
|
223 |
+
location.href = location.href.replace(/#.*/, "") + q
|
224 |
+
}
|
225 |
+
}
|
226 |
+
p = setTimeout(n, $.fn[c].delay)
|
227 |
+
}
|
228 |
+
$.browser.msie && !d && (function () {
|
229 |
+
var q, r;
|
230 |
+
j.start = function () {
|
231 |
+
if (!q) {
|
232 |
+
r = $.fn[c].src;
|
233 |
+
r = r && r + a();
|
234 |
+
q = $('<iframe tabindex="-1" title="empty"/>').hide().one("load", function () {
|
235 |
+
r || l(a());
|
236 |
+
n()
|
237 |
+
}).attr("src", r || "javascript:0").insertAfter("body")[0].contentWindow;
|
238 |
+
h.onpropertychange = function () {
|
239 |
+
try {
|
240 |
+
if (event.propertyName === "title") {
|
241 |
+
q.document.title = h.title
|
242 |
+
}
|
243 |
+
} catch (s) {
|
244 |
+
}
|
245 |
+
}
|
246 |
+
}
|
247 |
+
};
|
248 |
+
j.stop = k;
|
249 |
+
o = function () {
|
250 |
+
return a(q.location.href)
|
251 |
+
};
|
252 |
+
l = function (v, s) {
|
253 |
+
var u = q.document, t = $.fn[c].domain;
|
254 |
+
if (v !== s) {
|
255 |
+
u.title = h.title;
|
256 |
+
u.open();
|
257 |
+
t && u.write('<script>document.domain="' + t + '"<\/script>');
|
258 |
+
u.close();
|
259 |
+
q.location.hash = v
|
260 |
+
}
|
261 |
+
}
|
262 |
+
})();
|
263 |
+
return j
|
264 |
+
})()
|
265 |
+
})(jQuery, this);
|
266 |
+
|
267 |
+
/*
|
268 |
+
* jQuery EasyTabs plugin 3.2.0
|
269 |
+
*
|
270 |
+
* Copyright (c) 2010-2011 Steve Schwartz (JangoSteve)
|
271 |
+
*
|
272 |
+
* Dual licensed under the MIT and GPL licenses:
|
273 |
+
* http://www.opensource.org/licenses/mit-license.php
|
274 |
+
* http://www.gnu.org/licenses/gpl.html
|
275 |
+
*
|
276 |
+
* Date: Thu May 09 17:30:00 2013 -0500
|
277 |
+
*/
|
278 |
+
(function ($) {
|
279 |
+
|
280 |
+
$.easytabs = function (container, options) {
|
281 |
+
|
282 |
+
// Attach to plugin anything that should be available via
|
283 |
+
// the $container.data('easytabs') object
|
284 |
+
var plugin = this,
|
285 |
+
$container = $(container),
|
286 |
+
defaults = {
|
287 |
+
animate: true,
|
288 |
+
panelActiveClass: "active",
|
289 |
+
tabActiveClass: "active",
|
290 |
+
defaultTab: "li:first-child",
|
291 |
+
animationSpeed: "normal",
|
292 |
+
tabs: "> ul > li",
|
293 |
+
updateHash: true,
|
294 |
+
cycle: false,
|
295 |
+
collapsible: false,
|
296 |
+
collapsedClass: "collapsed",
|
297 |
+
collapsedByDefault: true,
|
298 |
+
uiTabs: false,
|
299 |
+
transitionIn: 'fadeIn',
|
300 |
+
transitionOut: 'fadeOut',
|
301 |
+
transitionInEasing: 'swing',
|
302 |
+
transitionOutEasing: 'swing',
|
303 |
+
transitionCollapse: 'slideUp',
|
304 |
+
transitionUncollapse: 'slideDown',
|
305 |
+
transitionCollapseEasing: 'swing',
|
306 |
+
transitionUncollapseEasing: 'swing',
|
307 |
+
containerClass: "",
|
308 |
+
tabsClass: "",
|
309 |
+
tabClass: "",
|
310 |
+
panelClass: "",
|
311 |
+
cache: true,
|
312 |
+
event: 'click',
|
313 |
+
panelContext: $container
|
314 |
+
},
|
315 |
+
// Internal instance variables
|
316 |
+
// (not available via easytabs object)
|
317 |
+
$defaultTab,
|
318 |
+
$defaultTabLink,
|
319 |
+
transitions,
|
320 |
+
lastHash,
|
321 |
+
skipUpdateToHash,
|
322 |
+
animationSpeeds = {
|
323 |
+
fast: 200,
|
324 |
+
normal: 400,
|
325 |
+
slow: 600
|
326 |
+
},
|
327 |
+
// Shorthand variable so that we don't need to call
|
328 |
+
// plugin.settings throughout the plugin code
|
329 |
+
settings;
|
330 |
+
|
331 |
+
// =============================================================
|
332 |
+
// Functions available via easytabs object
|
333 |
+
// =============================================================
|
334 |
+
|
335 |
+
plugin.init = function () {
|
336 |
+
|
337 |
+
plugin.settings = settings = $.extend({}, defaults, options);
|
338 |
+
settings.bind_str = settings.event + ".easytabs";
|
339 |
+
|
340 |
+
// Add jQuery UI's crazy class names to markup,
|
341 |
+
// so that markup will match theme CSS
|
342 |
+
if (settings.uiTabs) {
|
343 |
+
settings.tabActiveClass = 'ui-tabs-selected';
|
344 |
+
settings.containerClass = 'ui-tabs ui-widget ui-widget-content ui-corner-all';
|
345 |
+
settings.tabsClass = 'ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all';
|
346 |
+
settings.tabClass = 'ui-state-default ui-corner-top';
|
347 |
+
settings.panelClass = 'ui-tabs-panel ui-widget-content ui-corner-bottom';
|
348 |
+
}
|
349 |
+
|
350 |
+
// If collapsible is true and defaultTab specified, assume user wants defaultTab showing (not collapsed)
|
351 |
+
if (settings.collapsible && options.defaultTab !== undefined && options.collpasedByDefault === undefined) {
|
352 |
+
settings.collapsedByDefault = false;
|
353 |
+
}
|
354 |
+
|
355 |
+
// Convert 'normal', 'fast', and 'slow' animation speed settings to their respective speed in milliseconds
|
356 |
+
if (typeof (settings.animationSpeed) === 'string') {
|
357 |
+
settings.animationSpeed = animationSpeeds[settings.animationSpeed];
|
358 |
+
}
|
359 |
+
|
360 |
+
$('a.anchor').remove().prependTo('body');
|
361 |
+
|
362 |
+
// Store easytabs object on container so we can easily set
|
363 |
+
// properties throughout
|
364 |
+
$container.data('easytabs', {});
|
365 |
+
|
366 |
+
plugin.setTransitions();
|
367 |
+
|
368 |
+
plugin.getTabs();
|
369 |
+
|
370 |
+
addClasses();
|
371 |
+
|
372 |
+
setDefaultTab();
|
373 |
+
|
374 |
+
bindToTabClicks();
|
375 |
+
|
376 |
+
initHashChange();
|
377 |
+
|
378 |
+
initCycle();
|
379 |
+
|
380 |
+
// Append data-easytabs HTML attribute to make easy to query for
|
381 |
+
// easytabs instances via CSS pseudo-selector
|
382 |
+
$container.attr('data-easytabs', true);
|
383 |
+
};
|
384 |
+
|
385 |
+
// Set transitions for switching between tabs based on options.
|
386 |
+
// Could be used to update transitions if settings are changes.
|
387 |
+
plugin.setTransitions = function () {
|
388 |
+
transitions = (settings.animate) ? {
|
389 |
+
show: settings.transitionIn,
|
390 |
+
hide: settings.transitionOut,
|
391 |
+
speed: settings.animationSpeed,
|
392 |
+
collapse: settings.transitionCollapse,
|
393 |
+
uncollapse: settings.transitionUncollapse,
|
394 |
+
halfSpeed: settings.animationSpeed / 2
|
395 |
+
} :
|
396 |
+
{
|
397 |
+
show: "show",
|
398 |
+
hide: "hide",
|
399 |
+
speed: 0,
|
400 |
+
collapse: "hide",
|
401 |
+
uncollapse: "show",
|
402 |
+
halfSpeed: 0
|
403 |
+
};
|
404 |
+
};
|
405 |
+
|
406 |
+
// Find and instantiate tabs and panels.
|
407 |
+
// Could be used to reset tab and panel collection if markup is
|
408 |
+
// modified.
|
409 |
+
plugin.getTabs = function () {
|
410 |
+
var $matchingPanel;
|
411 |
+
|
412 |
+
// Find the initial set of elements matching the setting.tabs
|
413 |
+
// CSS selector within the container
|
414 |
+
plugin.tabs = $container.find(settings.tabs),
|
415 |
+
// Instantiate panels as empty jquery object
|
416 |
+
plugin.panels = $(),
|
417 |
+
plugin.tabs.each(function () {
|
418 |
+
var $tab = $(this),
|
419 |
+
$a = $tab.children('a'),
|
420 |
+
// targetId is the ID of the panel, which is either the
|
421 |
+
// `href` attribute for non-ajax tabs, or in the
|
422 |
+
// `data-target` attribute for ajax tabs since the `href` is
|
423 |
+
// the ajax URL
|
424 |
+
targetId = $tab.children('a').data('target');
|
425 |
+
|
426 |
+
$tab.data('easytabs', {});
|
427 |
+
|
428 |
+
// If the tab has a `data-target` attribute, and is thus an ajax tab
|
429 |
+
if (targetId !== undefined && targetId !== null) {
|
430 |
+
$tab.data('easytabs').ajax = $a.attr('href');
|
431 |
+
} else {
|
432 |
+
targetId = $a.attr('href');
|
433 |
+
}
|
434 |
+
targetId = targetId.match(/#([^\?]+)/)[1];
|
435 |
+
|
436 |
+
$matchingPanel = settings.panelContext.find("#" + targetId);
|
437 |
+
|
438 |
+
// If tab has a matching panel, add it to panels
|
439 |
+
if ($matchingPanel.length) {
|
440 |
+
|
441 |
+
// Store panel height before hiding
|
442 |
+
$matchingPanel.data('easytabs', {
|
443 |
+
position: $matchingPanel.css('position'),
|
444 |
+
visibility: $matchingPanel.css('visibility')
|
445 |
+
});
|
446 |
+
|
447 |
+
// Don't hide panel if it's active (allows `getTabs` to be called manually to re-instantiate tab collection)
|
448 |
+
$matchingPanel.not(settings.panelActiveClass).hide();
|
449 |
+
|
450 |
+
plugin.panels = plugin.panels.add($matchingPanel);
|
451 |
+
|
452 |
+
$tab.data('easytabs').panel = $matchingPanel;
|
453 |
+
|
454 |
+
// Otherwise, remove tab from tabs collection
|
455 |
+
} else {
|
456 |
+
plugin.tabs = plugin.tabs.not($tab);
|
457 |
+
if ('console' in window) {
|
458 |
+
console.warn('Warning: tab without matching panel for selector \'#' + targetId + '\' removed from set');
|
459 |
+
}
|
460 |
+
}
|
461 |
+
});
|
462 |
+
};
|
463 |
+
|
464 |
+
// Select tab and fire callback
|
465 |
+
plugin.selectTab = function ($clicked, callback) {
|
466 |
+
var url = window.location,
|
467 |
+
hash = url.hash.match(/^[^\?]*/)[0],
|
468 |
+
$targetPanel = $clicked.parent().data('easytabs').panel,
|
469 |
+
ajaxUrl = $clicked.parent().data('easytabs').ajax;
|
470 |
+
|
471 |
+
// Tab is collapsible and active => toggle collapsed state
|
472 |
+
if (settings.collapsible && !skipUpdateToHash && ($clicked.hasClass(settings.tabActiveClass) || $clicked.hasClass(settings.collapsedClass))) {
|
473 |
+
plugin.toggleTabCollapse($clicked, $targetPanel, ajaxUrl, callback);
|
474 |
+
|
475 |
+
// Tab is not active and panel is not active => select tab
|
476 |
+
} else if (!$clicked.hasClass(settings.tabActiveClass) || !$targetPanel.hasClass(settings.panelActiveClass)) {
|
477 |
+
activateTab($clicked, $targetPanel, ajaxUrl, callback);
|
478 |
+
|
479 |
+
// Cache is disabled => reload (e.g reload an ajax tab).
|
480 |
+
} else if (!settings.cache) {
|
481 |
+
activateTab($clicked, $targetPanel, ajaxUrl, callback);
|
482 |
+
}
|
483 |
+
|
484 |
+
};
|
485 |
+
|
486 |
+
// Toggle tab collapsed state and fire callback
|
487 |
+
plugin.toggleTabCollapse = function ($clicked, $targetPanel, ajaxUrl, callback) {
|
488 |
+
plugin.panels.stop(true, true);
|
489 |
+
|
490 |
+
if (fire($container, "easytabs:before", [$clicked, $targetPanel, settings])) {
|
491 |
+
plugin.tabs.filter("." + settings.tabActiveClass).removeClass(settings.tabActiveClass).children().removeClass(settings.tabActiveClass);
|
492 |
+
|
493 |
+
// If panel is collapsed, uncollapse it
|
494 |
+
if ($clicked.hasClass(settings.collapsedClass)) {
|
495 |
+
|
496 |
+
// If ajax panel and not already cached
|
497 |
+
if (ajaxUrl && (!settings.cache || !$clicked.parent().data('easytabs').cached)) {
|
498 |
+
$container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
|
499 |
+
|
500 |
+
$targetPanel.load(ajaxUrl, function (response, status, xhr) {
|
501 |
+
$clicked.parent().data('easytabs').cached = true;
|
502 |
+
$container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
|
503 |
+
});
|
504 |
+
}
|
505 |
+
|
506 |
+
// Update CSS classes of tab and panel
|
507 |
+
$clicked.parent()
|
508 |
+
.removeClass(settings.collapsedClass)
|
509 |
+
.addClass(settings.tabActiveClass)
|
510 |
+
.children()
|
511 |
+
.removeClass(settings.collapsedClass)
|
512 |
+
.addClass(settings.tabActiveClass);
|
513 |
+
|
514 |
+
$targetPanel
|
515 |
+
.addClass(settings.panelActiveClass)
|
516 |
+
[transitions.uncollapse](transitions.speed, settings.transitionUncollapseEasing, function () {
|
517 |
+
$container.trigger('easytabs:midTransition', [$clicked, $targetPanel, settings]);
|
518 |
+
if (typeof callback == 'function')
|
519 |
+
callback();
|
520 |
+
});
|
521 |
+
|
522 |
+
// Otherwise, collapse it
|
523 |
+
} else {
|
524 |
+
|
525 |
+
// Update CSS classes of tab and panel
|
526 |
+
$clicked.addClass(settings.collapsedClass)
|
527 |
+
.parent()
|
528 |
+
.addClass(settings.collapsedClass);
|
529 |
+
|
530 |
+
$targetPanel
|
531 |
+
.removeClass(settings.panelActiveClass)
|
532 |
+
[transitions.collapse](transitions.speed, settings.transitionCollapseEasing, function () {
|
533 |
+
$container.trigger("easytabs:midTransition", [$clicked, $targetPanel, settings]);
|
534 |
+
if (typeof callback == 'function')
|
535 |
+
callback();
|
536 |
+
});
|
537 |
+
}
|
538 |
+
}
|
539 |
+
};
|
540 |
+
|
541 |
+
|
542 |
+
// Find tab with target panel matching value
|
543 |
+
plugin.matchTab = function (hash) {
|
544 |
+
return plugin.tabs.find("[href='" + hash + "'],[data-target='" + hash + "']").first();
|
545 |
+
};
|
546 |
+
|
547 |
+
// Find panel with `id` matching value
|
548 |
+
plugin.matchInPanel = function (hash) {
|
549 |
+
return (hash && plugin.validId(hash) ? plugin.panels.filter(':has(' + hash + ')').first() : []);
|
550 |
+
};
|
551 |
+
|
552 |
+
// Make sure hash is a valid id value (admittedly strict in that HTML5 allows almost anything without a space)
|
553 |
+
// but jQuery has issues with such id values anyway, so we can afford to be strict here.
|
554 |
+
plugin.validId = function (id) {
|
555 |
+
return id.substr(1).match(/^[A-Za-z][A-Za-z0-9\-_:\.]*$/);
|
556 |
+
};
|
557 |
+
|
558 |
+
// Select matching tab when URL hash changes
|
559 |
+
plugin.selectTabFromHashChange = function () {
|
560 |
+
var hash = window.location.hash.match(/^[^\?]*/)[0],
|
561 |
+
$tab = plugin.matchTab(hash),
|
562 |
+
$panel;
|
563 |
+
|
564 |
+
if (settings.updateHash) {
|
565 |
+
|
566 |
+
// If hash directly matches tab
|
567 |
+
if ($tab.length) {
|
568 |
+
skipUpdateToHash = true;
|
569 |
+
plugin.selectTab($tab);
|
570 |
+
|
571 |
+
} else {
|
572 |
+
$panel = plugin.matchInPanel(hash);
|
573 |
+
|
574 |
+
// If panel contains element matching hash
|
575 |
+
if ($panel.length) {
|
576 |
+
hash = '#' + $panel.attr('id');
|
577 |
+
$tab = plugin.matchTab(hash);
|
578 |
+
skipUpdateToHash = true;
|
579 |
+
plugin.selectTab($tab);
|
580 |
+
|
581 |
+
// If default tab is not active...
|
582 |
+
} else if (!$defaultTab.hasClass(settings.tabActiveClass) && !settings.cycle) {
|
583 |
+
|
584 |
+
// ...and hash is blank or matches a parent of the tab container or
|
585 |
+
// if the last tab (before the hash updated) was one of the other tabs in this container.
|
586 |
+
if (hash === '' || plugin.matchTab(lastHash).length || $container.closest(hash).length) {
|
587 |
+
skipUpdateToHash = true;
|
588 |
+
plugin.selectTab($defaultTabLink);
|
589 |
+
}
|
590 |
+
}
|
591 |
+
}
|
592 |
+
}
|
593 |
+
};
|
594 |
+
|
595 |
+
// Cycle through tabs
|
596 |
+
plugin.cycleTabs = function (tabNumber) {
|
597 |
+
if (settings.cycle) {
|
598 |
+
tabNumber = tabNumber % plugin.tabs.length;
|
599 |
+
$tab = $(plugin.tabs[tabNumber]).children("a").first();
|
600 |
+
skipUpdateToHash = true;
|
601 |
+
plugin.selectTab($tab, function () {
|
602 |
+
setTimeout(function () {
|
603 |
+
plugin.cycleTabs(tabNumber + 1);
|
604 |
+
}, settings.cycle);
|
605 |
+
});
|
606 |
+
}
|
607 |
+
};
|
608 |
+
|
609 |
+
// Convenient public methods
|
610 |
+
plugin.publicMethods = {
|
611 |
+
select: function (tabSelector) {
|
612 |
+
var $tab;
|
613 |
+
|
614 |
+
// Find tab container that matches selector (like 'li#tab-one' which contains tab link)
|
615 |
+
if (($tab = plugin.tabs.filter(tabSelector)).length === 0) {
|
616 |
+
|
617 |
+
// Find direct tab link that matches href (like 'a[href="#panel-1"]')
|
618 |
+
if (($tab = plugin.tabs.find("a[href='" + tabSelector + "']")).length === 0) {
|
619 |
+
|
620 |
+
// Find direct tab link that matches selector (like 'a#tab-1')
|
621 |
+
if (($tab = plugin.tabs.find("a" + tabSelector)).length === 0) {
|
622 |
+
|
623 |
+
// Find direct tab link that matches data-target (lik 'a[data-target="#panel-1"]')
|
624 |
+
if (($tab = plugin.tabs.find("[data-target='" + tabSelector + "']")).length === 0) {
|
625 |
+
|
626 |
+
// Find direct tab link that ends in the matching href (like 'a[href$="#panel-1"]', which would also match http://example.com/currentpage/#panel-1)
|
627 |
+
if (($tab = plugin.tabs.find("a[href$='" + tabSelector + "']")).length === 0) {
|
628 |
+
|
629 |
+
$.error('Tab \'' + tabSelector + '\' does not exist in tab set');
|
630 |
+
}
|
631 |
+
}
|
632 |
+
}
|
633 |
+
}
|
634 |
+
} else {
|
635 |
+
// Select the child tab link, since the first option finds the tab container (like <li>)
|
636 |
+
$tab = $tab.children("a").first();
|
637 |
+
}
|
638 |
+
plugin.selectTab($tab);
|
639 |
+
}
|
640 |
+
};
|
641 |
+
|
642 |
+
// =============================================================
|
643 |
+
// Private functions
|
644 |
+
// =============================================================
|
645 |
+
|
646 |
+
// Triggers an event on an element and returns the event result
|
647 |
+
var fire = function (obj, name, data) {
|
648 |
+
var event = $.Event(name);
|
649 |
+
obj.trigger(event, data);
|
650 |
+
return event.result !== false;
|
651 |
+
}
|
652 |
+
|
653 |
+
// Add CSS classes to markup (if specified), called by init
|
654 |
+
var addClasses = function () {
|
655 |
+
$container.addClass(settings.containerClass);
|
656 |
+
plugin.tabs.parent().addClass(settings.tabsClass);
|
657 |
+
plugin.tabs.addClass(settings.tabClass);
|
658 |
+
plugin.panels.addClass(settings.panelClass);
|
659 |
+
};
|
660 |
+
|
661 |
+
// Set the default tab, whether from hash (bookmarked) or option,
|
662 |
+
// called by init
|
663 |
+
var setDefaultTab = function () {
|
664 |
+
var hash = window.location.hash.match(/^[^\?]*/)[0],
|
665 |
+
$selectedTab = plugin.matchTab(hash).parent(),
|
666 |
+
$panel;
|
667 |
+
|
668 |
+
// If hash directly matches one of the tabs, active on page-load
|
669 |
+
if ($selectedTab.length === 1) {
|
670 |
+
$defaultTab = $selectedTab;
|
671 |
+
settings.cycle = false;
|
672 |
+
|
673 |
+
} else {
|
674 |
+
$panel = plugin.matchInPanel(hash);
|
675 |
+
|
676 |
+
// If one of the panels contains the element matching the hash,
|
677 |
+
// make it active on page-load
|
678 |
+
if ($panel.length) {
|
679 |
+
hash = '#' + $panel.attr('id');
|
680 |
+
$defaultTab = plugin.matchTab(hash).parent();
|
681 |
+
|
682 |
+
// Otherwise, make the default tab the one that's active on page-load
|
683 |
+
} else {
|
684 |
+
$defaultTab = plugin.tabs.parent().find(settings.defaultTab);
|
685 |
+
if ($defaultTab.length === 0) {
|
686 |
+
$.error("The specified default tab ('" + settings.defaultTab + "') could not be found in the tab set ('" + settings.tabs + "') out of " + plugin.tabs.length + " tabs.");
|
687 |
+
}
|
688 |
+
}
|
689 |
+
}
|
690 |
+
|
691 |
+
$defaultTabLink = $defaultTab.children("a").first();
|
692 |
+
|
693 |
+
activateDefaultTab($selectedTab);
|
694 |
+
};
|
695 |
+
|
696 |
+
// Activate defaultTab (or collapse by default), called by setDefaultTab
|
697 |
+
var activateDefaultTab = function ($selectedTab) {
|
698 |
+
var defaultPanel,
|
699 |
+
defaultAjaxUrl;
|
700 |
+
|
701 |
+
if (settings.collapsible && $selectedTab.length === 0 && settings.collapsedByDefault) {
|
702 |
+
$defaultTab
|
703 |
+
.addClass(settings.collapsedClass)
|
704 |
+
.children()
|
705 |
+
.addClass(settings.collapsedClass);
|
706 |
+
|
707 |
+
} else {
|
708 |
+
|
709 |
+
defaultPanel = $($defaultTab.data('easytabs').panel);
|
710 |
+
defaultAjaxUrl = $defaultTab.data('easytabs').ajax;
|
711 |
+
|
712 |
+
if (defaultAjaxUrl && (!settings.cache || !$defaultTab.data('easytabs').cached)) {
|
713 |
+
$container.trigger('easytabs:ajax:beforeSend', [$defaultTabLink, defaultPanel]);
|
714 |
+
defaultPanel.load(defaultAjaxUrl, function (response, status, xhr) {
|
715 |
+
$defaultTab.data('easytabs').cached = true;
|
716 |
+
$container.trigger('easytabs:ajax:complete', [$defaultTabLink, defaultPanel, response, status, xhr]);
|
717 |
+
});
|
718 |
+
}
|
719 |
+
|
720 |
+
$defaultTab.data('easytabs').panel
|
721 |
+
.show()
|
722 |
+
.addClass(settings.panelActiveClass);
|
723 |
+
|
724 |
+
$defaultTab
|
725 |
+
.addClass(settings.tabActiveClass)
|
726 |
+
.children()
|
727 |
+
.addClass(settings.tabActiveClass);
|
728 |
+
}
|
729 |
+
|
730 |
+
// Fire event when the plugin is initialised
|
731 |
+
$container.trigger("easytabs:initialised", [$defaultTabLink, defaultPanel]);
|
732 |
+
};
|
733 |
+
|
734 |
+
// Bind tab-select funtionality to namespaced click event, called by
|
735 |
+
// init
|
736 |
+
var bindToTabClicks = function () {
|
737 |
+
plugin.tabs.children("a").bind(settings.bind_str, function (e) {
|
738 |
+
|
739 |
+
// Stop cycling when a tab is clicked
|
740 |
+
settings.cycle = false;
|
741 |
+
|
742 |
+
// Hash will be updated when tab is clicked,
|
743 |
+
// don't cause tab to re-select when hash-change event is fired
|
744 |
+
skipUpdateToHash = false;
|
745 |
+
|
746 |
+
// Select the panel for the clicked tab
|
747 |
+
plugin.selectTab($(this));
|
748 |
+
|
749 |
+
// Don't follow the link to the anchor
|
750 |
+
e.preventDefault ? e.preventDefault() : e.returnValue = false;
|
751 |
+
});
|
752 |
+
};
|
753 |
+
|
754 |
+
// Activate a given tab/panel, called from plugin.selectTab:
|
755 |
+
//
|
756 |
+
// * fire `easytabs:before` hook
|
757 |
+
// * get ajax if new tab is an uncached ajax tab
|
758 |
+
// * animate out previously-active panel
|
759 |
+
// * fire `easytabs:midTransition` hook
|
760 |
+
// * update URL hash
|
761 |
+
// * animate in newly-active panel
|
762 |
+
// * update CSS classes for inactive and active tabs/panels
|
763 |
+
//
|
764 |
+
// TODO: This could probably be broken out into many more modular
|
765 |
+
// functions
|
766 |
+
var activateTab = function ($clicked, $targetPanel, ajaxUrl, callback) {
|
767 |
+
plugin.panels.stop(true, true);
|
768 |
+
|
769 |
+
if (fire($container, "easytabs:before", [$clicked, $targetPanel, settings])) {
|
770 |
+
var $visiblePanel = plugin.panels.filter(":visible"),
|
771 |
+
$panelContainer = $targetPanel.parent(),
|
772 |
+
targetHeight,
|
773 |
+
visibleHeight,
|
774 |
+
heightDifference,
|
775 |
+
showPanel,
|
776 |
+
hash = window.location.hash.match(/^[^\?]*/)[0];
|
777 |
+
|
778 |
+
if (settings.animate) {
|
779 |
+
targetHeight = getHeightForHidden($targetPanel);
|
780 |
+
visibleHeight = $visiblePanel.length ? setAndReturnHeight($visiblePanel) : 0;
|
781 |
+
heightDifference = targetHeight - visibleHeight;
|
782 |
+
}
|
783 |
+
|
784 |
+
// Set lastHash to help indicate if defaultTab should be
|
785 |
+
// activated across multiple tab instances.
|
786 |
+
lastHash = hash;
|
787 |
+
|
788 |
+
// TODO: Move this function elsewhere
|
789 |
+
showPanel = function () {
|
790 |
+
// At this point, the previous panel is hidden, and the new one will be selected
|
791 |
+
$container.trigger("easytabs:midTransition", [$clicked, $targetPanel, settings]);
|
792 |
+
|
793 |
+
// Gracefully animate between panels of differing heights, start height change animation *after* panel change if panel needs to contract,
|
794 |
+
// so that there is no chance of making the visible panel overflowing the height of the target panel
|
795 |
+
if (settings.animate && settings.transitionIn == 'fadeIn') {
|
796 |
+
if (heightDifference < 0)
|
797 |
+
$panelContainer.animate({
|
798 |
+
height: $panelContainer.height() + heightDifference
|
799 |
+
}, transitions.halfSpeed).css({'min-height': ''});
|
800 |
+
}
|
801 |
+
|
802 |
+
if (settings.updateHash && !skipUpdateToHash) {
|
803 |
+
//window.location = url.toString().replace((url.pathname + hash), (url.pathname + $clicked.attr("href")));
|
804 |
+
// Not sure why this behaves so differently, but it's more straight forward and seems to have less side-effects
|
805 |
+
if (window.history.pushState) {
|
806 |
+
window.history.pushState(null, null, '#' + $targetPanel.attr('id'));
|
807 |
+
}
|
808 |
+
else {
|
809 |
+
window.location.hash = '#' + $targetPanel.attr('id');
|
810 |
+
}
|
811 |
+
} else {
|
812 |
+
skipUpdateToHash = false;
|
813 |
+
}
|
814 |
+
|
815 |
+
$targetPanel
|
816 |
+
[transitions.show](transitions.speed, settings.transitionInEasing, function () {
|
817 |
+
$panelContainer.css({height: '', 'min-height': ''}); // After the transition, unset the height
|
818 |
+
$container.trigger("easytabs:after", [$clicked, $targetPanel, settings]);
|
819 |
+
// callback only gets called if selectTab actually does something, since it's inside the if block
|
820 |
+
if (typeof callback == 'function') {
|
821 |
+
callback();
|
822 |
+
}
|
823 |
+
});
|
824 |
+
};
|
825 |
+
|
826 |
+
if (ajaxUrl && (!settings.cache || !$clicked.parent().data('easytabs').cached)) {
|
827 |
+
$container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
|
828 |
+
$targetPanel.load(ajaxUrl, function (response, status, xhr) {
|
829 |
+
$clicked.parent().data('easytabs').cached = true;
|
830 |
+
$container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
|
831 |
+
});
|
832 |
+
}
|
833 |
+
|
834 |
+
// Gracefully animate between panels of differing heights, start height change animation *before* panel change if panel needs to expand,
|
835 |
+
// so that there is no chance of making the target panel overflowing the height of the visible panel
|
836 |
+
if (settings.animate && settings.transitionOut == 'fadeOut') {
|
837 |
+
if (heightDifference > 0) {
|
838 |
+
$panelContainer.animate({
|
839 |
+
height: ($panelContainer.height() + heightDifference)
|
840 |
+
}, transitions.halfSpeed);
|
841 |
+
} else {
|
842 |
+
// Prevent height jumping before height transition is triggered at midTransition
|
843 |
+
$panelContainer.css({'min-height': $panelContainer.height()});
|
844 |
+
}
|
845 |
+
}
|
846 |
+
|
847 |
+
// Change the active tab *first* to provide immediate feedback when the user clicks
|
848 |
+
plugin.tabs.filter("." + settings.tabActiveClass).removeClass(settings.tabActiveClass).children().removeClass(settings.tabActiveClass);
|
849 |
+
plugin.tabs.filter("." + settings.collapsedClass).removeClass(settings.collapsedClass).children().removeClass(settings.collapsedClass);
|
850 |
+
$clicked.parent().addClass(settings.tabActiveClass).children().addClass(settings.tabActiveClass);
|
851 |
+
|
852 |
+
plugin.panels.filter("." + settings.panelActiveClass).removeClass(settings.panelActiveClass);
|
853 |
+
$targetPanel.addClass(settings.panelActiveClass);
|
854 |
+
|
855 |
+
if ($visiblePanel.length) {
|
856 |
+
$visiblePanel
|
857 |
+
[transitions.hide](transitions.speed, settings.transitionOutEasing, showPanel);
|
858 |
+
} else {
|
859 |
+
$targetPanel
|
860 |
+
[transitions.uncollapse](transitions.speed, settings.transitionUncollapseEasing, showPanel);
|
861 |
+
}
|
862 |
+
}
|
863 |
+
};
|
864 |
+
|
865 |
+
// Get heights of panels to enable animation between panels of
|
866 |
+
// differing heights, called by activateTab
|
867 |
+
var getHeightForHidden = function ($targetPanel) {
|
868 |
+
|
869 |
+
if ($targetPanel.data('easytabs') && $targetPanel.data('easytabs').lastHeight) {
|
870 |
+
return $targetPanel.data('easytabs').lastHeight;
|
871 |
+
}
|
872 |
+
|
873 |
+
// this is the only property easytabs changes, so we need to grab its value on each tab change
|
874 |
+
var display = $targetPanel.css('display'),
|
875 |
+
outerCloak,
|
876 |
+
height;
|
877 |
+
|
878 |
+
// Workaround with wrapping height, because firefox returns wrong
|
879 |
+
// height if element itself has absolute positioning.
|
880 |
+
// but try/catch block needed for IE7 and IE8 because they throw
|
881 |
+
// an "Unspecified error" when trying to create an element
|
882 |
+
// with the css position set.
|
883 |
+
try {
|
884 |
+
outerCloak = $('<div></div>', {'position': 'absolute', 'visibility': 'hidden', 'overflow': 'hidden'});
|
885 |
+
} catch (e) {
|
886 |
+
outerCloak = $('<div></div>', {'visibility': 'hidden', 'overflow': 'hidden'});
|
887 |
+
}
|
888 |
+
height = $targetPanel
|
889 |
+
.wrap(outerCloak)
|
890 |
+
.css({'position': 'relative', 'visibility': 'hidden', 'display': 'block'})
|
891 |
+
.outerHeight();
|
892 |
+
|
893 |
+
$targetPanel.unwrap();
|
894 |
+
|
895 |
+
// Return element to previous state
|
896 |
+
$targetPanel.css({
|
897 |
+
position: $targetPanel.data('easytabs').position,
|
898 |
+
visibility: $targetPanel.data('easytabs').visibility,
|
899 |
+
display: display
|
900 |
+
});
|
901 |
+
|
902 |
+
// Cache height
|
903 |
+
$targetPanel.data('easytabs').lastHeight = height;
|
904 |
+
|
905 |
+
return height;
|
906 |
+
};
|
907 |
+
|
908 |
+
// Since the height of the visible panel may have been manipulated due to interaction,
|
909 |
+
// we want to re-cache the visible height on each tab change, called
|
910 |
+
// by activateTab
|
911 |
+
var setAndReturnHeight = function ($visiblePanel) {
|
912 |
+
var height = $visiblePanel.outerHeight();
|
913 |
+
|
914 |
+
if ($visiblePanel.data('easytabs')) {
|
915 |
+
$visiblePanel.data('easytabs').lastHeight = height;
|
916 |
+
} else {
|
917 |
+
$visiblePanel.data('easytabs', {lastHeight: height});
|
918 |
+
}
|
919 |
+
return height;
|
920 |
+
};
|
921 |
+
|
922 |
+
// Setup hash-change callback for forward- and back-button
|
923 |
+
// functionality, called by init
|
924 |
+
var initHashChange = function () {
|
925 |
+
|
926 |
+
// enabling back-button with jquery.hashchange plugin
|
927 |
+
// http://benalman.com/projects/jquery-hashchange-plugin/
|
928 |
+
if (typeof $(window).hashchange === 'function') {
|
929 |
+
$(window).hashchange(function () {
|
930 |
+
plugin.selectTabFromHashChange();
|
931 |
+
});
|
932 |
+
} else if ($.address && typeof $.address.change === 'function') { // back-button with jquery.address plugin http://www.asual.com/jquery/address/docs/
|
933 |
+
$.address.change(function () {
|
934 |
+
plugin.selectTabFromHashChange();
|
935 |
+
});
|
936 |
+
}
|
937 |
+
};
|
938 |
+
|
939 |
+
// Begin cycling if set in options, called by init
|
940 |
+
var initCycle = function () {
|
941 |
+
var tabNumber;
|
942 |
+
if (settings.cycle) {
|
943 |
+
tabNumber = plugin.tabs.index($defaultTab);
|
944 |
+
setTimeout(function () {
|
945 |
+
plugin.cycleTabs(tabNumber + 1);
|
946 |
+
}, settings.cycle);
|
947 |
+
}
|
948 |
+
};
|
949 |
+
|
950 |
+
|
951 |
+
plugin.init();
|
952 |
+
|
953 |
+
};
|
954 |
+
|
955 |
+
$.fn.easytabs = function (options) {
|
956 |
+
var args = arguments;
|
957 |
+
|
958 |
+
return this.each(function () {
|
959 |
+
var $this = $(this),
|
960 |
+
plugin = $this.data('easytabs');
|
961 |
+
|
962 |
+
// Initialization was called with $(el).easytabs( { options } );
|
963 |
+
if (undefined === plugin) {
|
964 |
+
plugin = new $.easytabs(this, options);
|
965 |
+
$this.data('easytabs', plugin);
|
966 |
+
}
|
967 |
+
|
968 |
+
// User called public method
|
969 |
+
if (plugin.publicMethods[options]) {
|
970 |
+
return plugin.publicMethods[options](Array.prototype.slice.call(args, 1));
|
971 |
+
}
|
972 |
+
});
|
973 |
+
};
|
974 |
+
|
975 |
+
})(jQuery);
|
976 |
+
|
977 |
+
|
978 |
+
/*
|
979 |
+
colpick Color Picker
|
980 |
+
Copyright 2013 Jose Vargas. Licensed under GPL license. Based on Stefan Petre's Color Picker www.eyecon.ro, dual licensed under the MIT and GPL licenses
|
981 |
+
|
982 |
+
For usage and examples: colpick.com/plugin
|
983 |
+
*/
|
984 |
+
|
985 |
+
(function ($) {
|
986 |
+
var colpick = function () {
|
987 |
+
var
|
988 |
+
tpl = '<div class="colpick"><div class="colpick_color"><div class="colpick_color_overlay1"><div class="colpick_color_overlay2"><div class="colpick_selector_outer"><div class="colpick_selector_inner"></div></div></div></div></div><div class="colpick_hue"><div class="colpick_hue_arrs"><div class="colpick_hue_larr"></div><div class="colpick_hue_rarr"></div></div></div><div class="colpick_new_color"></div><div class="colpick_current_color"></div><div class="colpick_hex_field"><div class="colpick_field_letter">#</div><input type="text" maxlength="6" size="6" /></div><div class="colpick_rgb_r colpick_field"><div class="colpick_field_letter">R</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_rgb_g colpick_field"><div class="colpick_field_letter">G</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_rgb_b colpick_field"><div class="colpick_field_letter">B</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_hsb_h colpick_field"><div class="colpick_field_letter">H</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_hsb_s colpick_field"><div class="colpick_field_letter">S</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_hsb_b colpick_field"><div class="colpick_field_letter">B</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_submit"></div></div>',
|
989 |
+
defaults = {
|
990 |
+
showEvent: 'click',
|
991 |
+
onShow: function () {
|
992 |
+
},
|
993 |
+
onBeforeShow: function () {
|
994 |
+
},
|
995 |
+
onHide: function () {
|
996 |
+
},
|
997 |
+
onChange: function () {
|
998 |
+
},
|
999 |
+
onSubmit: function () {
|
1000 |
+
},
|
1001 |
+
colorScheme: 'light',
|
1002 |
+
color: '3289c7',
|
1003 |
+
livePreview: true,
|
1004 |
+
flat: false,
|
1005 |
+
layout: 'full',
|
1006 |
+
submit: 1,
|
1007 |
+
submitText: 'OK',
|
1008 |
+
height: 156
|
1009 |
+
},
|
1010 |
+
//Fill the inputs of the plugin
|
1011 |
+
fillRGBFields = function (hsb, cal) {
|
1012 |
+
var rgb = hsbToRgb(hsb);
|
1013 |
+
$(cal).data('colpick').fields
|
1014 |
+
.eq(1).val(rgb.r).end()
|
1015 |
+
.eq(2).val(rgb.g).end()
|
1016 |
+
.eq(3).val(rgb.b).end();
|
1017 |
+
},
|
1018 |
+
fillHSBFields = function (hsb, cal) {
|
1019 |
+
$(cal).data('colpick').fields
|
1020 |
+
.eq(4).val(Math.round(hsb.h)).end()
|
1021 |
+
.eq(5).val(Math.round(hsb.s)).end()
|
1022 |
+
.eq(6).val(Math.round(hsb.b)).end();
|
1023 |
+
},
|
1024 |
+
fillHexFields = function (hsb, cal) {
|
1025 |
+
$(cal).data('colpick').fields.eq(0).val(hsbToHex(hsb));
|
1026 |
+
},
|
1027 |
+
//Set the round selector position
|
1028 |
+
setSelector = function (hsb, cal) {
|
1029 |
+
$(cal).data('colpick').selector.css('backgroundColor', '#' + hsbToHex({h: hsb.h, s: 100, b: 100}));
|
1030 |
+
$(cal).data('colpick').selectorIndic.css({
|
1031 |
+
left: parseInt($(cal).data('colpick').height * hsb.s / 100, 10),
|
1032 |
+
top: parseInt($(cal).data('colpick').height * (100 - hsb.b) / 100, 10)
|
1033 |
+
});
|
1034 |
+
},
|
1035 |
+
//Set the hue selector position
|
1036 |
+
setHue = function (hsb, cal) {
|
1037 |
+
$(cal).data('colpick').hue.css('top', parseInt($(cal).data('colpick').height - $(cal).data('colpick').height * hsb.h / 360, 10));
|
1038 |
+
},
|
1039 |
+
//Set current and new colors
|
1040 |
+
setCurrentColor = function (hsb, cal) {
|
1041 |
+
$(cal).data('colpick').currentColor.css('backgroundColor', '#' + hsbToHex(hsb));
|
1042 |
+
},
|
1043 |
+
setNewColor = function (hsb, cal) {
|
1044 |
+
$(cal).data('colpick').newColor.css('backgroundColor', '#' + hsbToHex(hsb));
|
1045 |
+
},
|
1046 |
+
//Called when the new color is changed
|
1047 |
+
change = function (ev) {
|
1048 |
+
var cal = $(this).parent().parent(), col;
|
1049 |
+
if (this.parentNode.className.indexOf('_hex') > 0) {
|
1050 |
+
cal.data('colpick').color = col = hexToHsb(fixHex(this.value));
|
1051 |
+
fillRGBFields(col, cal.get(0));
|
1052 |
+
fillHSBFields(col, cal.get(0));
|
1053 |
+
} else if (this.parentNode.className.indexOf('_hsb') > 0) {
|
1054 |
+
cal.data('colpick').color = col = fixHSB({
|
1055 |
+
h: parseInt(cal.data('colpick').fields.eq(4).val(), 10),
|
1056 |
+
s: parseInt(cal.data('colpick').fields.eq(5).val(), 10),
|
1057 |
+
b: parseInt(cal.data('colpick').fields.eq(6).val(), 10)
|
1058 |
+
});
|
1059 |
+
fillRGBFields(col, cal.get(0));
|
1060 |
+
fillHexFields(col, cal.get(0));
|
1061 |
+
} else {
|
1062 |
+
cal.data('colpick').color = col = rgbToHsb(fixRGB({
|
1063 |
+
r: parseInt(cal.data('colpick').fields.eq(1).val(), 10),
|
1064 |
+
g: parseInt(cal.data('colpick').fields.eq(2).val(), 10),
|
1065 |
+
b: parseInt(cal.data('colpick').fields.eq(3).val(), 10)
|
1066 |
+
}));
|
1067 |
+
fillHexFields(col, cal.get(0));
|
1068 |
+
fillHSBFields(col, cal.get(0));
|
1069 |
+
}
|
1070 |
+
setSelector(col, cal.get(0));
|
1071 |
+
setHue(col, cal.get(0));
|
1072 |
+
setNewColor(col, cal.get(0));
|
1073 |
+
cal.data('colpick').onChange.apply(cal.parent(), [col, hsbToHex(col), hsbToRgb(col), cal.data('colpick').el, 0]);
|
1074 |
+
},
|
1075 |
+
//Change style on blur and on focus of inputs
|
1076 |
+
blur = function (ev) {
|
1077 |
+
$(this).parent().removeClass('colpick_focus');
|
1078 |
+
},
|
1079 |
+
focus = function () {
|
1080 |
+
$(this).parent().parent().data('colpick').fields.parent().removeClass('colpick_focus');
|
1081 |
+
$(this).parent().addClass('colpick_focus');
|
1082 |
+
},
|
1083 |
+
//Increment/decrement arrows functions
|
1084 |
+
downIncrement = function (ev) {
|
1085 |
+
ev.preventDefault ? ev.preventDefault() : ev.returnValue = false;
|
1086 |
+
var field = $(this).parent().find('input').focus();
|
1087 |
+
var current = {
|
1088 |
+
el: $(this).parent().addClass('colpick_slider'),
|
1089 |
+
max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
|
1090 |
+
y: ev.pageY,
|
1091 |
+
field: field,
|
1092 |
+
val: parseInt(field.val(), 10),
|
1093 |
+
preview: $(this).parent().parent().data('colpick').livePreview
|
1094 |
+
};
|
1095 |
+
$(document).mouseup(current, upIncrement);
|
1096 |
+
$(document).mousemove(current, moveIncrement);
|
1097 |
+
},
|
1098 |
+
moveIncrement = function (ev) {
|
1099 |
+
ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val - ev.pageY + ev.data.y, 10))));
|
1100 |
+
if (ev.data.preview) {
|
1101 |
+
change.apply(ev.data.field.get(0), [true]);
|
1102 |
+
}
|
1103 |
+
return false;
|
1104 |
+
},
|
1105 |
+
upIncrement = function (ev) {
|
1106 |
+
change.apply(ev.data.field.get(0), [true]);
|
1107 |
+
ev.data.el.removeClass('colpick_slider').find('input').focus();
|
1108 |
+
$(document).off('mouseup', upIncrement);
|
1109 |
+
$(document).off('mousemove', moveIncrement);
|
1110 |
+
return false;
|
1111 |
+
},
|
1112 |
+
//Hue slider functions
|
1113 |
+
downHue = function (ev) {
|
1114 |
+
ev.preventDefault ? ev.preventDefault() : ev.returnValue = false;
|
1115 |
+
var current = {
|
1116 |
+
cal: $(this).parent(),
|
1117 |
+
y: $(this).offset().top
|
1118 |
+
};
|
1119 |
+
$(document).on('mouseup touchend', current, upHue);
|
1120 |
+
$(document).on('mousemove touchmove', current, moveHue);
|
1121 |
+
|
1122 |
+
var pageY = ((ev.type == 'touchstart') ? ev.originalEvent.changedTouches[0].pageY : ev.pageY);
|
1123 |
+
change.apply(
|
1124 |
+
current.cal.data('colpick')
|
1125 |
+
.fields.eq(4).val(parseInt(360 * (current.cal.data('colpick').height - (pageY - current.y)) / current.cal.data('colpick').height, 10))
|
1126 |
+
.get(0),
|
1127 |
+
[current.cal.data('colpick').livePreview]
|
1128 |
+
);
|
1129 |
+
return false;
|
1130 |
+
},
|
1131 |
+
moveHue = function (ev) {
|
1132 |
+
var pageY = ((ev.type == 'touchmove') ? ev.originalEvent.changedTouches[0].pageY : ev.pageY);
|
1133 |
+
change.apply(
|
1134 |
+
ev.data.cal.data('colpick')
|
1135 |
+
.fields.eq(4).val(parseInt(360 * (ev.data.cal.data('colpick').height - Math.max(0, Math.min(ev.data.cal.data('colpick').height, (pageY - ev.data.y)))) / ev.data.cal.data('colpick').height, 10))
|
1136 |
+
.get(0),
|
1137 |
+
[ev.data.preview]
|
1138 |
+
);
|
1139 |
+
return false;
|
1140 |
+
},
|
1141 |
+
upHue = function (ev) {
|
1142 |
+
fillRGBFields(ev.data.cal.data('colpick').color, ev.data.cal.get(0));
|
1143 |
+
fillHexFields(ev.data.cal.data('colpick').color, ev.data.cal.get(0));
|
1144 |
+
$(document).off('mouseup touchend', upHue);
|
1145 |
+
$(document).off('mousemove touchmove', moveHue);
|
1146 |
+
return false;
|
1147 |
+
},
|
1148 |
+
//Color selector functions
|
1149 |
+
downSelector = function (ev) {
|
1150 |
+
ev.preventDefault ? ev.preventDefault() : ev.returnValue = false;
|
1151 |
+
var current = {
|
1152 |
+
cal: $(this).parent(),
|
1153 |
+
pos: $(this).offset()
|
1154 |
+
};
|
1155 |
+
current.preview = current.cal.data('colpick').livePreview;
|
1156 |
+
|
1157 |
+
$(document).on('mouseup touchend', current, upSelector);
|
1158 |
+
$(document).on('mousemove touchmove', current, moveSelector);
|
1159 |
+
|
1160 |
+
var payeX, pageY;
|
1161 |
+
if (ev.type == 'touchstart') {
|
1162 |
+
pageX = ev.originalEvent.changedTouches[0].pageX,
|
1163 |
+
pageY = ev.originalEvent.changedTouches[0].pageY;
|
1164 |
+
} else {
|
1165 |
+
pageX = ev.pageX;
|
1166 |
+
pageY = ev.pageY;
|
1167 |
+
}
|
1168 |
+
|
1169 |
+
change.apply(
|
1170 |
+
current.cal.data('colpick').fields
|
1171 |
+
.eq(6).val(parseInt(100 * (current.cal.data('colpick').height - (pageY - current.pos.top)) / current.cal.data('colpick').height, 10)).end()
|
1172 |
+
.eq(5).val(parseInt(100 * (pageX - current.pos.left) / current.cal.data('colpick').height, 10))
|
1173 |
+
.get(0),
|
1174 |
+
[current.preview]
|
1175 |
+
);
|
1176 |
+
return false;
|
1177 |
+
},
|
1178 |
+
moveSelector = function (ev) {
|
1179 |
+
var payeX, pageY;
|
1180 |
+
if (ev.type == 'touchmove') {
|
1181 |
+
pageX = ev.originalEvent.changedTouches[0].pageX,
|
1182 |
+
pageY = ev.originalEvent.changedTouches[0].pageY;
|
1183 |
+
} else {
|
1184 |
+
pageX = ev.pageX;
|
1185 |
+
pageY = ev.pageY;
|
1186 |
+
}
|
1187 |
+
|
1188 |
+
change.apply(
|
1189 |
+
ev.data.cal.data('colpick').fields
|
1190 |
+
.eq(6).val(parseInt(100 * (ev.data.cal.data('colpick').height - Math.max(0, Math.min(ev.data.cal.data('colpick').height, (pageY - ev.data.pos.top)))) / ev.data.cal.data('colpick').height, 10)).end()
|
1191 |
+
.eq(5).val(parseInt(100 * (Math.max(0, Math.min(ev.data.cal.data('colpick').height, (pageX - ev.data.pos.left)))) / ev.data.cal.data('colpick').height, 10))
|
1192 |
+
.get(0),
|
1193 |
+
[ev.data.preview]
|
1194 |
+
);
|
1195 |
+
return false;
|
1196 |
+
},
|
1197 |
+
upSelector = function (ev) {
|
1198 |
+
fillRGBFields(ev.data.cal.data('colpick').color, ev.data.cal.get(0));
|
1199 |
+
fillHexFields(ev.data.cal.data('colpick').color, ev.data.cal.get(0));
|
1200 |
+
$(document).off('mouseup touchend', upSelector);
|
1201 |
+
$(document).off('mousemove touchmove', moveSelector);
|
1202 |
+
return false;
|
1203 |
+
},
|
1204 |
+
//Submit button
|
1205 |
+
clickSubmit = function (ev) {
|
1206 |
+
var cal = $(this).parent();
|
1207 |
+
var col = cal.data('colpick').color;
|
1208 |
+
cal.data('colpick').origColor = col;
|
1209 |
+
setCurrentColor(col, cal.get(0));
|
1210 |
+
cal.data('colpick').onSubmit(col, hsbToHex(col), hsbToRgb(col), cal.data('colpick').el);
|
1211 |
+
},
|
1212 |
+
//Show/hide the color picker
|
1213 |
+
show = function (ev) {
|
1214 |
+
// Prevent the trigger of any direct parent
|
1215 |
+
ev.stopPropagation();
|
1216 |
+
var cal = $('#' + $(this).data('colpickId'));
|
1217 |
+
cal.data('colpick').onBeforeShow.apply(this, [cal.get(0)]);
|
1218 |
+
var pos = $(this).offset();
|
1219 |
+
var top = pos.top + this.offsetHeight;
|
1220 |
+
var left = pos.left;
|
1221 |
+
var viewPort = getViewport();
|
1222 |
+
var calW = cal.width();
|
1223 |
+
if (left + calW > viewPort.l + viewPort.w) {
|
1224 |
+
left -= calW;
|
1225 |
+
}
|
1226 |
+
cal.css({left: left + 'px', top: top + 'px'});
|
1227 |
+
if (cal.data('colpick').onShow.apply(this, [cal.get(0)]) != false) {
|
1228 |
+
cal.show();
|
1229 |
+
}
|
1230 |
+
//Hide when user clicks outside
|
1231 |
+
$('html').mousedown({cal: cal}, hide);
|
1232 |
+
cal.mousedown(function (ev) {
|
1233 |
+
ev.stopPropagation();
|
1234 |
+
})
|
1235 |
+
},
|
1236 |
+
hide = function (ev) {
|
1237 |
+
if (ev.data.cal.data('colpick').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
|
1238 |
+
ev.data.cal.hide();
|
1239 |
+
}
|
1240 |
+
$('html').off('mousedown', hide);
|
1241 |
+
},
|
1242 |
+
getViewport = function () {
|
1243 |
+
var m = document.compatMode == 'CSS1Compat';
|
1244 |
+
return {
|
1245 |
+
l: window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
|
1246 |
+
w: window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth)
|
1247 |
+
};
|
1248 |
+
},
|
1249 |
+
//Fix the values if the user enters a negative or high value
|
1250 |
+
fixHSB = function (hsb) {
|
1251 |
+
return {
|
1252 |
+
h: Math.min(360, Math.max(0, hsb.h)),
|
1253 |
+
s: Math.min(100, Math.max(0, hsb.s)),
|
1254 |
+
b: Math.min(100, Math.max(0, hsb.b))
|
1255 |
+
};
|
1256 |
+
},
|
1257 |
+
fixRGB = function (rgb) {
|
1258 |
+
return {
|
1259 |
+
r: Math.min(255, Math.max(0, rgb.r)),
|
1260 |
+
g: Math.min(255, Math.max(0, rgb.g)),
|
1261 |
+
b: Math.min(255, Math.max(0, rgb.b))
|
1262 |
+
};
|
1263 |
+
},
|
1264 |
+
fixHex = function (hex) {
|
1265 |
+
var len = 6 - hex.length;
|
1266 |
+
if (len > 0) {
|
1267 |
+
var o = [];
|
1268 |
+
for (var i = 0; i < len; i++) {
|
1269 |
+
o.push('0');
|
1270 |
+
}
|
1271 |
+
o.push(hex);
|
1272 |
+
hex = o.join('');
|
1273 |
+
}
|
1274 |
+
return hex;
|
1275 |
+
},
|
1276 |
+
restoreOriginal = function () {
|
1277 |
+
var cal = $(this).parent();
|
1278 |
+
var col = cal.data('colpick').origColor;
|
1279 |
+
cal.data('colpick').color = col;
|
1280 |
+
fillRGBFields(col, cal.get(0));
|
1281 |
+
fillHexFields(col, cal.get(0));
|
1282 |
+
fillHSBFields(col, cal.get(0));
|
1283 |
+
setSelector(col, cal.get(0));
|
1284 |
+
setHue(col, cal.get(0));
|
1285 |
+
setNewColor(col, cal.get(0));
|
1286 |
+
};
|
1287 |
+
return {
|
1288 |
+
init: function (opt) {
|
1289 |
+
opt = $.extend({}, defaults, opt || {});
|
1290 |
+
//Set color
|
1291 |
+
if (typeof opt.color == 'string') {
|
1292 |
+
opt.color = hexToHsb(opt.color);
|
1293 |
+
} else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
|
1294 |
+
opt.color = rgbToHsb(opt.color);
|
1295 |
+
} else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
|
1296 |
+
opt.color = fixHSB(opt.color);
|
1297 |
+
} else {
|
1298 |
+
return this;
|
1299 |
+
}
|
1300 |
+
|
1301 |
+
//For each selected DOM element
|
1302 |
+
return this.each(function () {
|
1303 |
+
//If the element does not have an ID
|
1304 |
+
if (!$(this).data('colpickId')) {
|
1305 |
+
var options = $.extend({}, opt);
|
1306 |
+
options.origColor = opt.color;
|
1307 |
+
//Generate and assign a random ID
|
1308 |
+
var id = 'collorpicker_' + parseInt(Math.random() * 1000);
|
1309 |
+
$(this).data('colpickId', id);
|
1310 |
+
//Set the tpl's ID and get the HTML
|
1311 |
+
var cal = $(tpl).attr('id', id);
|
1312 |
+
//Add class according to layout
|
1313 |
+
cal.addClass('colpick_' + options.layout + (options.submit ? '' : ' colpick_' + options.layout + '_ns'));
|
1314 |
+
//Add class if the color scheme is not default
|
1315 |
+
if (options.colorScheme != 'light') {
|
1316 |
+
cal.addClass('colpick_' + options.colorScheme);
|
1317 |
+
}
|
1318 |
+
//Setup submit button
|
1319 |
+
cal.find('div.colpick_submit').html(options.submitText).click(clickSubmit);
|
1320 |
+
//Setup input fields
|
1321 |
+
options.fields = cal.find('input').change(change).blur(blur).focus(focus);
|
1322 |
+
cal.find('div.colpick_field_arrs').mousedown(downIncrement).end().find('div.colpick_current_color').click(restoreOriginal);
|
1323 |
+
//Setup hue selector
|
1324 |
+
options.selector = cal.find('div.colpick_color').on('mousedown touchstart', downSelector);
|
1325 |
+
options.selectorIndic = options.selector.find('div.colpick_selector_outer');
|
1326 |
+
//Store parts of the plugin
|
1327 |
+
options.el = this;
|
1328 |
+
options.hue = cal.find('div.colpick_hue_arrs');
|
1329 |
+
huebar = options.hue.parent();
|
1330 |
+
//Paint the hue bar
|
1331 |
+
var UA = navigator.userAgent.toLowerCase();
|
1332 |
+
var isIE = navigator.appName === 'Microsoft Internet Explorer';
|
1333 |
+
var IEver = isIE ? parseFloat(UA.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]) : 0;
|
1334 |
+
var ngIE = (isIE && IEver < 10);
|
1335 |
+
var stops = ['#ff0000', '#ff0080', '#ff00ff', '#8000ff', '#0000ff', '#0080ff', '#00ffff', '#00ff80', '#00ff00', '#80ff00', '#ffff00', '#ff8000', '#ff0000'];
|
1336 |
+
if (ngIE) {
|
1337 |
+
var i, div;
|
1338 |
+
for (i = 0; i <= 11; i++) {
|
1339 |
+
div = $('<div></div>').attr('style', 'height:8.333333%; filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=' + stops[i] + ', endColorstr=' + stops[i + 1] + '); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=' + stops[i] + ', endColorstr=' + stops[i + 1] + ')";');
|
1340 |
+
huebar.append(div);
|
1341 |
+
}
|
1342 |
+
} else {
|
1343 |
+
stopList = stops.join(',');
|
1344 |
+
huebar.attr('style', 'background:-webkit-linear-gradient(top,' + stopList + '); background: -o-linear-gradient(top,' + stopList + '); background: -ms-linear-gradient(top,' + stopList + '); background:-moz-linear-gradient(top,' + stopList + '); -webkit-linear-gradient(top,' + stopList + '); background:linear-gradient(to bottom,' + stopList + '); ');
|
1345 |
+
}
|
1346 |
+
cal.find('div.colpick_hue').on('mousedown touchstart', downHue);
|
1347 |
+
options.newColor = cal.find('div.colpick_new_color');
|
1348 |
+
options.currentColor = cal.find('div.colpick_current_color');
|
1349 |
+
//Store options and fill with default color
|
1350 |
+
cal.data('colpick', options);
|
1351 |
+
fillRGBFields(options.color, cal.get(0));
|
1352 |
+
fillHSBFields(options.color, cal.get(0));
|
1353 |
+
fillHexFields(options.color, cal.get(0));
|
1354 |
+
setHue(options.color, cal.get(0));
|
1355 |
+
setSelector(options.color, cal.get(0));
|
1356 |
+
setCurrentColor(options.color, cal.get(0));
|
1357 |
+
setNewColor(options.color, cal.get(0));
|
1358 |
+
//Append to body if flat=false, else show in place
|
1359 |
+
if (options.flat) {
|
1360 |
+
cal.appendTo(this).show();
|
1361 |
+
cal.css({
|
1362 |
+
position: 'relative',
|
1363 |
+
display: 'block'
|
1364 |
+
});
|
1365 |
+
} else {
|
1366 |
+
cal.appendTo(document.body);
|
1367 |
+
$(this).on(options.showEvent, show);
|
1368 |
+
cal.css({
|
1369 |
+
position: 'absolute'
|
1370 |
+
});
|
1371 |
+
}
|
1372 |
+
}
|
1373 |
+
});
|
1374 |
+
},
|
1375 |
+
//Shows the picker
|
1376 |
+
showPicker: function () {
|
1377 |
+
return this.each(function () {
|
1378 |
+
if ($(this).data('colpickId')) {
|
1379 |
+
show.apply(this);
|
1380 |
+
}
|
1381 |
+
});
|
1382 |
+
},
|
1383 |
+
//Hides the picker
|
1384 |
+
hidePicker: function () {
|
1385 |
+
return this.each(function () {
|
1386 |
+
if ($(this).data('colpickId')) {
|
1387 |
+
$('#' + $(this).data('colpickId')).hide();
|
1388 |
+
}
|
1389 |
+
});
|
1390 |
+
},
|
1391 |
+
//Sets a color as new and current (default)
|
1392 |
+
setColor: function (col, setCurrent) {
|
1393 |
+
setCurrent = (typeof setCurrent === "undefined") ? 1 : setCurrent;
|
1394 |
+
if (typeof col == 'string') {
|
1395 |
+
col = hexToHsb(col);
|
1396 |
+
} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
|
1397 |
+
col = rgbToHsb(col);
|
1398 |
+
} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
|
1399 |
+
col = fixHSB(col);
|
1400 |
+
} else {
|
1401 |
+
return this;
|
1402 |
+
}
|
1403 |
+
return this.each(function () {
|
1404 |
+
if ($(this).data('colpickId')) {
|
1405 |
+
var cal = $('#' + $(this).data('colpickId'));
|
1406 |
+
cal.data('colpick').color = col;
|
1407 |
+
cal.data('colpick').origColor = col;
|
1408 |
+
fillRGBFields(col, cal.get(0));
|
1409 |
+
fillHSBFields(col, cal.get(0));
|
1410 |
+
fillHexFields(col, cal.get(0));
|
1411 |
+
setHue(col, cal.get(0));
|
1412 |
+
setSelector(col, cal.get(0));
|
1413 |
+
|
1414 |
+
setNewColor(col, cal.get(0));
|
1415 |
+
cal.data('colpick').onChange.apply(cal.parent(), [col, hsbToHex(col), hsbToRgb(col), cal.data('colpick').el, 1]);
|
1416 |
+
if (setCurrent) {
|
1417 |
+
setCurrentColor(col, cal.get(0));
|
1418 |
+
}
|
1419 |
+
}
|
1420 |
+
});
|
1421 |
+
}
|
1422 |
+
};
|
1423 |
+
}();
|
1424 |
+
//Color space convertions
|
1425 |
+
var hexToRgb = function (hex) {
|
1426 |
+
var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
|
1427 |
+
return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
|
1428 |
+
};
|
1429 |
+
var hexToHsb = function (hex) {
|
1430 |
+
return rgbToHsb(hexToRgb(hex));
|
1431 |
+
};
|
1432 |
+
var rgbToHsb = function (rgb) {
|
1433 |
+
var hsb = {h: 0, s: 0, b: 0};
|
1434 |
+
var min = Math.min(rgb.r, rgb.g, rgb.b);
|
1435 |
+
var max = Math.max(rgb.r, rgb.g, rgb.b);
|
1436 |
+
var delta = max - min;
|
1437 |
+
hsb.b = max;
|
1438 |
+
hsb.s = max != 0 ? 255 * delta / max : 0;
|
1439 |
+
if (hsb.s != 0) {
|
1440 |
+
if (rgb.r == max)
|
1441 |
+
hsb.h = (rgb.g - rgb.b) / delta;
|
1442 |
+
else if (rgb.g == max)
|
1443 |
+
hsb.h = 2 + (rgb.b - rgb.r) / delta;
|
1444 |
+
else
|
1445 |
+
hsb.h = 4 + (rgb.r - rgb.g) / delta;
|
1446 |
+
} else
|
1447 |
+
hsb.h = -1;
|
1448 |
+
hsb.h *= 60;
|
1449 |
+
if (hsb.h < 0)
|
1450 |
+
hsb.h += 360;
|
1451 |
+
hsb.s *= 100 / 255;
|
1452 |
+
hsb.b *= 100 / 255;
|
1453 |
+
return hsb;
|
1454 |
+
};
|
1455 |
+
var hsbToRgb = function (hsb) {
|
1456 |
+
var rgb = {};
|
1457 |
+
var h = hsb.h;
|
1458 |
+
var s = hsb.s * 255 / 100;
|
1459 |
+
var v = hsb.b * 255 / 100;
|
1460 |
+
if (s == 0) {
|
1461 |
+
rgb.r = rgb.g = rgb.b = v;
|
1462 |
+
} else {
|
1463 |
+
var t1 = v;
|
1464 |
+
var t2 = (255 - s) * v / 255;
|
1465 |
+
var t3 = (t1 - t2) * (h % 60) / 60;
|
1466 |
+
if (h == 360)
|
1467 |
+
h = 0;
|
1468 |
+
if (h < 60) {
|
1469 |
+
rgb.r = t1;
|
1470 |
+
rgb.b = t2;
|
1471 |
+
rgb.g = t2 + t3
|
1472 |
+
}
|
1473 |
+
else if (h < 120) {
|
1474 |
+
rgb.g = t1;
|
1475 |
+
rgb.b = t2;
|
1476 |
+
rgb.r = t1 - t3
|
1477 |
+
}
|
1478 |
+
else if (h < 180) {
|
1479 |
+
rgb.g = t1;
|
1480 |
+
rgb.r = t2;
|
1481 |
+
rgb.b = t2 + t3
|
1482 |
+
}
|
1483 |
+
else if (h < 240) {
|
1484 |
+
rgb.b = t1;
|
1485 |
+
rgb.r = t2;
|
1486 |
+
rgb.g = t1 - t3
|
1487 |
+
}
|
1488 |
+
else if (h < 300) {
|
1489 |
+
rgb.b = t1;
|
1490 |
+
rgb.g = t2;
|
1491 |
+
rgb.r = t2 + t3
|
1492 |
+
}
|
1493 |
+
else if (h < 360) {
|
1494 |
+
rgb.r = t1;
|
1495 |
+
rgb.g = t2;
|
1496 |
+
rgb.b = t1 - t3
|
1497 |
+
}
|
1498 |
+
else {
|
1499 |
+
rgb.r = 0;
|
1500 |
+
rgb.g = 0;
|
1501 |
+
rgb.b = 0
|
1502 |
+
}
|
1503 |
+
}
|
1504 |
+
return {r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b)};
|
1505 |
+
};
|
1506 |
+
var rgbToHex = function (rgb) {
|
1507 |
+
var hex = [
|
1508 |
+
rgb.r.toString(16),
|
1509 |
+
rgb.g.toString(16),
|
1510 |
+
rgb.b.toString(16)
|
1511 |
+
];
|
1512 |
+
$.each(hex, function (nr, val) {
|
1513 |
+
if (val.length == 1) {
|
1514 |
+
hex[nr] = '0' + val;
|
1515 |
+
}
|
1516 |
+
});
|
1517 |
+
return hex.join('');
|
1518 |
+
};
|
1519 |
+
var hsbToHex = function (hsb) {
|
1520 |
+
return rgbToHex(hsbToRgb(hsb));
|
1521 |
+
};
|
1522 |
+
$.fn.extend({
|
1523 |
+
colpick: colpick.init,
|
1524 |
+
colpickHide: colpick.hidePicker,
|
1525 |
+
colpickShow: colpick.showPicker,
|
1526 |
+
colpickSetColor: colpick.setColor
|
1527 |
+
});
|
1528 |
+
$.extend({
|
1529 |
+
colpick: {
|
1530 |
+
rgbToHex: rgbToHex,
|
1531 |
+
rgbToHsb: rgbToHsb,
|
1532 |
+
hsbToHex: hsbToHex,
|
1533 |
+
hsbToRgb: hsbToRgb,
|
1534 |
+
hexToHsb: hexToHsb,
|
1535 |
+
hexToRgb: hexToRgb
|
1536 |
+
}
|
1537 |
+
});
|
1538 |
+
})(jQuery);
|
1539 |
+
|
1540 |
+
// Load twitter button async
|
1541 |
+
window.twttr = (function (d, s, id) {
|
1542 |
+
var js, fjs = d.getElementsByTagName(s)[0],
|
1543 |
+
t = window.twttr || {};
|
1544 |
+
if (d.getElementById(id))
|
1545 |
+
return t;
|
1546 |
+
js = d.createElement(s);
|
1547 |
+
js.id = id;
|
1548 |
+
js.src = "https://platform.twitter.com/widgets.js";
|
1549 |
+
fjs.parentNode.insertBefore(js, fjs);
|
1550 |
+
|
1551 |
+
t._e = [];
|
1552 |
+
t.ready = function (f) {
|
1553 |
+
t._e.push(f);
|
1554 |
+
};
|
1555 |
+
|
1556 |
+
return t;
|
1557 |
+
}(document, "script", "twitter-wjs"));
|
assets/js/mashsb-admin.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(document).ready(function(a){function b(a,b,c){if(c){var d=new Date;d.setTime(d.getTime()+24*c*60*60*1e3);var e="; expires="+d.toGMTString()}else var e="";document.cookie=a+"="+b+e+"; path=/"}function c(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0==e.indexOf(b))return e.substring(b.length,e.length)}return null}function d(){var a=jQuery(".mashsb-tabs.active").find("a").attr("href");b("mashsb_active_tab",a)}function e(){var a=c("mashsb_active_tab");return null==a&&(a="#mashsb_settingsgeneral_header"),a}function f(){var a,b;return a=jQuery(".mashsb.nav-tab-wrapper a.nav-tab-active:nth-child(2)"),b=jQuery(".mashsb.nav-tab-wrapper a.nav-tab-active:nth-child(3)"),a.length>0||b.length>0?void 0:e()+"-nav"}a(".mashsb-chosen-select").chosen({width:"400px"}),a("#mashsb_settings\\[mashsb_sharemethod\\]").change(function(){"sharedcount"===a("#mashsb_settings\\[mashsb_sharemethod\\]").val()?a("#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4)").fadeIn(500):a("#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4)").fadeOut(500)}),"sharedcount"===a("#mashsb_settings\\[mashsb_sharemethod\\]").val()&&a("#mashsb_settingsgeneral_header .row:nth-child(3), #mashsb_settingsgeneral_header .row:nth-child(4)").fadeIn(500),a("#mashsb_settings\\[caching_method\\]").change(function(){"refresh_loading"===a("#mashsb_settings\\[caching_method\\]").val()?a("#mashsb_settingsgeneral_header .row:nth-child(6)").fadeIn(500):a("#mashsb_settingsgeneral_header .row:nth-child(6)").fadeOut(500)}),"refresh_loading"===a("#mashsb_settings\\[caching_method\\]").val()&&a("#mashsb_settingsgeneral_header .row:nth-child(6)").fadeIn(500),a(".mashsb-tabs").length&&a("#tab_container").easytabs({animate:!0,updateHash:!0,defaultTab:f()}),a("#tab_container").bind("easytabs:after",function(){0==jQuery(".mashsb.nav-tab-wrapper a.nav-tab-active:nth-child(2)").length&&d()}),a(".mashtab").length&&a(".tabcontent_container").easytabs({animate:!0}),a("#mashsb_network_list").sortable({items:".mashsb_list_item",opacity:.6,cursor:"move",axis:"y",update:function(){var b=a(this).sortable("serialize")+"&action=mashsb_update_order";a.post(ajaxurl,b,function(){})}}),a(".mashsb-helper").click(function(b){b.preventDefault();var c=a(this),d=a(this).next();a(".mashsb-message").not(d).hide();var e=c.position();d.css(d.hasClass("bottom")?{left:e.left-d.width()/2+"px",top:e.top+c.height()+9+"px"}:{left:e.left+c.width()+9+"px",top:e.top+c.height()/2-18+"px"}),d.toggle(),b.stopPropagation()}),a("body").click(function(){a(".mashsb-message").hide()}),a(".mashsb-message").click(function(a){a.stopPropagation()})}),function(a,b,c){function d(a){return a=a||location.href,"#"+a.replace(/^[^#]*#?(.*)$/,"$1")}var e,f="hashchange",g=document,h=a.event.special,i=g.documentMode,j="on"+f in b&&(i===c||i>7);a.fn[f]=function(a){return a?this.bind(f,a):this.trigger(f)},a.fn[f].delay=50,h[f]=a.extend(h[f],{setup:function(){return j?!1:void a(e.start)},teardown:function(){return j?!1:void a(e.stop)}}),e=function(){function e(){var c=d(),g=n(k);c!==k?(m(k=c,g),a(b).trigger(f)):g!==k&&(location.href=location.href.replace(/#.*/,"")+g),h=setTimeout(e,a.fn[f].delay)}var h,i={},k=d(),l=function(a){return a},m=l,n=l;return i.start=function(){h||e()},i.stop=function(){h&&clearTimeout(h),h=c},a.browser.msie&&!j&&function(){var b,c;i.start=function(){b||(c=a.fn[f].src,c=c&&c+d(),b=a('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){c||m(d()),e()}).attr("src",c||"javascript:0").insertAfter("body")[0].contentWindow,g.onpropertychange=function(){try{"title"===event.propertyName&&(b.document.title=g.title)}catch(a){}})},i.stop=l,n=function(){return d(b.location.href)},m=function(c,d){var e=b.document,h=a.fn[f].domain;c!==d&&(e.title=g.title,e.open(),h&&e.write('<script>document.domain="'+h+'"</script>'),e.close(),b.location.hash=c)}}(),i}()}(jQuery,this),function(a){a.easytabs=function(b,c){var d,e,f,g,h,i,j=this,k=a(b),l={animate:!0,panelActiveClass:"active",tabActiveClass:"active",defaultTab:"li:first-child",animationSpeed:"normal",tabs:"> ul > li",updateHash:!0,cycle:!1,collapsible:!1,collapsedClass:"collapsed",collapsedByDefault:!0,uiTabs:!1,transitionIn:"fadeIn",transitionOut:"fadeOut",transitionInEasing:"swing",transitionOutEasing:"swing",transitionCollapse:"slideUp",transitionUncollapse:"slideDown",transitionCollapseEasing:"swing",transitionUncollapseEasing:"swing",containerClass:"",tabsClass:"",tabClass:"",panelClass:"",cache:!0,event:"click",panelContext:k},m={fast:200,normal:400,slow:600};j.init=function(){j.settings=i=a.extend({},l,c),i.bind_str=i.event+".easytabs",i.uiTabs&&(i.tabActiveClass="ui-tabs-selected",i.containerClass="ui-tabs ui-widget ui-widget-content ui-corner-all",i.tabsClass="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all",i.tabClass="ui-state-default ui-corner-top",i.panelClass="ui-tabs-panel ui-widget-content ui-corner-bottom"),i.collapsible&&void 0!==c.defaultTab&&void 0===c.collpasedByDefault&&(i.collapsedByDefault=!1),"string"==typeof i.animationSpeed&&(i.animationSpeed=m[i.animationSpeed]),a("a.anchor").remove().prependTo("body"),k.data("easytabs",{}),j.setTransitions(),j.getTabs(),o(),p(),r(),v(),w(),k.attr("data-easytabs",!0)},j.setTransitions=function(){f=i.animate?{show:i.transitionIn,hide:i.transitionOut,speed:i.animationSpeed,collapse:i.transitionCollapse,uncollapse:i.transitionUncollapse,halfSpeed:i.animationSpeed/2}:{show:"show",hide:"hide",speed:0,collapse:"hide",uncollapse:"show",halfSpeed:0}},j.getTabs=function(){var b;j.tabs=k.find(i.tabs),j.panels=a(),j.tabs.each(function(){var c=a(this),d=c.children("a"),e=c.children("a").data("target");c.data("easytabs",{}),void 0!==e&&null!==e?c.data("easytabs").ajax=d.attr("href"):e=d.attr("href"),e=e.match(/#([^\?]+)/)[1],b=i.panelContext.find("#"+e),b.length?(b.data("easytabs",{position:b.css("position"),visibility:b.css("visibility")}),b.not(i.panelActiveClass).hide(),j.panels=j.panels.add(b),c.data("easytabs").panel=b):(j.tabs=j.tabs.not(c),"console"in window&&console.warn("Warning: tab without matching panel for selector '#"+e+"' removed from set"))})},j.selectTab=function(a,b){var c=window.location,d=(c.hash.match(/^[^\?]*/)[0],a.parent().data("easytabs").panel),e=a.parent().data("easytabs").ajax;i.collapsible&&!h&&(a.hasClass(i.tabActiveClass)||a.hasClass(i.collapsedClass))?j.toggleTabCollapse(a,d,e,b):a.hasClass(i.tabActiveClass)&&d.hasClass(i.panelActiveClass)?i.cache||s(a,d,e,b):s(a,d,e,b)},j.toggleTabCollapse=function(a,b,c,d){j.panels.stop(!0,!0),n(k,"easytabs:before",[a,b,i])&&(j.tabs.filter("."+i.tabActiveClass).removeClass(i.tabActiveClass).children().removeClass(i.tabActiveClass),a.hasClass(i.collapsedClass)?(!c||i.cache&&a.parent().data("easytabs").cached||(k.trigger("easytabs:ajax:beforeSend",[a,b]),b.load(c,function(c,d,e){a.parent().data("easytabs").cached=!0,k.trigger("easytabs:ajax:complete",[a,b,c,d,e])})),a.parent().removeClass(i.collapsedClass).addClass(i.tabActiveClass).children().removeClass(i.collapsedClass).addClass(i.tabActiveClass),b.addClass(i.panelActiveClass)[f.uncollapse](f.speed,i.transitionUncollapseEasing,function(){k.trigger("easytabs:midTransition",[a,b,i]),"function"==typeof d&&d()})):(a.addClass(i.collapsedClass).parent().addClass(i.collapsedClass),b.removeClass(i.panelActiveClass)[f.collapse](f.speed,i.transitionCollapseEasing,function(){k.trigger("easytabs:midTransition",[a,b,i]),"function"==typeof d&&d()})))},j.matchTab=function(a){return j.tabs.find("[href='"+a+"'],[data-target='"+a+"']").first()},j.matchInPanel=function(a){return a&&j.validId(a)?j.panels.filter(":has("+a+")").first():[]},j.validId=function(a){return a.substr(1).match(/^[A-Za-z][A-Za-z0-9\-_:\.]*$/)},j.selectTabFromHashChange=function(){var a,b=window.location.hash.match(/^[^\?]*/)[0],c=j.matchTab(b);i.updateHash&&(c.length?(h=!0,j.selectTab(c)):(a=j.matchInPanel(b),a.length?(b="#"+a.attr("id"),c=j.matchTab(b),h=!0,j.selectTab(c)):d.hasClass(i.tabActiveClass)||i.cycle||(""===b||j.matchTab(g).length||k.closest(b).length)&&(h=!0,j.selectTab(e))))},j.cycleTabs=function(b){i.cycle&&(b%=j.tabs.length,$tab=a(j.tabs[b]).children("a").first(),h=!0,j.selectTab($tab,function(){setTimeout(function(){j.cycleTabs(b+1)},i.cycle)}))},j.publicMethods={select:function(b){var c;0===(c=j.tabs.filter(b)).length?0===(c=j.tabs.find("a[href='"+b+"']")).length&&0===(c=j.tabs.find("a"+b)).length&&0===(c=j.tabs.find("[data-target='"+b+"']")).length&&0===(c=j.tabs.find("a[href$='"+b+"']")).length&&a.error("Tab '"+b+"' does not exist in tab set"):c=c.children("a").first(),j.selectTab(c)}};var n=function(b,c,d){var e=a.Event(c);return b.trigger(e,d),e.result!==!1},o=function(){k.addClass(i.containerClass),j.tabs.parent().addClass(i.tabsClass),j.tabs.addClass(i.tabClass),j.panels.addClass(i.panelClass)},p=function(){var b,c=window.location.hash.match(/^[^\?]*/)[0],f=j.matchTab(c).parent();1===f.length?(d=f,i.cycle=!1):(b=j.matchInPanel(c),b.length?(c="#"+b.attr("id"),d=j.matchTab(c).parent()):(d=j.tabs.parent().find(i.defaultTab),0===d.length&&a.error("The specified default tab ('"+i.defaultTab+"') could not be found in the tab set ('"+i.tabs+"') out of "+j.tabs.length+" tabs."))),e=d.children("a").first(),q(f)},q=function(b){var c,f;i.collapsible&&0===b.length&&i.collapsedByDefault?d.addClass(i.collapsedClass).children().addClass(i.collapsedClass):(c=a(d.data("easytabs").panel),f=d.data("easytabs").ajax,!f||i.cache&&d.data("easytabs").cached||(k.trigger("easytabs:ajax:beforeSend",[e,c]),c.load(f,function(a,b,f){d.data("easytabs").cached=!0,k.trigger("easytabs:ajax:complete",[e,c,a,b,f])})),d.data("easytabs").panel.show().addClass(i.panelActiveClass),d.addClass(i.tabActiveClass).children().addClass(i.tabActiveClass)),k.trigger("easytabs:initialised",[e,c])},r=function(){j.tabs.children("a").bind(i.bind_str,function(b){i.cycle=!1,h=!1,j.selectTab(a(this)),b.preventDefault?b.preventDefault():b.returnValue=!1})},s=function(a,b,c,d){if(j.panels.stop(!0,!0),n(k,"easytabs:before",[a,b,i])){var e,l,m,o,p=j.panels.filter(":visible"),q=b.parent(),r=window.location.hash.match(/^[^\?]*/)[0];i.animate&&(e=t(b),l=p.length?u(p):0,m=e-l),g=r,o=function(){k.trigger("easytabs:midTransition",[a,b,i]),i.animate&&"fadeIn"==i.transitionIn&&0>m&&q.animate({height:q.height()+m},f.halfSpeed).css({"min-height":""}),i.updateHash&&!h?window.history.pushState?window.history.pushState(null,null,"#"+b.attr("id")):window.location.hash="#"+b.attr("id"):h=!1,b[f.show](f.speed,i.transitionInEasing,function(){q.css({height:"","min-height":""}),k.trigger("easytabs:after",[a,b,i]),"function"==typeof d&&d()})},!c||i.cache&&a.parent().data("easytabs").cached||(k.trigger("easytabs:ajax:beforeSend",[a,b]),b.load(c,function(c,d,e){a.parent().data("easytabs").cached=!0,k.trigger("easytabs:ajax:complete",[a,b,c,d,e])})),i.animate&&"fadeOut"==i.transitionOut&&(m>0?q.animate({height:q.height()+m},f.halfSpeed):q.css({"min-height":q.height()})),j.tabs.filter("."+i.tabActiveClass).removeClass(i.tabActiveClass).children().removeClass(i.tabActiveClass),j.tabs.filter("."+i.collapsedClass).removeClass(i.collapsedClass).children().removeClass(i.collapsedClass),a.parent().addClass(i.tabActiveClass).children().addClass(i.tabActiveClass),j.panels.filter("."+i.panelActiveClass).removeClass(i.panelActiveClass),b.addClass(i.panelActiveClass),p.length?p[f.hide](f.speed,i.transitionOutEasing,o):b[f.uncollapse](f.speed,i.transitionUncollapseEasing,o)}},t=function(b){if(b.data("easytabs")&&b.data("easytabs").lastHeight)return b.data("easytabs").lastHeight;var c,d,e=b.css("display");try{c=a("<div></div>",{position:"absolute",visibility:"hidden",overflow:"hidden"})}catch(f){c=a("<div></div>",{visibility:"hidden",overflow:"hidden"})}return d=b.wrap(c).css({position:"relative",visibility:"hidden",display:"block"}).outerHeight(),b.unwrap(),b.css({position:b.data("easytabs").position,visibility:b.data("easytabs").visibility,display:e}),b.data("easytabs").lastHeight=d,d},u=function(a){var b=a.outerHeight();return a.data("easytabs")?a.data("easytabs").lastHeight=b:a.data("easytabs",{lastHeight:b}),b},v=function(){"function"==typeof a(window).hashchange?a(window).hashchange(function(){j.selectTabFromHashChange()}):a.address&&"function"==typeof a.address.change&&a.address.change(function(){j.selectTabFromHashChange()})},w=function(){var a;i.cycle&&(a=j.tabs.index(d),setTimeout(function(){j.cycleTabs(a+1)},i.cycle))};j.init()},a.fn.easytabs=function(b){var c=arguments;return this.each(function(){var d=a(this),e=d.data("easytabs");return void 0===e&&(e=new a.easytabs(this,b),d.data("easytabs",e)),e.publicMethods[b]?e.publicMethods[b](Array.prototype.slice.call(c,1)):void 0})}}(jQuery),function(a){var b=function(){var b='<div class="colpick"><div class="colpick_color"><div class="colpick_color_overlay1"><div class="colpick_color_overlay2"><div class="colpick_selector_outer"><div class="colpick_selector_inner"></div></div></div></div></div><div class="colpick_hue"><div class="colpick_hue_arrs"><div class="colpick_hue_larr"></div><div class="colpick_hue_rarr"></div></div></div><div class="colpick_new_color"></div><div class="colpick_current_color"></div><div class="colpick_hex_field"><div class="colpick_field_letter">#</div><input type="text" maxlength="6" size="6" /></div><div class="colpick_rgb_r colpick_field"><div class="colpick_field_letter">R</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_rgb_g colpick_field"><div class="colpick_field_letter">G</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_rgb_b colpick_field"><div class="colpick_field_letter">B</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_hsb_h colpick_field"><div class="colpick_field_letter">H</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_hsb_s colpick_field"><div class="colpick_field_letter">S</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_hsb_b colpick_field"><div class="colpick_field_letter">B</div><input type="text" maxlength="3" size="3" /><div class="colpick_field_arrs"><div class="colpick_field_uarr"></div><div class="colpick_field_darr"></div></div></div><div class="colpick_submit"></div></div>',c={showEvent:"click",onShow:function(){},onBeforeShow:function(){},onHide:function(){},onChange:function(){},onSubmit:function(){},colorScheme:"light",color:"3289c7",livePreview:!0,flat:!1,layout:"full",submit:1,submitText:"OK",height:156},g=function(b,c){var d=f(b);a(c).data("colpick").fields.eq(1).val(d.r).end().eq(2).val(d.g).end().eq(3).val(d.b).end()},i=function(b,c){a(c).data("colpick").fields.eq(4).val(Math.round(b.h)).end().eq(5).val(Math.round(b.s)).end().eq(6).val(Math.round(b.b)).end()},j=function(b,c){a(c).data("colpick").fields.eq(0).val(h(b))},k=function(b,c){a(c).data("colpick").selector.css("backgroundColor","#"+h({h:b.h,s:100,b:100})),a(c).data("colpick").selectorIndic.css({left:parseInt(a(c).data("colpick").height*b.s/100,10),top:parseInt(a(c).data("colpick").height*(100-b.b)/100,10)})},l=function(b,c){a(c).data("colpick").hue.css("top",parseInt(a(c).data("colpick").height-a(c).data("colpick").height*b.h/360,10))},m=function(b,c){a(c).data("colpick").currentColor.css("backgroundColor","#"+h(b))},n=function(b,c){a(c).data("colpick").newColor.css("backgroundColor","#"+h(b))},o=function(){var b,c=a(this).parent().parent();this.parentNode.className.indexOf("_hex")>0?(c.data("colpick").color=b=d(G(this.value)),g(b,c.get(0)),i(b,c.get(0))):this.parentNode.className.indexOf("_hsb")>0?(c.data("colpick").color=b=E({h:parseInt(c.data("colpick").fields.eq(4).val(),10),s:parseInt(c.data("colpick").fields.eq(5).val(),10),b:parseInt(c.data("colpick").fields.eq(6).val(),10)}),g(b,c.get(0)),j(b,c.get(0))):(c.data("colpick").color=b=e(F({r:parseInt(c.data("colpick").fields.eq(1).val(),10),g:parseInt(c.data("colpick").fields.eq(2).val(),10),b:parseInt(c.data("colpick").fields.eq(3).val(),10)})),j(b,c.get(0)),i(b,c.get(0))),k(b,c.get(0)),l(b,c.get(0)),n(b,c.get(0)),c.data("colpick").onChange.apply(c.parent(),[b,h(b),f(b),c.data("colpick").el,0])},p=function(){a(this).parent().removeClass("colpick_focus")},q=function(){a(this).parent().parent().data("colpick").fields.parent().removeClass("colpick_focus"),a(this).parent().addClass("colpick_focus")},r=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1;var c=a(this).parent().find("input").focus(),d={el:a(this).parent().addClass("colpick_slider"),max:this.parentNode.className.indexOf("_hsb_h")>0?360:this.parentNode.className.indexOf("_hsb")>0?100:255,y:b.pageY,field:c,val:parseInt(c.val(),10),preview:a(this).parent().parent().data("colpick").livePreview};a(document).mouseup(d,t),a(document).mousemove(d,s)},s=function(a){return a.data.field.val(Math.max(0,Math.min(a.data.max,parseInt(a.data.val-a.pageY+a.data.y,10)))),a.data.preview&&o.apply(a.data.field.get(0),[!0]),!1},t=function(b){return o.apply(b.data.field.get(0),[!0]),b.data.el.removeClass("colpick_slider").find("input").focus(),a(document).off("mouseup",t),a(document).off("mousemove",s),!1},u=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1;var c={cal:a(this).parent(),y:a(this).offset().top};a(document).on("mouseup touchend",c,w),a(document).on("mousemove touchmove",c,v);var d="touchstart"==b.type?b.originalEvent.changedTouches[0].pageY:b.pageY;return o.apply(c.cal.data("colpick").fields.eq(4).val(parseInt(360*(c.cal.data("colpick").height-(d-c.y))/c.cal.data("colpick").height,10)).get(0),[c.cal.data("colpick").livePreview]),!1},v=function(a){var b="touchmove"==a.type?a.originalEvent.changedTouches[0].pageY:a.pageY;return o.apply(a.data.cal.data("colpick").fields.eq(4).val(parseInt(360*(a.data.cal.data("colpick").height-Math.max(0,Math.min(a.data.cal.data("colpick").height,b-a.data.y)))/a.data.cal.data("colpick").height,10)).get(0),[a.data.preview]),!1},w=function(b){return g(b.data.cal.data("colpick").color,b.data.cal.get(0)),j(b.data.cal.data("colpick").color,b.data.cal.get(0)),a(document).off("mouseup touchend",w),a(document).off("mousemove touchmove",v),!1},x=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1;var c={cal:a(this).parent(),pos:a(this).offset()};c.preview=c.cal.data("colpick").livePreview,a(document).on("mouseup touchend",c,z),a(document).on("mousemove touchmove",c,y);var d;return"touchstart"==b.type?(pageX=b.originalEvent.changedTouches[0].pageX,d=b.originalEvent.changedTouches[0].pageY):(pageX=b.pageX,d=b.pageY),o.apply(c.cal.data("colpick").fields.eq(6).val(parseInt(100*(c.cal.data("colpick").height-(d-c.pos.top))/c.cal.data("colpick").height,10)).end().eq(5).val(parseInt(100*(pageX-c.pos.left)/c.cal.data("colpick").height,10)).get(0),[c.preview]),!1},y=function(a){var b;return"touchmove"==a.type?(pageX=a.originalEvent.changedTouches[0].pageX,b=a.originalEvent.changedTouches[0].pageY):(pageX=a.pageX,b=a.pageY),o.apply(a.data.cal.data("colpick").fields.eq(6).val(parseInt(100*(a.data.cal.data("colpick").height-Math.max(0,Math.min(a.data.cal.data("colpick").height,b-a.data.pos.top)))/a.data.cal.data("colpick").height,10)).end().eq(5).val(parseInt(100*Math.max(0,Math.min(a.data.cal.data("colpick").height,pageX-a.data.pos.left))/a.data.cal.data("colpick").height,10)).get(0),[a.data.preview]),!1},z=function(b){return g(b.data.cal.data("colpick").color,b.data.cal.get(0)),j(b.data.cal.data("colpick").color,b.data.cal.get(0)),a(document).off("mouseup touchend",z),a(document).off("mousemove touchmove",y),!1},A=function(){var b=a(this).parent(),c=b.data("colpick").color;b.data("colpick").origColor=c,m(c,b.get(0)),b.data("colpick").onSubmit(c,h(c),f(c),b.data("colpick").el)},B=function(b){b.stopPropagation();var c=a("#"+a(this).data("colpickId"));c.data("colpick").onBeforeShow.apply(this,[c.get(0)]);var d=a(this).offset(),e=d.top+this.offsetHeight,f=d.left,g=D(),h=c.width();f+h>g.l+g.w&&(f-=h),c.css({left:f+"px",top:e+"px"}),0!=c.data("colpick").onShow.apply(this,[c.get(0)])&&c.show(),a("html").mousedown({cal:c},C),c.mousedown(function(a){a.stopPropagation()})},C=function(b){0!=b.data.cal.data("colpick").onHide.apply(this,[b.data.cal.get(0)])&&b.data.cal.hide(),a("html").off("mousedown",C)},D=function(){var a="CSS1Compat"==document.compatMode;return{l:window.pageXOffset||(a?document.documentElement.scrollLeft:document.body.scrollLeft),w:window.innerWidth||(a?document.documentElement.clientWidth:document.body.clientWidth)}},E=function(a){return{h:Math.min(360,Math.max(0,a.h)),s:Math.min(100,Math.max(0,a.s)),b:Math.min(100,Math.max(0,a.b))}},F=function(a){return{r:Math.min(255,Math.max(0,a.r)),g:Math.min(255,Math.max(0,a.g)),b:Math.min(255,Math.max(0,a.b))}},G=function(a){var b=6-a.length;if(b>0){for(var c=[],d=0;b>d;d++)c.push("0");c.push(a),a=c.join("")}return a},H=function(){var b=a(this).parent(),c=b.data("colpick").origColor;b.data("colpick").color=c,g(c,b.get(0)),j(c,b.get(0)),i(c,b.get(0)),k(c,b.get(0)),l(c,b.get(0)),n(c,b.get(0))};return{init:function(f){if(f=a.extend({},c,f||{}),"string"==typeof f.color)f.color=d(f.color);else if(void 0!=f.color.r&&void 0!=f.color.g&&void 0!=f.color.b)f.color=e(f.color);else{if(void 0==f.color.h||void 0==f.color.s||void 0==f.color.b)return this;f.color=E(f.color)}return this.each(function(){if(!a(this).data("colpickId")){var c=a.extend({},f);c.origColor=f.color;var d="collorpicker_"+parseInt(1e3*Math.random());a(this).data("colpickId",d);var e=a(b).attr("id",d);e.addClass("colpick_"+c.layout+(c.submit?"":" colpick_"+c.layout+"_ns")),"light"!=c.colorScheme&&e.addClass("colpick_"+c.colorScheme),e.find("div.colpick_submit").html(c.submitText).click(A),c.fields=e.find("input").change(o).blur(p).focus(q),e.find("div.colpick_field_arrs").mousedown(r).end().find("div.colpick_current_color").click(H),c.selector=e.find("div.colpick_color").on("mousedown touchstart",x),c.selectorIndic=c.selector.find("div.colpick_selector_outer"),c.el=this,c.hue=e.find("div.colpick_hue_arrs"),huebar=c.hue.parent();var h=navigator.userAgent.toLowerCase(),s="Microsoft Internet Explorer"===navigator.appName,t=s?parseFloat(h.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,v=s&&10>t,w=["#ff0000","#ff0080","#ff00ff","#8000ff","#0000ff","#0080ff","#00ffff","#00ff80","#00ff00","#80ff00","#ffff00","#ff8000","#ff0000"];if(v){var y,z;for(y=0;11>=y;y++)z=a("<div></div>").attr("style","height:8.333333%; filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr="+w[y]+", endColorstr="+w[y+1]+'); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='+w[y]+", endColorstr="+w[y+1]+')";'),huebar.append(z)}else stopList=w.join(","),huebar.attr("style","background:-webkit-linear-gradient(top,"+stopList+"); background: -o-linear-gradient(top,"+stopList+"); background: -ms-linear-gradient(top,"+stopList+"); background:-moz-linear-gradient(top,"+stopList+"); -webkit-linear-gradient(top,"+stopList+"); background:linear-gradient(to bottom,"+stopList+"); ");e.find("div.colpick_hue").on("mousedown touchstart",u),c.newColor=e.find("div.colpick_new_color"),c.currentColor=e.find("div.colpick_current_color"),e.data("colpick",c),g(c.color,e.get(0)),i(c.color,e.get(0)),j(c.color,e.get(0)),l(c.color,e.get(0)),k(c.color,e.get(0)),m(c.color,e.get(0)),n(c.color,e.get(0)),c.flat?(e.appendTo(this).show(),e.css({position:"relative",display:"block"})):(e.appendTo(document.body),a(this).on(c.showEvent,B),e.css({position:"absolute"}))}})},showPicker:function(){return this.each(function(){a(this).data("colpickId")&&B.apply(this)})},hidePicker:function(){return this.each(function(){a(this).data("colpickId")&&a("#"+a(this).data("colpickId")).hide()})},setColor:function(b,c){if(c="undefined"==typeof c?1:c,"string"==typeof b)b=d(b);else if(void 0!=b.r&&void 0!=b.g&&void 0!=b.b)b=e(b);else{if(void 0==b.h||void 0==b.s||void 0==b.b)return this;b=E(b)}return this.each(function(){if(a(this).data("colpickId")){var d=a("#"+a(this).data("colpickId"));d.data("colpick").color=b,d.data("colpick").origColor=b,g(b,d.get(0)),i(b,d.get(0)),j(b,d.get(0)),l(b,d.get(0)),k(b,d.get(0)),n(b,d.get(0)),d.data("colpick").onChange.apply(d.parent(),[b,h(b),f(b),d.data("colpick").el,1]),c&&m(b,d.get(0))}})}}}(),c=function(a){var a=parseInt(a.indexOf("#")>-1?a.substring(1):a,16);return{r:a>>16,g:(65280&a)>>8,b:255&a}},d=function(a){return e(c(a))},e=function(a){var b={h:0,s:0,b:0},c=Math.min(a.r,a.g,a.b),d=Math.max(a.r,a.g,a.b),e=d-c;return b.b=d,b.s=0!=d?255*e/d:0,b.h=0!=b.s?a.r==d?(a.g-a.b)/e:a.g==d?2+(a.b-a.r)/e:4+(a.r-a.g)/e:-1,b.h*=60,b.h<0&&(b.h+=360),b.s*=100/255,b.b*=100/255,b},f=function(a){var b={},c=a.h,d=255*a.s/100,e=255*a.b/100;if(0==d)b.r=b.g=b.b=e;else{var f=e,g=(255-d)*e/255,h=(f-g)*(c%60)/60;360==c&&(c=0),60>c?(b.r=f,b.b=g,b.g=g+h):120>c?(b.g=f,b.b=g,b.r=f-h):180>c?(b.g=f,b.r=g,b.b=g+h):240>c?(b.b=f,b.r=g,b.g=f-h):300>c?(b.b=f,b.g=g,b.r=g+h):360>c?(b.r=f,b.g=g,b.b=f-h):(b.r=0,b.g=0,b.b=0)}return{r:Math.round(b.r),g:Math.round(b.g),b:Math.round(b.b)}},g=function(b){var c=[b.r.toString(16),b.g.toString(16),b.b.toString(16)];return a.each(c,function(a,b){1==b.length&&(c[a]="0"+b)}),c.join("")},h=function(a){return g(f(a))};a.fn.extend({colpick:b.init,colpickHide:b.hidePicker,colpickShow:b.showPicker,colpickSetColor:b.setColor}),a.extend({colpick:{rgbToHex:g,rgbToHsb:e,hsbToHex:h,hsbToRgb:f,hexToHsb:d,hexToRgb:c}})}(jQuery),window.twttr=function(a,b,c){var d,e=a.getElementsByTagName(b)[0],f=window.twttr||{};return a.getElementById(c)?f:(d=a.createElement(b),d.id=c,d.src="https://platform.twitter.com/widgets.js",e.parentNode.insertBefore(d,e),f._e=[],f.ready=function(a){f._e.push(a)},f)}(document,"script","twitter-wjs");
|
assets/js/mashsb.js
ADDED
@@ -0,0 +1,332 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var strict;
|
2 |
+
|
3 |
+
jQuery(document).ready(function ($) {
|
4 |
+
|
5 |
+
mashsb_check_cache();
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Check Cache
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
function mashsb_check_cache() {
|
12 |
+
setTimeout(function () {
|
13 |
+
if (typeof(mashsb) && mashsb.refresh == "1") {
|
14 |
+
mashsb_update_cache();
|
15 |
+
//console.log('Cache will be updated');
|
16 |
+
}
|
17 |
+
|
18 |
+
}, 6000);
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
*
|
23 |
+
* Deprecated
|
24 |
+
*/
|
25 |
+
/*if (typeof('mashsb') && mashsb.restapi == "1"){
|
26 |
+
mashsb_restapi_check_cache();
|
27 |
+
}
|
28 |
+
else if (typeof('mashsb') && mashsb.restapi == "0"){
|
29 |
+
mashsb_check_cache_ajax();
|
30 |
+
}*/
|
31 |
+
/**
|
32 |
+
* Check Cache via ajax endpoint
|
33 |
+
*
|
34 |
+
*/
|
35 |
+
function mashsb_check_cache_ajax() {
|
36 |
+
|
37 |
+
setTimeout(function () {
|
38 |
+
|
39 |
+
var data = {
|
40 |
+
action: 'mashsb_refresh_cache',
|
41 |
+
};
|
42 |
+
$.post(ajaxurl, data, function (resp, status, xhr) {
|
43 |
+
if (resp == "1") {
|
44 |
+
mashsb_update_cache();
|
45 |
+
//console.log('cache must be updated ' + + xhr.status + ' ' + xhr.statusText + xhr.statusText);
|
46 |
+
}
|
47 |
+
}).fail(function (xhr) {
|
48 |
+
console.log('Fatal Error:' + xhr.status + ' ' + xhr.statusText + xhr.statusText);
|
49 |
+
});
|
50 |
+
}, 4000);
|
51 |
+
}
|
52 |
+
/**
|
53 |
+
* Check Cache via rest api
|
54 |
+
*
|
55 |
+
*/
|
56 |
+
function mashsb_restapi_check_cache() {
|
57 |
+
|
58 |
+
setTimeout(function () {
|
59 |
+
|
60 |
+
var data = {};
|
61 |
+
var mash_rest_url = 'http://src.wordpress-develop.dev/wp-json/mashshare/v1/verifycache/';
|
62 |
+
$.get(mash_rest_url, data, function (resp, status, xhr) {
|
63 |
+
if (resp == "1") {
|
64 |
+
mashsb_update_cache();
|
65 |
+
//console.log('cache must be updated ');
|
66 |
+
}
|
67 |
+
}).fail(function (xhr) {
|
68 |
+
console.log('Fatal Error:' + xhr.status + ' ' + xhr.statusText + xhr.statusText);
|
69 |
+
});
|
70 |
+
}, 4000);
|
71 |
+
}
|
72 |
+
|
73 |
+
function mashsb_update_cache() {
|
74 |
+
var mashsb_url = window.location.href;
|
75 |
+
if (mashsb_url.indexOf("?") > -1) {
|
76 |
+
mashsb_url += "&mashsb-refresh";
|
77 |
+
} else {
|
78 |
+
mashsb_url += "?mashsb-refresh";
|
79 |
+
}
|
80 |
+
var xhr = new XMLHttpRequest();
|
81 |
+
xhr.open("GET", mashsb_url, true);
|
82 |
+
//console.log('Update Cache');
|
83 |
+
xhr.send();
|
84 |
+
}
|
85 |
+
|
86 |
+
/* Opens a new minus button when plus sign is clicked */
|
87 |
+
/* Toogle function for more services */
|
88 |
+
$('.onoffswitch').on('click', function () {
|
89 |
+
var $parent = $(this).parents('.mashsb-container');
|
90 |
+
$parent.find('.onoffswitch').hide();
|
91 |
+
$parent.find('.secondary-shares').show();
|
92 |
+
$parent.find('.onoffswitch2').show();
|
93 |
+
});
|
94 |
+
$('.onoffswitch2').on('click', function () {
|
95 |
+
var $parent = $(this).parents('.mashsb-container');
|
96 |
+
$parent.find('.onoffswitch').show();
|
97 |
+
$parent.find('.secondary-shares').hide();
|
98 |
+
});
|
99 |
+
|
100 |
+
/* Network sharer scripts */
|
101 |
+
/* deactivate FB sharer when likeaftershare is enabled */
|
102 |
+
if (typeof lashare_fb == "undefined" && typeof mashsb !== 'undefined') {
|
103 |
+
$('.mashicon-facebook').click(function (mashfb) {
|
104 |
+
|
105 |
+
winWidth = 520;
|
106 |
+
winHeight = 550;
|
107 |
+
var winTop = (screen.height / 2) - (winHeight / 2);
|
108 |
+
var winLeft = (screen.width / 2) - (winWidth / 2);
|
109 |
+
var url = $(this).attr('href');
|
110 |
+
|
111 |
+
window.open(url, 'sharer', 'top=' + winTop + ',left=' + winLeft + ',toolbar=0,status=0,width=' + winWidth + ',height=' + winHeight);
|
112 |
+
mashfb.preventDefault(mashfb);
|
113 |
+
return false;
|
114 |
+
});
|
115 |
+
}
|
116 |
+
|
117 |
+
if (typeof mashsb !== 'undefined') {
|
118 |
+
$('.mashicon-twitter').click(function (e) {
|
119 |
+
winWidth = 520;
|
120 |
+
winHeight = 350;
|
121 |
+
var winTop = (screen.height / 2) - (winHeight / 2);
|
122 |
+
var winLeft = (screen.width / 2) - (winWidth / 2);
|
123 |
+
var url = $(this).attr('href');
|
124 |
+
|
125 |
+
// deprecated and removed because TW popup opens twice
|
126 |
+
if (mashsb.twitter_popup === '1') {
|
127 |
+
window.open(url, 'sharer', 'top=' + winTop + ',left=' + winLeft + ',toolbar=0,status=0,width=' + winWidth + ',height=' + winHeight);
|
128 |
+
}
|
129 |
+
e.preventDefault();
|
130 |
+
return false;
|
131 |
+
});
|
132 |
+
}
|
133 |
+
|
134 |
+
if (typeof mashsb !== 'undefined' && mashsb.subscribe === 'content') {
|
135 |
+
/* Toogle container display:none */
|
136 |
+
jQuery('.mashicon-subscribe').not('.trigger_active').nearest('.mashsb-toggle-container').hide();
|
137 |
+
jQuery('.mashicon-subscribe').click(function () {
|
138 |
+
var trig = jQuery(this);
|
139 |
+
if (trig.hasClass('trigger_active')) {
|
140 |
+
jQuery(trig).nearest('.mashsb-toggle-container').slideToggle('fast');
|
141 |
+
trig.removeClass('trigger_active');
|
142 |
+
//jQuery(".mashicon-subscribe").css({"padding-bottom":"10px"});
|
143 |
+
} else {
|
144 |
+
jQuery('.trigger_active').nearest('.mashsb-toggle-container').slideToggle('slow');
|
145 |
+
jQuery('.trigger_active').removeClass('trigger_active');
|
146 |
+
jQuery(trig).nearest('.mashsb-toggle-container').slideToggle('fast');
|
147 |
+
trig.addClass('trigger_active');
|
148 |
+
//jQuery(".mashicon-subscribe").css({"padding-bottom":"13px"});
|
149 |
+
}
|
150 |
+
;
|
151 |
+
return false;
|
152 |
+
});
|
153 |
+
}
|
154 |
+
|
155 |
+
if (typeof mashsb !== 'undefined' && mashsb.subscribe === 'link') {
|
156 |
+
$('.mashicon-subscribe').click(function () {
|
157 |
+
var href = mashsb.subscribe_url;
|
158 |
+
$(this).attr("href", href);
|
159 |
+
});
|
160 |
+
}
|
161 |
+
;
|
162 |
+
|
163 |
+
|
164 |
+
/* Round the shares callback function
|
165 |
+
*
|
166 |
+
* @param {type} value
|
167 |
+
* @returns {String|@exp;value@call;toFixed}
|
168 |
+
*/
|
169 |
+
function roundShares(value) {
|
170 |
+
if (typeof mashsb !== "undefined" && mashsb.round_shares == 1) {
|
171 |
+
if (value > 1000000) {
|
172 |
+
shares = Math.round((value / 1000000) * 10) / 10 + 'M';
|
173 |
+
return shares;
|
174 |
+
|
175 |
+
}
|
176 |
+
if (value > 1000) {
|
177 |
+
shares = Math.round((value / 1000) * 10) / 10 + 'k';
|
178 |
+
return shares;
|
179 |
+
|
180 |
+
}
|
181 |
+
}
|
182 |
+
/* zero decimals */
|
183 |
+
return value.toFixed(0);
|
184 |
+
}
|
185 |
+
|
186 |
+
/* Count up script jquery-countTo
|
187 |
+
* by mhuggins
|
188 |
+
*
|
189 |
+
* Source: https://github.com/mhuggins/jquery-countTo
|
190 |
+
*/
|
191 |
+
(function ($) {
|
192 |
+
$.fn.countTo = function (options) {
|
193 |
+
options = options || {};
|
194 |
+
|
195 |
+
return $(this).each(function () {
|
196 |
+
// set options for current element
|
197 |
+
var settings = $.extend({}, $.fn.countTo.defaults, {
|
198 |
+
from: $(this).data('from'),
|
199 |
+
to: $(this).data('to'),
|
200 |
+
speed: $(this).data('speed'),
|
201 |
+
refreshInterval: $(this).data('refresh-interval'),
|
202 |
+
decimals: $(this).data('decimals')
|
203 |
+
}, options);
|
204 |
+
|
205 |
+
// how many times to update the value, and how much to increment the value on each update
|
206 |
+
var loops = Math.ceil(settings.speed / settings.refreshInterval),
|
207 |
+
increment = (settings.to - settings.from) / loops;
|
208 |
+
|
209 |
+
// references & variables that will change with each update
|
210 |
+
var self = this,
|
211 |
+
$self = $(this),
|
212 |
+
loopCount = 0,
|
213 |
+
value = settings.from,
|
214 |
+
data = $self.data('countTo') || {};
|
215 |
+
|
216 |
+
$self.data('countTo', data);
|
217 |
+
|
218 |
+
// if an existing interval can be found, clear it first
|
219 |
+
if (data.interval) {
|
220 |
+
clearInterval(data.interval);
|
221 |
+
}
|
222 |
+
data.interval = setInterval(updateTimer, settings.refreshInterval);
|
223 |
+
|
224 |
+
// initialize the element with the starting value
|
225 |
+
render(value);
|
226 |
+
|
227 |
+
function updateTimer() {
|
228 |
+
value += increment;
|
229 |
+
loopCount++;
|
230 |
+
|
231 |
+
render(value);
|
232 |
+
|
233 |
+
if (typeof (settings.onUpdate) == 'function') {
|
234 |
+
settings.onUpdate.call(self, value);
|
235 |
+
}
|
236 |
+
|
237 |
+
if (loopCount >= loops) {
|
238 |
+
// remove the interval
|
239 |
+
$self.removeData('countTo');
|
240 |
+
clearInterval(data.interval);
|
241 |
+
value = settings.to;
|
242 |
+
|
243 |
+
if (typeof (settings.onComplete) == 'function') {
|
244 |
+
settings.onComplete.call(self, value);
|
245 |
+
}
|
246 |
+
}
|
247 |
+
}
|
248 |
+
|
249 |
+
function render(value) {
|
250 |
+
var formattedValue = settings.formatter.call(self, value, settings);
|
251 |
+
$self.text(formattedValue);
|
252 |
+
}
|
253 |
+
});
|
254 |
+
};
|
255 |
+
|
256 |
+
$.fn.countTo.defaults = {
|
257 |
+
from: 0, // the number the element should start at
|
258 |
+
to: 0, // the number the element should end at
|
259 |
+
speed: 1000, // how long it should take to count between the target numbers
|
260 |
+
refreshInterval: 100, // how often the element should be updated
|
261 |
+
decimals: 0, // the number of decimal places to show
|
262 |
+
//formatter: formatter, // handler for formatting the value before rendering
|
263 |
+
formatter: roundShares,
|
264 |
+
onUpdate: null, // callback method for every time the element is updated
|
265 |
+
onComplete: null // callback method for when the element finishes updating
|
266 |
+
};
|
267 |
+
|
268 |
+
function formatter(value, settings) {
|
269 |
+
return value.toFixed(settings.decimals);
|
270 |
+
}
|
271 |
+
|
272 |
+
|
273 |
+
}(jQuery));
|
274 |
+
|
275 |
+
/* Start the counter
|
276 |
+
*
|
277 |
+
*/
|
278 |
+
if (typeof mashsb !== 'undefined' && mashsb.animate_shares == 1 && $('.mashsbcount').length) {
|
279 |
+
$('.mashsbcount').countTo({from: 0, to: mashsb.shares, speed: 1000, refreshInterval: 100});
|
280 |
+
}
|
281 |
+
|
282 |
+
|
283 |
+
});
|
284 |
+
|
285 |
+
/*!------------------------------------------------------
|
286 |
+
* jQuery nearest v1.0.3
|
287 |
+
* http://github.com/jjenzz/jQuery.nearest
|
288 |
+
* ------------------------------------------------------
|
289 |
+
* Copyright (c) 2012 J. Smith (@jjenzz)
|
290 |
+
* Dual licensed under the MIT and GPL licenses:
|
291 |
+
* http://www.opensource.org/licenses/mit-license.php
|
292 |
+
* http://www.gnu.org/licenses/gpl.html
|
293 |
+
*/
|
294 |
+
(function ($, d) {
|
295 |
+
$.fn.nearest = function (selector) {
|
296 |
+
var self, nearest, el, s, p,
|
297 |
+
hasQsa = d.querySelectorAll;
|
298 |
+
|
299 |
+
function update(el) {
|
300 |
+
nearest = nearest ? nearest.add(el) : $(el);
|
301 |
+
}
|
302 |
+
|
303 |
+
this.each(function () {
|
304 |
+
self = this;
|
305 |
+
|
306 |
+
$.each(selector.split(','), function () {
|
307 |
+
s = $.trim(this);
|
308 |
+
|
309 |
+
if (!s.indexOf('#')) {
|
310 |
+
// selector starts with an ID
|
311 |
+
update((hasQsa ? d.querySelectorAll(s) : $(s)));
|
312 |
+
} else {
|
313 |
+
// is a class or tag selector
|
314 |
+
// so need to traverse
|
315 |
+
p = self.parentNode;
|
316 |
+
while (p) {
|
317 |
+
el = hasQsa ? p.querySelectorAll(s) : $(p).find(s);
|
318 |
+
if (el.length) {
|
319 |
+
update(el);
|
320 |
+
break;
|
321 |
+
}
|
322 |
+
p = p.parentNode;
|
323 |
+
}
|
324 |
+
}
|
325 |
+
});
|
326 |
+
|
327 |
+
});
|
328 |
+
|
329 |
+
return nearest || $();
|
330 |
+
};
|
331 |
+
}(jQuery, document));
|
332 |
+
|
assets/js/mashsb.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
var strict;jQuery(document).ready(function(a){function b(){setTimeout(function(){"1"==mashsb.refresh&&c()},6e3)}function c(){var a=window.location.href;a+=a.indexOf("?")>-1?"&mashsb-refresh":"?mashsb-refresh";var b=new XMLHttpRequest;b.open("GET",a,!0),b.send()}function d(a){if("undefined"!=typeof mashsb&&1==mashsb.round_shares){if(a>1e6)return shares=Math.round(a/1e6*10)/10+"M",shares;if(a>1e3)return shares=Math.round(a/1e3*10)/10+"k",shares}return a.toFixed(0)}b(),a(".onoffswitch").on("click",function(){var b=a(this).parents(".mashsb-container");b.find(".onoffswitch").hide(),b.find(".secondary-shares").show(),b.find(".onoffswitch2").show()}),a(".onoffswitch2").on("click",function(){var b=a(this).parents(".mashsb-container");b.find(".onoffswitch").show(),b.find(".secondary-shares").hide()}),"undefined"==typeof lashare_fb&&"undefined"!=typeof mashsb&&a(".mashicon-facebook").click(function(b){winWidth=520,winHeight=550;var c=screen.height/2-winHeight/2,d=screen.width/2-winWidth/2,e=a(this).attr("href");return window.open(e,"sharer","top="+c+",left="+d+",toolbar=0,status=0,width="+winWidth+",height="+winHeight),b.preventDefault(b),!1}),"undefined"!=typeof mashsb&&a(".mashicon-twitter").click(function(b){winWidth=520,winHeight=350;var c=screen.height/2-winHeight/2,d=screen.width/2-winWidth/2,e=a(this).attr("href");return"1"===mashsb.twitter_popup&&window.open(e,"sharer","top="+c+",left="+d+",toolbar=0,status=0,width="+winWidth+",height="+winHeight),b.preventDefault(),!1}),"undefined"!=typeof mashsb&&"content"===mashsb.subscribe&&(jQuery(".mashicon-subscribe").not(".trigger_active").nearest(".mashsb-toggle-container").hide(),jQuery(".mashicon-subscribe").click(function(){var a=jQuery(this);return a.hasClass("trigger_active")?(jQuery(a).nearest(".mashsb-toggle-container").slideToggle("fast"),a.removeClass("trigger_active")):(jQuery(".trigger_active").nearest(".mashsb-toggle-container").slideToggle("slow"),jQuery(".trigger_active").removeClass("trigger_active"),jQuery(a).nearest(".mashsb-toggle-container").slideToggle("fast"),a.addClass("trigger_active")),!1})),"undefined"!=typeof mashsb&&"link"===mashsb.subscribe&&a(".mashicon-subscribe").click(function(){var b=mashsb.subscribe_url;a(this).attr("href",b)}),function(a){a.fn.countTo=function(b){return b=b||{},a(this).each(function(){function c(){k+=g,j++,d(k),"function"==typeof e.onUpdate&&e.onUpdate.call(h,k),j>=f&&(i.removeData("countTo"),clearInterval(l.interval),k=e.to,"function"==typeof e.onComplete&&e.onComplete.call(h,k))}function d(a){var b=e.formatter.call(h,a,e);i.text(b)}var e=a.extend({},a.fn.countTo.defaults,{from:a(this).data("from"),to:a(this).data("to"),speed:a(this).data("speed"),refreshInterval:a(this).data("refresh-interval"),decimals:a(this).data("decimals")},b),f=Math.ceil(e.speed/e.refreshInterval),g=(e.to-e.from)/f,h=this,i=a(this),j=0,k=e.from,l=i.data("countTo")||{};i.data("countTo",l),l.interval&&clearInterval(l.interval),l.interval=setInterval(c,e.refreshInterval),d(k)})},a.fn.countTo.defaults={from:0,to:0,speed:1e3,refreshInterval:100,decimals:0,formatter:d,onUpdate:null,onComplete:null}}(jQuery),"undefined"!=typeof mashsb&&1==mashsb.animate_shares&&a(".mashsbcount").length&&a(".mashsbcount").countTo({from:0,to:mashsb.shares,speed:1e3,refreshInterval:100})}),function(a,b){a.fn.nearest=function(c){function d(b){f=f?f.add(b):a(b)}var e,f,g,h,i,j=b.querySelectorAll;return this.each(function(){e=this,a.each(c.split(","),function(){if(h=a.trim(this),h.indexOf("#"))for(i=e.parentNode;i;){if(g=j?i.querySelectorAll(h):a(i).find(h),g.length){d(g);break}i=i.parentNode}else d(j?b.querySelectorAll(h):a(h))})}),f||a()}}(jQuery,document);
|
changelog
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
= 3.0.0 =
|
2 |
+
* HUGE PERFORMANCE & FEATURE UPDATE
|
3 |
+
|
4 |
+
* Performance: New asyncronous method for cache rebuilding. No more increase in loading time while page loads
|
5 |
+
* Performance: No cache rebuild when site is visited by bots or spiders
|
6 |
+
* Performance: Structural and logic improvements reduces number of db requests.
|
7 |
+
* New: Most Popular Post Widget for displaying posts sorted by shares
|
8 |
+
* New: Yoast and Jetpack support for social settings
|
9 |
+
* New: Build in open graph and twitter card meta tags. Rewritten from scratch. Makes use of Yoast open graph data if specified.
|
10 |
+
* New: Extra large Pinterest image and dedicated sharing description
|
11 |
+
* New: Basic responsive button behavior included per default
|
12 |
+
* New: Facebook open graph rescraping is done automatically on post save.
|
13 |
+
* New: Validate open graph data button for fetching new scrape information and forcing facebook to purge its cache.
|
14 |
+
* New: Filter "mashsb_visible_services" for modifying the visible networks
|
15 |
+
* New: Filter "mashsb_shortcode_atts" for modifying the shortcode arguments
|
16 |
+
* New: New field in WordPress user profiles: Twitter author url for giving credits to authors when sharing a link on twitter (meta tag twitter:creator)
|
17 |
+
* New: Clicking the PLUS button only affects the adequate parent share buttons not other share buttons on same page.
|
18 |
+
* New: Improved license activation workflow and much better license error messages
|
19 |
+
* Tweak: New UI elements for admin checkboxes
|
20 |
+
* Tweak: Enable Twitter and Facebook share button per default on first time installation
|
21 |
+
* Tweak: Change MashShare to MashShare for better branding
|
22 |
+
* Tweak: Change twitter username description in settings and make sure @MashShare is not used
|
23 |
+
* Tweak: Get 20% instead 10% discount for allowing tracking
|
24 |
+
* Tweak: admin menue icon
|
25 |
+
* Tweak: Deactivates the MashShare Open Graph Add-On or throws an warning message if its still enabled
|
26 |
+
* Tweak: Load JS and CSS all over setting is enabled per default
|
27 |
+
* Tweak: Static share buttons on admin dashboard for quicker response
|
28 |
+
* Tweak: Rename General tab into Settings
|
29 |
+
* Tweak: Remove settings "Visual" and "Social networks" and merge them into new Settings tab
|
30 |
+
* Tweak: Stay on last active tab after saving admin settings
|
31 |
+
* Fix: New function for returning share title shows correct title even on archive, categories and non posts like bbpress and buddyPress pages
|
32 |
+
* Fix: Missing </div> in checkbox callback function
|
33 |
+
* Fix: disable class mashdebug() which causes header notices on some systems
|
34 |
+
* Fix: Undefined function wp_get_document_title() Compatibility backward fix
|
35 |
+
* Fix: Undefined $post object on several places
|
36 |
+
* Fix: Hide @ on twitter share when no twitter handle is used
|
includes/MASHSB_SL_Plugin_Updater.php
ADDED
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Debug mode - Force plugin update
|
4 |
+
//set_site_transient( 'update_plugins', null );
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Allows plugins to use their own update API.
|
8 |
+
*
|
9 |
+
* @author Pippin Williamson
|
10 |
+
* @version 1.6
|
11 |
+
*/
|
12 |
+
class MASHSB_SL_Plugin_Updater {
|
13 |
+
private $api_url = '';
|
14 |
+
private $api_data = array();
|
15 |
+
private $name = '';
|
16 |
+
private $slug = '';
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Class constructor.
|
20 |
+
*
|
21 |
+
* @uses plugin_basename()
|
22 |
+
* @uses hook()
|
23 |
+
*
|
24 |
+
* @param string $_api_url The URL pointing to the custom API endpoint.
|
25 |
+
* @param string $_plugin_file Path to the plugin file.
|
26 |
+
* @param array $_api_data Optional data to send with API calls.
|
27 |
+
* @return void
|
28 |
+
*/
|
29 |
+
function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
|
30 |
+
$this->api_url = trailingslashit( $_api_url );
|
31 |
+
$this->api_data = $_api_data;
|
32 |
+
$this->name = plugin_basename( $_plugin_file );
|
33 |
+
$this->slug = basename( $_plugin_file, '.php' );
|
34 |
+
$this->version = $_api_data['version'];
|
35 |
+
|
36 |
+
// Set up hooks.
|
37 |
+
$this->init();
|
38 |
+
add_action( 'admin_init', array( $this, 'show_changelog' ) );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Set up WordPress filters to hook into WP's update process.
|
43 |
+
*
|
44 |
+
* @uses add_filter()
|
45 |
+
*
|
46 |
+
* @return void
|
47 |
+
*/
|
48 |
+
public function init() {
|
49 |
+
|
50 |
+
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
|
51 |
+
add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
|
52 |
+
|
53 |
+
add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 );
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Check for Updates at the defined API endpoint and modify the update array.
|
58 |
+
*
|
59 |
+
* This function dives into the update API just when WordPress creates its update array,
|
60 |
+
* then adds a custom API call and injects the custom plugin data retrieved from the API.
|
61 |
+
* It is reassembled from parts of the native WordPress plugin update code.
|
62 |
+
* See wp-includes/update.php line 121 for the original wp_update_plugins() function.
|
63 |
+
*
|
64 |
+
* @uses api_request()
|
65 |
+
*
|
66 |
+
* @param array $_transient_data Update array build by WordPress.
|
67 |
+
* @return array Modified update array with custom plugin data.
|
68 |
+
*/
|
69 |
+
function check_update( $_transient_data ) {
|
70 |
+
|
71 |
+
global $pagenow;
|
72 |
+
|
73 |
+
if( ! is_object( $_transient_data ) ) {
|
74 |
+
$_transient_data = new stdClass;
|
75 |
+
}
|
76 |
+
|
77 |
+
if( 'plugins.php' == $pagenow && is_multisite() ) {
|
78 |
+
return $_transient_data;
|
79 |
+
}
|
80 |
+
|
81 |
+
if ( empty( $_transient_data->response ) || empty( $_transient_data->response[ $this->name ] ) ) {
|
82 |
+
|
83 |
+
$version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
|
84 |
+
|
85 |
+
if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
|
86 |
+
|
87 |
+
$this->did_check = true;
|
88 |
+
|
89 |
+
if( version_compare( $this->version, $version_info->new_version, '<' ) ) {
|
90 |
+
|
91 |
+
$_transient_data->response[ $this->name ] = $version_info;
|
92 |
+
|
93 |
+
}
|
94 |
+
|
95 |
+
$_transient_data->last_checked = time();
|
96 |
+
$_transient_data->checked[ $this->name ] = $this->version;
|
97 |
+
|
98 |
+
}
|
99 |
+
|
100 |
+
}
|
101 |
+
|
102 |
+
return $_transient_data;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
|
107 |
+
*
|
108 |
+
* @param string $file
|
109 |
+
* @param array $plugin
|
110 |
+
*/
|
111 |
+
public function show_update_notification( $file, $plugin ) {
|
112 |
+
|
113 |
+
if( ! current_user_can( 'update_plugins' ) ) {
|
114 |
+
return;
|
115 |
+
}
|
116 |
+
|
117 |
+
if( ! is_multisite() ) {
|
118 |
+
return;
|
119 |
+
}
|
120 |
+
|
121 |
+
if ( $this->name != $file ) {
|
122 |
+
return;
|
123 |
+
}
|
124 |
+
|
125 |
+
// Remove our filter on the site transient
|
126 |
+
remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 );
|
127 |
+
|
128 |
+
$update_cache = get_site_transient( 'update_plugins' );
|
129 |
+
|
130 |
+
if ( ! is_object( $update_cache ) || empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) {
|
131 |
+
|
132 |
+
$cache_key = md5( 'edd_plugin_' .sanitize_key( $this->name ) . '_version_info' );
|
133 |
+
$version_info = get_transient( $cache_key );
|
134 |
+
|
135 |
+
if( false === $version_info ) {
|
136 |
+
|
137 |
+
$version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
|
138 |
+
|
139 |
+
set_transient( $cache_key, $version_info, 3600 );
|
140 |
+
}
|
141 |
+
|
142 |
+
|
143 |
+
if( ! is_object( $version_info ) ) {
|
144 |
+
return;
|
145 |
+
}
|
146 |
+
|
147 |
+
if( version_compare( $this->version, $version_info->new_version, '<' ) ) {
|
148 |
+
|
149 |
+
$update_cache->response[ $this->name ] = $version_info;
|
150 |
+
|
151 |
+
}
|
152 |
+
|
153 |
+
$update_cache->last_checked = time();
|
154 |
+
$update_cache->checked[ $this->name ] = $this->version;
|
155 |
+
|
156 |
+
set_site_transient( 'update_plugins', $update_cache );
|
157 |
+
|
158 |
+
} else {
|
159 |
+
|
160 |
+
$version_info = $update_cache->response[ $this->name ];
|
161 |
+
|
162 |
+
}
|
163 |
+
|
164 |
+
// Restore our filter
|
165 |
+
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
|
166 |
+
|
167 |
+
if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) {
|
168 |
+
|
169 |
+
// build a plugin list row, with update notification
|
170 |
+
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
171 |
+
echo '<tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange"><div class="update-message">';
|
172 |
+
|
173 |
+
$changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
|
174 |
+
|
175 |
+
if ( empty( $version_info->download_link ) ) {
|
176 |
+
printf(
|
177 |
+
__( 'There is a new version of %1$s available. <a target="_blank" class="thickbox" href="%2$s">View version %3$s details</a>.', 'edd' ),
|
178 |
+
esc_html( $version_info->name ),
|
179 |
+
esc_url( $changelog_link ),
|
180 |
+
esc_html( $version_info->new_version )
|
181 |
+
);
|
182 |
+
} else {
|
183 |
+
printf(
|
184 |
+
__( 'There is a new version of %1$s available. <a target="_blank" class="thickbox" href="%2$s">View version %3$s details</a> or <a href="%4$s">update now</a>.', 'edd' ),
|
185 |
+
esc_html( $version_info->name ),
|
186 |
+
esc_url( $changelog_link ),
|
187 |
+
esc_html( $version_info->new_version ),
|
188 |
+
esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $this->name, 'upgrade-plugin_' . $this->name ) )
|
189 |
+
);
|
190 |
+
}
|
191 |
+
|
192 |
+
echo '</div></td></tr>';
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Updates information on the "View version x.x details" page with custom data.
|
199 |
+
*
|
200 |
+
* @uses api_request()
|
201 |
+
*
|
202 |
+
* @param mixed $_data
|
203 |
+
* @param string $_action
|
204 |
+
* @param object $_args
|
205 |
+
* @return object $_data
|
206 |
+
*/
|
207 |
+
function plugins_api_filter( $_data, $_action = '', $_args = null ) {
|
208 |
+
|
209 |
+
|
210 |
+
if ( $_action != 'plugin_information' ) {
|
211 |
+
|
212 |
+
return $_data;
|
213 |
+
|
214 |
+
}
|
215 |
+
|
216 |
+
if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
|
217 |
+
|
218 |
+
return $_data;
|
219 |
+
|
220 |
+
}
|
221 |
+
|
222 |
+
$to_send = array(
|
223 |
+
'slug' => $this->slug,
|
224 |
+
'is_ssl' => is_ssl(),
|
225 |
+
'fields' => array(
|
226 |
+
'banners' => false, // These will be supported soon hopefully
|
227 |
+
'reviews' => false
|
228 |
+
)
|
229 |
+
);
|
230 |
+
|
231 |
+
$api_response = $this->api_request( 'plugin_information', $to_send );
|
232 |
+
|
233 |
+
if ( false !== $api_response ) {
|
234 |
+
$_data = $api_response;
|
235 |
+
}
|
236 |
+
|
237 |
+
return $_data;
|
238 |
+
}
|
239 |
+
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Disable SSL verification in order to prevent download update failures
|
243 |
+
*
|
244 |
+
* @param array $args
|
245 |
+
* @param string $url
|
246 |
+
* @return object $array
|
247 |
+
*/
|
248 |
+
function http_request_args( $args, $url ) {
|
249 |
+
// If it is an https request and we are performing a package download, disable ssl verification
|
250 |
+
if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
|
251 |
+
$args['sslverify'] = false;
|
252 |
+
}
|
253 |
+
return $args;
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Calls the API and, if successfull, returns the object delivered by the API.
|
258 |
+
*
|
259 |
+
* @uses get_bloginfo()
|
260 |
+
* @uses wp_remote_post()
|
261 |
+
* @uses is_wp_error()
|
262 |
+
*
|
263 |
+
* @param string $_action The requested action.
|
264 |
+
* @param array $_data Parameters for the API action.
|
265 |
+
* @return false||object
|
266 |
+
*/
|
267 |
+
private function api_request( $_action, $_data ) {
|
268 |
+
|
269 |
+
global $wp_version, $edd_options;
|
270 |
+
|
271 |
+
$data = array_merge( $this->api_data, $_data );
|
272 |
+
|
273 |
+
if ( $data['slug'] != $this->slug )
|
274 |
+
return;
|
275 |
+
//if ( empty( $data['license']) && !isset( $edd_options['edd_sl_allow_update_notices'] ) )
|
276 |
+
if ( empty( $data['license']) )
|
277 |
+
return;
|
278 |
+
|
279 |
+
if( $this->api_url == home_url() ) {
|
280 |
+
return false; // Don't allow a plugin to ping itself
|
281 |
+
}
|
282 |
+
|
283 |
+
$api_params = array(
|
284 |
+
'edd_action' => 'get_version',
|
285 |
+
'license' => $data['license'],
|
286 |
+
'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
|
287 |
+
'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
|
288 |
+
'slug' => $data['slug'],
|
289 |
+
'author' => $data['author'],
|
290 |
+
'url' => home_url()
|
291 |
+
);
|
292 |
+
|
293 |
+
$request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
|
294 |
+
|
295 |
+
if ( ! is_wp_error( $request ) ) {
|
296 |
+
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
297 |
+
}
|
298 |
+
|
299 |
+
if ( $request && isset( $request->sections ) ) {
|
300 |
+
$request->sections = maybe_unserialize( $request->sections );
|
301 |
+
} else {
|
302 |
+
$request = false;
|
303 |
+
}
|
304 |
+
|
305 |
+
return $request;
|
306 |
+
}
|
307 |
+
|
308 |
+
public function show_changelog() {
|
309 |
+
|
310 |
+
|
311 |
+
if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) {
|
312 |
+
return;
|
313 |
+
}
|
314 |
+
|
315 |
+
if( empty( $_REQUEST['plugin'] ) ) {
|
316 |
+
return;
|
317 |
+
}
|
318 |
+
|
319 |
+
if( empty( $_REQUEST['slug'] ) ) {
|
320 |
+
return;
|
321 |
+
}
|
322 |
+
|
323 |
+
if( ! current_user_can( 'update_plugins' ) ) {
|
324 |
+
wp_die( __( 'You do not have permission to install plugin updates', 'edd' ), __( 'Error', 'edd' ), array( 'response' => 403 ) );
|
325 |
+
}
|
326 |
+
|
327 |
+
$response = $this->api_request( 'plugin_latest_version', array( 'slug' => $_REQUEST['slug'] ) );
|
328 |
+
|
329 |
+
if( $response && isset( $response->sections['changelog'] ) ) {
|
330 |
+
echo '<div style="background:#fff;padding:10px;">' . $response->sections['changelog'] . '</div>';
|
331 |
+
}
|
332 |
+
|
333 |
+
|
334 |
+
exit;
|
335 |
+
}
|
336 |
+
|
337 |
+
}
|
includes/actions.php
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Front-end Actions
|
4 |
+
*
|
5 |
+
* @package MASHSB
|
6 |
+
* @subpackage Functions
|
7 |
+
* @copyright Copyright (c) 2015, Pippin Williamson, René Hermenau
|
8 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
9 |
+
* @since 2.5.1
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Hooks MASHSB actions, when present in the $_GET superglobal. Every mashsb_action
|
17 |
+
* present in $_GET is called using WordPress's do_action function. These
|
18 |
+
* functions are called on init.
|
19 |
+
*
|
20 |
+
* @since 1.0
|
21 |
+
* @return void
|
22 |
+
*/
|
23 |
+
function mashsb_get_actions() {
|
24 |
+
if ( isset( $_GET['mashsb_action'] ) ) {
|
25 |
+
do_action( 'mashsb_' . $_GET['mashsb_action'], $_GET );
|
26 |
+
}
|
27 |
+
}
|
28 |
+
add_action( 'init', 'mashsb_get_actions' );
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Hooks MASHSB actions, when present in the $_POST superglobal. Every mashsb_action
|
32 |
+
* present in $_POST is called using WordPress's do_action function. These
|
33 |
+
* functions are called on init.
|
34 |
+
*
|
35 |
+
* @since 1.0
|
36 |
+
* @return void
|
37 |
+
*/
|
38 |
+
function mashsb_post_actions() {
|
39 |
+
if ( isset( $_POST['mashsb_action'] ) ) {
|
40 |
+
do_action( 'mashsb_' . $_POST['mashsb_action'], $_POST );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
add_action( 'init', 'mashsb_post_actions' );
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Force cache refresh via GET REQUEST
|
47 |
+
*
|
48 |
+
* @global array $mashsb_options
|
49 |
+
* @return boolean true for cache refresh
|
50 |
+
*/
|
51 |
+
function mashsb_force_cache_refresh() {
|
52 |
+
global $mashsb_options;
|
53 |
+
|
54 |
+
// Needed for testing (phpunit)
|
55 |
+
if (MASHSB_DEBUG || isset( $mashsb_options['disable_cache'] ) ){
|
56 |
+
mashsb()->logger->info('mashsb_force_cache_refresh() -> Debug mode enabled');
|
57 |
+
return true;
|
58 |
+
}
|
59 |
+
|
60 |
+
$caching_method = !empty($mashsb_options['caching_method']) ? $mashsb_options['caching_method'] : 'refresh_loading';
|
61 |
+
|
62 |
+
// Old method and less performant - Cache is rebuild during pageload
|
63 |
+
if($caching_method == 'refresh_loading'){
|
64 |
+
if (mashsb_is_cache_refresh()){
|
65 |
+
return true;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
// New method - Cache will be rebuild after complete pageloading and will be initiated via ajax.
|
70 |
+
if( isset( $_GET['mashsb-refresh'] ) && $caching_method == 'async_cache' ) {
|
71 |
+
MASHSB()->logger->info('Force Cache Refresh');
|
72 |
+
return true;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
add_action( 'init', 'mashsb_force_cache_refresh' );
|
76 |
+
|
includes/admin/add-ons.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin Add-ons
|
4 |
+
*
|
5 |
+
* @package MASHSB
|
6 |
+
* @subpackage Admin/Add-ons
|
7 |
+
* @copyright Copyright (c) 2014, Rene Hermenau
|
8 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
9 |
+
* @since 1.1.8
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Add-ons
|
17 |
+
*
|
18 |
+
* Renders the add-ons content.
|
19 |
+
*
|
20 |
+
* @since 1.1.8
|
21 |
+
* @return void
|
22 |
+
*/
|
23 |
+
function mashsb_add_ons_page() {
|
24 |
+
ob_start(); ?>
|
25 |
+
<div class="wrap" id="mashsb-add-ons">
|
26 |
+
<h2>
|
27 |
+
<?php _e( 'Add Ons for Mashshare', 'mashsb' ); ?>
|
28 |
+
— <a href="https://www.mashshare.net" class="button-primary" title="<?php _e( 'Visit Website', 'mashsb' ); ?>" target="_blank"><?php _e( 'See Details', 'mashsb' ); ?></a>
|
29 |
+
</h2>
|
30 |
+
<p><?php _e( 'These add-ons extend the functionality of Mashshare.', 'mashsb' ); ?></p>
|
31 |
+
<?php echo mashsb_add_ons_get_feed(); ?>
|
32 |
+
</div>
|
33 |
+
<?php
|
34 |
+
echo ob_get_clean();
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Add-ons Get Feed
|
39 |
+
*
|
40 |
+
* Gets the add-ons page feed.
|
41 |
+
*
|
42 |
+
* @since 1.1.8
|
43 |
+
* @return void
|
44 |
+
*/
|
45 |
+
function mashsb_add_ons_get_feed() {
|
46 |
+
if ( false === ( $cache = get_transient( 'mashshare_add_ons_feed' ) ) ) {
|
47 |
+
$feed = wp_remote_get( 'https://www.mashshare.net/?feed=addons', array( 'sslverify' => false ) );
|
48 |
+
if ( ! is_wp_error( $feed ) ) {
|
49 |
+
if ( isset( $feed['body'] ) && strlen( $feed['body'] ) > 0 ) {
|
50 |
+
$cache = wp_remote_retrieve_body( $feed );
|
51 |
+
set_transient( 'mashshare_add_ons_feed', $cache, 3600 );
|
52 |
+
}
|
53 |
+
} else {
|
54 |
+
$cache = '<div class="error"><p>' . __( 'There was an error retrieving the Mashshare addon list from the server. Please try again later.', 'mashsb' ) . '
|
55 |
+
<br>Visit instead the Mashshare Addon Website <a href="https://www.mashshare.net" class="button-primary" title="Mashshare Add ons" target="_blank"> Get Add-Ons </a></div>';
|
56 |
+
}
|
57 |
+
}
|
58 |
+
return $cache;
|
59 |
+
}
|
includes/admin/admin-actions.php
ADDED
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin Actions
|
4 |
+
*
|
5 |
+
* @package MASHSB
|
6 |
+
* @subpackage Admin/Actions
|
7 |
+
* @copyright Copyright (c) 2014, René Hermenau
|
8 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
9 |
+
* @since 1.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Processes all MASHSB actions sent via POST and GET by looking for the 'mashsb-action'
|
17 |
+
* request and running do_action() to call the function
|
18 |
+
*
|
19 |
+
* @since 1.0
|
20 |
+
* @return void
|
21 |
+
*/
|
22 |
+
function mashsb_process_actions() {
|
23 |
+
if ( isset( $_POST['mashsb-action'] ) ) {
|
24 |
+
do_action( 'mashsb_' . $_POST['mashsb-action'], $_POST );
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( isset( $_GET['mashsb-action'] ) ) {
|
28 |
+
do_action( 'mashsb_' . $_GET['mashsb-action'], $_GET );
|
29 |
+
}
|
30 |
+
}
|
31 |
+
add_action( 'admin_init', 'mashsb_process_actions' );
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Arrange order of social network array when it is draged and droped
|
35 |
+
*
|
36 |
+
* @global array $mashsb_options
|
37 |
+
*/
|
38 |
+
function mashsb_save_order(){
|
39 |
+
global $mashsb_options;
|
40 |
+
// Get all settings
|
41 |
+
|
42 |
+
$current_list = get_option('mashsb_networks');
|
43 |
+
$new_order = $_POST['mashsb_list'];
|
44 |
+
$new_list = array();
|
45 |
+
|
46 |
+
/* First write the sort order */
|
47 |
+
foreach ($new_order as $n){
|
48 |
+
if (isset($current_list[$n])){
|
49 |
+
$new_list[$n] = $current_list[$n];
|
50 |
+
|
51 |
+
}
|
52 |
+
}
|
53 |
+
/* Update sort order of networks */
|
54 |
+
update_option('mashsb_networks', $new_list);
|
55 |
+
die();
|
56 |
+
}
|
57 |
+
add_action ('wp_ajax_mashsb_update_order', 'mashsb_save_order');
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Force Facebook to rescrape site content after saving post
|
61 |
+
*
|
62 |
+
* @todo check if blocking=>false is working as expected
|
63 |
+
* @global array $post
|
64 |
+
*/
|
65 |
+
function mashsb_rescrape_fb_debugger(){
|
66 |
+
global $post;
|
67 |
+
if (!isset($post)){
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
$url = get_permalink($post->ID);
|
71 |
+
$args = array('timeout' => 5, 'blocking' => false);
|
72 |
+
$body = wp_remote_retrieve_body( wp_remote_get('https://graph.facebook.com/?id=' . $url, $args) );
|
73 |
+
}
|
74 |
+
add_action('save_post', 'mashsb_rescrape_fb_debugger' );
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Purge the MashShare Cache
|
78 |
+
*
|
79 |
+
* @global array $post
|
80 |
+
* @return bool false
|
81 |
+
*/
|
82 |
+
function mashsb_purge_cache(){
|
83 |
+
global $post;
|
84 |
+
|
85 |
+
if (!isset($post)){
|
86 |
+
return;
|
87 |
+
}
|
88 |
+
|
89 |
+
update_post_meta($post->ID, 'mashsb_timestamp', '');
|
90 |
+
}
|
91 |
+
add_action('save_post', 'mashsb_purge_cache' );
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Create bitly or google shorturls and store them initially in post meta
|
95 |
+
*
|
96 |
+
* @global array $post
|
97 |
+
* @return string
|
98 |
+
*/
|
99 |
+
function mashsb_create_shorturls() {
|
100 |
+
global $mashsb_options, $post;
|
101 |
+
|
102 |
+
if (!isset($post)){
|
103 |
+
return;
|
104 |
+
}
|
105 |
+
|
106 |
+
$shorturl = "";
|
107 |
+
$url = get_permalink($post->ID);
|
108 |
+
|
109 |
+
// bitly shortlink
|
110 |
+
if( isset( $mashsb_options['mashsu_methods'] ) && $mashsb_options['mashsu_methods'] === 'bitly' ) {
|
111 |
+
$shorturl = mashsb_get_bitly_link( $url );
|
112 |
+
}
|
113 |
+
|
114 |
+
// Google shortlink
|
115 |
+
if( isset( $mashsb_options['mashsu_methods'] ) && $mashsb_options['mashsu_methods'] === 'google' ) {
|
116 |
+
$shorturl = mashsb_get_google_link( $url );
|
117 |
+
}
|
118 |
+
if (!empty($shorturl)){
|
119 |
+
update_post_meta( $post->ID, 'mashsb_shorturl', $shorturl );
|
120 |
+
}
|
121 |
+
}
|
includes/admin/admin-footer.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin Footer
|
4 |
+
*
|
5 |
+
* @package MASHSB
|
6 |
+
* @subpackage Admin/Footer
|
7 |
+
* @copyright Copyright (c) 2014, René Hermenau
|
8 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
9 |
+
* @since 1.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if( !defined( 'ABSPATH' ) ) exit;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Add rating links to the admin dashboard
|
17 |
+
*
|
18 |
+
* @since 1.0.0
|
19 |
+
* @global string $typenow
|
20 |
+
* @param string $footer_text The existing footer text
|
21 |
+
* @return string
|
22 |
+
*/
|
23 |
+
function mashsb_admin_rate_us( $footer_text ) {
|
24 |
+
global $typenow;
|
25 |
+
|
26 |
+
if ( mashsb_is_admin_page() ) {
|
27 |
+
$rate_text = sprintf( __( 'Thank you for using <a href="%1$s" target="_blank">Mashshare</a>! Please <a href="%2$s" target="_blank">rate us</a> on <a href="%2$s" target="_blank">WordPress.org</a> and help to support this project.<br>Something not working as expected or need help? Read our <a href="%3$s" target="blank">Documentation</a>', 'mashsb' ),
|
28 |
+
'https://www.mashshare.net',
|
29 |
+
'http://wordpress.org/support/view/plugin-reviews/mashsharer?filter=5#postform',
|
30 |
+
'https://www.mashshare.net/documentation/'
|
31 |
+
);
|
32 |
+
|
33 |
+
return str_replace( '</span>', '', '' ) . $rate_text . '</span>';
|
34 |
+
} else {
|
35 |
+
return $footer_text;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
add_filter( 'admin_footer_text', 'mashsb_admin_rate_us' );
|
includes/admin/admin-notices.php
ADDED
@@ -0,0 +1,320 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Admin Notices
|
5 |
+
*
|
6 |
+
* @package MASHSB
|
7 |
+
* @subpackage Admin/Notices
|
8 |
+
* @copyright Copyright (c) 2014, René Hermenau
|
9 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
10 |
+
* @since 1.0
|
11 |
+
*/
|
12 |
+
// Exit if accessed directly
|
13 |
+
if( !defined( 'ABSPATH' ) )
|
14 |
+
exit;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Check if at least one social network is enabled
|
18 |
+
*
|
19 |
+
* @global array $mashsb_options
|
20 |
+
* @return boolean false when no network is enabled
|
21 |
+
*/
|
22 |
+
function mashsb_check_active_networks() {
|
23 |
+
global $mashsb_options;
|
24 |
+
|
25 |
+
$networks = isset( $mashsb_options['networks'] ) ? $mashsb_options['networks'] : false;
|
26 |
+
|
27 |
+
if( isset( $networks ) && is_array( $networks ) )
|
28 |
+
foreach ( $networks as $key => $value ) {
|
29 |
+
if( isset( $networks[$key]['status'] ) )
|
30 |
+
return true;
|
31 |
+
}
|
32 |
+
|
33 |
+
return false;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Admin Messages
|
38 |
+
*
|
39 |
+
* @since 2.2.3
|
40 |
+
* @global $mashsb_options Array of all the MASHSB Options
|
41 |
+
* @return void
|
42 |
+
*/
|
43 |
+
function mashsb_admin_messages() {
|
44 |
+
global $mashsb_options;
|
45 |
+
|
46 |
+
if( !current_user_can( 'update_plugins' ) )
|
47 |
+
return;
|
48 |
+
|
49 |
+
// notice no Networks enabled
|
50 |
+
if( mashsb_is_admin_page() && !mashsb_check_active_networks() ) {
|
51 |
+
echo '<div class="error">';
|
52 |
+
echo '<p>' . sprintf( __( 'No Social Networks enabled. Go to <a href="%s"> Mashshare->Settings->Social Networks</a> and enable at least one Social Network.', 'mashsb' ), admin_url( 'admin.php?page=mashsb-settings&tab=networks#mashsb_settingsservices_header' ) ) . '</p>';
|
53 |
+
echo '</div>';
|
54 |
+
}
|
55 |
+
// Share bar add-on notice
|
56 |
+
if( mashsb_is_admin_page() && mashsb_incorrect_sharebar_version() ) {
|
57 |
+
echo '<div class="error">';
|
58 |
+
echo '<p>' . sprintf( __( 'Your Sharebar Add-On version is not using new short url mechanism of MashShare 3.X. Please <a href="%s" target="blank"> update the Sharebar Add-On</a> to at least version 1.2.5. if you want to make sure that twitter short urls will not stop working in one of the next updates. This requires a valid license of the Sharebar Add-On', 'mashsb' ), 'https://www.mashshare.net/downloads/sticky-sharebar/?utm_source=insideplugin&utm_medium=userwebsite&utm_content=update_sharebar&utm_campaign=freeplugin' ) . '</p>';
|
59 |
+
echo '</div>';
|
60 |
+
}
|
61 |
+
// Floating Sidebar add-on notice
|
62 |
+
if( mashsb_is_admin_page() && mashsb_incorrect_sidebar_version() ) {
|
63 |
+
echo '<div class="error">';
|
64 |
+
echo '<p>' . sprintf( __( 'Your Floating Sidebar Add-On version is not using new short url mechanism of MashShare 3.X. Please <a href="%s" target="blank"> update the Floating Sidebar Add-On</a> to at least version 1.2.6. if you want to make sure that twitter short urls will not stop working in one of the next updates. This requires a valid license of the Floating Sidebar Add-On', 'mashsb' ), 'https://www.mashshare.net/downloads/floating-sidebar/?utm_source=insideplugin&utm_medium=userwebsite&utm_content=update_sharebar&utm_campaign=freeplugin' ) . '</p>';
|
65 |
+
echo '</div>';
|
66 |
+
}
|
67 |
+
// Check google API key
|
68 |
+
if( mashsb_is_admin_page() && ( mashsb_check_google_apikey() && isset( $mashsb_options['mashsu_methods'] ) && $mashsb_options['mashsu_methods'] === 'google' ) ) {
|
69 |
+
echo '<div class="error">';
|
70 |
+
echo '<p>' . sprintf( __( 'Google API key is invalid. Go to <a href="%s"><i>Mashshare->Settings->Short URL Integration</i></a> and check the Google API key.', 'mashsb' ), admin_url( 'admin.php?page=mashsb-settings#mashsb_settingsshorturl_header' ) ) . '</p>';
|
71 |
+
echo '</div>';
|
72 |
+
}
|
73 |
+
// Check Bitly API key
|
74 |
+
if( mashsb_is_admin_page() && (false === mashsb_check_bitly_apikey() && isset( $mashsb_options['mashsu_methods'] ) && $mashsb_options['mashsu_methods'] === 'bitly' ) ) {
|
75 |
+
echo '<div class="error">';
|
76 |
+
echo '<p>' . sprintf( __( 'Bitly Access Token is invalid or bitly.com endpoint can not be reached. Go to <a href="%s"><i>Mashshare->Settings->Short URL Integration</i></a> and check the Bitly API key.', 'mashsb' ), admin_url( 'admin.php?page=mashsb-settings#mashsb_settingsshorturl_header' ) ) . '</p>';
|
77 |
+
echo '</div>';
|
78 |
+
}
|
79 |
+
// Notice MashShare Open Graph Add-On installed and activated
|
80 |
+
if( class_exists( 'MashshareOpenGraph' ) ) {
|
81 |
+
echo '<div class="error">';
|
82 |
+
echo '<p>' . sprintf( __( '<strong>Important:</strong> Deactivate the MashShare Open Graph Add-On. It is not longer needed and having it activated leads to duplicate open graph tags on your site. Go to <a href="%s"> Plugin Settings</a> ', 'mashsb' ), admin_url( 'plugins.php' ) ) . '</p>';
|
83 |
+
echo '</div>';
|
84 |
+
}
|
85 |
+
// Notice MashShare ShortURL Add-On installed and activated
|
86 |
+
if( class_exists( 'MashshareShorturls' ) ) {
|
87 |
+
echo '<div class="error">';
|
88 |
+
echo '<p>' . sprintf( __( '<strong>Important:</strong> Deactivate the MashShare Shorturls Add-On. It is not longer needed and already built in MashShare. Deactivate it from <a href="%s"> Plugin Settings</a> ', 'mashsb' ), admin_url( 'plugins.php' ) ) . '</p>';
|
89 |
+
echo '</div>';
|
90 |
+
}
|
91 |
+
// Share count is deactivated when permalinks are not used
|
92 |
+
if( mashsb_is_admin_page() && !mashsb_is_enabled_permalinks() ) {
|
93 |
+
echo '<div class="error">';
|
94 |
+
echo '<p>' . sprintf( __( '<strong>No Share Count aggregation possible!</strong> <a href="%s">Permalinks</a> must be enabled to count shares. Share count is deactivated until you have fixed this.', 'mashsb' ), admin_url( 'options-permalink.php' ) ) . '</p>';
|
95 |
+
echo '</div>';
|
96 |
+
}
|
97 |
+
|
98 |
+
|
99 |
+
|
100 |
+
// Please rate us
|
101 |
+
$install_date = get_option( 'mashsb_installDate' );
|
102 |
+
$display_date = date( 'Y-m-d h:i:s' );
|
103 |
+
$datetime1 = new DateTime( $install_date );
|
104 |
+
$datetime2 = new DateTime( $display_date );
|
105 |
+
$diff_intrval = round( ($datetime2->format( 'U' ) - $datetime1->format( 'U' )) / (60 * 60 * 24) );
|
106 |
+
if( $diff_intrval >= 7 && get_option( 'mashsb_RatingDiv' ) == "no" ) {
|
107 |
+
echo '<div class="mashsb_fivestar" style="box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);">
|
108 |
+
<p>Awesome, you\'ve been using <strong>Mashshare Social Sharing</strong> for more than 1 week. <br> May i ask you to give it a <strong>5-star rating</strong> on Wordpress? </br>
|
109 |
+
This will help to spread its popularity and to make this plugin a better one.
|
110 |
+
<br><br>Your help is much appreciated. Thank you very much,<br> ~René Hermenau
|
111 |
+
<ul>
|
112 |
+
<li><a href="https://wordpress.org/support/view/plugin-reviews/mashsharer" class="thankyou" target="_new" title="Ok, you deserved it" style="font-weight:bold;">Ok, you deserved it</a></li>
|
113 |
+
<li><a href="javascript:void(0);" class="mashsbHideRating" title="I already did" style="font-weight:bold;">I already did</a></li>
|
114 |
+
<li><a href="javascript:void(0);" class="mashsbHideRating" title="No, not good enough" style="font-weight:bold;">No, not good enough, i do not like to rate it!</a></li>
|
115 |
+
</ul>
|
116 |
+
</div>
|
117 |
+
<script>
|
118 |
+
jQuery( document ).ready(function( $ ) {
|
119 |
+
|
120 |
+
jQuery(\'.mashsbHideRating\').click(function(){
|
121 |
+
var data={\'action\':\'hideRating\'}
|
122 |
+
jQuery.ajax({
|
123 |
+
|
124 |
+
url: "' . admin_url( 'admin-ajax.php' ) . '",
|
125 |
+
type: "post",
|
126 |
+
data: data,
|
127 |
+
dataType: "json",
|
128 |
+
async: !0,
|
129 |
+
success: function(e) {
|
130 |
+
if (e=="success") {
|
131 |
+
jQuery(\'.mashsb_fivestar\').slideUp(\'slow\');
|
132 |
+
|
133 |
+
}
|
134 |
+
}
|
135 |
+
});
|
136 |
+
})
|
137 |
+
|
138 |
+
});
|
139 |
+
</script>
|
140 |
+
';
|
141 |
+
}
|
142 |
+
// Disabled since 2.4.7
|
143 |
+
//mashsb_update_notices();
|
144 |
+
}
|
145 |
+
add_action( 'admin_notices', 'mashsb_admin_messages' );
|
146 |
+
|
147 |
+
|
148 |
+
/**
|
149 |
+
* Check if sharebar add-on version is fully supported
|
150 |
+
*
|
151 |
+
* @return boolean true if incorrect
|
152 |
+
*/
|
153 |
+
function mashsb_incorrect_sharebar_version() {
|
154 |
+
if( defined( 'MASHBAR_VERSION' ) ) {
|
155 |
+
return version_compare( MASHBAR_VERSION, '1.2.5', '<' );
|
156 |
+
} else {
|
157 |
+
return false;
|
158 |
+
}
|
159 |
+
}
|
160 |
+
/**
|
161 |
+
* Check if sharebar add-on version is fully supported
|
162 |
+
*
|
163 |
+
* @return boolean true if incorrect
|
164 |
+
*/
|
165 |
+
function mashsb_incorrect_sidebar_version() {
|
166 |
+
if( defined( 'MASHFS_VERSION' ) ) {
|
167 |
+
return version_compare(MASHFS_VERSION, '1.1.6', '<');
|
168 |
+
} else {
|
169 |
+
return false;
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
/**
|
174 |
+
* Return update notices
|
175 |
+
* @since 2.4.1
|
176 |
+
* @deprecated since 2.4.7
|
177 |
+
*/
|
178 |
+
function mashsb_update_notices() {
|
179 |
+
if( get_option( 'mashsb_update_notice' ) != 'no' ) {
|
180 |
+
// admin notice after updating Mashshare
|
181 |
+
echo '<div class="mashsb_update_notice update-nag">' . __( 'Mashshare notice: If you are using the php shortcode function <strong>do_shortcode[\'mashshare\'] </strong>and Mashshare styles are not loaded, enable the option <strong><a href="' . admin_url( 'options-general.php?page=mashsb-settings&tab=visual#mashsb_settingslocation_header' ) . '">Load JS and CSS all over</a></strong> in Mashshare->settings->Visual->Location & Position', 'mashsb' ) .
|
182 |
+
'<p><a href="javascript:void(0);" class="mashsb_hide_update" title="I understand" style="text-decoration:none;">I understand! <br>Do not show again this notice</a>'
|
183 |
+
. '</div>'
|
184 |
+
. '<script>
|
185 |
+
jQuery( document ).ready(function( $ ) {
|
186 |
+
jQuery(\'.mashsb_hide_update\').click(function(){
|
187 |
+
var data={\'action\':\'hide_update\'}
|
188 |
+
jQuery.ajax({
|
189 |
+
url: "' . admin_url( 'admin-ajax.php' ) . '",
|
190 |
+
type: "post",
|
191 |
+
data: data,
|
192 |
+
dataType: "json",
|
193 |
+
async: !0,
|
194 |
+
success: function(e) {
|
195 |
+
if (e=="success") {
|
196 |
+
jQuery(\'.mashsb_update_notice\').slideUp(\'slow\');
|
197 |
+
}
|
198 |
+
}
|
199 |
+
});
|
200 |
+
})
|
201 |
+
|
202 |
+
});
|
203 |
+
</script>';
|
204 |
+
}
|
205 |
+
}
|
206 |
+
|
207 |
+
/* Hide the rating div
|
208 |
+
*
|
209 |
+
* @subpackage Admin/Notices
|
210 |
+
* @copyright Copyright (c) 2014, René Hermenau
|
211 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
212 |
+
* @since 2.2.3
|
213 |
+
*
|
214 |
+
* @return json string
|
215 |
+
*
|
216 |
+
*/
|
217 |
+
|
218 |
+
function mashsb_HideRatingDiv() {
|
219 |
+
update_option( 'mashsb_RatingDiv', 'yes' );
|
220 |
+
echo json_encode( array("success") );
|
221 |
+
exit;
|
222 |
+
}
|
223 |
+
|
224 |
+
add_action( 'wp_ajax_hideRating', 'mashsb_HideRatingDiv' );
|
225 |
+
|
226 |
+
/* Hide the update notice div
|
227 |
+
*
|
228 |
+
* @subpackage Admin/Notices
|
229 |
+
* @copyright Copyright (c) 2015, René Hermenau
|
230 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
231 |
+
* @since 2.4.0
|
232 |
+
*
|
233 |
+
* @return json string
|
234 |
+
*
|
235 |
+
*/
|
236 |
+
|
237 |
+
function mashsb_hide_update_div() {
|
238 |
+
update_option( 'mashsb_update_notice', 'yes' );
|
239 |
+
echo json_encode( array("success") );
|
240 |
+
exit;
|
241 |
+
}
|
242 |
+
|
243 |
+
add_action( 'wp_ajax_hide_update', 'mashsb_hide_update_div' );
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Admin Add-ons Notices
|
247 |
+
*
|
248 |
+
* @since 1.0
|
249 |
+
* @return void
|
250 |
+
*/
|
251 |
+
function mashsb_admin_addons_notices() {
|
252 |
+
add_settings_error( 'mashsb-notices', 'mashsb-addons-feed-error', __( 'There seems to be an issue with the server. Please try again in a few minutes.', 'mashsb' ), 'error' );
|
253 |
+
settings_errors( 'mashsb-notices' );
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Dismisses admin notices when Dismiss links are clicked
|
258 |
+
*
|
259 |
+
* @since 1.8
|
260 |
+
* @return void
|
261 |
+
*/
|
262 |
+
function mashsb_dismiss_notices() {
|
263 |
+
|
264 |
+
$notice = isset( $_GET['mashsb_notice'] ) ? $_GET['mashsb_notice'] : false;
|
265 |
+
if( !$notice )
|
266 |
+
return; // No notice, so get out of here
|
267 |
+
|
268 |
+
update_user_meta( get_current_user_id(), '_mashsb_' . $notice . '_dismissed', 1 );
|
269 |
+
|
270 |
+
wp_redirect( esc_url( remove_query_arg( array('mashsb_action', 'mashsb_notice') ) ) );
|
271 |
+
exit;
|
272 |
+
}
|
273 |
+
|
274 |
+
add_action( 'mashsb_dismiss_notices', 'mashsb_dismiss_notices' );
|
275 |
+
|
276 |
+
/*
|
277 |
+
* Show big colored update information below the official update notification in /wp-admin/plugins
|
278 |
+
* @since 2.0.8
|
279 |
+
* @return void
|
280 |
+
*
|
281 |
+
*/
|
282 |
+
|
283 |
+
function mashsb_in_plugin_update_message( $args ) {
|
284 |
+
$transient_name = 'mashsb_upgrade_notice_' . $args['Version'];
|
285 |
+
|
286 |
+
if( false === ( $upgrade_notice = get_transient( $transient_name ) ) ) {
|
287 |
+
|
288 |
+
$response = wp_remote_get( 'https://plugins.svn.wordpress.org/mashsharer/trunk/readme.txt' );
|
289 |
+
|
290 |
+
if( !is_wp_error( $response ) && !empty( $response['body'] ) ) {
|
291 |
+
|
292 |
+
// Output Upgrade Notice
|
293 |
+
$matches = null;
|
294 |
+
$regexp = '~==\s*Upgrade Notice\s*==\s*=\s*(.*)\s*=(.*)(=\s*' . preg_quote( MASHSB_VERSION ) . '\s*=|$)~Uis';
|
295 |
+
$upgrade_notice = '';
|
296 |
+
|
297 |
+
if( preg_match( $regexp, $response['body'], $matches ) ) {
|
298 |
+
$version = trim( $matches[1] );
|
299 |
+
$notices = ( array ) preg_split( '~[\r\n]+~', trim( $matches[2] ) );
|
300 |
+
|
301 |
+
if( version_compare( MASHSB_VERSION, $version, '<' ) ) {
|
302 |
+
|
303 |
+
$upgrade_notice .= '<div class="mashsb_plugin_upgrade_notice" style="padding:10px;background-color:#58C1FF;color: #FFF;">';
|
304 |
+
|
305 |
+
foreach ( $notices as $index => $line ) {
|
306 |
+
$upgrade_notice .= wp_kses_post( preg_replace( '~\[([^\]]*)\]\(([^\)]*)\)~', '<a href="${2}" style="text-decoration:underline;color:#ffffff;">${1}</a>', $line ) );
|
307 |
+
}
|
308 |
+
|
309 |
+
$upgrade_notice .= '</div> ';
|
310 |
+
}
|
311 |
+
}
|
312 |
+
|
313 |
+
set_transient( $transient_name, $upgrade_notice, DAY_IN_SECONDS );
|
314 |
+
}
|
315 |
+
}
|
316 |
+
|
317 |
+
echo wp_kses_post( $upgrade_notice );
|
318 |
+
}
|
319 |
+
|
320 |
+
add_action( 'in_plugin_update_message-mashsharer/mashshare.php', 'mashsb_in_plugin_update_message' );
|
includes/admin/admin-pages.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Admin Pages
|
5 |
+
*
|
6 |
+
* @package MASHSB
|
7 |
+
* @subpackage Admin/Pages
|
8 |
+
* @copyright Copyright (c) 2014, René Hermenau
|
9 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
10 |
+
* @since 2.0
|
11 |
+
*/
|
12 |
+
// Exit if accessed directly
|
13 |
+
if( !defined( 'ABSPATH' ) )
|
14 |
+
exit;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Creates the admin submenu pages under the Mashshare menu and assigns their
|
18 |
+
* links to global variables
|
19 |
+
*
|
20 |
+
* @since 1.0
|
21 |
+
* @global $mashsb_settings_page
|
22 |
+
* @global $mashsb_add_ons_page
|
23 |
+
* @global $mashsb_tools_page
|
24 |
+
* @return void
|
25 |
+
*/
|
26 |
+
function mashsb_add_options_link() {
|
27 |
+
global $mashsb_parent_page, $mashsb_add_ons_page, $mashsb_settings_page, $mashsb_tools_page, $mashsb_quickstart;
|
28 |
+
|
29 |
+
$mashshare_logo = 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIGZpbGw9Im5vbmUiIHdpZHRoPSI1MDBweCIgaGVpZ2h0PSI1MDBweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiPg0KPGc+DQoJPHBhdGggc3R5bGU9ImZpbGw6I2ZmZiIgZD0iTTIuOSw0OGgxNDZsMTAxLjMsMjM4TDM1Mi4xLDQ4aDE0NS43djQ0NC44SDM4OS4zVjE2Ny41TDI4Ni44LDQwNy4zaC03Mi43TDExMS42LDE2Ny41djMyNS4zSDIuOVY0OHoiLz4NCjwvZz4NCjwvc3ZnPg==';
|
30 |
+
// Getting Started Page
|
31 |
+
$mashsb_parent_page = add_menu_page( 'Mashshare Settings', __( 'MashShare', 'mashsb' ), 'manage_options', 'mashsb-settings', 'mashsb_options_page', 'data:image/svg+xml;base64,' . $mashshare_logo );
|
32 |
+
$mashsb_settings_page = add_submenu_page( 'mashsb-settings', __( 'MashShare Settings', 'mashsb' ), __( 'Settings', 'mashsb' ), 'manage_options', 'mashsb-settings', 'mashsb_options_page' );
|
33 |
+
$mashsb_add_ons_page = add_submenu_page( 'mashsb-settings', __( 'MashShare Add Ons', 'mashsb' ), __( 'Get Add Ons', 'mashsb' ), 'manage_options', 'mashsb-addons', 'mashsb_add_ons_page' );
|
34 |
+
$mashsb_tools_page = add_submenu_page( 'mashsb-settings', __( 'MashShare Tools', 'mashsb' ), __( 'Im/Export & System', 'mashsb' ), 'manage_options', 'mashsb-tools', 'mashsb_tools_page' );
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
add_action( 'admin_menu', 'mashsb_add_options_link', 10 );
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Determines whether the current admin page is an MASHSB admin page.
|
42 |
+
*
|
43 |
+
* Only works after the `wp_loaded` hook, & most effective
|
44 |
+
* starting on `admin_menu` hook.
|
45 |
+
*
|
46 |
+
* @since 1.9.6
|
47 |
+
* @return bool True if MASHSB admin page.
|
48 |
+
*/
|
49 |
+
function mashsb_is_admin_page() {
|
50 |
+
$currentpage = isset( $_GET['page'] ) ? $_GET['page'] : '';
|
51 |
+
if( !is_admin() || !did_action( 'wp_loaded' ) ) {
|
52 |
+
return false;
|
53 |
+
}
|
54 |
+
|
55 |
+
global $mashsb_parent_page, $pagenow, $typenow, $mashsb_settings_page, $mashsb_add_ons_page, $mashsb_tools_page, $mashsb_quickstart;
|
56 |
+
|
57 |
+
if( 'mashsb-settings' == $currentpage || 'mashsb-addons' == $currentpage || 'mashsb-tools' == $currentpage || 'mashsb-getting-started' == $currentpage || 'mashsb-credits' == $currentpage || 'mashsb-about' == $currentpage ) {
|
58 |
+
return true;
|
59 |
+
}
|
60 |
+
}
|
includes/admin/dashboard.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin Dashboard
|
4 |
+
*
|
5 |
+
* @package MASHSB
|
6 |
+
* @subpackage Admin/Dashboard
|
7 |
+
* @copyright Copyright (c) 2016, Rene Hermenau
|
8 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
9 |
+
* @since 3.0.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Add new columns in posts dashboard
|
17 |
+
*
|
18 |
+
* @param array $content
|
19 |
+
* @return string
|
20 |
+
*/
|
21 |
+
function mashsb_create_share_columns($col) {
|
22 |
+
$col['mashsb_shares'] = 'Share Count';
|
23 |
+
return $col;
|
24 |
+
}
|
25 |
+
add_filter('manage_posts_columns', 'mashsb_create_share_columns');
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Get share count in post columns
|
29 |
+
*
|
30 |
+
* @param array $col
|
31 |
+
* @param int $post_id
|
32 |
+
* @retrun int
|
33 |
+
*/
|
34 |
+
function mashsb_get_shares($col, $post_id) {
|
35 |
+
if ($col == 'mashsb_shares') {
|
36 |
+
$shares = get_post_meta($post_id,'mashsb_shares',true);
|
37 |
+
echo (int)$shares;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
add_action('manage_posts_custom_column', 'mashsb_get_shares', 10, 2);
|
41 |
+
/**
|
42 |
+
* Make share count columns sortable
|
43 |
+
*
|
44 |
+
* @param array $col
|
45 |
+
* @return string
|
46 |
+
*/
|
47 |
+
// Make the column Sortable
|
48 |
+
function mashsb_share_column_sortable( $col ) {
|
49 |
+
$col['mashsb_shares'] = 'Share Count';
|
50 |
+
return $col;
|
51 |
+
}
|
52 |
+
add_filter('manage_edit-post_sortable_columns', 'mashsb_share_column_sortable');
|
53 |
+
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Change columns get_posts() query
|
57 |
+
*
|
58 |
+
* @param type $query
|
59 |
+
* @return void
|
60 |
+
*/
|
61 |
+
function mashsb_sort_shares_by( $query ) {
|
62 |
+
if( ! is_admin() ){
|
63 |
+
return false;
|
64 |
+
}
|
65 |
+
|
66 |
+
$orderby = $query->get( 'orderby');
|
67 |
+
|
68 |
+
if( 'Share Count' == $orderby ) {
|
69 |
+
$query->set('meta_key','mashsb_shares');
|
70 |
+
$query->set('orderby','meta_value_num');
|
71 |
+
}
|
72 |
+
}
|
73 |
+
add_action( 'pre_get_posts', 'mashsb_sort_shares_by' );
|
74 |
+
|
75 |
+
|
includes/admin/meta-box/css/autocomplete.css
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-autocomplete-result {
|
2 |
+
border-bottom: 1px solid #ccc;
|
3 |
+
padding: 1em 0;
|
4 |
+
overflow: hidden;
|
5 |
+
}
|
6 |
+
.mashsb-rwmb-autocomplete-result .label {
|
7 |
+
float: left;
|
8 |
+
width: 90%;
|
9 |
+
}
|
10 |
+
.mashsb-rwmb-autocomplete-result .actions {
|
11 |
+
width: 10%;
|
12 |
+
float: right;
|
13 |
+
cursor: pointer;
|
14 |
+
}
|
includes/admin/meta-box/css/checkbox.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-checkbox-wrapper .description {
|
2 |
+
display: inline;
|
3 |
+
font-style: normal;
|
4 |
+
}
|
includes/admin/meta-box/css/color.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-color-wrapper .wp-picker-container {
|
2 |
+
position: relative;
|
3 |
+
}
|
4 |
+
.mashsb-rwmb-color-wrapper .wp-picker-holder {
|
5 |
+
position: absolute;
|
6 |
+
z-index: 9;
|
7 |
+
}
|
includes/admin/meta-box/css/datepicker.css
ADDED
@@ -0,0 +1,231 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Fix empty block below admin footer (issue #24) */
|
2 |
+
#ui-datepicker-div {
|
3 |
+
display: none;
|
4 |
+
z-index: 9 !important;
|
5 |
+
}
|
6 |
+
|
7 |
+
/* Style for multiple months */
|
8 |
+
.ui-datepicker-multi .ui-datepicker-group {
|
9 |
+
padding: 0 .5%;
|
10 |
+
box-sizing: border-box;
|
11 |
+
}
|
12 |
+
.ui-datepicker-multi .ui-datepicker-group .ui-datepicker-calendar {
|
13 |
+
width: 100%;
|
14 |
+
}
|
15 |
+
|
16 |
+
/* Date Picker Default Styles */
|
17 |
+
.ui-datepicker {
|
18 |
+
padding: 0;
|
19 |
+
border: 1px solid #ddd;
|
20 |
+
-webkit-border-radius: 0;
|
21 |
+
-moz-border-radius: 0;
|
22 |
+
border-radius: 0;
|
23 |
+
}
|
24 |
+
.ui-datepicker * {
|
25 |
+
padding: 0;
|
26 |
+
font-family: "Open Sans", sans-serif;
|
27 |
+
-webkit-border-radius: 0;
|
28 |
+
-moz-border-radius: 0;
|
29 |
+
border-radius: 0;
|
30 |
+
}
|
31 |
+
.ui-datepicker table {
|
32 |
+
font-size: 13px;
|
33 |
+
margin: 0;
|
34 |
+
}
|
35 |
+
.ui-datepicker .ui-datepicker-header,
|
36 |
+
.ui-timepicker-div .ui-widget-header{
|
37 |
+
border: none;
|
38 |
+
background: #23282d;
|
39 |
+
color: #fff;
|
40 |
+
font-weight: normal;
|
41 |
+
}
|
42 |
+
.ui-datepicker .ui-datepicker-header .ui-state-hover {
|
43 |
+
background: #23282d;
|
44 |
+
border-color: transparent;
|
45 |
+
cursor: pointer;
|
46 |
+
-webkit-border-radius: 0;
|
47 |
+
-moz-border-radius: 0;
|
48 |
+
border-radius: 0;
|
49 |
+
}
|
50 |
+
.ui-datepicker thead {
|
51 |
+
background: #23282d;
|
52 |
+
color: #fff;
|
53 |
+
}
|
54 |
+
.ui-datepicker .ui-datepicker-title {
|
55 |
+
margin-top: .4em;
|
56 |
+
margin-bottom: .3em;
|
57 |
+
color: #fff;
|
58 |
+
font-size: 14px;
|
59 |
+
}
|
60 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
61 |
+
.ui-datepicker .ui-datepicker-next-hover,
|
62 |
+
.ui-datepicker .ui-datepicker-next,
|
63 |
+
.ui-datepicker .ui-datepicker-prev {
|
64 |
+
height: 1em;
|
65 |
+
top: .9em;
|
66 |
+
border: none;
|
67 |
+
}
|
68 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
69 |
+
left: 2px;
|
70 |
+
}
|
71 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
72 |
+
right: 2px;
|
73 |
+
}
|
74 |
+
.ui-datepicker .ui-datepicker-next span,
|
75 |
+
.ui-datepicker .ui-datepicker-prev span {
|
76 |
+
background-image: url('data:image/png;base64,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');
|
77 |
+
background-position: -32px 0;
|
78 |
+
margin-top: 0;
|
79 |
+
top: 0;
|
80 |
+
font-weight: normal;
|
81 |
+
}
|
82 |
+
.ui-datepicker .ui-datepicker-prev span {
|
83 |
+
background-position: -96px 0;
|
84 |
+
}
|
85 |
+
.ui-datepicker th {
|
86 |
+
padding: 0.75em 0;
|
87 |
+
color: #fff;
|
88 |
+
font-weight: normal;
|
89 |
+
border: none;
|
90 |
+
border-top: 1px solid #32373c;
|
91 |
+
}
|
92 |
+
.ui-datepicker td {
|
93 |
+
background: #f1f1f1;
|
94 |
+
border: none;
|
95 |
+
padding: 0;
|
96 |
+
}
|
97 |
+
.ui-datepicker td .ui-state-default {
|
98 |
+
background: transparent;
|
99 |
+
border: none;
|
100 |
+
text-align: center;
|
101 |
+
padding: .5em;
|
102 |
+
margin: 0;
|
103 |
+
font-weight: normal;
|
104 |
+
color: #32373c;
|
105 |
+
}
|
106 |
+
.ui-datepicker td .ui-state-active,
|
107 |
+
.ui-datepicker td .ui-state-hover {
|
108 |
+
background: #0073aa;
|
109 |
+
color: #fff;
|
110 |
+
}
|
111 |
+
.ui-datepicker td.ui-state-disabled,
|
112 |
+
.ui-datepicker td.ui-state-disabled .ui-state-default {
|
113 |
+
opacity: 1;
|
114 |
+
color: #999;
|
115 |
+
}
|
116 |
+
/* Other Datepicker Color Schemes */
|
117 |
+
/* Blue */
|
118 |
+
.admin-color-blue .ui-datepicker .ui-datepicker-header,
|
119 |
+
.admin-color-blue .ui-timepicker-div .ui-widget-header,
|
120 |
+
.admin-color-blue .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
121 |
+
.admin-color-blue .ui-datepicker thead {
|
122 |
+
background: #4796b3;
|
123 |
+
}
|
124 |
+
.admin-color-blue .ui-datepicker th {
|
125 |
+
border-color: #52accc;
|
126 |
+
}
|
127 |
+
.admin-color-blue .ui-datepicker td .ui-state-active,
|
128 |
+
.admin-color-blue .ui-datepicker td .ui-state-hover {
|
129 |
+
background: #096484;
|
130 |
+
}
|
131 |
+
/* Coffee */
|
132 |
+
.admin-color-coffee .ui-datepicker .ui-datepicker-header,
|
133 |
+
.admin-color-cofee .ui-timepicker-div .ui-widget-header,
|
134 |
+
.admin-color-coffee .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
135 |
+
.admin-color-coffee .ui-datepicker thead {
|
136 |
+
background: #46403c;
|
137 |
+
}
|
138 |
+
.admin-color-coffee .ui-datepicker th {
|
139 |
+
border-color: #59524c;
|
140 |
+
}
|
141 |
+
.admin-color-coffee .ui-datepicker td .ui-state-active,
|
142 |
+
.admin-color-coffee .ui-datepicker td .ui-state-hover {
|
143 |
+
background: #c7a589;
|
144 |
+
}
|
145 |
+
/* Ectoplasm */
|
146 |
+
.admin-color-ectoplasm .ui-datepicker .ui-datepicker-header,
|
147 |
+
.admin-color-ectoplasm .ui-timepicker-div .ui-widget-header,
|
148 |
+
.admin-color-ectoplasm .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
149 |
+
.admin-color-ectoplasm .ui-datepicker thead {
|
150 |
+
background: #413256;
|
151 |
+
}
|
152 |
+
.admin-color-ectoplasm .ui-datepicker th {
|
153 |
+
border-color: #523f6d;
|
154 |
+
}
|
155 |
+
.admin-color-ectoplasm .ui-datepicker td .ui-state-active,
|
156 |
+
.admin-color-ectoplasm .ui-datepicker td .ui-state-hover {
|
157 |
+
background: #a3b745;
|
158 |
+
}
|
159 |
+
/* Midnight */
|
160 |
+
.admin-color-midnight .ui-datepicker .ui-datepicker-header,
|
161 |
+
.admin-color-midnight .ui-timepicker-div .ui-widget-header,
|
162 |
+
.admin-color-midnight .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
163 |
+
.admin-color-midnight .ui-datepicker thead {
|
164 |
+
background: #26292c;
|
165 |
+
}
|
166 |
+
.admin-color-midnight .ui-datepicker th {
|
167 |
+
border-color: #363b3f;
|
168 |
+
}
|
169 |
+
.admin-color-midnight .ui-datepicker td .ui-state-active,
|
170 |
+
.admin-color-midnight .ui-datepicker td .ui-state-hover {
|
171 |
+
background: #e14d43;
|
172 |
+
}
|
173 |
+
/* Ocean */
|
174 |
+
.admin-color-ocean .ui-datepicker .ui-datepicker-header,
|
175 |
+
.admin-color-ocean .ui-timepicker-div .ui-widget-header,
|
176 |
+
.admin-color-ocean .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
177 |
+
.admin-color-ocean .ui-datepicker thead {
|
178 |
+
background: #627c83;
|
179 |
+
}
|
180 |
+
.admin-color-ocean .ui-datepicker th {
|
181 |
+
border-color: #738e96;
|
182 |
+
}
|
183 |
+
.admin-color-ocean .ui-datepicker td .ui-state-active,
|
184 |
+
.admin-color-ocean .ui-datepicker td .ui-state-hover {
|
185 |
+
background: #9ebaa0;
|
186 |
+
}
|
187 |
+
/* Sunrise */
|
188 |
+
.admin-color-sunrise .ui-datepicker .ui-datepicker-header,
|
189 |
+
.admin-color-sunrise .ui-timepicker-div .ui-widget-header,
|
190 |
+
.admin-color-sunrise .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
191 |
+
.admin-color-sunrise .ui-datepicker thead {
|
192 |
+
background: #be3631;
|
193 |
+
}
|
194 |
+
.admin-color-sunrise .ui-datepicker th {
|
195 |
+
border-color: #cf4944;
|
196 |
+
}
|
197 |
+
.admin-color-sunrise .ui-datepicker td .ui-state-active,
|
198 |
+
.admin-color-sunrise .ui-datepicker td .ui-state-hover {
|
199 |
+
background: #dd823b;
|
200 |
+
}
|
201 |
+
/* Light */
|
202 |
+
.admin-color-light .ui-datepicker .ui-datepicker-header,
|
203 |
+
.admin-color-light .ui-timepicker-div .ui-widget-header,
|
204 |
+
.admin-color-light .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
205 |
+
.admin-color-light .ui-datepicker thead {
|
206 |
+
background: #e5e5e5;
|
207 |
+
}
|
208 |
+
.admin-color-light .ui-datepicker td {
|
209 |
+
background: #fff;
|
210 |
+
}
|
211 |
+
.admin-color-light .ui-datepicker .ui-datepicker-next span,
|
212 |
+
.admin-color-light .ui-datepicker .ui-datepicker-prev span {
|
213 |
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAYAAADvl7rLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMUIxRjI2RjhCODYxMUUzQTEyNERCMDU1QzdBQ0EyMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMUIxRjI3MDhCODYxMUUzQTEyNERCMDU1QzdBQ0EyMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjExQjFGMjZEOEI4NjExRTNBMTI0REIwNTVDN0FDQTIwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjExQjFGMjZFOEI4NjExRTNBMTI0REIwNTVDN0FDQTIwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kKfR4AAAHcRJREFUeNrsXWuM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');
|
214 |
+
}
|
215 |
+
.admin-color-light .ui-datepicker th {
|
216 |
+
border-color: #fff;
|
217 |
+
}
|
218 |
+
.admin-color-light .ui-datepicker .ui-datepicker-title,
|
219 |
+
.admin-color-light .ui-datepicker td .ui-state-default,
|
220 |
+
.admin-color-light .ui-datepicker th {
|
221 |
+
color: #555;
|
222 |
+
}
|
223 |
+
.admin-color-light .ui-datepicker td .ui-state-active,
|
224 |
+
.admin-color-light .ui-datepicker td .ui-state-hover {
|
225 |
+
color: #fff;
|
226 |
+
background: #888;
|
227 |
+
}
|
228 |
+
.admin-color-light .ui-datepicker td.ui-state-disabled,
|
229 |
+
.admin-color-light .ui-datepicker td.ui-state-disabled .ui-state-default {
|
230 |
+
color: #ccc;
|
231 |
+
}
|
includes/admin/meta-box/css/divider.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* =Styles for 'divider' field
|
2 |
+
-------------------------------------------------------------- */
|
3 |
+
|
4 |
+
.mashsb-rwmb-divider-wrapper hr {
|
5 |
+
border: none;
|
6 |
+
border-top: 1px solid #e6e6e6;
|
7 |
+
}
|
includes/admin/meta-box/css/file.css
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-file li {
|
2 |
+
width: 250px;
|
3 |
+
margin: 0 10px 10px 0;
|
4 |
+
-webkit-transition: width .25s, opacity .25s, -webkit-opacity .25s;
|
5 |
+
transition: width .25s, opacity .25s;
|
6 |
+
}
|
7 |
+
.mashsb-rwmb-file .mashsb-rwmb-icon {
|
8 |
+
width: 60px;
|
9 |
+
text-align: center;
|
10 |
+
vertical-align: middle;
|
11 |
+
overflow: hidden;
|
12 |
+
}
|
13 |
+
.mashsb-rwmb-file .mashsb-rwmb-icon img {
|
14 |
+
max-height: 60px;
|
15 |
+
max-width: 60px;
|
16 |
+
}
|
17 |
+
.mashsb-rwmb-file .mashsb-rwmb-info {
|
18 |
+
width: 180px;
|
19 |
+
vertical-align: top;
|
20 |
+
overflow: hidden;
|
21 |
+
}
|
22 |
+
.mashsb-rwmb-file .mashsb-rwmb-info p {
|
23 |
+
margin: .1em 0;
|
24 |
+
}
|
25 |
+
.mashsb-rwmb-file .mashsb-rwmb-info a {
|
26 |
+
font-weight: bold;
|
27 |
+
text-decoration: none;
|
28 |
+
}
|
29 |
+
.mashsb-rwmb-file li,
|
30 |
+
.mashsb-rwmb-file .mashsb-rwmb-icon,
|
31 |
+
.mashsb-rwmb-file .mashsb-rwmb-info {
|
32 |
+
display: inline-block;
|
33 |
+
}
|
34 |
+
.mashsb-rwmb-file .mashsb-rwmb-icon,
|
35 |
+
.mashsb-rwmb-file .mashsb-rwmb-info {
|
36 |
+
margin: 0 0 2px 2px;
|
37 |
+
}
|
38 |
+
|
39 |
+
.mashsb-rwmb-file li.removed {
|
40 |
+
width: 0;
|
41 |
+
margin: 0;
|
42 |
+
opacity: 0;
|
43 |
+
-webkit-opacity: 0;
|
44 |
+
-moz-opacity: 0;
|
45 |
+
-o-opacity: 0;
|
46 |
+
}
|
47 |
+
|
48 |
+
.mashsb-rwmb-file li.removed:after {
|
49 |
+
content: ' ';
|
50 |
+
position: absolute;
|
51 |
+
top: 0;
|
52 |
+
left: 0;
|
53 |
+
right: 0;
|
54 |
+
bottom: 0;
|
55 |
+
z-index: 2;
|
56 |
+
opacity: .4;
|
57 |
+
background-color: #f00;
|
58 |
+
}
|
includes/admin/meta-box/css/heading.css
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* =Styles for 'heading' field
|
2 |
+
-------------------------------------------------------------- */
|
3 |
+
|
4 |
+
.mashsb-rwmb-heading-wrapper h4 {
|
5 |
+
display: block;
|
6 |
+
font-size: .75rem;
|
7 |
+
line-height: 1.4;
|
8 |
+
border-bottom: 1px solid rgb(230, 230, 230);
|
9 |
+
text-transform: uppercase;
|
10 |
+
padding: .75rem 0 .375rem;
|
11 |
+
margin: 0 0 6px;
|
12 |
+
}
|
includes/admin/meta-box/css/image-advanced.css
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Image */
|
2 |
+
.mashsb-rwmb-image-item {
|
3 |
+
position: relative;
|
4 |
+
float: left;
|
5 |
+
padding: 0;
|
6 |
+
margin: 0 5px 5px 0;
|
7 |
+
box-sizing: border-box;
|
8 |
+
width: 150px;
|
9 |
+
}
|
10 |
+
.mashsb-rwmb-image-item .mashsb-rwmb-media-preview {
|
11 |
+
width: 150px;
|
12 |
+
}
|
13 |
+
.mashsb-rwmb-image-item .dashicons {
|
14 |
+
font-size: 20px;
|
15 |
+
width: 20px;
|
16 |
+
height: 20px;
|
17 |
+
}
|
18 |
+
.mashsb-rwmb-media-bar {
|
19 |
+
position: absolute;
|
20 |
+
z-index: 10;
|
21 |
+
display: none;
|
22 |
+
right: 5px;
|
23 |
+
top: 5px;
|
24 |
+
color: #fff;
|
25 |
+
}
|
26 |
+
.mashsb-rwmb-media-bar a {
|
27 |
+
text-decoration: none;
|
28 |
+
color: inherit;
|
29 |
+
}
|
30 |
+
.mashsb-rwmb-overlay {
|
31 |
+
position: absolute;
|
32 |
+
top: 0;
|
33 |
+
bottom: 0;
|
34 |
+
left: 0;
|
35 |
+
right: 0;
|
36 |
+
background: rgba(0, 0, 0, .6);
|
37 |
+
display: none;
|
38 |
+
}
|
39 |
+
.mashsb-rwmb-image-item:hover .mashsb-rwmb-media-bar,
|
40 |
+
.mashsb-rwmb-image-item:hover .mashsb-rwmb-overlay {
|
41 |
+
display: block;
|
42 |
+
cursor: move;
|
43 |
+
}
|
includes/admin/meta-box/css/image-select.css
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-image-select {
|
2 |
+
display: inline-block;
|
3 |
+
width: 80px;
|
4 |
+
height: 80px;
|
5 |
+
float: left;
|
6 |
+
margin: 0 10px 10px 0;
|
7 |
+
border: 3px solid #d8d8d8;
|
8 |
+
border-radius: 3px;
|
9 |
+
padding: 1px;
|
10 |
+
}
|
11 |
+
.mashsb-rwmb-image-select img {
|
12 |
+
width: 100%;
|
13 |
+
height: 100%;
|
14 |
+
}
|
15 |
+
.mashsb-rwmb-image-select:hover,
|
16 |
+
.mashsb-rwmb-image-select.mashsb-rwmb-active {
|
17 |
+
border-color: #0074a2;
|
18 |
+
}
|
19 |
+
.mashsb-rwmb-image-select input {
|
20 |
+
display: none;
|
21 |
+
}
|
includes/admin/meta-box/css/image.css
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Uploaded image */
|
2 |
+
.mashsb-rwmb-images {
|
3 |
+
overflow: hidden;
|
4 |
+
}
|
5 |
+
.mashsb-rwmb-images li {
|
6 |
+
margin: 0 10px 10px 0;
|
7 |
+
float: left;
|
8 |
+
width: 150px;
|
9 |
+
height: 150px;
|
10 |
+
text-align: center;
|
11 |
+
cursor: move;
|
12 |
+
position: relative;
|
13 |
+
-webkit-transition: width .25s, opacity .25s, -webkit-opacity .25s;
|
14 |
+
transition: width .25s, opacity .25s;
|
15 |
+
}
|
16 |
+
.mashsb-rwmb-images img {
|
17 |
+
width: 150px;
|
18 |
+
height: 150px;
|
19 |
+
}
|
20 |
+
.mashsb-rwmb-image-bar {
|
21 |
+
color: #fff;
|
22 |
+
font-weight: bold;
|
23 |
+
background: #000;
|
24 |
+
background: rgba(0, 0, 0, .5);
|
25 |
+
position: absolute;
|
26 |
+
top: 0;
|
27 |
+
right: 0;
|
28 |
+
padding: 5px;
|
29 |
+
display: none;
|
30 |
+
text-align: center;
|
31 |
+
}
|
32 |
+
li:hover .mashsb-rwmb-image-bar {
|
33 |
+
display: block;
|
34 |
+
}
|
35 |
+
.mashsb-rwmb-image-bar a {
|
36 |
+
color: #fff;
|
37 |
+
font-weight: bold;
|
38 |
+
text-decoration: none;
|
39 |
+
vertical-align: middle;
|
40 |
+
}
|
41 |
+
.mashsb-rwmb-image-bar a.mashsb-rwmb-delete-file {
|
42 |
+
font-size: 23px;
|
43 |
+
width: 18px;
|
44 |
+
font-weight: normal;
|
45 |
+
}
|
46 |
+
.mashsb-rwmb-images li.removed {
|
47 |
+
width: 0;
|
48 |
+
margin: 0;
|
49 |
+
opacity: 0;
|
50 |
+
-webkit-opacity: 0;
|
51 |
+
-moz-opacity: 0;
|
52 |
+
-o-opacity: 0;
|
53 |
+
}
|
54 |
+
.mashsb-rwmb-images li.removed:after {
|
55 |
+
content: ' ';
|
56 |
+
position: absolute;
|
57 |
+
top: 0;
|
58 |
+
left: 0;
|
59 |
+
right: 0;
|
60 |
+
bottom: 0;
|
61 |
+
z-index: 2;
|
62 |
+
opacity: .4;
|
63 |
+
background-color: #f00;
|
64 |
+
}
|
65 |
+
.mashsb-rwmb-images li.ui-state-highlight {
|
66 |
+
background: #ddd;
|
67 |
+
}
|
includes/admin/meta-box/css/input-list.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-input-list li{
|
2 |
+
line-height: 22px;
|
3 |
+
}
|
4 |
+
|
5 |
+
li .mashsb-rwmb-input-list {
|
6 |
+
margin-left: 15px;
|
7 |
+
}
|
includes/admin/meta-box/css/jqueryui/jquery-ui-timepicker-addon.min.css
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery Timepicker Addon - v1.5.0 - 2014-09-01
|
2 |
+
* http://trentrichardson.com/examples/timepicker
|
3 |
+
* Copyright (c) 2014 Trent Richardson; Licensed MIT */
|
4 |
+
|
5 |
+
.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.ui-timepicker-div dl dd{margin:0 10px 10px 40%}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:0 0;border:0;margin:0;padding:0}.ui-timepicker-rtl{direction:rtl}.ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.ui-timepicker-rtl dl dt{float:right;clear:right}.ui-timepicker-rtl dl dd{margin:0 40% 10px 10px}
|
includes/admin/meta-box/css/jqueryui/jquery.ui.core.css
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI CSS Framework 1.8.17
|
3 |
+
*
|
4 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Theming/API
|
9 |
+
*/
|
10 |
+
|
11 |
+
/* Layout helpers
|
12 |
+
----------------------------------*/
|
13 |
+
.ui-helper-hidden { display: none; }
|
14 |
+
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
15 |
+
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
16 |
+
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
17 |
+
.ui-helper-clearfix:after { clear: both; }
|
18 |
+
.ui-helper-clearfix { zoom: 1; }
|
19 |
+
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
20 |
+
|
21 |
+
|
22 |
+
/* Interaction Cues
|
23 |
+
----------------------------------*/
|
24 |
+
.ui-state-disabled { cursor: default !important; }
|
25 |
+
|
26 |
+
|
27 |
+
/* Icons
|
28 |
+
----------------------------------*/
|
29 |
+
|
30 |
+
/* states and images */
|
31 |
+
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
32 |
+
|
33 |
+
|
34 |
+
/* Misc visuals
|
35 |
+
----------------------------------*/
|
36 |
+
|
37 |
+
/* Overlays */
|
38 |
+
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
includes/admin/meta-box/css/jqueryui/jquery.ui.datepicker.css
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI Datepicker 1.8.17
|
3 |
+
*
|
4 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Datepicker#theming
|
9 |
+
*/
|
10 |
+
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
11 |
+
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
12 |
+
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
13 |
+
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
14 |
+
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
15 |
+
.ui-datepicker .ui-datepicker-next { right:2px; }
|
16 |
+
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
17 |
+
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
18 |
+
.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; }
|
19 |
+
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
20 |
+
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
21 |
+
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
22 |
+
.ui-datepicker select.ui-datepicker-month,
|
23 |
+
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
24 |
+
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
25 |
+
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
26 |
+
.ui-datepicker td { border: 0; padding: 1px; }
|
27 |
+
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
28 |
+
.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; }
|
29 |
+
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
30 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
31 |
+
|
32 |
+
/* with multiple calendars */
|
33 |
+
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
34 |
+
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
35 |
+
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
36 |
+
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
37 |
+
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
38 |
+
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
39 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
40 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
41 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
42 |
+
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
43 |
+
|
44 |
+
/* RTL support */
|
45 |
+
.ui-datepicker-rtl { direction: rtl; }
|
46 |
+
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
47 |
+
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
48 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
49 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
50 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
51 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
52 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
53 |
+
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
54 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
55 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
56 |
+
|
57 |
+
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
58 |
+
.ui-datepicker-cover {
|
59 |
+
display: none; /*sorry for IE5*/
|
60 |
+
display/**/: block; /*sorry for IE5*/
|
61 |
+
position: absolute; /*must have*/
|
62 |
+
z-index: -1; /*must have*/
|
63 |
+
filter: mask(); /*must have*/
|
64 |
+
top: -4px; /*must have*/
|
65 |
+
left: -4px; /*must have*/
|
66 |
+
width: 200px; /*must have*/
|
67 |
+
height: 200px; /*must have*/
|
68 |
+
}
|
includes/admin/meta-box/css/jqueryui/jquery.ui.slider.css
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI Slider 1.8.17
|
3 |
+
*
|
4 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Slider#theming
|
9 |
+
*/
|
10 |
+
.ui-slider { position: relative; text-align: left; }
|
11 |
+
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
12 |
+
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
13 |
+
|
14 |
+
.ui-slider-horizontal { height: .8em; }
|
15 |
+
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
16 |
+
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
17 |
+
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
18 |
+
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
19 |
+
|
20 |
+
.ui-slider-vertical { width: .8em; height: 100px; }
|
21 |
+
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
22 |
+
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
23 |
+
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
24 |
+
.ui-slider-vertical .ui-slider-range-max { top: 0; }
|
includes/admin/meta-box/css/jqueryui/jquery.ui.theme.css
ADDED
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
|
3 |
+
/*
|
4 |
+
* jQuery UI CSS Framework 1.8.17
|
5 |
+
*
|
6 |
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
7 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
8 |
+
* http://jquery.org/license
|
9 |
+
*
|
10 |
+
* http://docs.jquery.com/UI/Theming/API
|
11 |
+
*
|
12 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
13 |
+
*/
|
14 |
+
|
15 |
+
|
16 |
+
/* Component containers
|
17 |
+
----------------------------------*/
|
18 |
+
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
19 |
+
.ui-widget .ui-widget { font-size: 1em; }
|
20 |
+
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
21 |
+
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(../../img/jqueryui/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
|
22 |
+
.ui-widget-content a { color: #222222; }
|
23 |
+
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(../../img/jqueryui/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
24 |
+
.ui-widget-header a { color: #222222; }
|
25 |
+
|
26 |
+
/* Interaction states
|
27 |
+
----------------------------------*/
|
28 |
+
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(../../img/jqueryui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
|
29 |
+
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
30 |
+
.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 #999999; background: #dadada url(../../img/jqueryui/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
31 |
+
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
|
32 |
+
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(../../img/jqueryui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
33 |
+
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
34 |
+
.ui-widget :active { outline: none; }
|
35 |
+
|
36 |
+
/* Interaction Cues
|
37 |
+
----------------------------------*/
|
38 |
+
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(../../img/jqueryui/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
|
39 |
+
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
40 |
+
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(../../img/jqueryui/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
41 |
+
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
42 |
+
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
43 |
+
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
44 |
+
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
45 |
+
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
46 |
+
|
47 |
+
/* Icons
|
48 |
+
----------------------------------*/
|
49 |
+
|
50 |
+
/* states and images */
|
51 |
+
.ui-icon { width: 16px; height: 16px; background-image: url(../../img/jqueryui/ui-icons_222222_256x240.png); }
|
52 |
+
.ui-widget-content .ui-icon {background-image: url(../../img/jqueryui/ui-icons_222222_256x240.png); }
|
53 |
+
.ui-widget-header .ui-icon {background-image: url(../../img/jqueryui/ui-icons_222222_256x240.png); }
|
54 |
+
.ui-state-default .ui-icon { background-image: url(../../img/jqueryui/ui-icons_888888_256x240.png); }
|
55 |
+
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../../img/jqueryui/ui-icons_454545_256x240.png); }
|
56 |
+
.ui-state-active .ui-icon {background-image: url(../../img/jqueryui/ui-icons_454545_256x240.png); }
|
57 |
+
.ui-state-highlight .ui-icon {background-image: url(../../img/jqueryui/ui-icons_2e83ff_256x240.png); }
|
58 |
+
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../../img/jqueryui/ui-icons_cd0a0a_256x240.png); }
|
59 |
+
|
60 |
+
/* positioning */
|
61 |
+
.ui-icon-carat-1-n { background-position: 0 0; }
|
62 |
+
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
63 |
+
.ui-icon-carat-1-e { background-position: -32px 0; }
|
64 |
+
.ui-icon-carat-1-se { background-position: -48px 0; }
|
65 |
+
.ui-icon-carat-1-s { background-position: -64px 0; }
|
66 |
+
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
67 |
+
.ui-icon-carat-1-w { background-position: -96px 0; }
|
68 |
+
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
69 |
+
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
70 |
+
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
71 |
+
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
72 |
+
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
73 |
+
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
74 |
+
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
75 |
+
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
76 |
+
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
77 |
+
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
78 |
+
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
79 |
+
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
80 |
+
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
81 |
+
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
82 |
+
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
83 |
+
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
84 |
+
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
85 |
+
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
86 |
+
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
87 |
+
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
88 |
+
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
89 |
+
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
90 |
+
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
91 |
+
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
92 |
+
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
93 |
+
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
94 |
+
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
95 |
+
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
96 |
+
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
97 |
+
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
98 |
+
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
99 |
+
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
100 |
+
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
101 |
+
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
102 |
+
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
103 |
+
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
104 |
+
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
105 |
+
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
106 |
+
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
107 |
+
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
108 |
+
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
109 |
+
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
110 |
+
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
111 |
+
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
112 |
+
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
113 |
+
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
114 |
+
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
115 |
+
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
116 |
+
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
117 |
+
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
118 |
+
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
119 |
+
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
120 |
+
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
121 |
+
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
122 |
+
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
123 |
+
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
124 |
+
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
125 |
+
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
126 |
+
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
127 |
+
.ui-icon-extlink { background-position: -32px -80px; }
|
128 |
+
.ui-icon-newwin { background-position: -48px -80px; }
|
129 |
+
.ui-icon-refresh { background-position: -64px -80px; }
|
130 |
+
.ui-icon-shuffle { background-position: -80px -80px; }
|
131 |
+
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
132 |
+
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
133 |
+
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
134 |
+
.ui-icon-folder-open { background-position: -16px -96px; }
|
135 |
+
.ui-icon-document { background-position: -32px -96px; }
|
136 |
+
.ui-icon-document-b { background-position: -48px -96px; }
|
137 |
+
.ui-icon-note { background-position: -64px -96px; }
|
138 |
+
.ui-icon-mail-closed { background-position: -80px -96px; }
|
139 |
+
.ui-icon-mail-open { background-position: -96px -96px; }
|
140 |
+
.ui-icon-suitcase { background-position: -112px -96px; }
|
141 |
+
.ui-icon-comment { background-position: -128px -96px; }
|
142 |
+
.ui-icon-person { background-position: -144px -96px; }
|
143 |
+
.ui-icon-print { background-position: -160px -96px; }
|
144 |
+
.ui-icon-trash { background-position: -176px -96px; }
|
145 |
+
.ui-icon-locked { background-position: -192px -96px; }
|
146 |
+
.ui-icon-unlocked { background-position: -208px -96px; }
|
147 |
+
.ui-icon-bookmark { background-position: -224px -96px; }
|
148 |
+
.ui-icon-tag { background-position: -240px -96px; }
|
149 |
+
.ui-icon-home { background-position: 0 -112px; }
|
150 |
+
.ui-icon-flag { background-position: -16px -112px; }
|
151 |
+
.ui-icon-calendar { background-position: -32px -112px; }
|
152 |
+
.ui-icon-cart { background-position: -48px -112px; }
|
153 |
+
.ui-icon-pencil { background-position: -64px -112px; }
|
154 |
+
.ui-icon-clock { background-position: -80px -112px; }
|
155 |
+
.ui-icon-disk { background-position: -96px -112px; }
|
156 |
+
.ui-icon-calculator { background-position: -112px -112px; }
|
157 |
+
.ui-icon-zoomin { background-position: -128px -112px; }
|
158 |
+
.ui-icon-zoomout { background-position: -144px -112px; }
|
159 |
+
.ui-icon-search { background-position: -160px -112px; }
|
160 |
+
.ui-icon-wrench { background-position: -176px -112px; }
|
161 |
+
.ui-icon-gear { background-position: -192px -112px; }
|
162 |
+
.ui-icon-heart { background-position: -208px -112px; }
|
163 |
+
.ui-icon-star { background-position: -224px -112px; }
|
164 |
+
.ui-icon-link { background-position: -240px -112px; }
|
165 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
166 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
167 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
168 |
+
.ui-icon-minus { background-position: -48px -128px; }
|
169 |
+
.ui-icon-minusthick { background-position: -64px -128px; }
|
170 |
+
.ui-icon-close { background-position: -80px -128px; }
|
171 |
+
.ui-icon-closethick { background-position: -96px -128px; }
|
172 |
+
.ui-icon-key { background-position: -112px -128px; }
|
173 |
+
.ui-icon-lightbulb { background-position: -128px -128px; }
|
174 |
+
.ui-icon-scissors { background-position: -144px -128px; }
|
175 |
+
.ui-icon-clipboard { background-position: -160px -128px; }
|
176 |
+
.ui-icon-copy { background-position: -176px -128px; }
|
177 |
+
.ui-icon-contact { background-position: -192px -128px; }
|
178 |
+
.ui-icon-image { background-position: -208px -128px; }
|
179 |
+
.ui-icon-video { background-position: -224px -128px; }
|
180 |
+
.ui-icon-script { background-position: -240px -128px; }
|
181 |
+
.ui-icon-alert { background-position: 0 -144px; }
|
182 |
+
.ui-icon-info { background-position: -16px -144px; }
|
183 |
+
.ui-icon-notice { background-position: -32px -144px; }
|
184 |
+
.ui-icon-help { background-position: -48px -144px; }
|
185 |
+
.ui-icon-check { background-position: -64px -144px; }
|
186 |
+
.ui-icon-bullet { background-position: -80px -144px; }
|
187 |
+
.ui-icon-radio-off { background-position: -96px -144px; }
|
188 |
+
.ui-icon-radio-on { background-position: -112px -144px; }
|
189 |
+
.ui-icon-pin-w { background-position: -128px -144px; }
|
190 |
+
.ui-icon-pin-s { background-position: -144px -144px; }
|
191 |
+
.ui-icon-play { background-position: 0 -160px; }
|
192 |
+
.ui-icon-pause { background-position: -16px -160px; }
|
193 |
+
.ui-icon-seek-next { background-position: -32px -160px; }
|
194 |
+
.ui-icon-seek-prev { background-position: -48px -160px; }
|
195 |
+
.ui-icon-seek-end { background-position: -64px -160px; }
|
196 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
197 |
+
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
198 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
199 |
+
.ui-icon-stop { background-position: -96px -160px; }
|
200 |
+
.ui-icon-eject { background-position: -112px -160px; }
|
201 |
+
.ui-icon-volume-off { background-position: -128px -160px; }
|
202 |
+
.ui-icon-volume-on { background-position: -144px -160px; }
|
203 |
+
.ui-icon-power { background-position: 0 -176px; }
|
204 |
+
.ui-icon-signal-diag { background-position: -16px -176px; }
|
205 |
+
.ui-icon-signal { background-position: -32px -176px; }
|
206 |
+
.ui-icon-battery-0 { background-position: -48px -176px; }
|
207 |
+
.ui-icon-battery-1 { background-position: -64px -176px; }
|
208 |
+
.ui-icon-battery-2 { background-position: -80px -176px; }
|
209 |
+
.ui-icon-battery-3 { background-position: -96px -176px; }
|
210 |
+
.ui-icon-circle-plus { background-position: 0 -192px; }
|
211 |
+
.ui-icon-circle-minus { background-position: -16px -192px; }
|
212 |
+
.ui-icon-circle-close { background-position: -32px -192px; }
|
213 |
+
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
214 |
+
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
215 |
+
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
216 |
+
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
217 |
+
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
218 |
+
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
219 |
+
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
220 |
+
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
221 |
+
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
222 |
+
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
223 |
+
.ui-icon-circle-check { background-position: -208px -192px; }
|
224 |
+
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
225 |
+
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
226 |
+
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
227 |
+
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
228 |
+
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
229 |
+
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
230 |
+
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
231 |
+
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
232 |
+
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
233 |
+
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
234 |
+
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
235 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
236 |
+
|
237 |
+
|
238 |
+
/* Misc visuals
|
239 |
+
----------------------------------*/
|
240 |
+
|
241 |
+
/* Corner radius */
|
242 |
+
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
243 |
+
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
244 |
+
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
245 |
+
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
246 |
+
|
247 |
+
/* Overlays */
|
248 |
+
.ui-widget-overlay { background: #aaaaaa url(../../img/jqueryui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
249 |
+
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(../../img/jqueryui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
|
includes/admin/meta-box/css/map.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-map-canvas {
|
2 |
+
width: 100%;
|
3 |
+
height: 400px;
|
4 |
+
}
|
includes/admin/meta-box/css/media.css
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-media-list {
|
2 |
+
margin: 0 0 5px;
|
3 |
+
overflow: hidden;
|
4 |
+
}
|
5 |
+
.mashsb-rwmb-media-item {
|
6 |
+
overflow: hidden;
|
7 |
+
margin-bottom: 10px;
|
8 |
+
}
|
9 |
+
.mashsb-rwmb-media-preview {
|
10 |
+
width: 60px;
|
11 |
+
float: left;
|
12 |
+
position: relative;
|
13 |
+
}
|
14 |
+
.mashsb-rwmb-media-preview:before {
|
15 |
+
content: '';
|
16 |
+
display: block;
|
17 |
+
padding-top: 100%;
|
18 |
+
}
|
19 |
+
.mashsb-rwmb-media-content {
|
20 |
+
position: absolute;
|
21 |
+
overflow: hidden;
|
22 |
+
top: 0;
|
23 |
+
left: 0;
|
24 |
+
bottom: 0;
|
25 |
+
right: 0;
|
26 |
+
}
|
27 |
+
.mashsb-rwmb-media-content .centered {
|
28 |
+
position: absolute;
|
29 |
+
top: 0;
|
30 |
+
left: 0;
|
31 |
+
width: 100%;
|
32 |
+
height: 100%;
|
33 |
+
-webkit-transform: translate(50%, 50%);
|
34 |
+
-ms-transform: translate(50%, 50%);
|
35 |
+
transform: translate(50%, 50%);
|
36 |
+
}
|
37 |
+
.mashsb-rwmb-media-content img {
|
38 |
+
-webkit-transform: translate(-50%, -50%);
|
39 |
+
-ms-transform: translate(-50%, -50%);
|
40 |
+
transform: translate(-50%, -50%);
|
41 |
+
max-height: 100%;
|
42 |
+
max-width: 100%;
|
43 |
+
border-radius: 3px;
|
44 |
+
}
|
45 |
+
.mashsb-rwmb-media-info {
|
46 |
+
margin-left: 65px;
|
47 |
+
}
|
48 |
+
.mashsb-rwmb-media-info a {
|
49 |
+
text-decoration: none;
|
50 |
+
}
|
51 |
+
.mashsb-rwmb-media-info p,
|
52 |
+
.mashsb-rwmb-media-info h4 {
|
53 |
+
margin: 0 0 2px;
|
54 |
+
}
|
55 |
+
.mashsb-rwmb-edit-media,
|
56 |
+
.mashsb-rwmb-remove-media {
|
57 |
+
font-size: 11px;
|
58 |
+
color: inherit;
|
59 |
+
}
|
60 |
+
.mashsb-rwmb-edit-media .dashicons,
|
61 |
+
.mashsb-rwmb-remove-media .dashicons {
|
62 |
+
font-size: 12px;
|
63 |
+
width: 12px;
|
64 |
+
height: 12px;
|
65 |
+
vertical-align: middle;
|
66 |
+
}
|
67 |
+
|
68 |
+
/* Add more button */
|
69 |
+
.mashsb-rwmb-media-view .mashsb-rwmb-add-media {
|
70 |
+
padding-left: 5px;
|
71 |
+
margin-right: 5px;
|
72 |
+
}
|
73 |
+
|
74 |
+
/* Status */
|
75 |
+
.mashsb-rwmb-media-status {
|
76 |
+
display: inline-block;
|
77 |
+
text-decoration: none;
|
78 |
+
font-size: 13px;
|
79 |
+
line-height: 26px;
|
80 |
+
height: 28px;
|
81 |
+
}
|
includes/admin/meta-box/css/oembed.css
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-oembed-wrapper .spinner {
|
2 |
+
float: none;
|
3 |
+
vertical-align: top;
|
4 |
+
display: inline-block;
|
5 |
+
}
|
6 |
+
.mashsb-rwmb-oembed-wrapper .embed-code {
|
7 |
+
margin-top: 1em;
|
8 |
+
}
|
9 |
+
.mashsb-rwmb-oembed-wrapper .embed-code iframe {
|
10 |
+
max-width: 100%;
|
11 |
+
}
|
includes/admin/meta-box/css/plupload-image.css
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
div.mashsb-rwmb-drag-drop {
|
2 |
+
border: 4px dashed #ddd;
|
3 |
+
height: 200px;
|
4 |
+
}
|
5 |
+
|
6 |
+
div.mashsb-rwmb-image-uploading-bar {
|
7 |
+
position: absolute;
|
8 |
+
width: 100%;
|
9 |
+
height: 0;
|
10 |
+
bottom: 0;
|
11 |
+
}
|
12 |
+
div.mashsb-rwmb-image-uploading-status {
|
13 |
+
position: absolute;
|
14 |
+
}
|
15 |
+
li.mashsb-rwmb-image-error {
|
16 |
+
border: 3px solid #c00;
|
17 |
+
background: #903838;
|
18 |
+
}
|
19 |
+
.mashsb-rwmb-image-uploading-status .mashsb-rwmb-loader {
|
20 |
+
width: 64px;
|
21 |
+
height: 64px;
|
22 |
+
top: 43px;
|
23 |
+
left: 43px;
|
24 |
+
position: relative;
|
25 |
+
}
|
includes/admin/meta-box/css/range.css
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
input[type='range'] {
|
2 |
+
vertical-align: middle;
|
3 |
+
border-radius: 2px;
|
4 |
+
border: 1px solid #dfdfdf;
|
5 |
+
}
|
6 |
+
|
7 |
+
.mashsb-rwmb-output {
|
8 |
+
|
9 |
+
display: inline-block;
|
10 |
+
position: relative;
|
11 |
+
padding: 5px 10px;
|
12 |
+
line-height: 20px;
|
13 |
+
}
|
includes/admin/meta-box/css/select-advanced.css
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-field .select2-container {
|
2 |
+
height: auto;
|
3 |
+
min-width: 200px;
|
4 |
+
}
|
5 |
+
|
6 |
+
#post-body .mashsb-rwmb-select-all {
|
7 |
+
margin-top: 5px;
|
8 |
+
}
|
includes/admin/meta-box/css/select-tree.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-select-tree {
|
2 |
+
display: inline-block;
|
3 |
+
}
|
4 |
+
|
5 |
+
.mashsb-rwmb-select-tree.hidden {
|
6 |
+
display: none;
|
7 |
+
}
|
includes/admin/meta-box/css/select.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-select-all-none {
|
2 |
+
display: block;
|
3 |
+
margin-top: 5px;
|
4 |
+
}
|
includes/admin/meta-box/css/select2/select2.css
ADDED
@@ -0,0 +1,483 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.select2-container {
|
2 |
+
box-sizing: border-box;
|
3 |
+
display: inline-block;
|
4 |
+
margin: 0;
|
5 |
+
position: relative;
|
6 |
+
vertical-align: middle;
|
7 |
+
}
|
8 |
+
.select2-container .select2-selection--single {
|
9 |
+
box-sizing: border-box;
|
10 |
+
cursor: pointer;
|
11 |
+
display: block;
|
12 |
+
height: 28px;
|
13 |
+
user-select: none;
|
14 |
+
-webkit-user-select: none; }
|
15 |
+
.select2-container .select2-selection--single .select2-selection__rendered {
|
16 |
+
display: block;
|
17 |
+
padding-left: 8px;
|
18 |
+
padding-right: 20px;
|
19 |
+
overflow: hidden;
|
20 |
+
text-overflow: ellipsis;
|
21 |
+
white-space: nowrap; }
|
22 |
+
.select2-container .select2-selection--single .select2-selection__clear {
|
23 |
+
position: relative; }
|
24 |
+
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
|
25 |
+
padding-right: 8px;
|
26 |
+
padding-left: 20px; }
|
27 |
+
.select2-container .select2-selection--multiple {
|
28 |
+
box-sizing: border-box;
|
29 |
+
cursor: pointer;
|
30 |
+
display: block;
|
31 |
+
min-height: 32px;
|
32 |
+
user-select: none;
|
33 |
+
-webkit-user-select: none; }
|
34 |
+
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
35 |
+
/*display: inline-block;*/
|
36 |
+
overflow: hidden;
|
37 |
+
padding-left: 8px;
|
38 |
+
text-overflow: ellipsis;
|
39 |
+
white-space: nowrap; }
|
40 |
+
.select2-container .select2-search--inline {
|
41 |
+
float: left; }
|
42 |
+
.select2-container .select2-search--inline .select2-search__field {
|
43 |
+
box-sizing: border-box;
|
44 |
+
border: none;
|
45 |
+
font-size: 100%;
|
46 |
+
margin-top: 5px;
|
47 |
+
padding: 0; }
|
48 |
+
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
49 |
+
-webkit-appearance: none; }
|
50 |
+
|
51 |
+
.select2-dropdown {
|
52 |
+
background-color: white;
|
53 |
+
border: 1px solid #aaa;
|
54 |
+
border-radius: 4px;
|
55 |
+
box-sizing: border-box;
|
56 |
+
display: block;
|
57 |
+
position: absolute;
|
58 |
+
left: -100000px;
|
59 |
+
width: 100%;
|
60 |
+
z-index: 1051; }
|
61 |
+
|
62 |
+
.select2-results {
|
63 |
+
display: block; }
|
64 |
+
|
65 |
+
.select2-results__options {
|
66 |
+
list-style: none;
|
67 |
+
margin: 0;
|
68 |
+
padding: 0; }
|
69 |
+
|
70 |
+
.select2-results__option {
|
71 |
+
padding: 6px;
|
72 |
+
user-select: none;
|
73 |
+
-webkit-user-select: none; }
|
74 |
+
.select2-results__option[aria-selected] {
|
75 |
+
cursor: pointer; }
|
76 |
+
|
77 |
+
.select2-container--open .select2-dropdown {
|
78 |
+
left: 0; }
|
79 |
+
|
80 |
+
.select2-container--open .select2-dropdown--above {
|
81 |
+
border-bottom: none;
|
82 |
+
border-bottom-left-radius: 0;
|
83 |
+
border-bottom-right-radius: 0; }
|
84 |
+
|
85 |
+
.select2-container--open .select2-dropdown--below {
|
86 |
+
border-top: none;
|
87 |
+
border-top-left-radius: 0;
|
88 |
+
border-top-right-radius: 0; }
|
89 |
+
|
90 |
+
.select2-search--dropdown {
|
91 |
+
display: block;
|
92 |
+
padding: 4px; }
|
93 |
+
.select2-search--dropdown .select2-search__field {
|
94 |
+
padding: 4px;
|
95 |
+
width: 100%;
|
96 |
+
box-sizing: border-box; }
|
97 |
+
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
98 |
+
-webkit-appearance: none; }
|
99 |
+
.select2-search--dropdown.select2-search--hide {
|
100 |
+
display: none; }
|
101 |
+
|
102 |
+
.select2-close-mask {
|
103 |
+
border: 0;
|
104 |
+
margin: 0;
|
105 |
+
padding: 0;
|
106 |
+
display: block;
|
107 |
+
position: fixed;
|
108 |
+
left: 0;
|
109 |
+
top: 0;
|
110 |
+
min-height: 100%;
|
111 |
+
min-width: 100%;
|
112 |
+
height: auto;
|
113 |
+
width: auto;
|
114 |
+
opacity: 0;
|
115 |
+
z-index: 99;
|
116 |
+
background-color: #fff;
|
117 |
+
filter: alpha(opacity=0); }
|
118 |
+
|
119 |
+
.select2-hidden-accessible {
|
120 |
+
border: 0 !important;
|
121 |
+
clip: rect(0 0 0 0) !important;
|
122 |
+
height: 1px !important;
|
123 |
+
margin: -1px !important;
|
124 |
+
overflow: hidden !important;
|
125 |
+
padding: 0 !important;
|
126 |
+
position: absolute !important;
|
127 |
+
width: 1px !important; }
|
128 |
+
|
129 |
+
.select2-container--default .select2-selection--single {
|
130 |
+
background-color: #fff;
|
131 |
+
border: 1px solid #aaa;
|
132 |
+
border-radius: 4px; }
|
133 |
+
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
134 |
+
color: #444;
|
135 |
+
line-height: 28px; }
|
136 |
+
.select2-container--default .select2-selection--single .select2-selection__clear {
|
137 |
+
cursor: pointer;
|
138 |
+
float: right;
|
139 |
+
font-weight: bold; }
|
140 |
+
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
141 |
+
color: #999; }
|
142 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
143 |
+
height: 26px;
|
144 |
+
position: absolute;
|
145 |
+
top: 1px;
|
146 |
+
right: 1px;
|
147 |
+
width: 20px; }
|
148 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
149 |
+
border-color: #888 transparent transparent transparent;
|
150 |
+
border-style: solid;
|
151 |
+
border-width: 5px 4px 0 4px;
|
152 |
+
height: 0;
|
153 |
+
left: 50%;
|
154 |
+
margin-left: -4px;
|
155 |
+
margin-top: -2px;
|
156 |
+
position: absolute;
|
157 |
+
top: 50%;
|
158 |
+
width: 0; }
|
159 |
+
|
160 |
+
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
161 |
+
float: left; }
|
162 |
+
|
163 |
+
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
164 |
+
left: 1px;
|
165 |
+
right: auto; }
|
166 |
+
|
167 |
+
.select2-container--default.select2-container--disabled .select2-selection--single {
|
168 |
+
background-color: #eee;
|
169 |
+
cursor: default; }
|
170 |
+
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
171 |
+
display: none; }
|
172 |
+
|
173 |
+
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
174 |
+
border-color: transparent transparent #888 transparent;
|
175 |
+
border-width: 0 4px 5px 4px; }
|
176 |
+
|
177 |
+
.select2-container--default .select2-selection--multiple {
|
178 |
+
background-color: white;
|
179 |
+
border: 1px solid #aaa;
|
180 |
+
border-radius: 4px;
|
181 |
+
cursor: text; }
|
182 |
+
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
|
183 |
+
box-sizing: border-box;
|
184 |
+
list-style: none;
|
185 |
+
margin: 0;
|
186 |
+
padding: 0 5px;
|
187 |
+
width: 100%; }
|
188 |
+
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
|
189 |
+
color: #999;
|
190 |
+
margin-top: 5px;
|
191 |
+
float: left; }
|
192 |
+
.select2-container--default .select2-selection--multiple .select2-selection__clear {
|
193 |
+
cursor: pointer;
|
194 |
+
float: right;
|
195 |
+
font-weight: bold;
|
196 |
+
margin-top: 5px;
|
197 |
+
margin-right: 10px; }
|
198 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
199 |
+
background-color: #e4e4e4;
|
200 |
+
border: 1px solid #aaa;
|
201 |
+
border-radius: 4px;
|
202 |
+
cursor: default;
|
203 |
+
float: left;
|
204 |
+
margin-right: 5px;
|
205 |
+
margin-top: 5px;
|
206 |
+
padding: 0 5px; }
|
207 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
208 |
+
color: #999;
|
209 |
+
cursor: pointer;
|
210 |
+
display: inline-block;
|
211 |
+
font-weight: bold;
|
212 |
+
margin-right: 2px; }
|
213 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
214 |
+
color: #333; }
|
215 |
+
|
216 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
217 |
+
float: right; }
|
218 |
+
|
219 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
220 |
+
margin-left: 5px;
|
221 |
+
margin-right: auto; }
|
222 |
+
|
223 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
224 |
+
margin-left: 2px;
|
225 |
+
margin-right: auto; }
|
226 |
+
|
227 |
+
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
228 |
+
border: solid black 1px;
|
229 |
+
outline: 0; }
|
230 |
+
|
231 |
+
.select2-container--default.select2-container--disabled .select2-selection--multiple {
|
232 |
+
background-color: #eee;
|
233 |
+
cursor: default; }
|
234 |
+
|
235 |
+
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
236 |
+
display: none; }
|
237 |
+
|
238 |
+
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
|
239 |
+
border-top-left-radius: 0;
|
240 |
+
border-top-right-radius: 0; }
|
241 |
+
|
242 |
+
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
|
243 |
+
border-bottom-left-radius: 0;
|
244 |
+
border-bottom-right-radius: 0; }
|
245 |
+
|
246 |
+
.select2-container--default .select2-search--dropdown .select2-search__field {
|
247 |
+
border: 1px solid #aaa; }
|
248 |
+
|
249 |
+
.select2-container--default .select2-search--inline .select2-search__field {
|
250 |
+
background: transparent;
|
251 |
+
border: none;
|
252 |
+
outline: 0;
|
253 |
+
box-shadow: none;
|
254 |
+
-webkit-appearance: textfield; }
|
255 |
+
|
256 |
+
.select2-container--default .select2-results > .select2-results__options {
|
257 |
+
max-height: 200px;
|
258 |
+
overflow-y: auto; }
|
259 |
+
|
260 |
+
.select2-container--default .select2-results__option[role=group] {
|
261 |
+
padding: 0; }
|
262 |
+
|
263 |
+
.select2-container--default .select2-results__option[aria-disabled=true] {
|
264 |
+
color: #999; }
|
265 |
+
|
266 |
+
.select2-container--default .select2-results__option[aria-selected=true] {
|
267 |
+
background-color: #ddd; }
|
268 |
+
|
269 |
+
.select2-container--default .select2-results__option .select2-results__option {
|
270 |
+
padding-left: 1em; }
|
271 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
272 |
+
padding-left: 0; }
|
273 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
274 |
+
margin-left: -1em;
|
275 |
+
padding-left: 2em; }
|
276 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
277 |
+
margin-left: -2em;
|
278 |
+
padding-left: 3em; }
|
279 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
280 |
+
margin-left: -3em;
|
281 |
+
padding-left: 4em; }
|
282 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
283 |
+
margin-left: -4em;
|
284 |
+
padding-left: 5em; }
|
285 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
286 |
+
margin-left: -5em;
|
287 |
+
padding-left: 6em; }
|
288 |
+
|
289 |
+
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
290 |
+
background-color: #5897fb;
|
291 |
+
color: white; }
|
292 |
+
|
293 |
+
.select2-container--default .select2-results__group {
|
294 |
+
cursor: default;
|
295 |
+
display: block;
|
296 |
+
padding: 6px; }
|
297 |
+
|
298 |
+
.select2-container--classic .select2-selection--single {
|
299 |
+
background-color: #f7f7f7;
|
300 |
+
border: 1px solid #aaa;
|
301 |
+
border-radius: 4px;
|
302 |
+
outline: 0;
|
303 |
+
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
|
304 |
+
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
|
305 |
+
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
|
306 |
+
background-repeat: repeat-x;
|
307 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
308 |
+
.select2-container--classic .select2-selection--single:focus {
|
309 |
+
border: 1px solid #5897fb; }
|
310 |
+
.select2-container--classic .select2-selection--single .select2-selection__rendered {
|
311 |
+
color: #444;
|
312 |
+
line-height: 28px; }
|
313 |
+
.select2-container--classic .select2-selection--single .select2-selection__clear {
|
314 |
+
cursor: pointer;
|
315 |
+
float: right;
|
316 |
+
font-weight: bold;
|
317 |
+
margin-right: 10px; }
|
318 |
+
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
|
319 |
+
color: #999; }
|
320 |
+
.select2-container--classic .select2-selection--single .select2-selection__arrow {
|
321 |
+
background-color: #ddd;
|
322 |
+
border: none;
|
323 |
+
border-left: 1px solid #aaa;
|
324 |
+
border-top-right-radius: 4px;
|
325 |
+
border-bottom-right-radius: 4px;
|
326 |
+
height: 26px;
|
327 |
+
position: absolute;
|
328 |
+
top: 1px;
|
329 |
+
right: 1px;
|
330 |
+
width: 20px;
|
331 |
+
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
332 |
+
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
333 |
+
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
|
334 |
+
background-repeat: repeat-x;
|
335 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
|
336 |
+
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
|
337 |
+
border-color: #888 transparent transparent transparent;
|
338 |
+
border-style: solid;
|
339 |
+
border-width: 5px 4px 0 4px;
|
340 |
+
height: 0;
|
341 |
+
left: 50%;
|
342 |
+
margin-left: -4px;
|
343 |
+
margin-top: -2px;
|
344 |
+
position: absolute;
|
345 |
+
top: 50%;
|
346 |
+
width: 0; }
|
347 |
+
|
348 |
+
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
349 |
+
float: left; }
|
350 |
+
|
351 |
+
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
352 |
+
border: none;
|
353 |
+
border-right: 1px solid #aaa;
|
354 |
+
border-radius: 0;
|
355 |
+
border-top-left-radius: 4px;
|
356 |
+
border-bottom-left-radius: 4px;
|
357 |
+
left: 1px;
|
358 |
+
right: auto; }
|
359 |
+
|
360 |
+
.select2-container--classic.select2-container--open .select2-selection--single {
|
361 |
+
border: 1px solid #5897fb; }
|
362 |
+
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
|
363 |
+
background: transparent;
|
364 |
+
border: none; }
|
365 |
+
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
366 |
+
border-color: transparent transparent #888 transparent;
|
367 |
+
border-width: 0 4px 5px 4px; }
|
368 |
+
|
369 |
+
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
|
370 |
+
border-top: none;
|
371 |
+
border-top-left-radius: 0;
|
372 |
+
border-top-right-radius: 0;
|
373 |
+
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
|
374 |
+
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
|
375 |
+
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
|
376 |
+
background-repeat: repeat-x;
|
377 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
378 |
+
|
379 |
+
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
|
380 |
+
border-bottom: none;
|
381 |
+
border-bottom-left-radius: 0;
|
382 |
+
border-bottom-right-radius: 0;
|
383 |
+
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
|
384 |
+
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
|
385 |
+
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
|
386 |
+
background-repeat: repeat-x;
|
387 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
|
388 |
+
|
389 |
+
.select2-container--classic .select2-selection--multiple {
|
390 |
+
background-color: white;
|
391 |
+
border: 1px solid #aaa;
|
392 |
+
border-radius: 4px;
|
393 |
+
cursor: text;
|
394 |
+
outline: 0; }
|
395 |
+
.select2-container--classic .select2-selection--multiple:focus {
|
396 |
+
border: 1px solid #5897fb; }
|
397 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
|
398 |
+
list-style: none;
|
399 |
+
margin: 0;
|
400 |
+
padding: 0 5px; }
|
401 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
|
402 |
+
display: none; }
|
403 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
|
404 |
+
background-color: #e4e4e4;
|
405 |
+
border: 1px solid #aaa;
|
406 |
+
border-radius: 4px;
|
407 |
+
cursor: default;
|
408 |
+
float: left;
|
409 |
+
margin-right: 5px;
|
410 |
+
margin-top: 5px;
|
411 |
+
padding: 0 5px; }
|
412 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
|
413 |
+
color: #888;
|
414 |
+
cursor: pointer;
|
415 |
+
display: inline-block;
|
416 |
+
font-weight: bold;
|
417 |
+
margin-right: 2px; }
|
418 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
|
419 |
+
color: #555; }
|
420 |
+
|
421 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
422 |
+
float: right; }
|
423 |
+
|
424 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
425 |
+
margin-left: 5px;
|
426 |
+
margin-right: auto; }
|
427 |
+
|
428 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
429 |
+
margin-left: 2px;
|
430 |
+
margin-right: auto; }
|
431 |
+
|
432 |
+
.select2-container--classic.select2-container--open .select2-selection--multiple {
|
433 |
+
border: 1px solid #5897fb; }
|
434 |
+
|
435 |
+
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
|
436 |
+
border-top: none;
|
437 |
+
border-top-left-radius: 0;
|
438 |
+
border-top-right-radius: 0; }
|
439 |
+
|
440 |
+
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
|
441 |
+
border-bottom: none;
|
442 |
+
border-bottom-left-radius: 0;
|
443 |
+
border-bottom-right-radius: 0; }
|
444 |
+
|
445 |
+
.select2-container--classic .select2-search--dropdown .select2-search__field {
|
446 |
+
border: 1px solid #aaa;
|
447 |
+
outline: 0; }
|
448 |
+
|
449 |
+
.select2-container--classic .select2-search--inline .select2-search__field {
|
450 |
+
outline: 0;
|
451 |
+
box-shadow: none; }
|
452 |
+
|
453 |
+
.select2-container--classic .select2-dropdown {
|
454 |
+
background-color: white;
|
455 |
+
border: 1px solid transparent; }
|
456 |
+
|
457 |
+
.select2-container--classic .select2-dropdown--above {
|
458 |
+
border-bottom: none; }
|
459 |
+
|
460 |
+
.select2-container--classic .select2-dropdown--below {
|
461 |
+
border-top: none; }
|
462 |
+
|
463 |
+
.select2-container--classic .select2-results > .select2-results__options {
|
464 |
+
max-height: 200px;
|
465 |
+
overflow-y: auto; }
|
466 |
+
|
467 |
+
.select2-container--classic .select2-results__option[role=group] {
|
468 |
+
padding: 0; }
|
469 |
+
|
470 |
+
.select2-container--classic .select2-results__option[aria-disabled=true] {
|
471 |
+
color: grey; }
|
472 |
+
|
473 |
+
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
|
474 |
+
background-color: #3875d7;
|
475 |
+
color: white; }
|
476 |
+
|
477 |
+
.select2-container--classic .select2-results__group {
|
478 |
+
cursor: default;
|
479 |
+
display: block;
|
480 |
+
padding: 6px; }
|
481 |
+
|
482 |
+
.select2-container--classic.select2-container--open .select2-dropdown {
|
483 |
+
border-color: #5897fb; }
|
includes/admin/meta-box/css/slider.css
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-slider {
|
2 |
+
display: inline-block;
|
3 |
+
vertical-align: middle;
|
4 |
+
width: 50%;
|
5 |
+
}
|
6 |
+
.mashsb-rwmb-slider-value-label {
|
7 |
+
margin-left: 10px;
|
8 |
+
vertical-align: middle;
|
9 |
+
}
|
10 |
+
/* Fix slider handle being visible through jQuery panel */
|
11 |
+
.ui-slider .ui-slider-handle {
|
12 |
+
z-index: 1;
|
13 |
+
}
|
includes/admin/meta-box/css/style-rtl.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-label, .mashsb-rwmb-input{
|
2 |
+
float: right;
|
3 |
+
}
|
4 |
+
label.error{
|
5 |
+
padding-left: auto;
|
6 |
+
padding-right: 3px;
|
7 |
+
}
|
includes/admin/meta-box/css/style.css
ADDED
@@ -0,0 +1,328 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* =Styles for 'normal' meta boxes
|
2 |
+
-------------------------------------------------------------- */
|
3 |
+
|
4 |
+
/* Clearfix for field */
|
5 |
+
.mashsb-rwmb-field:before,
|
6 |
+
.mashsb-rwmb-field:after {
|
7 |
+
content: " ";
|
8 |
+
display: table;
|
9 |
+
}
|
10 |
+
.mashsb-rwmb-field:after {
|
11 |
+
clear: both;
|
12 |
+
}
|
13 |
+
.mashsb-rwmb-field {
|
14 |
+
*zoom: 1;
|
15 |
+
|
16 |
+
margin: 0px;
|
17 |
+
}
|
18 |
+
.mashsb-rwmb-label,
|
19 |
+
.mashsb-rwmb-input {
|
20 |
+
vertical-align: top;
|
21 |
+
float: left;
|
22 |
+
}
|
23 |
+
.mashsb-rwmb-label.required > span {
|
24 |
+
color: #c00;
|
25 |
+
font-weight: bold;
|
26 |
+
}
|
27 |
+
|
28 |
+
/* 75% if field has label, 100% if no label */
|
29 |
+
.mashsb-rwmb-input {
|
30 |
+
width: 100%;
|
31 |
+
}
|
32 |
+
.mashsb-rwmb-label ~ .mashsb-rwmb-input {
|
33 |
+
width: 75%;
|
34 |
+
}
|
35 |
+
.mashsb-rwmb-input h4 {
|
36 |
+
margin: 0;
|
37 |
+
}
|
38 |
+
.mashsb-rwmb-textarea {
|
39 |
+
resize: vertical;
|
40 |
+
}
|
41 |
+
|
42 |
+
/* Clone */
|
43 |
+
.mashsb-rwmb-clone {
|
44 |
+
min-height: 24px;
|
45 |
+
margin-bottom: 10px;
|
46 |
+
position: relative;
|
47 |
+
clear: both;
|
48 |
+
background: #fff;
|
49 |
+
}
|
50 |
+
.mashsb-rwmb-clone > input[type='radio'],
|
51 |
+
.mashsb-rwmb-clone > input[type='checkbox'] {
|
52 |
+
margin: 6px 0 0 4px;
|
53 |
+
}
|
54 |
+
.mashsb-rwmb-button.remove-clone {
|
55 |
+
text-decoration: none;
|
56 |
+
color: #fff;
|
57 |
+
background: #c00;
|
58 |
+
border-radius: 50%;
|
59 |
+
display: inline-block;
|
60 |
+
position: absolute;
|
61 |
+
top: 0;
|
62 |
+
right: 0;
|
63 |
+
}
|
64 |
+
.remove-clone:focus {
|
65 |
+
outline: 0;
|
66 |
+
box-shadow: none;
|
67 |
+
}
|
68 |
+
.mashsb-rwmb-button.add-clone {
|
69 |
+
margin-top: 5px;
|
70 |
+
}
|
71 |
+
.mashsb-rwmb-clone-icon {
|
72 |
+
cursor: move;
|
73 |
+
background: url(../img/drag_icon.gif) no-repeat;
|
74 |
+
height: 23px;
|
75 |
+
width: 15px;
|
76 |
+
vertical-align: top;
|
77 |
+
display: inline-block;
|
78 |
+
position: absolute;
|
79 |
+
left: 0;
|
80 |
+
top: 0;
|
81 |
+
}
|
82 |
+
.mashsb-rwmb-clone-placeholder {
|
83 |
+
background: #fcf8e3;
|
84 |
+
border: 1px solid #faebcc;
|
85 |
+
display: block;
|
86 |
+
}
|
87 |
+
.mashsb-rwmb-sort-clone {
|
88 |
+
padding-left: 15px;
|
89 |
+
}
|
90 |
+
|
91 |
+
/* jQuery validation */
|
92 |
+
label.error {
|
93 |
+
padding-left: 3px;
|
94 |
+
color: red;
|
95 |
+
}
|
96 |
+
input.error,
|
97 |
+
textarea.error,
|
98 |
+
select.error {
|
99 |
+
border-color: #c00 !important;
|
100 |
+
background: #ffebe8 !important;
|
101 |
+
}
|
102 |
+
|
103 |
+
|
104 |
+
/* =Styles for 'side' meta boxes
|
105 |
+
-------------------------------------------------------------- */
|
106 |
+
|
107 |
+
#side-sortables .mashsb-rwmb-label,
|
108 |
+
#side-sortables .mashsb-rwmb-input {
|
109 |
+
width: 100%;
|
110 |
+
}
|
111 |
+
|
112 |
+
/* Mashshare Custom Settings
|
113 |
+
-------------------------------------------------------------- */
|
114 |
+
|
115 |
+
#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-og-image .mashsb-rwmb-input ul{
|
116 |
+
min-height:10px;
|
117 |
+
}
|
118 |
+
|
119 |
+
.mashsb-rwmb-meta-box {
|
120 |
+
margin-left:10px;
|
121 |
+
}
|
122 |
+
|
123 |
+
@font-face {
|
124 |
+
font-family: 'mashsb-font';
|
125 |
+
src: url('data:application/octet-stream;base64,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') format('woff'),
|
126 |
+
url('data:application/octet-stream;base64,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') format('truetype');
|
127 |
+
}
|
128 |
+
|
129 |
+
.mashicon-share:before {
|
130 |
+
font-family: 'mashsb-font';
|
131 |
+
content: '\e81E';
|
132 |
+
}
|
133 |
+
.mashicon-pinterest:before {
|
134 |
+
font-family: 'mashsb-font';
|
135 |
+
content: '\e802';
|
136 |
+
}
|
137 |
+
.mashicon-twitter:before {
|
138 |
+
font-family: 'mashsb-font';
|
139 |
+
content: '\e807';
|
140 |
+
}
|
141 |
+
|
142 |
+
.mashsb-rwmb-label label {
|
143 |
+
font-weight: bold;
|
144 |
+
color: #363636;
|
145 |
+
font-size: 18px;
|
146 |
+
}
|
147 |
+
|
148 |
+
#mashsb_meta .mashsb-rwmb-label,
|
149 |
+
#mashsb_meta .mashsb-rwmb-input {
|
150 |
+
width: 100%;
|
151 |
+
padding: 10px 0;
|
152 |
+
}
|
153 |
+
|
154 |
+
#mashsb_meta .button {
|
155 |
+
background-color: #00ACEE;
|
156 |
+
color: #fff;
|
157 |
+
-webkit-box-shadow: none;
|
158 |
+
box-shadow: none;
|
159 |
+
border: none;
|
160 |
+
padding: 10px 0;
|
161 |
+
height: 45px;
|
162 |
+
font-style: italic;
|
163 |
+
font-weight: lighter;
|
164 |
+
margin-bottom: 15px;
|
165 |
+
text-transform: uppercase;
|
166 |
+
letter-spacing: 0.5px;
|
167 |
+
width: 100%;
|
168 |
+
text-align: center;
|
169 |
+
}
|
170 |
+
|
171 |
+
#mashsb_meta .button-small {
|
172 |
+
background-color: #00ACEE;
|
173 |
+
color: #fff;
|
174 |
+
-webkit-box-shadow: none;
|
175 |
+
box-shadow: none;
|
176 |
+
border: none;
|
177 |
+
padding: 5px;
|
178 |
+
height: 30px;
|
179 |
+
font-style: italic;
|
180 |
+
font-weight: lighter;
|
181 |
+
margin-bottom: 15px;
|
182 |
+
text-transform: uppercase;
|
183 |
+
letter-spacing: 1px;
|
184 |
+
text-align: center;
|
185 |
+
text-decoration: none;
|
186 |
+
border-radius:3px;
|
187 |
+
}
|
188 |
+
|
189 |
+
#mashsb_meta textarea {
|
190 |
+
width:100%;
|
191 |
+
}
|
192 |
+
|
193 |
+
#mashsb_meta .button:hover,
|
194 |
+
#mashsb_meta .button-small:hover {
|
195 |
+
background-color: #0096D0;
|
196 |
+
}
|
197 |
+
|
198 |
+
.mashsb-rwmb-field.mashsb-rwmb-textarea-wrapper.mashsb-og-title,
|
199 |
+
.mashsb-rwmb-field.mashsb-rwmb-textarea-wrapper.mashsb-og-desc,
|
200 |
+
.mashsb-rwmb-field.mashsb-rwmb-textarea-wrapper.mashsb-pinterest-desc,
|
201 |
+
.mashsb-rwmb-field.mashsb-rwmb-textarea-wrapper.mashsb-custom-tweet {
|
202 |
+
width: 60%;
|
203 |
+
float: left;
|
204 |
+
}
|
205 |
+
.mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-og-image,
|
206 |
+
.mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-pinterest-image {
|
207 |
+
width: 30%;
|
208 |
+
float: left;
|
209 |
+
margin-right: 3%;
|
210 |
+
}
|
211 |
+
|
212 |
+
#mashsb_meta .mashsb-rwmb-divider-wrapper hr {
|
213 |
+
border: none;
|
214 |
+
}
|
215 |
+
|
216 |
+
#mashsb_meta .mashsb-rwmb-media-list.ui-sortable
|
217 |
+
{
|
218 |
+
display: block;
|
219 |
+
width: 100%;
|
220 |
+
background-size: contain;
|
221 |
+
background-position-x: center;
|
222 |
+
background-repeat: no-repeat;
|
223 |
+
background-color: #eee;
|
224 |
+
border-radius: 4px;
|
225 |
+
}
|
226 |
+
|
227 |
+
#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-og-image .mashsb-rwmb-input ul {
|
228 |
+
background-image: url('../../../../assets/images/og_placeholder_1200_627_v2.png');
|
229 |
+
}
|
230 |
+
#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-pinterest-image .mashsb-rwmb-input ul {
|
231 |
+
background-image: url('../../../../assets/images/pinterest_placeholder_600_900.png');
|
232 |
+
}
|
233 |
+
|
234 |
+
#mashsb_meta .mashsb-rwmb-media-status {
|
235 |
+
display:none;
|
236 |
+
}
|
237 |
+
|
238 |
+
.mashsb_counter {
|
239 |
+
background-color: #666;
|
240 |
+
display: inline-block;
|
241 |
+
float: right;
|
242 |
+
padding: 5px 15px;
|
243 |
+
border-radius: 0px 0px 3px 3px;
|
244 |
+
color: #fff;
|
245 |
+
font-weight: bold;
|
246 |
+
margin-top: -4px;
|
247 |
+
}
|
248 |
+
|
249 |
+
.mashsb_exceeded {
|
250 |
+
background-color: red;
|
251 |
+
}
|
252 |
+
|
253 |
+
.mashsb-rwmb-images li {
|
254 |
+
margin: 0 10px 10px 0;
|
255 |
+
float: left;
|
256 |
+
width: 100%;
|
257 |
+
height: 100%;
|
258 |
+
text-align: center;
|
259 |
+
cursor: move;
|
260 |
+
position: relative;
|
261 |
+
-webkit-transition: width .25s, opacity .25s, -webkit-opacity .25s;
|
262 |
+
transition: width .25s, opacity .25s;
|
263 |
+
}
|
264 |
+
|
265 |
+
.mashsb-rwmb-images img {
|
266 |
+
width: 100%;
|
267 |
+
height: 100%;
|
268 |
+
}
|
269 |
+
|
270 |
+
.mashsb-rwmb-image-item {
|
271 |
+
position: relative;
|
272 |
+
float: left;
|
273 |
+
padding: 0;
|
274 |
+
margin: 0 5px 5px 0;
|
275 |
+
box-sizing: border-box;
|
276 |
+
width: 100% !important;
|
277 |
+
}
|
278 |
+
|
279 |
+
.mashsb-rwmb-image-item .mashsb-rwmb-media-preview {
|
280 |
+
width: 100% !important;
|
281 |
+
}
|
282 |
+
|
283 |
+
.mashsb-rwmb-image-item img{
|
284 |
+
width:100%;
|
285 |
+
height:100%;
|
286 |
+
}
|
287 |
+
|
288 |
+
|
289 |
+
|
290 |
+
.mashsb-helper {
|
291 |
+
border-radius: 50%;
|
292 |
+
border: 2px solid #fff;
|
293 |
+
background-color: #0097df;
|
294 |
+
width: 15px;
|
295 |
+
height: 15px;
|
296 |
+
display: inline-block;
|
297 |
+
position: relative;
|
298 |
+
top: 4px;
|
299 |
+
margin-top: -4px;
|
300 |
+
cursor: pointer;
|
301 |
+
margin-left: 2px;
|
302 |
+
}
|
303 |
+
|
304 |
+
.mashsb-helper:after {
|
305 |
+
height: 20px;
|
306 |
+
top:-2px;
|
307 |
+
font-family: sans-serif;
|
308 |
+
content: "?";
|
309 |
+
color: #fff;
|
310 |
+
font-size: 11px;
|
311 |
+
font-weight: bold;
|
312 |
+
left: 4px;
|
313 |
+
position: absolute;
|
314 |
+
}
|
315 |
+
|
316 |
+
.mashsb-message{
|
317 |
+
display:block;
|
318 |
+
padding: 10px;
|
319 |
+
border: 1px solid #FBFBFB;
|
320 |
+
border-radius: 2px;
|
321 |
+
background-color: #F8F8F8;
|
322 |
+
position: absolute;
|
323 |
+
max-width: 500px;
|
324 |
+
z-index: 9999;
|
325 |
+
display: none;
|
326 |
+
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
|
327 |
+
font-weight: normal;
|
328 |
+
}
|
includes/admin/meta-box/css/upload.css
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-upload-area {
|
2 |
+
position: relative;
|
3 |
+
padding-top: 0;
|
4 |
+
margin-top: 0;
|
5 |
+
height: 200px;
|
6 |
+
border: 4px dashed #ddd;
|
7 |
+
}
|
8 |
+
|
9 |
+
.mashsb-rwmb-upload-inside {
|
10 |
+
text-align: center;
|
11 |
+
position: absolute;
|
12 |
+
left: 0;
|
13 |
+
right:0;
|
14 |
+
top: 50%;
|
15 |
+
transform: translateY(-50%);
|
16 |
+
-webkit-transform: translateY(-50%);
|
17 |
+
-moz-transform: translateY(-50%);
|
18 |
+
-ms-transform: translateY(-50%);
|
19 |
+
}
|
20 |
+
|
21 |
+
.mashsb-rwmb-upload-inside p, .mashsb-rwmb-upload-inside h3 {
|
22 |
+
text-align: center;
|
23 |
+
}
|
24 |
+
|
25 |
+
.mashsb-rwmb-upload-inside h3 {
|
26 |
+
font-size: 20px;
|
27 |
+
line-height: 28px;
|
28 |
+
font-weight: 400;
|
29 |
+
margin: 0;
|
30 |
+
}
|
includes/admin/meta-box/css/wysiwyg.css
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mashsb-rwmb-field .mceIframeContainer {
|
2 |
+
background: #fff;
|
3 |
+
}
|
4 |
+
.mashsb-rwmb-wysiwyg-clone {
|
5 |
+
padding-top: 20px;
|
6 |
+
}
|
includes/admin/meta-box/img/drag_icon.gif
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_flat_0_aaaaaa_40x100.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_flat_75_ffffff_40x100.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_glass_55_fbf9ee_1x400.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_glass_65_ffffff_1x400.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_glass_75_dadada_1x400.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_glass_75_e6e6e6_1x400.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_glass_95_fef1ec_1x400.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-bg_highlight-soft_75_cccccc_1x100.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-icons_222222_256x240.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-icons_2e83ff_256x240.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-icons_454545_256x240.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-icons_888888_256x240.png
ADDED
Binary file
|
includes/admin/meta-box/img/jqueryui/ui-icons_cd0a0a_256x240.png
ADDED
Binary file
|
includes/admin/meta-box/img/loader.gif
ADDED
Binary file
|
includes/admin/meta-box/inc/core.php
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The plugin core class which initialize plugin's code.
|
4 |
+
* @package Meta Box
|
5 |
+
*/
|
6 |
+
|
7 |
+
/**
|
8 |
+
* The Meta Box core class.
|
9 |
+
* @package Meta Box
|
10 |
+
*/
|
11 |
+
class MASHSB_RWMB_Core
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* Stores all registered meta boxes
|
15 |
+
* @var array
|
16 |
+
*/
|
17 |
+
private static $meta_boxes = null;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Register hooks.
|
21 |
+
*/
|
22 |
+
public function __construct()
|
23 |
+
{
|
24 |
+
$plugin = 'meta-box/meta-box.php';
|
25 |
+
add_filter( "plugin_action_links_$plugin", array( $this, 'plugin_links' ) );
|
26 |
+
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
|
27 |
+
add_action( 'admin_init', array( $this, 'register_meta_boxes' ) );
|
28 |
+
add_action( 'edit_page_form', array( $this, 'fix_page_template' ) );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Add links to Documentation and Extensions in plugin's list of action links.
|
33 |
+
*
|
34 |
+
* @since 4.3.11
|
35 |
+
* @param array $links Array of action links
|
36 |
+
* @return array
|
37 |
+
*/
|
38 |
+
public function plugin_links( $links )
|
39 |
+
{
|
40 |
+
$links[] = '<a href="https://metabox.io/docs/">' . __( 'Documentation', 'meta-box' ) . '</a>';
|
41 |
+
$links[] = '<a href="https://metabox.io/plugins/">' . __( 'Extensions', 'meta-box' ) . '</a>';
|
42 |
+
return $links;
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Load plugin translation.
|
47 |
+
*/
|
48 |
+
public function load_textdomain()
|
49 |
+
{
|
50 |
+
load_plugin_textdomain( 'meta-box', false, plugin_basename( MASHSB_RWMB_DIR ) . '/lang/' );
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Register meta boxes.
|
55 |
+
* Advantages:
|
56 |
+
* - prevents incorrect hook.
|
57 |
+
* - no need to check for class existences.
|
58 |
+
*/
|
59 |
+
public function register_meta_boxes()
|
60 |
+
{
|
61 |
+
$meta_boxes = self::get_meta_boxes();
|
62 |
+
foreach ( $meta_boxes as $meta_box )
|
63 |
+
{
|
64 |
+
new MASHSB_RW_Meta_Box( $meta_box );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Get registered meta boxes via a filter.
|
70 |
+
* Advantages:
|
71 |
+
* - prevents duplicated global variables.
|
72 |
+
* - allows users to remove/hide registered meta boxes.
|
73 |
+
*/
|
74 |
+
public static function get_meta_boxes()
|
75 |
+
{
|
76 |
+
if ( null === self::$meta_boxes )
|
77 |
+
{
|
78 |
+
self::$meta_boxes = apply_filters( 'mashsb_rwmb_meta_boxes', array() );
|
79 |
+
self::$meta_boxes = empty( self::$meta_boxes ) || ! is_array( self::$meta_boxes ) ? array() : self::$meta_boxes;
|
80 |
+
}
|
81 |
+
return self::$meta_boxes;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* WordPress will prevent post data saving if a page template has been selected that does not exist
|
86 |
+
* This is especially a problem when switching to our theme, and old page templates are in the post data
|
87 |
+
* Unset the page template if the page does not exist to allow the post to save
|
88 |
+
*
|
89 |
+
* @param WP_Post $post
|
90 |
+
* @since 4.3.10
|
91 |
+
*/
|
92 |
+
public function fix_page_template( WP_Post $post )
|
93 |
+
{
|
94 |
+
$template = get_post_meta( $post->ID, '_wp_page_template', true );
|
95 |
+
$page_templates = wp_get_theme()->get_page_templates();
|
96 |
+
|
97 |
+
// If the template doesn't exists, remove the data to allow WordPress to save
|
98 |
+
if ( ! isset( $page_templates[$template] ) )
|
99 |
+
{
|
100 |
+
delete_post_meta( $post->ID, '_wp_page_template' );
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Apply various filters based on field type, id.
|
106 |
+
* Filters:
|
107 |
+
* - rwmb_{$name}
|
108 |
+
* - rwmb_{$field['type']}_{$name}
|
109 |
+
* - rwmb_{$field['id']}_{$name}
|
110 |
+
* @return mixed
|
111 |
+
*/
|
112 |
+
public static function filter()
|
113 |
+
{
|
114 |
+
$args = func_get_args();
|
115 |
+
|
116 |
+
// 3 first params must be: filter name, value, field. Other params will be used for filters.
|
117 |
+
$name = array_shift( $args );
|
118 |
+
$value = array_shift( $args );
|
119 |
+
$field = array_shift( $args );
|
120 |
+
|
121 |
+
// List of filters
|
122 |
+
$filters = array(
|
123 |
+
'rwmb_' . $name,
|
124 |
+
'rwmb_' . $field['type'] . '_' . $name,
|
125 |
+
);
|
126 |
+
if ( isset( $field['id'] ) )
|
127 |
+
{
|
128 |
+
$filters[] = 'rwmb_' . $field['id'] . '_' . $name;
|
129 |
+
}
|
130 |
+
|
131 |
+
// Filter params: value, field, other params. Note: value is changed after each run.
|
132 |
+
array_unshift( $args, $field );
|
133 |
+
foreach ( $filters as $filter )
|
134 |
+
{
|
135 |
+
$filter_args = $args;
|
136 |
+
array_unshift( $filter_args, $value );
|
137 |
+
$value = apply_filters_ref_array( $filter, $filter_args );
|
138 |
+
}
|
139 |
+
|
140 |
+
return $value;
|
141 |
+
}
|
142 |
+
}
|
includes/admin/meta-box/inc/field.php
ADDED
@@ -0,0 +1,495 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Base field class which defines all necessary methods.
|
4 |
+
* Fields must inherit this class and overwrite methods with its own.
|
5 |
+
*/
|
6 |
+
abstract class MASHSB_RWMB_Field
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Add actions
|
10 |
+
*
|
11 |
+
* @return void
|
12 |
+
*/
|
13 |
+
static function add_actions()
|
14 |
+
{
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Enqueue scripts and styles
|
19 |
+
*
|
20 |
+
* @return void
|
21 |
+
*/
|
22 |
+
static function admin_enqueue_scripts()
|
23 |
+
{
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Show field HTML
|
28 |
+
* Filters are put inside this method, not inside methods such as "meta", "html", "begin_html", etc.
|
29 |
+
* That ensures the returned value are always been applied filters
|
30 |
+
* This method is not meant to be overwritten in specific fields
|
31 |
+
*
|
32 |
+
* @param array $field
|
33 |
+
* @param bool $saved
|
34 |
+
*
|
35 |
+
* @return string
|
36 |
+
*/
|
37 |
+
static function show( $field, $saved )
|
38 |
+
{
|
39 |
+
$post = get_post();
|
40 |
+
$post_id = isset( $post->ID ) ? $post->ID : 0;
|
41 |
+
|
42 |
+
$field_class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
43 |
+
$meta = call_user_func( array( $field_class, 'meta' ), $post_id, $saved, $field );
|
44 |
+
$meta = MASHSB_RWMB_Core::filter( 'field_meta', $meta, $field, $saved );
|
45 |
+
|
46 |
+
$begin = call_user_func( array( $field_class, 'begin_html' ), $meta, $field );
|
47 |
+
$begin = MASHSB_RWMB_Core::filter( 'begin_html', $begin, $field, $meta );
|
48 |
+
|
49 |
+
// Separate code for cloneable and non-cloneable fields to make easy to maintain
|
50 |
+
|
51 |
+
// Cloneable fields
|
52 |
+
if ( $field['clone'] )
|
53 |
+
{
|
54 |
+
$field_html = '';
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Note: $meta must contain value so that the foreach loop runs!
|
58 |
+
* @see meta()
|
59 |
+
*/
|
60 |
+
foreach ( $meta as $index => $sub_meta )
|
61 |
+
{
|
62 |
+
$sub_field = $field;
|
63 |
+
$sub_field['field_name'] = $field['field_name'] . "[{$index}]";
|
64 |
+
if ( $index > 0 )
|
65 |
+
{
|
66 |
+
if ( isset( $sub_field['address_field'] ) )
|
67 |
+
$sub_field['address_field'] = $field['address_field'] . "_{$index}";
|
68 |
+
$sub_field['id'] = $field['id'] . "_{$index}";
|
69 |
+
}
|
70 |
+
if ( $field['multiple'] )
|
71 |
+
$sub_field['field_name'] .= '[]';
|
72 |
+
|
73 |
+
// Wrap field HTML in a div with class="mashsb-rwmb-clone" if needed
|
74 |
+
$class = "mashsb-rwmb-clone mashsb-rwmb-{$field['type']}-clone";
|
75 |
+
$sort_icon = '';
|
76 |
+
if ( $field['sort_clone'] )
|
77 |
+
{
|
78 |
+
$class .= ' mashsb-rwmb-sort-clone';
|
79 |
+
$sort_icon = "<a href='javascript:;' class='mashsb-rwmb-clone-icon'></a>";
|
80 |
+
}
|
81 |
+
$input_html = "<div class='$class'>" . $sort_icon;
|
82 |
+
|
83 |
+
// Call separated methods for displaying each type of field
|
84 |
+
$input_html .= call_user_func( array( $field_class, 'html' ), $sub_meta, $sub_field );
|
85 |
+
$input_html = MASHSB_RWMB_Core::filter( 'html', $input_html, $sub_field, $sub_meta );
|
86 |
+
|
87 |
+
// Remove clone button
|
88 |
+
$input_html .= call_user_func( array( $field_class, 'remove_clone_button' ), $sub_field );
|
89 |
+
|
90 |
+
$input_html .= '</div>';
|
91 |
+
|
92 |
+
$field_html .= $input_html;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
// Non-cloneable fields
|
96 |
+
else
|
97 |
+
{
|
98 |
+
// Call separated methods for displaying each type of field
|
99 |
+
$field_html = call_user_func( array( $field_class, 'html' ), $meta, $field );
|
100 |
+
$field_html = MASHSB_RWMB_Core::filter( 'html', $field_html, $field, $meta );
|
101 |
+
}
|
102 |
+
|
103 |
+
$end = call_user_func( array( $field_class, 'end_html' ), $meta, $field );
|
104 |
+
$end = MASHSB_RWMB_Core::filter( 'end_html', $end, $field, $meta );
|
105 |
+
|
106 |
+
$html = MASHSB_RWMB_Core::filter( 'wrapper_html', "$begin$field_html$end", $field, $meta );
|
107 |
+
|
108 |
+
// Display label and input in DIV and allow user-defined classes to be appended
|
109 |
+
$classes = "mashsb-rwmb-field mashsb-rwmb-{$field['type']}-wrapper " . $field['class'] ;
|
110 |
+
if ( 'hidden' === $field['type'] )
|
111 |
+
$classes .= ' hidden';
|
112 |
+
if ( ! empty( $field['required'] ) )
|
113 |
+
$classes .= ' required';
|
114 |
+
|
115 |
+
$outer_html = sprintf(
|
116 |
+
$field['before'] . '<div class="%s">%s</div>' . $field['after'],
|
117 |
+
trim( $classes ),
|
118 |
+
$html
|
119 |
+
);
|
120 |
+
$outer_html = MASHSB_RWMB_Core::filter( 'outer_html', $outer_html, $field, $meta );
|
121 |
+
|
122 |
+
echo $outer_html;
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Get field HTML
|
127 |
+
*
|
128 |
+
* @param mixed $meta
|
129 |
+
* @param array $field
|
130 |
+
*
|
131 |
+
* @return string
|
132 |
+
*/
|
133 |
+
static function html( $meta, $field )
|
134 |
+
{
|
135 |
+
return '';
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Show begin HTML markup for fields
|
140 |
+
*
|
141 |
+
* @param mixed $meta
|
142 |
+
* @param array $field
|
143 |
+
*
|
144 |
+
* @return string
|
145 |
+
*/
|
146 |
+
static function begin_html( $meta, $field )
|
147 |
+
{
|
148 |
+
$field_label = '';
|
149 |
+
if ( $field['name'] )
|
150 |
+
{
|
151 |
+
$field_label = sprintf(
|
152 |
+
'<div class="mashsb-rwmb-label"><label for="%s">%s</label></div>',
|
153 |
+
$field['id'],
|
154 |
+
$field['name']
|
155 |
+
);
|
156 |
+
}
|
157 |
+
|
158 |
+
$data_max_clone = is_numeric( $field['max_clone'] ) && $field['max_clone'] > 1 ? ' data-max-clone=' . $field['max_clone'] : '';
|
159 |
+
|
160 |
+
$input_open = sprintf(
|
161 |
+
'<div class="mashsb-rwmb-input"%s>',
|
162 |
+
$data_max_clone
|
163 |
+
);
|
164 |
+
|
165 |
+
return $field_label . $input_open;
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Show end HTML markup for fields
|
170 |
+
*
|
171 |
+
* @param mixed $meta
|
172 |
+
* @param array $field
|
173 |
+
*
|
174 |
+
* @return string
|
175 |
+
*/
|
176 |
+
static function end_html( $meta, $field )
|
177 |
+
{
|
178 |
+
$button = $field['clone'] ? call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'add_clone_button' ), $field ) : '';
|
179 |
+
$desc = $field['desc'] ? "<p id='{$field['id']}_description' class='description'>{$field['desc']}</p>" : '';
|
180 |
+
|
181 |
+
// Closes the container
|
182 |
+
$html = "{$button}{$desc}</div>";
|
183 |
+
|
184 |
+
return $html;
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Add clone button
|
189 |
+
*
|
190 |
+
* @param array $field Field parameter
|
191 |
+
*
|
192 |
+
* @return string $html
|
193 |
+
*/
|
194 |
+
static function add_clone_button( $field )
|
195 |
+
{
|
196 |
+
$text = apply_filters( 'rwmb_add_clone_button_text', __( '+ Add more', 'meta-box' ), $field );
|
197 |
+
return "<a href='#' class='mashsb-rwmb-button button-primary add-clone'>$text</a>";
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Remove clone button
|
202 |
+
*
|
203 |
+
* @param array $field Field parameter
|
204 |
+
*
|
205 |
+
* @return string $html
|
206 |
+
*/
|
207 |
+
static function remove_clone_button( $field )
|
208 |
+
{
|
209 |
+
$icon = '<i class="dashicons dashicons-minus"></i>';
|
210 |
+
$text = apply_filters( 'rwmb_remove_clone_button_text', $icon, $field );
|
211 |
+
return "<a href='#' class='mashsb-rwmb-button remove-clone'>$text</a>";
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Get meta value
|
216 |
+
*
|
217 |
+
* @param int $post_id
|
218 |
+
* @param bool $saved
|
219 |
+
* @param array $field
|
220 |
+
*
|
221 |
+
* @return mixed
|
222 |
+
*/
|
223 |
+
static function meta( $post_id, $saved, $field )
|
224 |
+
{
|
225 |
+
/**
|
226 |
+
* For special fields like 'divider', 'heading' which don't have ID, just return empty string
|
227 |
+
* to prevent notice error when displaying fields
|
228 |
+
*/
|
229 |
+
if ( empty( $field['id'] ) )
|
230 |
+
return '';
|
231 |
+
|
232 |
+
$single = $field['clone'] || ! $field['multiple'];
|
233 |
+
$meta = get_post_meta( $post_id, $field['id'], $single );
|
234 |
+
|
235 |
+
// Use $field['std'] only when the meta box hasn't been saved (i.e. the first time we run)
|
236 |
+
$meta = ( ! $saved && '' === $meta || array() === $meta ) ? $field['std'] : $meta;
|
237 |
+
|
238 |
+
// Escape attributes
|
239 |
+
$meta = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'esc_meta' ), $meta );
|
240 |
+
|
241 |
+
// Make sure meta value is an array for clonable and multiple fields
|
242 |
+
if ( $field['clone'] || $field['multiple'] )
|
243 |
+
{
|
244 |
+
if ( empty( $meta ) || ! is_array( $meta ) )
|
245 |
+
{
|
246 |
+
/**
|
247 |
+
* Note: if field is clonable, $meta must be an array with values
|
248 |
+
* so that the foreach loop in self::show() runs properly
|
249 |
+
* @see self::show()
|
250 |
+
*/
|
251 |
+
$meta = $field['clone'] ? array( '' ) : array();
|
252 |
+
}
|
253 |
+
}
|
254 |
+
|
255 |
+
return $meta;
|
256 |
+
}
|
257 |
+
|
258 |
+
/**
|
259 |
+
* Escape meta for field output
|
260 |
+
*
|
261 |
+
* @param mixed $meta
|
262 |
+
*
|
263 |
+
* @return mixed
|
264 |
+
*/
|
265 |
+
static function esc_meta( $meta )
|
266 |
+
{
|
267 |
+
return is_array( $meta ) ? array_map( __METHOD__, $meta ) : esc_attr( $meta );
|
268 |
+
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Set value of meta before saving into database
|
272 |
+
*
|
273 |
+
* @param mixed $new
|
274 |
+
* @param mixed $old
|
275 |
+
* @param int $post_id
|
276 |
+
* @param array $field
|
277 |
+
*
|
278 |
+
* @return int
|
279 |
+
*/
|
280 |
+
static function value( $new, $old, $post_id, $field )
|
281 |
+
{
|
282 |
+
return $new;
|
283 |
+
}
|
284 |
+
|
285 |
+
/**
|
286 |
+
* Save meta value
|
287 |
+
*
|
288 |
+
* @param $new
|
289 |
+
* @param $old
|
290 |
+
* @param $post_id
|
291 |
+
* @param $field
|
292 |
+
*/
|
293 |
+
static function save( $new, $old, $post_id, $field )
|
294 |
+
{
|
295 |
+
$name = $field['id'];
|
296 |
+
|
297 |
+
// Remove post meta if it's empty
|
298 |
+
if ( '' === $new || array() === $new )
|
299 |
+
{
|
300 |
+
delete_post_meta( $post_id, $name );
|
301 |
+
return;
|
302 |
+
}
|
303 |
+
|
304 |
+
// If field is cloneable, value is saved as a single entry in the database
|
305 |
+
if ( $field['clone'] )
|
306 |
+
{
|
307 |
+
// Reset indexes
|
308 |
+
$new = array_values( (array) $new );
|
309 |
+
foreach ( $new as $k => $v )
|
310 |
+
{
|
311 |
+
if ( '' === $v )
|
312 |
+
unset( $new[$k] );
|
313 |
+
}
|
314 |
+
update_post_meta( $post_id, $name, $new );
|
315 |
+
return;
|
316 |
+
}
|
317 |
+
|
318 |
+
// If field is multiple, value is saved as multiple entries in the database (WordPress behaviour)
|
319 |
+
if ( $field['multiple'] )
|
320 |
+
{
|
321 |
+
$new_values = array_diff( $new, $old );
|
322 |
+
foreach ( $new_values as $new_value )
|
323 |
+
{
|
324 |
+
add_post_meta( $post_id, $name, $new_value, false );
|
325 |
+
}
|
326 |
+
$old_values = array_diff( $old, $new );
|
327 |
+
foreach ( $old_values as $old_value )
|
328 |
+
{
|
329 |
+
delete_post_meta( $post_id, $name, $old_value );
|
330 |
+
}
|
331 |
+
return;
|
332 |
+
}
|
333 |
+
|
334 |
+
// Default: just update post meta
|
335 |
+
update_post_meta( $post_id, $name, $new );
|
336 |
+
}
|
337 |
+
|
338 |
+
/**
|
339 |
+
* Normalize parameters for field
|
340 |
+
*
|
341 |
+
* @param array $field
|
342 |
+
*
|
343 |
+
* @return array
|
344 |
+
*/
|
345 |
+
static function normalize( $field )
|
346 |
+
{
|
347 |
+
$field = wp_parse_args( $field, array(
|
348 |
+
'id' => '',
|
349 |
+
'name' => '',
|
350 |
+
'multiple' => false,
|
351 |
+
'std' => '',
|
352 |
+
'desc' => '',
|
353 |
+
'format' => '',
|
354 |
+
'before' => '',
|
355 |
+
'after' => '',
|
356 |
+
'field_name' => isset( $field['id'] ) ? $field['id'] : '',
|
357 |
+
'placeholder' => '',
|
358 |
+
|
359 |
+
'clone' => false,
|
360 |
+
'max_clone' => 0,
|
361 |
+
'sort_clone' => false,
|
362 |
+
|
363 |
+
'class' => '',
|
364 |
+
'disabled' => false,
|
365 |
+
'required' => false,
|
366 |
+
'attributes' => array(),
|
367 |
+
) );
|
368 |
+
|
369 |
+
return $field;
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Get the attributes for a field
|
374 |
+
*
|
375 |
+
* @param array $field
|
376 |
+
* @param mixed $value
|
377 |
+
*
|
378 |
+
* @return array
|
379 |
+
*/
|
380 |
+
static function get_attributes( $field, $value = null )
|
381 |
+
{
|
382 |
+
$attributes = wp_parse_args( $field['attributes'], array(
|
383 |
+
'disabled' => $field['disabled'],
|
384 |
+
'required' => $field['required'],
|
385 |
+
'class' => "mashsb-rwmb-{$field['type']}",
|
386 |
+
'id' => $field['id'],
|
387 |
+
'name' => $field['field_name'],
|
388 |
+
) );
|
389 |
+
|
390 |
+
return $attributes;
|
391 |
+
}
|
392 |
+
|
393 |
+
/**
|
394 |
+
* Renders an attribute array into an html attributes string
|
395 |
+
*
|
396 |
+
* @param array $attributes
|
397 |
+
*
|
398 |
+
* @return string
|
399 |
+
*/
|
400 |
+
static function render_attributes( $attributes )
|
401 |
+
{
|
402 |
+
$output = '';
|
403 |
+
foreach ( $attributes as $key => $value )
|
404 |
+
{
|
405 |
+
if ( false === $value || '' === $value )
|
406 |
+
{
|
407 |
+
continue;
|
408 |
+
}
|
409 |
+
$output .= sprintf( true === $value ? ' %s' : ' %s="%s"', $key, esc_attr( $value ) );
|
410 |
+
}
|
411 |
+
return $output;
|
412 |
+
}
|
413 |
+
|
414 |
+
/**
|
415 |
+
* Get the field value
|
416 |
+
* The difference between this function and 'meta' function is 'meta' function always returns the escaped value
|
417 |
+
* of the field saved in the database, while this function returns more meaningful value of the field, for ex.:
|
418 |
+
* for file/image: return array of file/image information instead of file/image IDs
|
419 |
+
*
|
420 |
+
* Each field can extend this function and add more data to the returned value.
|
421 |
+
* See specific field classes for details.
|
422 |
+
*
|
423 |
+
* @param array $field Field parameters
|
424 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
425 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
426 |
+
*
|
427 |
+
* @return mixed Field value
|
428 |
+
*/
|
429 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
430 |
+
{
|
431 |
+
if ( ! $post_id )
|
432 |
+
$post_id = get_the_ID();
|
433 |
+
|
434 |
+
/**
|
435 |
+
* Get raw meta value in the database, no escape
|
436 |
+
* Very similar to self::meta() function
|
437 |
+
*/
|
438 |
+
|
439 |
+
/**
|
440 |
+
* For special fields like 'divider', 'heading' which don't have ID, just return empty string
|
441 |
+
* to prevent notice error when display in fields
|
442 |
+
*/
|
443 |
+
$value = '';
|
444 |
+
if ( ! empty( $field['id'] ) )
|
445 |
+
{
|
446 |
+
$single = $field['clone'] || ! $field['multiple'];
|
447 |
+
$value = get_post_meta( $post_id, $field['id'], $single );
|
448 |
+
|
449 |
+
// Make sure meta value is an array for clonable and multiple fields
|
450 |
+
if ( $field['clone'] || $field['multiple'] )
|
451 |
+
{
|
452 |
+
$value = is_array( $value ) && $value ? $value : array();
|
453 |
+
}
|
454 |
+
}
|
455 |
+
|
456 |
+
/**
|
457 |
+
* Return the meta value by default.
|
458 |
+
* For specific fields, the returned value might be different. See each field class for details
|
459 |
+
*/
|
460 |
+
return $value;
|
461 |
+
}
|
462 |
+
|
463 |
+
/**
|
464 |
+
* Output the field value
|
465 |
+
* Depends on field value and field types, each field can extend this method to output its value in its own way
|
466 |
+
* See specific field classes for details.
|
467 |
+
*
|
468 |
+
* Note: we don't echo the field value directly. We return the output HTML of field, which will be used in
|
469 |
+
* rwmb_the_field function later.
|
470 |
+
*
|
471 |
+
* @use self::get_value()
|
472 |
+
* @see rwmb_the_value()
|
473 |
+
*
|
474 |
+
* @param array $field Field parameters
|
475 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
476 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
477 |
+
*
|
478 |
+
* @return string HTML output of the field
|
479 |
+
*/
|
480 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
481 |
+
{
|
482 |
+
$value = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_value' ), $field, $args, $post_id );
|
483 |
+
$output = $value;
|
484 |
+
if ( is_array( $value ) )
|
485 |
+
{
|
486 |
+
$output = '<ul>';
|
487 |
+
foreach ( $value as $subvalue )
|
488 |
+
{
|
489 |
+
$output .= '<li>' . $subvalue . '</li>';
|
490 |
+
}
|
491 |
+
$output .= '</ul>';
|
492 |
+
}
|
493 |
+
return $output;
|
494 |
+
}
|
495 |
+
}
|
includes/admin/meta-box/inc/fields/autocomplete.php
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Autocomplete field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Autocomplete_Field extends MASHSB_RWMB_Multiple_Values_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles.
|
9 |
+
*/
|
10 |
+
static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-autocomplete', MASHSB_RWMB_CSS_URL . 'autocomplete.css', array( 'wp-admin' ), MASHSB_RWMB_VER );
|
13 |
+
wp_enqueue_script( 'mashsb-rwmb-autocomplete', MASHSB_RWMB_JS_URL . 'autocomplete.js', array( 'jquery-ui-autocomplete' ), MASHSB_RWMB_VER, true );
|
14 |
+
wp_localize_script( 'mashsb-rwmb-autocomplete', 'MASHSB_RWMB_Autocomplete', array( 'delete' => __( 'Delete', 'meta-box' ) ) );
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Get field HTML
|
19 |
+
*
|
20 |
+
* @param mixed $meta
|
21 |
+
* @param array $field
|
22 |
+
* @return string
|
23 |
+
*/
|
24 |
+
static function html( $meta, $field )
|
25 |
+
{
|
26 |
+
if ( ! is_array( $meta ) )
|
27 |
+
$meta = array( $meta );
|
28 |
+
|
29 |
+
$field = apply_filters( 'mashsb_rwmb_autocomplete_field', $field, $meta );
|
30 |
+
$options = $field['options'];
|
31 |
+
|
32 |
+
if ( ! is_string( $field['options'] ) )
|
33 |
+
{
|
34 |
+
$options = array();
|
35 |
+
foreach ( (array) $field['options'] as $value => $label )
|
36 |
+
{
|
37 |
+
$options[] = array(
|
38 |
+
'value' => $value,
|
39 |
+
'label' => $label,
|
40 |
+
);
|
41 |
+
}
|
42 |
+
$options = wp_json_encode( $options );
|
43 |
+
}
|
44 |
+
|
45 |
+
// Input field that triggers autocomplete.
|
46 |
+
// This field doesn't store field values, so it doesn't have "name" attribute.
|
47 |
+
// The value(s) of the field is store in hidden input(s). See below.
|
48 |
+
$html = sprintf(
|
49 |
+
'<input type="text" class="mashsb-rwmb-autocomplete-search" size="%s">
|
50 |
+
<input type="hidden" name="%s" class="mashsb-rwmb-autocomplete" data-options="%s" disabled>',
|
51 |
+
$field['size'],
|
52 |
+
$field['field_name'],
|
53 |
+
esc_attr( $options )
|
54 |
+
);
|
55 |
+
|
56 |
+
$html .= '<div class="mashsb-rwmb-autocomplete-results">';
|
57 |
+
|
58 |
+
// Each value is displayed with label and 'Delete' option
|
59 |
+
// The hidden input has to have ".mashsb-rwmb-*" class to make clone work
|
60 |
+
$tpl = '
|
61 |
+
<div class="mashsb-rwmb-autocomplete-result">
|
62 |
+
<div class="label">%s</div>
|
63 |
+
<div class="actions">%s</div>
|
64 |
+
<input type="hidden" class="mashsb-rwmb-autocomplete-value" name="%s" value="%s">
|
65 |
+
</div>
|
66 |
+
';
|
67 |
+
|
68 |
+
if ( is_array( $field['options'] ) )
|
69 |
+
{
|
70 |
+
foreach ( $field['options'] as $value => $label )
|
71 |
+
{
|
72 |
+
if ( in_array( $value, $meta ) )
|
73 |
+
{
|
74 |
+
$html .= sprintf(
|
75 |
+
$tpl,
|
76 |
+
$label,
|
77 |
+
__( 'Delete', 'meta-box' ),
|
78 |
+
$field['field_name'],
|
79 |
+
$value
|
80 |
+
);
|
81 |
+
}
|
82 |
+
}
|
83 |
+
}
|
84 |
+
else
|
85 |
+
{
|
86 |
+
foreach ( $meta as $value )
|
87 |
+
{
|
88 |
+
if ( empty( $value ) )
|
89 |
+
continue;
|
90 |
+
$label = apply_filters( 'mashsb_rwmb_autocomplete_result_label', $value, $field );
|
91 |
+
$html .= sprintf(
|
92 |
+
$tpl,
|
93 |
+
$label,
|
94 |
+
__( 'Delete', 'meta-box' ),
|
95 |
+
$field['field_name'],
|
96 |
+
$value
|
97 |
+
);
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
$html .= '</div>'; // .mashsb-rwmb-autocomplete-results
|
102 |
+
|
103 |
+
return $html;
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Normalize parameters for field
|
108 |
+
*
|
109 |
+
* @param array $field
|
110 |
+
* @return array
|
111 |
+
*/
|
112 |
+
static function normalize( $field )
|
113 |
+
{
|
114 |
+
$field = parent::normalize( $field );
|
115 |
+
$field = wp_parse_args( $field, array(
|
116 |
+
'size' => 30,
|
117 |
+
) );
|
118 |
+
return $field;
|
119 |
+
}
|
120 |
+
}
|
includes/admin/meta-box/inc/fields/button.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Button field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Button_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
static function html( $meta, $field )
|
15 |
+
{
|
16 |
+
$attributes = self::get_attributes( $field );
|
17 |
+
return sprintf( '<a href="#" %s>%s</a>', self::render_attributes( $attributes ), $field['std'] );
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Normalize parameters for field
|
22 |
+
*
|
23 |
+
* @param array $field
|
24 |
+
* @return array
|
25 |
+
*/
|
26 |
+
static function normalize( $field )
|
27 |
+
{
|
28 |
+
$field = parent::normalize( $field );
|
29 |
+
$field['std'] = $field['std'] ? $field['std'] : __( 'Click me', 'meta-box' );
|
30 |
+
return $field;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Get the attributes for a field
|
35 |
+
*
|
36 |
+
* @param array $field
|
37 |
+
* @param mixed $value
|
38 |
+
* @return array
|
39 |
+
*/
|
40 |
+
static function get_attributes( $field, $value = null )
|
41 |
+
{
|
42 |
+
$attributes = parent::get_attributes( $field, $value );
|
43 |
+
$attributes['class'] .= ' button hide-if-no-js';
|
44 |
+
|
45 |
+
return $attributes;
|
46 |
+
}
|
47 |
+
}
|
includes/admin/meta-box/inc/fields/checkbox-list.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Checkbox list field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Checkbox_List_Field extends MASHSB_RWMB_Input_List_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
* @param array $field
|
10 |
+
* @return array
|
11 |
+
*/
|
12 |
+
static function normalize( $field )
|
13 |
+
{
|
14 |
+
$field['multiple'] = true;
|
15 |
+
$field = parent::normalize( $field );
|
16 |
+
|
17 |
+
return $field;
|
18 |
+
}
|
19 |
+
}
|
includes/admin/meta-box/inc/fields/checkbox.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Checkbox field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Checkbox_Field extends MASHSB_RWMB_Input_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles.
|
9 |
+
*/
|
10 |
+
static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-checkbox', MASHSB_RWMB_CSS_URL . 'checkbox.css', array(), MASHSB_RWMB_VER );
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Get field HTML
|
17 |
+
*
|
18 |
+
* @param mixed $meta
|
19 |
+
* @param array $field
|
20 |
+
* @return string
|
21 |
+
*/
|
22 |
+
static function html( $meta, $field )
|
23 |
+
{
|
24 |
+
$attributes = self::get_attributes( $field, 1 );
|
25 |
+
return sprintf(
|
26 |
+
'<input %s %s>',
|
27 |
+
self::render_attributes( $attributes ),
|
28 |
+
checked( ! empty( $meta ), 1, false )
|
29 |
+
);
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Get the attributes for a field.
|
34 |
+
*
|
35 |
+
* @param array $field
|
36 |
+
* @param mixed $value
|
37 |
+
* @return array
|
38 |
+
*/
|
39 |
+
static function get_attributes( $field, $value = null )
|
40 |
+
{
|
41 |
+
$attributes = parent::get_attributes( $field, $value );
|
42 |
+
$attributes['type'] = 'checkbox';
|
43 |
+
$attributes['list'] = false;
|
44 |
+
|
45 |
+
return $attributes;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Set the value of checkbox to 1 or 0 instead of 'checked' and empty string
|
50 |
+
* This prevents using default value once the checkbox has been unchecked
|
51 |
+
*
|
52 |
+
* @link https://github.com/rilwis/meta-box/issues/6
|
53 |
+
*
|
54 |
+
* @param mixed $new
|
55 |
+
* @param mixed $old
|
56 |
+
* @param int $post_id
|
57 |
+
* @param array $field
|
58 |
+
*
|
59 |
+
* @return int
|
60 |
+
*/
|
61 |
+
static function value( $new, $old, $post_id, $field )
|
62 |
+
{
|
63 |
+
return empty( $new ) ? 0 : 1;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Output the field value
|
68 |
+
* Display 'Yes' or 'No' instead of '1' and '0'
|
69 |
+
*
|
70 |
+
* Note: we don't echo the field value directly. We return the output HTML of field, which will be used in
|
71 |
+
* rwmb_the_field function later.
|
72 |
+
*
|
73 |
+
* @use self::get_value()
|
74 |
+
* @see rwmb_the_value()
|
75 |
+
*
|
76 |
+
* @param array $field Field parameters
|
77 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
78 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
79 |
+
*
|
80 |
+
* @return string HTML output of the field
|
81 |
+
*/
|
82 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
83 |
+
{
|
84 |
+
$value = self::get_value( $field, $args, $post_id );
|
85 |
+
return $value ? __( 'Yes', 'meta-box' ) : __( 'No', 'meta-box' );
|
86 |
+
}
|
87 |
+
}
|
includes/admin/meta-box/inc/fields/choice.php
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Abstract class for any kind of choice field.
|
4 |
+
*/
|
5 |
+
abstract class MASHSB_RWMB_Choice_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Walk options
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
* @param mixed $options
|
13 |
+
* @param mixed $db_fields
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
public static function walk( $options, $db_fields, $meta, $field )
|
17 |
+
{
|
18 |
+
return '';
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Get field HTML
|
23 |
+
*
|
24 |
+
* @param mixed $meta
|
25 |
+
* @param array $field
|
26 |
+
* @return string
|
27 |
+
*/
|
28 |
+
public static function html( $meta, $field )
|
29 |
+
{
|
30 |
+
$field_class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
31 |
+
$meta = (array) $meta;
|
32 |
+
$options = call_user_func( array( $field_class, 'get_options' ), $field );
|
33 |
+
$db_fields = call_user_func( array( $field_class, 'get_db_fields' ), $field );
|
34 |
+
|
35 |
+
return call_user_func( array( $field_class, 'walk' ), $options, $db_fields, $meta, $field );
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Normalize parameters for field
|
40 |
+
*
|
41 |
+
* @param array $field
|
42 |
+
* @return array
|
43 |
+
*/
|
44 |
+
public static function normalize( $field )
|
45 |
+
{
|
46 |
+
$field = parent::normalize( $field );
|
47 |
+
$field = wp_parse_args( $field, array(
|
48 |
+
'flatten' => true,
|
49 |
+
'options' => array(),
|
50 |
+
) );
|
51 |
+
|
52 |
+
return $field;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Get field names of object to be used by walker
|
57 |
+
*
|
58 |
+
* @return array
|
59 |
+
*/
|
60 |
+
public static function get_db_fields()
|
61 |
+
{
|
62 |
+
return array(
|
63 |
+
'parent' => 'parent',
|
64 |
+
'id' => 'value',
|
65 |
+
'label' => 'label',
|
66 |
+
);
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Get options for walker
|
71 |
+
*
|
72 |
+
* @param array $field
|
73 |
+
*
|
74 |
+
* @return array
|
75 |
+
*/
|
76 |
+
public static function get_options( $field )
|
77 |
+
{
|
78 |
+
$options = array();
|
79 |
+
foreach ( (array) $field['options'] as $value => $label )
|
80 |
+
{
|
81 |
+
$option = is_array( $label ) ? $label : array( 'label' => (string) $label, 'value' => (string) $value );
|
82 |
+
if ( isset( $option['label'] ) && isset( $option['value'] ) )
|
83 |
+
$options[$option['value']] = (object) $option;
|
84 |
+
}
|
85 |
+
return $options;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Output the field value
|
90 |
+
* Display unordered list of option labels, not option values
|
91 |
+
*
|
92 |
+
* @param array $field Field parameters
|
93 |
+
* @param array $args Additional arguments. Not used for these fields.
|
94 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
95 |
+
*
|
96 |
+
* @return string Link(s) to post
|
97 |
+
*/
|
98 |
+
public static function the_value( $field, $args = array(), $post_id = null )
|
99 |
+
{
|
100 |
+
$field_class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
101 |
+
$value = call_user_func( array( $field_class, 'get_value' ), $field, $args, $post_id );
|
102 |
+
|
103 |
+
if ( ! $value )
|
104 |
+
return '';
|
105 |
+
|
106 |
+
if ( $field['clone'] && $field['multiple'] )
|
107 |
+
{
|
108 |
+
$output = '<ul>';
|
109 |
+
foreach ( $value as $subvalue )
|
110 |
+
{
|
111 |
+
$output .= '<li>';
|
112 |
+
$output .= call_user_func( array( $field_class, 'list_option_labels' ), $subvalue, $field );
|
113 |
+
$output .= '</li>';
|
114 |
+
}
|
115 |
+
$output .= '</ul>';
|
116 |
+
}
|
117 |
+
elseif ( $field['clone'] || $field['multiple'] )
|
118 |
+
{
|
119 |
+
$output = call_user_func( array( $field_class, 'list_option_labels' ), $value, $field );
|
120 |
+
}
|
121 |
+
else
|
122 |
+
{
|
123 |
+
$output = $field['options'][$value]['label'];
|
124 |
+
}
|
125 |
+
return $output;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* List option labels
|
130 |
+
*
|
131 |
+
* @param array $meta
|
132 |
+
* @param array $field Field parameter
|
133 |
+
* @return string
|
134 |
+
*/
|
135 |
+
public static function list_option_labels( $meta, $field )
|
136 |
+
{
|
137 |
+
$field_class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
138 |
+
$output = '<ul>';
|
139 |
+
foreach ( $meta as $m )
|
140 |
+
{
|
141 |
+
$output .= sprintf( '<li>%s</li>', call_user_func( array( $field_class, 'get_option_label' ), $m, $field ) );
|
142 |
+
}
|
143 |
+
|
144 |
+
return $output . '</ul>';
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Get option label
|
149 |
+
*
|
150 |
+
* @param string $value Option value
|
151 |
+
* @param array $field Field parameter
|
152 |
+
*
|
153 |
+
* @return string
|
154 |
+
*/
|
155 |
+
public static function get_option_label( $value, $field )
|
156 |
+
{
|
157 |
+
$options = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_options' ), $field );
|
158 |
+
return $options[$value]->label;
|
159 |
+
}
|
160 |
+
}
|
includes/admin/meta-box/inc/fields/color.php
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Color field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Color_Field extends MASHSB_RWMB_Text_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*/
|
10 |
+
static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-color', MASHSB_RWMB_CSS_URL . 'color.css', array( 'wp-color-picker' ), MASHSB_RWMB_VER );
|
13 |
+
wp_enqueue_script( 'mashsb-rwmb-color', MASHSB_RWMB_JS_URL . 'color.js', array( 'wp-color-picker' ), MASHSB_RWMB_VER, true );
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Normalize parameters for field.
|
18 |
+
*
|
19 |
+
* @param array $field
|
20 |
+
* @return array
|
21 |
+
*/
|
22 |
+
static function normalize( $field )
|
23 |
+
{
|
24 |
+
$field = wp_parse_args( $field, array(
|
25 |
+
'size' => 7,
|
26 |
+
'maxlength' => 7,
|
27 |
+
'pattern' => '^#+([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$',
|
28 |
+
'js_options' => array(),
|
29 |
+
) );
|
30 |
+
|
31 |
+
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
32 |
+
'defaultColor' => false,
|
33 |
+
'hide' => true,
|
34 |
+
'palettes' => true,
|
35 |
+
) );
|
36 |
+
|
37 |
+
$field = parent::normalize( $field );
|
38 |
+
|
39 |
+
return $field;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Get the attributes for a field
|
44 |
+
*
|
45 |
+
* @param array $field
|
46 |
+
* @param mixed $value
|
47 |
+
* @return array
|
48 |
+
*/
|
49 |
+
static function get_attributes( $field, $value = null )
|
50 |
+
{
|
51 |
+
$attributes = parent::get_attributes( $field, $value );
|
52 |
+
$attributes = wp_parse_args( $attributes, array(
|
53 |
+
'data-options' => wp_json_encode( $field['js_options'] ),
|
54 |
+
) );
|
55 |
+
|
56 |
+
return $attributes;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Output color field as a dot.
|
61 |
+
* @param array $field
|
62 |
+
* @param array $args
|
63 |
+
* @param null $post_id
|
64 |
+
* @return string
|
65 |
+
*/
|
66 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
67 |
+
{
|
68 |
+
$value = self::get_value( $field, $args, $post_id );
|
69 |
+
$template = "<span style='display:inline-block;width:20px;height:20px;border-radius:50%%;background:%s;'></span>";
|
70 |
+
if ( is_array( $value ) )
|
71 |
+
{
|
72 |
+
$output = '<ul>';
|
73 |
+
foreach ( $value as $subvalue )
|
74 |
+
{
|
75 |
+
$output .= '<li>' . sprintf( $template, $subvalue ) . '</li>';
|
76 |
+
}
|
77 |
+
$output .= '</ul>';
|
78 |
+
}
|
79 |
+
else
|
80 |
+
{
|
81 |
+
$output = sprintf( $template, $value );
|
82 |
+
}
|
83 |
+
return $output;
|
84 |
+
}
|
85 |
+
}
|
includes/admin/meta-box/inc/fields/custom-html.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Custom HTML field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Custom_Html_Field extends MASHSB_RWMB_Field {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Get field HTML
|
10 |
+
*
|
11 |
+
* @param mixed $meta
|
12 |
+
* @param array $field
|
13 |
+
*
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
static function html( $meta, $field ) {
|
17 |
+
global $post;
|
18 |
+
$html = !empty( $field['std'] ) ? $field['std'] : '';
|
19 |
+
if( !empty( $field['callback'] ) && is_callable( $field['callback'] ) ) {
|
20 |
+
$html = call_user_func_array( $field['callback'], array($meta, $field) );
|
21 |
+
}
|
22 |
+
//return $html;
|
23 |
+
//return get_permalink( $post->ID );
|
24 |
+
return self::get_fb_debugger_url($post);
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Link to the open graph debugger to check if open graph tags are valid
|
29 |
+
*
|
30 |
+
* @global array $post
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
static function get_fb_debugger_url($post) {
|
34 |
+
//var_dump( $post );
|
35 |
+
if( isset( $post ) && $post->post_status == "publish" ) {
|
36 |
+
$url = get_permalink( $post->ID );
|
37 |
+
return '<a href="https://developers.facebook.com/tools/debug/og/object?q=' . $url . '" target="_blank"> Validate Open Graph data </a>';
|
38 |
+
} else {
|
39 |
+
return '';
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
}
|
includes/admin/meta-box/inc/fields/date.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Date field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Date_Field extends MASHSB_RWMB_Datetime_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
public static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
parent::admin_register_scripts();
|
15 |
+
wp_enqueue_style( 'jquery-ui-datepicker' );
|
16 |
+
wp_enqueue_script( 'mashsb-rwmb-date' );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Returns a date() compatible format string from the JavaScript format
|
21 |
+
*
|
22 |
+
* @link http://www.php.net/manual/en/function.date.php
|
23 |
+
* @param array $field
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public static function translate_format( $field )
|
28 |
+
{
|
29 |
+
return strtr( $field['js_options']['dateFormat'], self::$date_formats );
|
30 |
+
}
|
31 |
+
}
|
includes/admin/meta-box/inc/fields/datetime.php
ADDED
@@ -0,0 +1,264 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Datetime field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Datetime_Field extends MASHSB_RWMB_Text_Field
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Translate date format from jQuery UI date picker to PHP date()
|
10 |
+
* It's used to store timestamp value of the field
|
11 |
+
* Missing: '!' => '', 'oo' => '', '@' => '', "''" => "'"
|
12 |
+
* @var array
|
13 |
+
*/
|
14 |
+
protected static $date_formats = array(
|
15 |
+
'd' => 'j', 'dd' => 'd', 'oo' => 'z', 'D' => 'D', 'DD' => 'l',
|
16 |
+
'm' => 'n', 'mm' => 'm', 'M' => 'M', 'MM' => 'F', 'y' => 'y', 'yy' => 'Y', 'o' => 'z',
|
17 |
+
);
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Translate time format from jQuery UI time picker to PHP date()
|
21 |
+
* It's used to store timestamp value of the field
|
22 |
+
* Missing: 't' => '', T' => '', 'm' => '', 's' => ''
|
23 |
+
* @var array
|
24 |
+
*/
|
25 |
+
protected static $time_formats = array(
|
26 |
+
'H' => 'G', 'HH' => 'H', 'h' => 'g', 'hh' => 'h',
|
27 |
+
'mm' => 'i', 'ss' => 's', 'l' => 'u', 'tt' => 'a', 'TT' => 'A',
|
28 |
+
);
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Register scripts and styles
|
32 |
+
*/
|
33 |
+
public static function admin_register_scripts()
|
34 |
+
{
|
35 |
+
$url = MASHSB_RWMB_CSS_URL . 'jqueryui';
|
36 |
+
wp_register_style( 'jquery-ui-core', "{$url}/jquery.ui.core.css", array(), '1.8.17' );
|
37 |
+
wp_register_style( 'jquery-ui-theme', "{$url}/jquery.ui.theme.css", array(), '1.8.17' );
|
38 |
+
wp_register_style( 'wp-datepicker', MASHSB_RWMB_CSS_URL . 'datepicker.css', array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
39 |
+
wp_register_style( 'jquery-ui-datepicker', "{$url}/jquery.ui.datepicker.css", array( 'wp-datepicker' ), '1.8.17' );
|
40 |
+
wp_register_style( 'jquery-ui-slider', "{$url}/jquery.ui.slider.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
41 |
+
wp_register_style( 'jquery-ui-timepicker', "{$url}/jquery-ui-timepicker-addon.min.css", array( 'jquery-ui-datepicker', 'jquery-ui-slider', 'wp-datepicker' ), '1.5.0' );
|
42 |
+
|
43 |
+
$url = MASHSB_RWMB_JS_URL . 'jqueryui';
|
44 |
+
wp_register_script( 'jquery-ui-timepicker', "{$url}/jquery-ui-timepicker-addon.min.js", array( 'jquery-ui-datepicker', 'jquery-ui-slider' ), '1.5.0', true );
|
45 |
+
wp_register_script( 'jquery-ui-timepicker-i18n', "{$url}/jquery-ui-timepicker-addon-i18n.min.js", array( 'jquery-ui-timepicker' ), '1.5.0', true );
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Localization
|
49 |
+
* Use 1 minified JS file for timepicker which contains all languages for simplicity (in version < 4.4.2 we use separated JS files).
|
50 |
+
* The language is set in Javascript
|
51 |
+
*
|
52 |
+
* Note: we use full locale (de-DE) and fallback to short locale (de)
|
53 |
+
*/
|
54 |
+
$locale = str_replace( '_', '-', get_locale() );
|
55 |
+
$locale_short = substr( $locale, 0, 2 );
|
56 |
+
|
57 |
+
$date_paths = array( 'jqueryui/datepicker-i18n/jquery.ui.datepicker-' . $locale . '.js' );
|
58 |
+
if ( strlen( $locale ) > 2 )
|
59 |
+
{
|
60 |
+
// Also check alternate i18n filenames
|
61 |
+
// (e.g. jquery.ui.datepicker-de.js instead of jquery.ui.datepicker-de-DE.js)
|
62 |
+
$date_paths[] = 'jqueryui/datepicker-i18n/jquery.ui.datepicker-' . substr( $locale, 0, 2 ) . '.js';
|
63 |
+
}
|
64 |
+
$deps = array( 'jquery-ui-timepicker-i18n' );
|
65 |
+
foreach ( $date_paths as $date_path )
|
66 |
+
{
|
67 |
+
if ( file_exists( MASHSB_RWMB_DIR . 'js/' . $date_path ) )
|
68 |
+
{
|
69 |
+
wp_register_script( 'jquery-ui-datepicker-i18n', MASHSB_RWMB_JS_URL . $date_path, array( 'jquery-ui-datepicker' ), '1.8.17', true );
|
70 |
+
$deps[] = 'jquery-ui-datepicker-i18n';
|
71 |
+
break;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
wp_register_script( 'mashsb-rwmb-datetime', MASHSB_RWMB_JS_URL . 'datetime.js', $deps, MASHSB_RWMB_VER, true );
|
76 |
+
wp_register_script( 'mashsb-rwmb-date', MASHSB_RWMB_JS_URL . 'date.js', $deps, MASHSB_RWMB_VER, true );
|
77 |
+
wp_register_script( 'mashsb-rwmb-time', MASHSB_RWMB_JS_URL . 'time.js', array( 'jquery-ui-timepicker-i18n' ), MASHSB_RWMB_VER, true );
|
78 |
+
wp_localize_script( 'mashsb-rwmb-datetime', 'MASHSB_RWMB_Datetimepicker', array(
|
79 |
+
'locale' => $locale,
|
80 |
+
'localeShort' => $locale_short,
|
81 |
+
) );
|
82 |
+
wp_localize_script( 'mashsb-rwmb-time', 'MASHSB_RWMB_Timepicker', array(
|
83 |
+
'locale' => $locale,
|
84 |
+
'localeShort' => $locale_short,
|
85 |
+
) );
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Enqueue scripts and styles
|
90 |
+
*/
|
91 |
+
public static function admin_enqueue_scripts()
|
92 |
+
{
|
93 |
+
self::admin_register_scripts();
|
94 |
+
wp_enqueue_style( 'jquery-ui-timepicker' );
|
95 |
+
wp_enqueue_script( 'mashsb-rwmb-datetime' );
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Get field HTML
|
100 |
+
*
|
101 |
+
* @param mixed $meta
|
102 |
+
* @param array $field
|
103 |
+
*
|
104 |
+
* @return string
|
105 |
+
*/
|
106 |
+
public static function html( $meta, $field )
|
107 |
+
{
|
108 |
+
$output = '';
|
109 |
+
|
110 |
+
if ( $field['timestamp'] )
|
111 |
+
{
|
112 |
+
$name = $field['field_name'];
|
113 |
+
$field = wp_parse_args( array( 'field_name' => $name . '[formatted]' ), $field );
|
114 |
+
$output .= sprintf(
|
115 |
+
'<input type="hidden" name="%s" class="mashsb-rwmb-datetime-timestamp" value="%s">',
|
116 |
+
esc_attr( $name . '[timestamp]' ),
|
117 |
+
isset( $meta['timestamp'] ) ? intval( $meta['timestamp'] ) : ''
|
118 |
+
);
|
119 |
+
$meta = isset( $meta['formatted'] ) ? $meta['formatted'] : '';
|
120 |
+
}
|
121 |
+
|
122 |
+
$output .= parent::html( $meta, $field );
|
123 |
+
|
124 |
+
if ( $field['inline'] )
|
125 |
+
{
|
126 |
+
$output .= '<div class="mashsb-rwmb-datetime-inline"></div>';
|
127 |
+
}
|
128 |
+
|
129 |
+
return $output;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Calculates the timestamp from the datetime string and returns it
|
134 |
+
* if $field['timestamp'] is set or the datetime string if not
|
135 |
+
*
|
136 |
+
* @param mixed $new
|
137 |
+
* @param mixed $old
|
138 |
+
* @param int $post_id
|
139 |
+
* @param array $field
|
140 |
+
*
|
141 |
+
* @return string|int
|
142 |
+
*/
|
143 |
+
public static function value( $new, $old, $post_id, $field )
|
144 |
+
{
|
145 |
+
if ( ! $field['timestamp'] )
|
146 |
+
return $new;
|
147 |
+
|
148 |
+
if ( $field['clone'] )
|
149 |
+
{
|
150 |
+
foreach ( $new as $key => $value )
|
151 |
+
{
|
152 |
+
$new[$key] = isset( $value['timestamp'] ) ? $value['timestamp'] : 0;
|
153 |
+
}
|
154 |
+
return $new;
|
155 |
+
}
|
156 |
+
|
157 |
+
return isset( $new['timestamp'] ) ? $new['timestamp'] : 0;
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Get meta value
|
162 |
+
*
|
163 |
+
* @param int $post_id
|
164 |
+
* @param bool $saved
|
165 |
+
* @param array $field
|
166 |
+
*
|
167 |
+
* @return mixed
|
168 |
+
*/
|
169 |
+
public static function meta( $post_id, $saved, $field )
|
170 |
+
{
|
171 |
+
$meta = parent::meta( $post_id, $saved, $field );
|
172 |
+
if ( ! $field['timestamp'] )
|
173 |
+
{
|
174 |
+
return $meta;
|
175 |
+
}
|
176 |
+
$method = array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'translate_format' );
|
177 |
+
if ( is_array( $meta ) )
|
178 |
+
{
|
179 |
+
foreach ( $meta as $key => $value )
|
180 |
+
{
|
181 |
+
$meta[$key] = array(
|
182 |
+
'timestamp' => $value,
|
183 |
+
'formatted' => date( call_user_func( $method, $field ), intval( $value ) ),
|
184 |
+
);
|
185 |
+
}
|
186 |
+
}
|
187 |
+
else
|
188 |
+
{
|
189 |
+
$meta = array(
|
190 |
+
'timestamp' => $meta,
|
191 |
+
'formatted' => date( call_user_func( $method, $field ), intval( $meta ) ),
|
192 |
+
);
|
193 |
+
}
|
194 |
+
return $meta;
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Normalize parameters for field
|
199 |
+
*
|
200 |
+
* @param array $field
|
201 |
+
* @return array
|
202 |
+
*/
|
203 |
+
public static function normalize( $field )
|
204 |
+
{
|
205 |
+
$field = wp_parse_args( $field, array(
|
206 |
+
'timestamp' => false,
|
207 |
+
'inline' => false,
|
208 |
+
'js_options' => array(),
|
209 |
+
) );
|
210 |
+
|
211 |
+
// Deprecate 'format', but keep it for backward compatible
|
212 |
+
// Use 'js_options' instead
|
213 |
+
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
214 |
+
'timeFormat' => 'HH:mm',
|
215 |
+
'separator' => ' ',
|
216 |
+
'dateFormat' => empty( $field['format'] ) ? 'yy-mm-dd' : $field['format'],
|
217 |
+
'showButtonPanel' => true,
|
218 |
+
) );
|
219 |
+
|
220 |
+
if ( $field['inline'] )
|
221 |
+
{
|
222 |
+
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
223 |
+
'altFieldTimeOnly' => false,
|
224 |
+
) );
|
225 |
+
}
|
226 |
+
|
227 |
+
$field = MASHSB_RWMB_Text_Field::normalize( $field );
|
228 |
+
|
229 |
+
return $field;
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Get the attributes for a field
|
234 |
+
*
|
235 |
+
* @param array $field
|
236 |
+
* @param mixed $value
|
237 |
+
*
|
238 |
+
* @return array
|
239 |
+
*/
|
240 |
+
public static function get_attributes( $field, $value = null )
|
241 |
+
{
|
242 |
+
$attributes = parent::get_attributes( $field, $value );
|
243 |
+
$attributes = wp_parse_args( $attributes, array(
|
244 |
+
'data-options' => wp_json_encode( $field['js_options'] ),
|
245 |
+
) );
|
246 |
+
|
247 |
+
return $attributes;
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Returns a date() compatible format string from the JavaScript format
|
252 |
+
*
|
253 |
+
* @link http://www.php.net/manual/en/function.date.php
|
254 |
+
* @param array $field
|
255 |
+
*
|
256 |
+
* @return string
|
257 |
+
*/
|
258 |
+
public static function translate_format( $field )
|
259 |
+
{
|
260 |
+
return strtr( $field['js_options']['dateFormat'], self::$date_formats )
|
261 |
+
. $field['js_options']['separator']
|
262 |
+
. strtr( $field['js_options']['timeFormat'], self::$time_formats );
|
263 |
+
}
|
264 |
+
}
|
includes/admin/meta-box/inc/fields/divider.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Divider field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Divider_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
wp_enqueue_style( 'mashsb-rwmb-divider', MASHSB_RWMB_CSS_URL . 'divider.css', array(), MASHSB_RWMB_VER );
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Show begin HTML markup for fields
|
19 |
+
*
|
20 |
+
* @param mixed $meta
|
21 |
+
* @param array $field
|
22 |
+
*
|
23 |
+
* @return string
|
24 |
+
*/
|
25 |
+
static function begin_html( $meta, $field )
|
26 |
+
{
|
27 |
+
$attributes = empty( $field['id'] ) ? '' : " id='{$field['id']}'";
|
28 |
+
return "<hr$attributes>";
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Show end HTML markup for fields
|
33 |
+
*
|
34 |
+
* @param mixed $meta
|
35 |
+
* @param array $field
|
36 |
+
*
|
37 |
+
* @return string
|
38 |
+
*/
|
39 |
+
static function end_html( $meta, $field )
|
40 |
+
{
|
41 |
+
return '';
|
42 |
+
}
|
43 |
+
}
|
includes/admin/meta-box/inc/fields/email.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Email field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Email_Field extends MASHSB_RWMB_Text_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
*
|
12 |
+
* @return array
|
13 |
+
*/
|
14 |
+
static function normalize( $field )
|
15 |
+
{
|
16 |
+
$field = parent::normalize( $field );
|
17 |
+
|
18 |
+
return $field;
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Get the attributes for a field
|
23 |
+
*
|
24 |
+
* @param array $field
|
25 |
+
* @param mixed $value
|
26 |
+
*
|
27 |
+
* @return array
|
28 |
+
*/
|
29 |
+
static function get_attributes( $field, $value = null )
|
30 |
+
{
|
31 |
+
$attributes = parent::get_attributes( $field, $value );
|
32 |
+
$attributes['type'] = 'email';
|
33 |
+
return $attributes;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Sanitize email
|
38 |
+
*
|
39 |
+
* @param mixed $new
|
40 |
+
* @param mixed $old
|
41 |
+
* @param int $post_id
|
42 |
+
* @param array $field
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
static function value( $new, $old, $post_id, $field )
|
47 |
+
{
|
48 |
+
return $field['clone'] ? array_map( 'sanitize_email', (array) $new ) : sanitize_email( $new );
|
49 |
+
}
|
50 |
+
}
|
includes/admin/meta-box/inc/fields/fieldset-text.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Fieldset text class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Fieldset_Text_Field extends MASHSB_RWMB_Text_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
*
|
13 |
+
* @return string
|
14 |
+
*/
|
15 |
+
static function html( $meta, $field )
|
16 |
+
{
|
17 |
+
$html = array();
|
18 |
+
$tpl = '<label>%s %s</label>';
|
19 |
+
|
20 |
+
foreach ( $field['options'] as $key => $label )
|
21 |
+
{
|
22 |
+
$value = isset( $meta[$key] ) ? $meta[$key] : '';
|
23 |
+
$field['attributes']['name'] = $field['field_name'] . "[{$key}]";
|
24 |
+
$html[] = sprintf( $tpl, $label, parent::html( $value, $field ) );
|
25 |
+
}
|
26 |
+
|
27 |
+
$out = '<fieldset><legend>' . $field['desc'] . '</legend>' . implode( ' ', $html ) . '</fieldset>';
|
28 |
+
|
29 |
+
return $out;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Normalize parameters for field
|
34 |
+
*
|
35 |
+
* @param array $field
|
36 |
+
*
|
37 |
+
* @return array
|
38 |
+
*/
|
39 |
+
static function normalize( $field )
|
40 |
+
{
|
41 |
+
$field = parent::normalize( $field );
|
42 |
+
$field['multiple'] = false;
|
43 |
+
$field['attributes']['id'] = false;
|
44 |
+
return $field;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Output the field value
|
49 |
+
* Display options in format Label: value in unordered list
|
50 |
+
*
|
51 |
+
* @param array $field Field parameters
|
52 |
+
* @param array $args Additional arguments. Not used for these fields.
|
53 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
54 |
+
*
|
55 |
+
* @return mixed Field value
|
56 |
+
*/
|
57 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
58 |
+
{
|
59 |
+
$value = self::get_value( $field, $args, $post_id );
|
60 |
+
if ( ! $value )
|
61 |
+
return '';
|
62 |
+
|
63 |
+
$output = '<table>';
|
64 |
+
$output .= '<thead><tr>';
|
65 |
+
foreach ( $field['options'] as $label )
|
66 |
+
{
|
67 |
+
$output .= "<th>$label</th>";
|
68 |
+
}
|
69 |
+
$output .= '</tr></thead><tbody>';
|
70 |
+
|
71 |
+
foreach ( $value as $subvalue )
|
72 |
+
{
|
73 |
+
$output .= '<tr>';
|
74 |
+
foreach ( $subvalue as $value )
|
75 |
+
{
|
76 |
+
$output .= "<td>$value</td>";
|
77 |
+
}
|
78 |
+
$output .= '</tr>';
|
79 |
+
}
|
80 |
+
$output .= '</tbody></table>';
|
81 |
+
|
82 |
+
return $output;
|
83 |
+
}
|
84 |
+
}
|
includes/admin/meta-box/inc/fields/file-advanced.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File advanced field class which users WordPress media popup to upload and select files.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_File_Advanced_Field extends MASHSB_RWMB_Media_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get the field value.
|
9 |
+
* @param array $field
|
10 |
+
* @param array $args
|
11 |
+
* @param null $post_id
|
12 |
+
* @return mixed
|
13 |
+
*/
|
14 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
15 |
+
{
|
16 |
+
return MASHSB_RWMB_File_Field::get_value( $field, $args, $post_id );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Output the field value.
|
21 |
+
* @param array $field
|
22 |
+
* @param array $args
|
23 |
+
* @param null $post_id
|
24 |
+
* @return mixed
|
25 |
+
*/
|
26 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
27 |
+
{
|
28 |
+
return MASHSB_RWMB_File_Field::the_value( $field, $args, $post_id );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Get uploaded file information.
|
33 |
+
*
|
34 |
+
* @param int $file_id Attachment image ID (post ID). Required.
|
35 |
+
* @param array $args Array of arguments (for size).
|
36 |
+
* @return array|bool False if file not found. Array of image info on success
|
37 |
+
*/
|
38 |
+
static function file_info( $file_id, $args = array() )
|
39 |
+
{
|
40 |
+
return MASHSB_RWMB_File_Field::file_info( $file_id, $args );
|
41 |
+
}
|
42 |
+
|
43 |
+
}
|
includes/admin/meta-box/inc/fields/file-input.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File input field class which uses an input for file URL.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_File_Input_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
// Make sure scripts for new media uploader in WordPress 3.5 is enqueued
|
15 |
+
wp_enqueue_media();
|
16 |
+
wp_enqueue_script( 'mashsb-rwmb-file-input', MASHSB_RWMB_JS_URL . 'file-input.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
17 |
+
wp_localize_script( 'mashsb-rwmb-file-input', 'rwmbFileInput', array(
|
18 |
+
'frameTitle' => __( 'Select File', 'meta-box' ),
|
19 |
+
) );
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Get field HTML
|
24 |
+
*
|
25 |
+
* @param mixed $meta
|
26 |
+
* @param array $field
|
27 |
+
*
|
28 |
+
* @return string
|
29 |
+
*/
|
30 |
+
static function html( $meta, $field )
|
31 |
+
{
|
32 |
+
return sprintf(
|
33 |
+
'<input type="text" class="mashsb-rwmb-file-input" name="%s" id="%s" value="%s" placeholder="%s" size="%s">
|
34 |
+
<a href="#" class="mashsb-rwmb-file-input-select button-primary">%s</a>
|
35 |
+
<a href="#" class="mashsb-rwmb-file-input-remove button %s">%s</a>',
|
36 |
+
$field['field_name'],
|
37 |
+
$field['id'],
|
38 |
+
$meta,
|
39 |
+
$field['placeholder'],
|
40 |
+
$field['size'],
|
41 |
+
__( 'Select', 'meta-box' ),
|
42 |
+
$meta ? '' : 'hidden',
|
43 |
+
__( 'Remove', 'meta-box' )
|
44 |
+
);
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Normalize parameters for field
|
49 |
+
*
|
50 |
+
* @param array $field
|
51 |
+
*
|
52 |
+
* @return array
|
53 |
+
*/
|
54 |
+
static function normalize( $field )
|
55 |
+
{
|
56 |
+
$field = parent::normalize( $field );
|
57 |
+
$field = wp_parse_args( $field, array(
|
58 |
+
'size' => 30,
|
59 |
+
'placeholder' => '',
|
60 |
+
) );
|
61 |
+
|
62 |
+
return $field;
|
63 |
+
}
|
64 |
+
}
|
includes/admin/meta-box/inc/fields/file-upload.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File advanced field class which users WordPress media popup to upload and select files.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_File_Upload_Field extends MASHSB_RWMB_File_Advanced_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Add actions
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function add_actions()
|
13 |
+
{
|
14 |
+
parent::add_actions();
|
15 |
+
// Print attachment templates
|
16 |
+
add_action( 'print_media_templates', array( __CLASS__, 'print_templates' ) );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Enqueue scripts and styles
|
21 |
+
*
|
22 |
+
* @return void
|
23 |
+
*/
|
24 |
+
static function admin_enqueue_scripts()
|
25 |
+
{
|
26 |
+
parent::admin_enqueue_scripts();
|
27 |
+
wp_enqueue_style( 'mashsb-rwmb-upload', MASHSB_RWMB_CSS_URL . 'upload.css', array( 'mashsb-rwmb-media' ), MASHSB_RWMB_VER );
|
28 |
+
wp_enqueue_script( 'mashsb-rwmb-file-upload', MASHSB_RWMB_JS_URL . 'file-upload.js', array( 'mashsb-rwmb-media' ), MASHSB_RWMB_VER, true );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Template for media item
|
33 |
+
* @return void
|
34 |
+
*/
|
35 |
+
static function print_templates()
|
36 |
+
{
|
37 |
+
require_once( MASHSB_RWMB_INC_DIR . 'templates/upload.php' );
|
38 |
+
}
|
39 |
+
}
|
includes/admin/meta-box/inc/fields/file.php
ADDED
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File field class which uses HTML <input type="file"> to upload file.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_File_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*/
|
10 |
+
static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-file', MASHSB_RWMB_CSS_URL . 'file.css', array(), MASHSB_RWMB_VER );
|
13 |
+
wp_enqueue_script( 'mashsb-rwmb-file', MASHSB_RWMB_JS_URL . 'file.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
14 |
+
wp_localize_script( 'mashsb-rwmb-file', 'rwmbFile', array(
|
15 |
+
'maxFileUploadsSingle' => __( 'You may only upload maximum %d file', 'meta-box' ),
|
16 |
+
'maxFileUploadsPlural' => __( 'You may only upload maximum %d files', 'meta-box' ),
|
17 |
+
) );
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Add custom actions
|
22 |
+
*/
|
23 |
+
static function add_actions()
|
24 |
+
{
|
25 |
+
// Add data encoding type for file uploading
|
26 |
+
add_action( 'post_edit_form_tag', array( __CLASS__, 'post_edit_form_tag' ) );
|
27 |
+
|
28 |
+
// Delete file via Ajax
|
29 |
+
add_action( 'wp_ajax_rwmb_delete_file', array( __CLASS__, 'wp_ajax_delete_file' ) );
|
30 |
+
|
31 |
+
// Allow reordering files
|
32 |
+
add_action( 'wp_ajax_rwmb_reorder_files', array( __CLASS__, 'wp_ajax_reorder_files' ) );
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Ajax callback for reordering images
|
37 |
+
*/
|
38 |
+
static function wp_ajax_reorder_files()
|
39 |
+
{
|
40 |
+
$post_id = (int) filter_input( INPUT_POST, 'post_id', FILTER_SANITIZE_NUMBER_INT );
|
41 |
+
$field_id = (string) filter_input( INPUT_POST, 'field_id' );
|
42 |
+
$order = (string) filter_input( INPUT_POST, 'order' );
|
43 |
+
|
44 |
+
check_ajax_referer( "mashsb-rwmb-reorder-files_{$field_id}" );
|
45 |
+
parse_str( $order, $items );
|
46 |
+
delete_post_meta( $post_id, $field_id );
|
47 |
+
foreach ( $items['item'] as $item )
|
48 |
+
{
|
49 |
+
add_post_meta( $post_id, $field_id, $item, false );
|
50 |
+
}
|
51 |
+
wp_send_json_success();
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Add data encoding type for file uploading
|
56 |
+
*
|
57 |
+
* @return void
|
58 |
+
*/
|
59 |
+
static function post_edit_form_tag()
|
60 |
+
{
|
61 |
+
echo ' enctype="multipart/form-data"';
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Ajax callback for deleting files.
|
66 |
+
* Modified from a function used by "Verve Meta Boxes" plugin
|
67 |
+
* @link http://goo.gl/LzYSq
|
68 |
+
*/
|
69 |
+
static function wp_ajax_delete_file()
|
70 |
+
{
|
71 |
+
$post_id = (int) filter_input( INPUT_POST, 'post_id', FILTER_SANITIZE_NUMBER_INT );
|
72 |
+
$field_id = (string) filter_input( INPUT_POST, 'field_id' );
|
73 |
+
$attachment_id = (int) filter_input( INPUT_POST, 'attachment_id', FILTER_SANITIZE_NUMBER_INT );
|
74 |
+
$force_delete = (int) filter_input( INPUT_POST, 'force_delete', FILTER_SANITIZE_NUMBER_INT );
|
75 |
+
|
76 |
+
check_ajax_referer( "mashsb-rwmb-delete-file_{$field_id}" );
|
77 |
+
delete_post_meta( $post_id, $field_id, $attachment_id );
|
78 |
+
$success = $force_delete ? wp_delete_attachment( $attachment_id ) : true;
|
79 |
+
|
80 |
+
if ( $success )
|
81 |
+
wp_send_json_success();
|
82 |
+
else
|
83 |
+
wp_send_json_error( __( 'Error: Cannot delete file', 'meta-box' ) );
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Get field HTML
|
88 |
+
*
|
89 |
+
* @param mixed $meta
|
90 |
+
* @param array $field
|
91 |
+
*
|
92 |
+
* @return string
|
93 |
+
*/
|
94 |
+
static function html( $meta, $field )
|
95 |
+
{
|
96 |
+
$i18n_title = apply_filters( 'rwmb_file_upload_string', _x( 'Upload Files', 'file upload', 'meta-box' ), $field );
|
97 |
+
$i18n_more = apply_filters( 'rwmb_file_add_string', _x( '+ Add new file', 'file upload', 'meta-box' ), $field );
|
98 |
+
|
99 |
+
// Uploaded files
|
100 |
+
$html = self::get_uploaded_files( $meta, $field );
|
101 |
+
$new_file_classes = array( 'new-files' );
|
102 |
+
if ( ! empty( $field['max_file_uploads'] ) && count( $meta ) >= (int) $field['max_file_uploads'] )
|
103 |
+
$new_file_classes[] = 'hidden';
|
104 |
+
|
105 |
+
// Show form upload
|
106 |
+
$html .= sprintf(
|
107 |
+
'<div class="%s">
|
108 |
+
<h4>%s</h4>
|
109 |
+
<div class="file-input"><input type="file" name="%s[]" /></div>
|
110 |
+
<a class="mashsb-rwmb-add-file" href="#"><strong>%s</strong></a>
|
111 |
+
</div>',
|
112 |
+
implode( ' ', $new_file_classes ),
|
113 |
+
$i18n_title,
|
114 |
+
$field['id'],
|
115 |
+
$i18n_more
|
116 |
+
);
|
117 |
+
|
118 |
+
return $html;
|
119 |
+
}
|
120 |
+
|
121 |
+
static function get_uploaded_files( $files, $field )
|
122 |
+
{
|
123 |
+
$reorder_nonce = wp_create_nonce( "mashsb-rwmb-reorder-files_{$field['id']}" );
|
124 |
+
$delete_nonce = wp_create_nonce( "mashsb-rwmb-delete-file_{$field['id']}" );
|
125 |
+
|
126 |
+
$classes = array( 'mashsb-rwmb-file', 'mashsb-rwmb-uploaded' );
|
127 |
+
if ( count( $files ) <= 0 )
|
128 |
+
$classes[] = 'hidden';
|
129 |
+
$list = '<ul class="%s" data-field_id="%s" data-delete_nonce="%s" data-reorder_nonce="%s" data-force_delete="%s" data-max_file_uploads="%s" data-mime_type="%s">';
|
130 |
+
$html = sprintf(
|
131 |
+
$list,
|
132 |
+
implode( ' ', $classes ),
|
133 |
+
$field['id'],
|
134 |
+
$delete_nonce,
|
135 |
+
$reorder_nonce,
|
136 |
+
$field['force_delete'] ? 1 : 0,
|
137 |
+
$field['max_file_uploads'],
|
138 |
+
$field['mime_type']
|
139 |
+
);
|
140 |
+
|
141 |
+
foreach ( (array) $files as $attachment_id )
|
142 |
+
{
|
143 |
+
$html .= self::file_html( $attachment_id );
|
144 |
+
}
|
145 |
+
|
146 |
+
$html .= '</ul>';
|
147 |
+
|
148 |
+
return $html;
|
149 |
+
}
|
150 |
+
|
151 |
+
static function file_html( $attachment_id )
|
152 |
+
{
|
153 |
+
$i18n_delete = apply_filters( 'rwmb_file_delete_string', _x( 'Delete', 'file upload', 'meta-box' ) );
|
154 |
+
$i18n_edit = apply_filters( 'rwmb_file_edit_string', _x( 'Edit', 'file upload', 'meta-box' ) );
|
155 |
+
$item = '
|
156 |
+
<li id="item_%s">
|
157 |
+
<div class="mashsb-rwmb-icon">%s</div>
|
158 |
+
<div class="mashsb-rwmb-info">
|
159 |
+
<a href="%s" target="_blank">%s</a>
|
160 |
+
<p>%s</p>
|
161 |
+
<a title="%s" href="%s" target="_blank">%s</a> |
|
162 |
+
<a title="%s" class="mashsb-rwmb-delete-file" href="#" data-attachment_id="%s">%s</a>
|
163 |
+
</div>
|
164 |
+
</li>';
|
165 |
+
|
166 |
+
$mime_type = get_post_mime_type( $attachment_id );
|
167 |
+
|
168 |
+
return sprintf(
|
169 |
+
$item,
|
170 |
+
$attachment_id,
|
171 |
+
wp_get_attachment_image( $attachment_id, array( 60, 60 ), true ),
|
172 |
+
wp_get_attachment_url( $attachment_id ),
|
173 |
+
get_the_title( $attachment_id ),
|
174 |
+
$mime_type,
|
175 |
+
$i18n_edit,
|
176 |
+
get_edit_post_link( $attachment_id ),
|
177 |
+
$i18n_edit,
|
178 |
+
$i18n_delete,
|
179 |
+
$attachment_id,
|
180 |
+
$i18n_delete
|
181 |
+
);
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* Get meta values to save
|
186 |
+
*
|
187 |
+
* @param mixed $new
|
188 |
+
* @param mixed $old
|
189 |
+
* @param int $post_id
|
190 |
+
* @param array $field
|
191 |
+
*
|
192 |
+
* @return array|mixed
|
193 |
+
*/
|
194 |
+
static function value( $new, $old, $post_id, $field )
|
195 |
+
{
|
196 |
+
$name = $field['id'];
|
197 |
+
if ( empty( $_FILES[$name] ) )
|
198 |
+
return $new;
|
199 |
+
|
200 |
+
$new = array();
|
201 |
+
$files = self::fix_file_array( $_FILES[$name] );
|
202 |
+
|
203 |
+
foreach ( $files as $file_item )
|
204 |
+
{
|
205 |
+
$file = wp_handle_upload( $file_item, array( 'test_form' => false ) );
|
206 |
+
|
207 |
+
if ( ! isset( $file['file'] ) )
|
208 |
+
continue;
|
209 |
+
|
210 |
+
$file_name = $file['file'];
|
211 |
+
|
212 |
+
$attachment = array(
|
213 |
+
'post_mime_type' => $file['type'],
|
214 |
+
'guid' => $file['url'],
|
215 |
+
'post_parent' => $post_id,
|
216 |
+
'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $file_name ) ),
|
217 |
+
'post_content' => '',
|
218 |
+
);
|
219 |
+
$id = wp_insert_attachment( $attachment, $file_name, $post_id );
|
220 |
+
|
221 |
+
if ( ! is_wp_error( $id ) )
|
222 |
+
{
|
223 |
+
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file_name ) );
|
224 |
+
|
225 |
+
// Save file ID in meta field
|
226 |
+
$new[] = $id;
|
227 |
+
}
|
228 |
+
}
|
229 |
+
|
230 |
+
return array_unique( array_merge( $old, $new ) );
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Fixes the odd indexing of multiple file uploads from the format:
|
235 |
+
* $_FILES['field']['key']['index']
|
236 |
+
* To the more standard and appropriate:
|
237 |
+
* $_FILES['field']['index']['key']
|
238 |
+
*
|
239 |
+
* @param array $files
|
240 |
+
*
|
241 |
+
* @return array
|
242 |
+
*/
|
243 |
+
static function fix_file_array( $files )
|
244 |
+
{
|
245 |
+
$output = array();
|
246 |
+
foreach ( $files as $key => $list )
|
247 |
+
{
|
248 |
+
foreach ( $list as $index => $value )
|
249 |
+
{
|
250 |
+
$output[$index][$key] = $value;
|
251 |
+
}
|
252 |
+
}
|
253 |
+
|
254 |
+
return $output;
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* Normalize parameters for field
|
259 |
+
*
|
260 |
+
* @param array $field
|
261 |
+
*
|
262 |
+
* @return array
|
263 |
+
*/
|
264 |
+
static function normalize( $field )
|
265 |
+
{
|
266 |
+
$field = parent::normalize( $field );
|
267 |
+
$field = wp_parse_args( $field, array(
|
268 |
+
'std' => array(),
|
269 |
+
'force_delete' => false,
|
270 |
+
'max_file_uploads' => 0,
|
271 |
+
'mime_type' => '',
|
272 |
+
) );
|
273 |
+
$field['multiple'] = true;
|
274 |
+
|
275 |
+
return $field;
|
276 |
+
}
|
277 |
+
|
278 |
+
/**
|
279 |
+
* Get the field value
|
280 |
+
* The difference between this function and 'meta' function is 'meta' function always returns the escaped value
|
281 |
+
* of the field saved in the database, while this function returns more meaningful value of the field
|
282 |
+
*
|
283 |
+
* @param array $field Field parameters
|
284 |
+
* @param array $args Not used for this field
|
285 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
286 |
+
*
|
287 |
+
* @return mixed Full info of uploaded files
|
288 |
+
*/
|
289 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
290 |
+
{
|
291 |
+
if ( ! $post_id )
|
292 |
+
$post_id = get_the_ID();
|
293 |
+
|
294 |
+
/**
|
295 |
+
* Get raw meta value in the database, no escape
|
296 |
+
* Very similar to self::meta() function
|
297 |
+
*/
|
298 |
+
$file_ids = get_post_meta( $post_id, $field['id'], false );
|
299 |
+
|
300 |
+
// For each file, get full file info
|
301 |
+
$value = array();
|
302 |
+
foreach ( (array) $file_ids as $file_id )
|
303 |
+
{
|
304 |
+
if ( $file_info = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'file_info' ), $file_id, $args ) )
|
305 |
+
{
|
306 |
+
$value[$file_id] = $file_info;
|
307 |
+
}
|
308 |
+
}
|
309 |
+
|
310 |
+
return $value;
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
* Output the field value
|
315 |
+
* Display unordered list of files
|
316 |
+
*
|
317 |
+
* @param array $field Field parameters
|
318 |
+
* @param array $args Additional arguments. Not used for these fields.
|
319 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
320 |
+
*
|
321 |
+
* @return mixed Field value
|
322 |
+
*/
|
323 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
324 |
+
{
|
325 |
+
$value = self::get_value( $field, $args, $post_id );
|
326 |
+
if ( ! $value )
|
327 |
+
return '';
|
328 |
+
|
329 |
+
$output = '<ul>';
|
330 |
+
foreach ( $value as $file_id => $file_info )
|
331 |
+
{
|
332 |
+
$output .= sprintf(
|
333 |
+
'<li><a href="%s" target="_blank">%s</a></li>',
|
334 |
+
wp_get_attachment_url( $file_id ),
|
335 |
+
get_the_title( $file_id )
|
336 |
+
);
|
337 |
+
}
|
338 |
+
$output .= '</ul>';
|
339 |
+
|
340 |
+
return $output;
|
341 |
+
}
|
342 |
+
|
343 |
+
/**
|
344 |
+
* Get uploaded file information
|
345 |
+
*
|
346 |
+
* @param int $file_id Attachment file ID (post ID). Required.
|
347 |
+
* @param array $args Array of arguments (for size).
|
348 |
+
*
|
349 |
+
* @return array|bool False if file not found. Array of (id, name, path, url) on success
|
350 |
+
*/
|
351 |
+
static function file_info( $file_id, $args = array() )
|
352 |
+
{
|
353 |
+
$path = get_attached_file( $file_id );
|
354 |
+
if ( ! $path )
|
355 |
+
{
|
356 |
+
return false;
|
357 |
+
}
|
358 |
+
|
359 |
+
return array(
|
360 |
+
'ID' => $file_id,
|
361 |
+
'name' => basename( $path ),
|
362 |
+
'path' => $path,
|
363 |
+
'url' => wp_get_attachment_url( $file_id ),
|
364 |
+
'title' => get_the_title( $file_id ),
|
365 |
+
);
|
366 |
+
}
|
367 |
+
}
|
includes/admin/meta-box/inc/fields/force-creation.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Custom HTML field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Force_Creation_Field extends MASHSB_RWMB_Field {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Get field HTML
|
10 |
+
*
|
11 |
+
* @param mixed $meta
|
12 |
+
* @param array $field
|
13 |
+
*
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
static function html( $meta, $field ) {
|
17 |
+
global $post;
|
18 |
+
$html = !empty( $field['std'] ) ? $field['std'] : '';
|
19 |
+
if( !empty( $field['callback'] ) && is_callable( $field['callback'] ) ) {
|
20 |
+
$html = call_user_func_array( $field['callback'], array($meta, $field) );
|
21 |
+
}
|
22 |
+
return self::get_force_refresh_url($post, $field);
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Link to the open graph debugger to check if open graph tags are valid
|
27 |
+
*
|
28 |
+
* @global array $post
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
static function get_force_refresh_url($post, $field) {
|
32 |
+
//var_dump( $post );
|
33 |
+
if( isset( $post ) && $post->post_status == "publish" ) {
|
34 |
+
$url = get_permalink( $post->ID );
|
35 |
+
return '<a href="' . $url . '?mashsb-refresh" target="_blank" class="button-small"> Get Shares & Shortlinks </a>' . $field['helper'];
|
36 |
+
} else {
|
37 |
+
return '';
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
includes/admin/meta-box/inc/fields/heading.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Heading field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Heading_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
wp_enqueue_style( 'mashsb-rwmb-heading', MASHSB_RWMB_CSS_URL . 'heading.css', array(), MASHSB_RWMB_VER );
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Show begin HTML markup for fields
|
19 |
+
*
|
20 |
+
* @param mixed $meta
|
21 |
+
* @param array $field
|
22 |
+
*
|
23 |
+
* @return string
|
24 |
+
*/
|
25 |
+
static function begin_html( $meta, $field )
|
26 |
+
{
|
27 |
+
$attributes = empty( $field['id'] ) ? '' : " id='{$field['id']}'";
|
28 |
+
return sprintf( '<h4%s>%s</h4>', $attributes, $field['name'] );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Show end HTML markup for fields
|
33 |
+
*
|
34 |
+
* @param mixed $meta
|
35 |
+
* @param array $field
|
36 |
+
*
|
37 |
+
* @return string
|
38 |
+
*/
|
39 |
+
static function end_html( $meta, $field )
|
40 |
+
{
|
41 |
+
$id = $field['id'] ? " id='{$field['id']}-description'" : '';
|
42 |
+
|
43 |
+
return $field['desc'] ? "<p{$id} class='description'>{$field['desc']}</p>" : '';
|
44 |
+
}
|
45 |
+
}
|
includes/admin/meta-box/inc/fields/hidden-data.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Custom HTML field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Hidden_Data_Field extends MASHSB_RWMB_Field {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Get field HTML
|
10 |
+
*
|
11 |
+
* @param mixed $meta
|
12 |
+
* @param array $field
|
13 |
+
*
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
static function html( $meta, $field )
|
17 |
+
{
|
18 |
+
return sprintf(
|
19 |
+
'<input type="hidden" class="rwmb-hidden" name="%s" id="%s" value="%s">',
|
20 |
+
$field['field_name'],
|
21 |
+
$field['id'],
|
22 |
+
$field['std']
|
23 |
+
);
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
|
28 |
+
}
|
includes/admin/meta-box/inc/fields/hidden.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Hidden field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Hidden_Field extends MASHSB_RWMB_Input_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get the attributes for a field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
* @param mixed $value
|
12 |
+
*
|
13 |
+
* @return array
|
14 |
+
*/
|
15 |
+
static function get_attributes( $field, $value = null )
|
16 |
+
{
|
17 |
+
$attributes = parent::get_attributes( $field, $value );
|
18 |
+
$attributes['type'] = 'hidden';
|
19 |
+
|
20 |
+
return $attributes;
|
21 |
+
}
|
22 |
+
}
|
includes/admin/meta-box/inc/fields/image-advanced.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Image advanced field class which users WordPress media popup to upload and select images.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Image_Advanced_Field extends MASHSB_RWMB_Media_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
parent::admin_enqueue_scripts();
|
15 |
+
wp_enqueue_style( 'mashsb-rwmb-image-advanced', MASHSB_RWMB_CSS_URL . 'image-advanced.css', array( 'mashsb-rwmb-media' ), MASHSB_RWMB_VER );
|
16 |
+
wp_enqueue_script( 'mashsb-rwmb-image-advanced', MASHSB_RWMB_JS_URL . 'image-advanced.js', array( 'mashsb-rwmb-media' ), MASHSB_RWMB_VER, true );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Add actions
|
21 |
+
*
|
22 |
+
* @return void
|
23 |
+
*/
|
24 |
+
static function add_actions()
|
25 |
+
{
|
26 |
+
parent::add_actions();
|
27 |
+
// Print attachment templates
|
28 |
+
add_action( 'print_media_templates', array( __CLASS__, 'print_templates' ) );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Normalize parameters for field
|
33 |
+
*
|
34 |
+
* @param array $field
|
35 |
+
*
|
36 |
+
* @return array
|
37 |
+
*/
|
38 |
+
static function normalize( $field )
|
39 |
+
{
|
40 |
+
$field = parent::normalize( $field );
|
41 |
+
$field['mime_type'] = 'image';
|
42 |
+
|
43 |
+
return $field;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Get the field value.
|
48 |
+
* @param array $field
|
49 |
+
* @param array $args
|
50 |
+
* @param null $post_id
|
51 |
+
* @return mixed
|
52 |
+
*/
|
53 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
54 |
+
{
|
55 |
+
return MASHSB_RWMB_Image_Field::get_value( $field, $args, $post_id );
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Output the field value.
|
60 |
+
* @param array $field
|
61 |
+
* @param array $args
|
62 |
+
* @param null $post_id
|
63 |
+
* @return mixed
|
64 |
+
*/
|
65 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
66 |
+
{
|
67 |
+
return MASHSB_RWMB_Image_Field::the_value( $field, $args, $post_id );
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Get uploaded file information.
|
72 |
+
*
|
73 |
+
* @param int $file_id Attachment image ID (post ID). Required.
|
74 |
+
* @param array $args Array of arguments (for size).
|
75 |
+
* @return array|bool False if file not found. Array of image info on success
|
76 |
+
*/
|
77 |
+
static function file_info( $file_id, $args = array() )
|
78 |
+
{
|
79 |
+
return MASHSB_RWMB_Image_Field::file_info( $file_id, $args );
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Template for media item
|
84 |
+
* @return void
|
85 |
+
*/
|
86 |
+
static function print_templates()
|
87 |
+
{
|
88 |
+
require_once( MASHSB_RWMB_INC_DIR . 'templates/image-advanced.php' );
|
89 |
+
}
|
90 |
+
}
|
includes/admin/meta-box/inc/fields/image-select.php
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Image select field class which uses images as radio options.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Image_Select_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*/
|
10 |
+
static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-image-select', MASHSB_RWMB_CSS_URL . 'image-select.css', array(), MASHSB_RWMB_VER );
|
13 |
+
wp_enqueue_script( 'mashsb-rwmb-image-select', MASHSB_RWMB_JS_URL . 'image-select.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Get field HTML
|
18 |
+
*
|
19 |
+
* @param mixed $meta
|
20 |
+
* @param array $field
|
21 |
+
* @return string
|
22 |
+
*/
|
23 |
+
static function html( $meta, $field )
|
24 |
+
{
|
25 |
+
$html = array();
|
26 |
+
$tpl = '<label class="mashsb-rwmb-image-select"><img src="%s"><input type="%s" class="hidden" name="%s" value="%s"%s></label>';
|
27 |
+
|
28 |
+
$meta = (array) $meta;
|
29 |
+
foreach ( $field['options'] as $value => $image )
|
30 |
+
{
|
31 |
+
$html[] = sprintf(
|
32 |
+
$tpl,
|
33 |
+
$image,
|
34 |
+
$field['multiple'] ? 'checkbox' : 'radio',
|
35 |
+
$field['field_name'],
|
36 |
+
$value,
|
37 |
+
checked( in_array( $value, $meta ), true, false )
|
38 |
+
);
|
39 |
+
}
|
40 |
+
|
41 |
+
return implode( ' ', $html );
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Normalize parameters for field
|
46 |
+
*
|
47 |
+
* @param array $field
|
48 |
+
* @return array
|
49 |
+
*/
|
50 |
+
static function normalize( $field )
|
51 |
+
{
|
52 |
+
$field = parent::normalize( $field );
|
53 |
+
$field['field_name'] .= $field['multiple'] ? '[]' : '';
|
54 |
+
|
55 |
+
return $field;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Output the field value
|
60 |
+
* Display unordered list of images with option for size and link to full size
|
61 |
+
*
|
62 |
+
* @param array $field Field parameters
|
63 |
+
* @param array $args Additional arguments. Not used for these fields.
|
64 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
65 |
+
* @return mixed Field value
|
66 |
+
*/
|
67 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
68 |
+
{
|
69 |
+
$value = self::get_value( $field, $args, $post_id );
|
70 |
+
if ( ! $value )
|
71 |
+
return '';
|
72 |
+
|
73 |
+
if ( $field['clone'] )
|
74 |
+
{
|
75 |
+
$output = '<ul>';
|
76 |
+
if ( $field['multiple'] )
|
77 |
+
{
|
78 |
+
foreach ( $value as $subvalue )
|
79 |
+
{
|
80 |
+
$output .= '<li><ul>';
|
81 |
+
foreach ( $subvalue as $option )
|
82 |
+
{
|
83 |
+
$output .= sprintf( '<li><img src="%s"></li>', esc_url( $field['options'][$option] ) );
|
84 |
+
}
|
85 |
+
$output .= '</ul></li>';
|
86 |
+
}
|
87 |
+
}
|
88 |
+
else
|
89 |
+
{
|
90 |
+
foreach ( $value as $subvalue )
|
91 |
+
{
|
92 |
+
$output .= sprintf( '<li><img src="%s"></li>', esc_url( $field['options'][$subvalue] ) );
|
93 |
+
}
|
94 |
+
}
|
95 |
+
$output .= '</ul>';
|
96 |
+
}
|
97 |
+
else
|
98 |
+
{
|
99 |
+
if ( $field['multiple'] )
|
100 |
+
{
|
101 |
+
$output = '<ul>';
|
102 |
+
foreach ( $value as $subvalue )
|
103 |
+
{
|
104 |
+
$output .= sprintf( '<li><img src="%s"></li>', esc_url( $field['options'][$subvalue] ) );
|
105 |
+
}
|
106 |
+
$output .= '</ul>';
|
107 |
+
}
|
108 |
+
else
|
109 |
+
{
|
110 |
+
$output = sprintf( '<img src="%s">', esc_url( $field['options'][$value] ) );
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
return $output;
|
115 |
+
}
|
116 |
+
}
|
includes/admin/meta-box/inc/fields/image-upload.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File advanced field class which users WordPress media popup to upload and select files.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Image_Upload_Field extends MASHSB_RWMB_Image_Advanced_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Add actions
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function add_actions()
|
13 |
+
{
|
14 |
+
parent::add_actions();
|
15 |
+
// Print attachment templates
|
16 |
+
add_action( 'print_media_templates', array( 'MASHSB_RWMB_File_Upload_Field', 'print_templates' ) );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Enqueue scripts and styles
|
21 |
+
*
|
22 |
+
* @return void
|
23 |
+
*/
|
24 |
+
static function admin_enqueue_scripts()
|
25 |
+
{
|
26 |
+
parent::admin_enqueue_scripts();
|
27 |
+
MASHSB_RWMB_File_Upload_Field::admin_enqueue_scripts();
|
28 |
+
wp_enqueue_script( 'mashsb-rwmb-image-upload', MASHSB_RWMB_JS_URL . 'image-upload.js', array( 'mashsb-rwmb-file-upload', 'mashsb-rwmb-image-advanced' ), MASHSB_RWMB_VER, true );
|
29 |
+
}
|
30 |
+
}
|
includes/admin/meta-box/inc/fields/image.php
ADDED
@@ -0,0 +1,234 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Image field class which uses <input type="file"> to upload.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Image_Field extends MASHSB_RWMB_File_Field
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Enqueue scripts and styles.
|
10 |
+
*/
|
11 |
+
static function admin_enqueue_scripts()
|
12 |
+
{
|
13 |
+
// Enqueue same scripts and styles as for file field
|
14 |
+
parent::admin_enqueue_scripts();
|
15 |
+
|
16 |
+
wp_enqueue_style( 'mashsb-rwmb-image', MASHSB_RWMB_CSS_URL . 'image.css', array(), MASHSB_RWMB_VER );
|
17 |
+
wp_enqueue_script( 'mashsb-rwmb-image', MASHSB_RWMB_JS_URL . 'image.js', array( 'jquery-ui-sortable' ), MASHSB_RWMB_VER, true );
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Add custom actions.
|
22 |
+
*/
|
23 |
+
static function add_actions()
|
24 |
+
{
|
25 |
+
// Do same actions as file field
|
26 |
+
parent::add_actions();
|
27 |
+
|
28 |
+
// Reorder images via Ajax
|
29 |
+
add_action( 'wp_ajax_rwmb_reorder_images', array( __CLASS__, 'wp_ajax_reorder_images' ) );
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Ajax callback for reordering images.
|
34 |
+
*/
|
35 |
+
static function wp_ajax_reorder_images()
|
36 |
+
{
|
37 |
+
$post_id = (int) filter_input( INPUT_POST, 'post_id', FILTER_SANITIZE_NUMBER_INT );
|
38 |
+
$field_id = (string) filter_input( INPUT_POST, 'field_id' );
|
39 |
+
$order = (string) filter_input( INPUT_POST, 'order' );
|
40 |
+
|
41 |
+
check_ajax_referer( "mashsb-rwmb-reorder-images_{$field_id}" );
|
42 |
+
parse_str( $order, $items );
|
43 |
+
delete_post_meta( $post_id, $field_id );
|
44 |
+
foreach ( $items['item'] as $item )
|
45 |
+
{
|
46 |
+
add_post_meta( $post_id, $field_id, $item, false );
|
47 |
+
}
|
48 |
+
wp_send_json_success();
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Get field HTML
|
53 |
+
*
|
54 |
+
* @param mixed $meta
|
55 |
+
* @param array $field
|
56 |
+
*
|
57 |
+
* @return string
|
58 |
+
*/
|
59 |
+
static function html( $meta, $field )
|
60 |
+
{
|
61 |
+
$i18n_title = apply_filters( 'rwmb_image_upload_string', _x( 'Upload Images', 'image upload', 'meta-box' ), $field );
|
62 |
+
$i18n_more = apply_filters( 'rwmb_image_add_string', _x( '+ Add new image', 'image upload', 'meta-box' ), $field );
|
63 |
+
|
64 |
+
// Uploaded images
|
65 |
+
$html = self::get_uploaded_images( $meta, $field );
|
66 |
+
|
67 |
+
// Show form upload
|
68 |
+
$html .= sprintf(
|
69 |
+
'<h4>%s</h4>
|
70 |
+
<div class="new-files">
|
71 |
+
<div class="file-input"><input type="file" name="%s[]" /></div>
|
72 |
+
<a class="mashsb-rwmb-add-file" href="#"><strong>%s</strong></a>
|
73 |
+
</div>',
|
74 |
+
$i18n_title,
|
75 |
+
$field['id'],
|
76 |
+
$i18n_more
|
77 |
+
);
|
78 |
+
|
79 |
+
return $html;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Get HTML markup for uploaded images
|
84 |
+
*
|
85 |
+
* @param array $images
|
86 |
+
* @param array $field
|
87 |
+
*
|
88 |
+
* @return string
|
89 |
+
*/
|
90 |
+
static function get_uploaded_images( $images, $field )
|
91 |
+
{
|
92 |
+
$reorder_nonce = wp_create_nonce( "mashsb-rwmb-reorder-images_{$field['id']}" );
|
93 |
+
$delete_nonce = wp_create_nonce( "mashsb-rwmb-delete-file_{$field['id']}" );
|
94 |
+
$classes = array( 'mashsb-rwmb-images', 'mashsb-rwmb-uploaded' );
|
95 |
+
if ( count( $images ) <= 0 )
|
96 |
+
$classes[] = 'hidden';
|
97 |
+
$list = '<ul class="%s" data-field_id="%s" data-delete_nonce="%s" data-reorder_nonce="%s" data-force_delete="%s" data-max_file_uploads="%s">';
|
98 |
+
$html = sprintf(
|
99 |
+
$list,
|
100 |
+
implode( ' ', $classes ),
|
101 |
+
$field['id'],
|
102 |
+
$delete_nonce,
|
103 |
+
$reorder_nonce,
|
104 |
+
$field['force_delete'] ? 1 : 0,
|
105 |
+
$field['max_file_uploads']
|
106 |
+
);
|
107 |
+
|
108 |
+
foreach ( $images as $image )
|
109 |
+
{
|
110 |
+
$html .= self::img_html( $image );
|
111 |
+
}
|
112 |
+
$html .= '</ul>';
|
113 |
+
return $html;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Get HTML markup for ONE uploaded image
|
118 |
+
*
|
119 |
+
* @param int $image Image ID
|
120 |
+
* @return string
|
121 |
+
*/
|
122 |
+
static function img_html( $image )
|
123 |
+
{
|
124 |
+
$i18n_delete = apply_filters( 'rwmb_image_delete_string', _x( 'Delete', 'image upload', 'meta-box' ) );
|
125 |
+
$i18n_edit = apply_filters( 'rwmb_image_edit_string', _x( 'Edit', 'image upload', 'meta-box' ) );
|
126 |
+
$item = '
|
127 |
+
<li id="item_%s">
|
128 |
+
<img src="%s" />
|
129 |
+
<div class="mashsb-rwmb-image-bar">
|
130 |
+
<a title="%s" class="mashsb-rwmb-edit-file" href="%s" target="_blank">%s</a> |
|
131 |
+
<a title="%s" class="mashsb-rwmb-delete-file" href="#" data-attachment_id="%s">×</a>
|
132 |
+
</div>
|
133 |
+
</li>
|
134 |
+
';
|
135 |
+
|
136 |
+
$src = wp_get_attachment_image_src( $image, 'thumbnail' );
|
137 |
+
$src = $src[0];
|
138 |
+
$link = get_edit_post_link( $image );
|
139 |
+
|
140 |
+
return sprintf(
|
141 |
+
$item,
|
142 |
+
$image,
|
143 |
+
$src,
|
144 |
+
$i18n_edit, $link, $i18n_edit,
|
145 |
+
$i18n_delete, $image
|
146 |
+
);
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Output the field value
|
151 |
+
* Display unordered list of images with option for size and link to full size
|
152 |
+
*
|
153 |
+
* @param array $field Field parameters
|
154 |
+
* @param array $args Additional arguments. Not used for these fields.
|
155 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
156 |
+
*
|
157 |
+
* @return mixed Field value
|
158 |
+
*/
|
159 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
160 |
+
{
|
161 |
+
$value = self::get_value( $field, $args, $post_id );
|
162 |
+
if ( ! $value )
|
163 |
+
return '';
|
164 |
+
|
165 |
+
$output = '<ul>';
|
166 |
+
foreach ( $value as $file_info )
|
167 |
+
{
|
168 |
+
$img = sprintf(
|
169 |
+
'<img src="%s" alt="%s" title="%s">',
|
170 |
+
esc_url( $file_info['url'] ),
|
171 |
+
esc_attr( $file_info['alt'] ),
|
172 |
+
esc_attr( $file_info['title'] )
|
173 |
+
);
|
174 |
+
|
175 |
+
// Link thumbnail to full size image?
|
176 |
+
if ( isset( $args['link'] ) && $args['link'] )
|
177 |
+
{
|
178 |
+
$img = sprintf(
|
179 |
+
'<a href="%s" title="%s">%s</a>',
|
180 |
+
esc_url( $file_info['full_url'] ),
|
181 |
+
esc_attr( $file_info['title'] ),
|
182 |
+
$img
|
183 |
+
);
|
184 |
+
}
|
185 |
+
|
186 |
+
$output .= "<li>$img</li>";
|
187 |
+
}
|
188 |
+
$output .= '</ul>';
|
189 |
+
|
190 |
+
return $output;
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Get uploaded file information
|
195 |
+
*
|
196 |
+
* @param int $file_id Attachment image ID (post ID). Required.
|
197 |
+
* @param array $args Array of arguments (for size).
|
198 |
+
*
|
199 |
+
* @return array|bool False if file not found. Array of image info on success
|
200 |
+
*/
|
201 |
+
static function file_info( $file_id, $args = array() )
|
202 |
+
{
|
203 |
+
$args = wp_parse_args( $args, array(
|
204 |
+
'size' => 'thumbnail',
|
205 |
+
) );
|
206 |
+
|
207 |
+
$img_src = wp_get_attachment_image_src( $file_id, $args['size'] );
|
208 |
+
if ( ! $img_src )
|
209 |
+
{
|
210 |
+
return false;
|
211 |
+
}
|
212 |
+
|
213 |
+
$attachment = get_post( $file_id );
|
214 |
+
$path = get_attached_file( $file_id );
|
215 |
+
$info = array(
|
216 |
+
'ID' => $file_id,
|
217 |
+
'name' => basename( $path ),
|
218 |
+
'path' => $path,
|
219 |
+
'url' => $img_src[0],
|
220 |
+
'width' => $img_src[1],
|
221 |
+
'height' => $img_src[2],
|
222 |
+
'full_url' => wp_get_attachment_url( $file_id ),
|
223 |
+
'title' => $attachment->post_title,
|
224 |
+
'caption' => $attachment->post_excerpt,
|
225 |
+
'description' => $attachment->post_content,
|
226 |
+
'alt' => get_post_meta( $file_id, '_wp_attachment_image_alt', true ),
|
227 |
+
);
|
228 |
+
if ( function_exists( 'wp_get_attachment_image_srcset' ) )
|
229 |
+
{
|
230 |
+
$info['srcset'] = wp_get_attachment_image_srcset( $file_id );
|
231 |
+
}
|
232 |
+
return $info;
|
233 |
+
}
|
234 |
+
}
|
includes/admin/meta-box/inc/fields/input-list.php
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Input list field.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Input_List_Field extends MASHSB_RWMB_Choice_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*/
|
10 |
+
public static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-input-list', MASHSB_RWMB_CSS_URL . 'input-list.css', array(), MASHSB_RWMB_VER );
|
13 |
+
wp_enqueue_script( 'mashsb-rwmb-input-list', MASHSB_RWMB_JS_URL . 'input-list.js', array(), MASHSB_RWMB_VER, true );
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Walk options
|
18 |
+
*
|
19 |
+
* @param mixed $meta
|
20 |
+
* @param array $field
|
21 |
+
* @param mixed $options
|
22 |
+
* @param mixed $db_fields
|
23 |
+
*
|
24 |
+
* @return string
|
25 |
+
*/
|
26 |
+
public static function walk( $options, $db_fields, $meta, $field )
|
27 |
+
{
|
28 |
+
$walker = new MASHSB_RWMB_Input_List_Walker( $db_fields, $field, $meta );
|
29 |
+
$output = sprintf( '<ul class="mashsb-rwmb-input-list %s">', $field['collapse'] ? 'collapse' : '' );
|
30 |
+
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
31 |
+
$output .= '</ul>';
|
32 |
+
|
33 |
+
return $output;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Normalize parameters for field
|
38 |
+
*
|
39 |
+
* @param array $field
|
40 |
+
* @return array
|
41 |
+
*/
|
42 |
+
public static function normalize( $field )
|
43 |
+
{
|
44 |
+
$field = $field['multiple'] ? MASHSB_RWMB_Multiple_Values_Field::normalize( $field ) : $field;
|
45 |
+
$field = MASHSB_RWMB_Input_Field::normalize( $field );
|
46 |
+
$field = parent::normalize( $field );
|
47 |
+
$field = wp_parse_args( $field, array(
|
48 |
+
'collapse' => true,
|
49 |
+
) );
|
50 |
+
|
51 |
+
$field['flatten'] = $field['multiple'] ? $field['flatten'] : true;
|
52 |
+
|
53 |
+
return $field;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get the attributes for a field
|
58 |
+
*
|
59 |
+
* @param array $field
|
60 |
+
* @param mixed $value
|
61 |
+
*
|
62 |
+
* @return array
|
63 |
+
*/
|
64 |
+
public static function get_attributes( $field, $value = null )
|
65 |
+
{
|
66 |
+
$attributes = MASHSB_RWMB_Input_Field::get_attributes( $field, $value );
|
67 |
+
$attributes['id'] = false;
|
68 |
+
$attributes['type'] = $field['multiple'] ? 'checkbox' : 'radio';
|
69 |
+
$attributes['value'] = $value;
|
70 |
+
|
71 |
+
return $attributes;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Output the field value
|
76 |
+
* Display option name instead of option value
|
77 |
+
*
|
78 |
+
* @use self::meta()
|
79 |
+
*
|
80 |
+
* @param array $field Field parameters
|
81 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
82 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
83 |
+
*
|
84 |
+
* @return mixed Field value
|
85 |
+
*/
|
86 |
+
public static function the_value( $field, $args = array(), $post_id = null )
|
87 |
+
{
|
88 |
+
$value = parent::get_value( $field, $args, $post_id );
|
89 |
+
return empty( $value ) ? '' : $field['options'][$value];
|
90 |
+
}
|
91 |
+
}
|
includes/admin/meta-box/inc/fields/input.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Abstract input field class which is used for all <input> fields.
|
4 |
+
*/
|
5 |
+
abstract class MASHSB_RWMB_Input_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
static function html( $meta, $field )
|
15 |
+
{
|
16 |
+
$attributes = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_attributes' ), $field, $meta );
|
17 |
+
return sprintf( '<input %s>%s', self::render_attributes( $attributes ), self::datalist_html( $field ) );
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Normalize parameters for field
|
22 |
+
*
|
23 |
+
* @param array $field
|
24 |
+
* @return array
|
25 |
+
*/
|
26 |
+
static function normalize( $field )
|
27 |
+
{
|
28 |
+
$field = parent::normalize( $field );
|
29 |
+
$field = wp_parse_args( $field, array(
|
30 |
+
'datalist' => false,
|
31 |
+
'readonly' => false,
|
32 |
+
) );
|
33 |
+
if ( $field['datalist'] )
|
34 |
+
{
|
35 |
+
$field['datalist'] = wp_parse_args( $field['datalist'], array(
|
36 |
+
'id' => $field['id'] . '_list',
|
37 |
+
'options' => array(),
|
38 |
+
) );
|
39 |
+
}
|
40 |
+
return $field;
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Get the attributes for a field
|
45 |
+
*
|
46 |
+
* @param array $field
|
47 |
+
* @param mixed $value
|
48 |
+
* @return array
|
49 |
+
*/
|
50 |
+
static function get_attributes( $field, $value = null )
|
51 |
+
{
|
52 |
+
$attributes = parent::get_attributes( $field, $value );
|
53 |
+
$attributes = wp_parse_args( $attributes, array(
|
54 |
+
'list' => $field['datalist'] ? $field['datalist']['id'] : false,
|
55 |
+
'readonly' => $field['readonly'],
|
56 |
+
'value' => $value,
|
57 |
+
'placeholder' => $field['placeholder'],
|
58 |
+
) );
|
59 |
+
|
60 |
+
return $attributes;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Create datalist, if any
|
65 |
+
*
|
66 |
+
* @param array $field
|
67 |
+
* @return array
|
68 |
+
*/
|
69 |
+
static function datalist_html( $field )
|
70 |
+
{
|
71 |
+
if ( empty( $field['datalist'] ) )
|
72 |
+
return '';
|
73 |
+
|
74 |
+
$datalist = $field['datalist'];
|
75 |
+
$html = sprintf( '<datalist id="%s">', $datalist['id'] );
|
76 |
+
foreach ( $datalist['options'] as $option )
|
77 |
+
{
|
78 |
+
$html .= sprintf( '<option value="%s"></option>', $option );
|
79 |
+
}
|
80 |
+
$html .= '</datalist>';
|
81 |
+
return $html;
|
82 |
+
}
|
83 |
+
}
|
includes/admin/meta-box/inc/fields/key-value.php
ADDED
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Key-value field class.
|
4 |
+
*/
|
5 |
+
abstract class MASHSB_RWMB_Key_Value_Field extends MASHSB_RWMB_Text_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
static function html( $meta, $field )
|
15 |
+
{
|
16 |
+
// Key
|
17 |
+
$key = isset( $meta[0] ) ? $meta[0] : '';
|
18 |
+
$attributes = self::get_attributes( $field, $key );
|
19 |
+
$attributes['placeholder'] = esc_attr__( 'Key', 'meta-box' );
|
20 |
+
$html = sprintf( '<input %s>', self::render_attributes( $attributes ) );
|
21 |
+
|
22 |
+
// Value
|
23 |
+
$val = isset( $meta[1] ) ? $meta[1] : '';
|
24 |
+
$attributes = self::get_attributes( $field, $val );
|
25 |
+
$attributes['placeholder'] = esc_attr__( 'Value', 'meta-box' );
|
26 |
+
$html .= sprintf( '<input %s>', self::render_attributes( $attributes ) );
|
27 |
+
|
28 |
+
return $html;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Show begin HTML markup for fields
|
33 |
+
*
|
34 |
+
* @param mixed $meta
|
35 |
+
* @param array $field
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
static function begin_html( $meta, $field )
|
39 |
+
{
|
40 |
+
$desc = $field['desc'] ? "<p id='{$field['id']}_description' class='description'>{$field['desc']}</p>" : '';
|
41 |
+
|
42 |
+
if ( empty( $field['name'] ) )
|
43 |
+
return '<div class="mashsb-rwmb-input">' . $desc;
|
44 |
+
|
45 |
+
return sprintf(
|
46 |
+
'<div class="mashsb-rwmb-label">
|
47 |
+
<label for="%s">%s</label>
|
48 |
+
</div>
|
49 |
+
<div class="mashsb-rwmb-input">
|
50 |
+
%s',
|
51 |
+
$field['id'],
|
52 |
+
$field['name'],
|
53 |
+
$desc
|
54 |
+
);
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Show end HTML markup for fields
|
59 |
+
* Do not show field description. Field description is shown before list of fields
|
60 |
+
*
|
61 |
+
* @param mixed $meta
|
62 |
+
* @param array $field
|
63 |
+
* @return string
|
64 |
+
*/
|
65 |
+
static function end_html( $meta, $field )
|
66 |
+
{
|
67 |
+
$button = $field['clone'] ? self::add_clone_button( $field ) : '';
|
68 |
+
$html = "$button</div>";
|
69 |
+
return $html;
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Escape meta for field output
|
74 |
+
*
|
75 |
+
* @param mixed $meta
|
76 |
+
* @return mixed
|
77 |
+
*/
|
78 |
+
static function esc_meta( $meta )
|
79 |
+
{
|
80 |
+
foreach ( (array) $meta as $k => $pairs )
|
81 |
+
{
|
82 |
+
$meta[$k] = array_map( 'esc_attr', (array) $pairs );
|
83 |
+
}
|
84 |
+
return $meta;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Sanitize field value.
|
89 |
+
*
|
90 |
+
* @param mixed $new
|
91 |
+
* @param mixed $old
|
92 |
+
* @param int $post_id
|
93 |
+
* @param array $field
|
94 |
+
*
|
95 |
+
* @return string
|
96 |
+
*/
|
97 |
+
static function value( $new, $old, $post_id, $field )
|
98 |
+
{
|
99 |
+
foreach ( $new as &$arr )
|
100 |
+
{
|
101 |
+
if ( empty( $arr[0] ) && empty( $arr[1] ) )
|
102 |
+
$arr = false;
|
103 |
+
}
|
104 |
+
$new = array_filter( $new );
|
105 |
+
return $new;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Normalize parameters for field
|
110 |
+
*
|
111 |
+
* @param array $field
|
112 |
+
* @return array
|
113 |
+
*/
|
114 |
+
static function normalize( $field )
|
115 |
+
{
|
116 |
+
$field = parent::normalize( $field );
|
117 |
+
$field['clone'] = true;
|
118 |
+
$field['multiple'] = true;
|
119 |
+
return $field;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Output the field value
|
124 |
+
* Display unordered list of key - value pairs
|
125 |
+
*
|
126 |
+
* @use self::get_value()
|
127 |
+
* @see rwmb_the_value()
|
128 |
+
*
|
129 |
+
* @param array $field Field parameters
|
130 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
131 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
132 |
+
*
|
133 |
+
* @return string HTML output of the field
|
134 |
+
*/
|
135 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
136 |
+
{
|
137 |
+
$value = self::get_value( $field, $args, $post_id );
|
138 |
+
if ( ! is_array( $value ) )
|
139 |
+
return '';
|
140 |
+
|
141 |
+
$output = '<ul>';
|
142 |
+
foreach ( $value as $subvalue )
|
143 |
+
{
|
144 |
+
$output .= sprintf( '<li><label>%s</label>: %s</li>', $subvalue[0], $subvalue[1] );
|
145 |
+
}
|
146 |
+
$output .= '</ul>';
|
147 |
+
return $output;
|
148 |
+
}
|
149 |
+
}
|
includes/admin/meta-box/inc/fields/map.php
ADDED
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Map field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Map_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* Allows developers load more libraries via a filter.
|
16 |
+
* @link https://developers.google.com/maps/documentation/javascript/libraries
|
17 |
+
*/
|
18 |
+
$google_maps_url = apply_filters( 'rwmb_google_maps_url', 'https://maps.google.com/maps/api/js?sensor=false' );
|
19 |
+
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
|
20 |
+
wp_enqueue_style( 'mashsb-rwmb-map', MASHSB_RWMB_CSS_URL . 'map.css' );
|
21 |
+
wp_enqueue_script( 'mashsb-rwmb-map', MASHSB_RWMB_JS_URL . 'map.js', array( 'jquery-ui-autocomplete', 'google-maps' ), MASHSB_RWMB_VER, true );
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Get field HTML
|
26 |
+
*
|
27 |
+
* @param mixed $meta
|
28 |
+
* @param array $field
|
29 |
+
*
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
static function html( $meta, $field )
|
33 |
+
{
|
34 |
+
$html = '<div class="mashsb-rwmb-map-field">';
|
35 |
+
|
36 |
+
$html .= sprintf(
|
37 |
+
'<div class="mashsb-rwmb-map-canvas" data-default-loc="%s"></div>
|
38 |
+
<input type="hidden" name="%s" class="mashsb-rwmb-map-coordinate" value="%s">',
|
39 |
+
esc_attr( $field['std'] ),
|
40 |
+
esc_attr( $field['field_name'] ),
|
41 |
+
esc_attr( $meta )
|
42 |
+
);
|
43 |
+
|
44 |
+
if ( $address = $field['address_field'] )
|
45 |
+
{
|
46 |
+
$html .= sprintf(
|
47 |
+
'<button class="button mashsb-rwmb-map-goto-address-button" value="%s">%s</button>',
|
48 |
+
is_array( $address ) ? implode( ',', $address ) : $address,
|
49 |
+
__( 'Find Address', 'meta-box' )
|
50 |
+
);
|
51 |
+
}
|
52 |
+
|
53 |
+
$html .= '</div>';
|
54 |
+
|
55 |
+
return $html;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Normalize parameters for field
|
60 |
+
*
|
61 |
+
* @param array $field
|
62 |
+
*
|
63 |
+
* @return array
|
64 |
+
*/
|
65 |
+
static function normalize( $field )
|
66 |
+
{
|
67 |
+
$field = parent::normalize( $field );
|
68 |
+
$field = wp_parse_args( $field, array(
|
69 |
+
'std' => '',
|
70 |
+
'address_field' => '',
|
71 |
+
) );
|
72 |
+
|
73 |
+
return $field;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Get the field value
|
78 |
+
* The difference between this function and 'meta' function is 'meta' function always returns the escaped value
|
79 |
+
* of the field saved in the database, while this function returns more meaningful value of the field
|
80 |
+
*
|
81 |
+
* @param array $field Field parameters
|
82 |
+
* @param array $args Not used for this field
|
83 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
84 |
+
*
|
85 |
+
* @return mixed Array(latitude, longitude, zoom)
|
86 |
+
*/
|
87 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
88 |
+
{
|
89 |
+
$value = parent::get_value( $field, $args, $post_id );
|
90 |
+
list( $latitude, $longitude, $zoom ) = explode( ',', $value . ',,' );
|
91 |
+
return compact( 'latitude', 'longitude', 'zoom' );
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Output the field value
|
96 |
+
* Display Google maps
|
97 |
+
*
|
98 |
+
* @param array $field Field parameters
|
99 |
+
* @param array $args Additional arguments. Not used for these fields.
|
100 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
101 |
+
*
|
102 |
+
* @return mixed Field value
|
103 |
+
*/
|
104 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
105 |
+
{
|
106 |
+
$value = self::get_value( $field, $args, $post_id );
|
107 |
+
if ( ! $value['latitude'] || ! $value['longitude'] )
|
108 |
+
{
|
109 |
+
return '';
|
110 |
+
}
|
111 |
+
if ( ! $value['zoom'] )
|
112 |
+
{
|
113 |
+
$value['zoom'] = 14;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Enqueue scripts
|
118 |
+
* Note: We still can enqueue script which outputs in the footer
|
119 |
+
*/
|
120 |
+
/**
|
121 |
+
* Allows developers load more libraries via a filter.
|
122 |
+
* @link https://developers.google.com/maps/documentation/javascript/libraries
|
123 |
+
*/
|
124 |
+
$google_maps_url = apply_filters( 'rwmb_google_maps_url', 'https://maps.google.com/maps/api/js?sensor=false' );
|
125 |
+
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
|
126 |
+
wp_enqueue_script( 'mashsb-rwmb-map-frontend', MASHSB_RWMB_JS_URL . 'map-frontend.js', array( 'google-maps' ), '', true );
|
127 |
+
|
128 |
+
// Map parameters
|
129 |
+
$args = wp_parse_args( $args, array(
|
130 |
+
'latitude' => $value['latitude'],
|
131 |
+
'longitude' => $value['longitude'],
|
132 |
+
'width' => '100%',
|
133 |
+
'height' => '480px',
|
134 |
+
'marker' => true, // Display marker?
|
135 |
+
'marker_title' => '', // Marker title, when hover
|
136 |
+
'info_window' => '', // Content of info window (when click on marker). HTML allowed
|
137 |
+
'js_options' => array(),
|
138 |
+
) );
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Google Maps options
|
142 |
+
* Option name is the same as specified in Google Maps documentation
|
143 |
+
* This array will be convert to Javascript Object and pass as map options
|
144 |
+
* @link https://developers.google.com/maps/documentation/javascript/reference
|
145 |
+
*/
|
146 |
+
$args['js_options'] = wp_parse_args( $args['js_options'], array(
|
147 |
+
// Default to 'zoom' level set in admin, but can be overwritten
|
148 |
+
'zoom' => $value['zoom'],
|
149 |
+
|
150 |
+
// Map type, see https://developers.google.com/maps/documentation/javascript/reference#MapTypeId
|
151 |
+
'mapTypeId' => 'ROADMAP',
|
152 |
+
) );
|
153 |
+
|
154 |
+
$output = sprintf(
|
155 |
+
'<div class="mashsb-rwmb-map-canvas" data-map_options="%s" style="width:%s;height:%s"></div>',
|
156 |
+
esc_attr( wp_json_encode( $args ) ),
|
157 |
+
esc_attr( $args['width'] ),
|
158 |
+
esc_attr( $args['height'] )
|
159 |
+
);
|
160 |
+
return $output;
|
161 |
+
}
|
162 |
+
}
|
includes/admin/meta-box/inc/fields/media.php
ADDED
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Media field class which users WordPress media popup to upload and select files.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Media_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
wp_enqueue_media();
|
15 |
+
wp_enqueue_style( 'mashsb-rwmb-media', MASHSB_RWMB_CSS_URL . 'media.css', array(), MASHSB_RWMB_VER );
|
16 |
+
wp_enqueue_script( 'mashsb-rwmb-media', MASHSB_RWMB_JS_URL . 'media.js', array( 'jquery-ui-sortable', 'underscore', 'backbone' ), MASHSB_RWMB_VER, true );
|
17 |
+
wp_localize_script( 'mashsb-rwmb-media', 'i18nRwmbMedia', array(
|
18 |
+
'add' => apply_filters( 'rwmb_media_add_string', _x( 'Add Image', 'media', 'meta-box' ) ),
|
19 |
+
'single' => apply_filters( 'rwmb_media_single_files_string', _x( ' file', 'media', 'meta-box' ) ),
|
20 |
+
'multiple' => apply_filters( 'rwmb_media_multiple_files_string', _x( ' files', 'media', 'meta-box' ) ),
|
21 |
+
'remove' => apply_filters( 'rwmb_media_remove_string', _x( 'Remove', 'media', 'meta-box' ) ),
|
22 |
+
'edit' => apply_filters( 'rwmb_media_edit_string', _x( 'Edit', 'media', 'meta-box' ) ),
|
23 |
+
'view' => apply_filters( 'rwmb_media_view_string', _x( 'View', 'media', 'meta-box' ) ),
|
24 |
+
'noTitle' => _x( 'No Title', 'media', 'meta-box' ),
|
25 |
+
'loadingUrl' => MASHSB_RWMB_URL . 'img/loader.gif',
|
26 |
+
'extensions' => self::get_mime_extensions(),
|
27 |
+
'select' => _x( 'Select Files', 'media', 'meta-box' ),
|
28 |
+
'uploadInstructions' => _x( 'Drop files here to upload', 'media', 'meta-box' )
|
29 |
+
) );
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Add actions
|
34 |
+
*
|
35 |
+
* @return void
|
36 |
+
*/
|
37 |
+
static function add_actions()
|
38 |
+
{
|
39 |
+
// Print attachment templates
|
40 |
+
add_action( 'print_media_templates', array( __CLASS__, 'print_templates' ) );
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Get field HTML
|
45 |
+
*
|
46 |
+
* @param mixed $meta
|
47 |
+
* @param array $field
|
48 |
+
*
|
49 |
+
* @return string
|
50 |
+
*/
|
51 |
+
static function html( $meta, $field )
|
52 |
+
{
|
53 |
+
$meta = (array) $meta;
|
54 |
+
$meta = implode( ',', $meta );
|
55 |
+
$attributes = self::get_attributes( $field, $meta );
|
56 |
+
|
57 |
+
$html = sprintf(
|
58 |
+
'<input %s>
|
59 |
+
<div class="mashsb-rwmb-media-view" data-mime-type="%s" data-max-files="%s" data-force-delete="%s"></div>',
|
60 |
+
self::render_attributes( $attributes ),
|
61 |
+
$field['mime_type'],
|
62 |
+
$field['max_file_uploads'],
|
63 |
+
$field['force_delete'] ? 'true' : 'false'
|
64 |
+
);
|
65 |
+
|
66 |
+
return $html;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Normalize parameters for field
|
71 |
+
*
|
72 |
+
* @param array $field
|
73 |
+
*
|
74 |
+
* @return array
|
75 |
+
*/
|
76 |
+
static function normalize( $field )
|
77 |
+
{
|
78 |
+
$field = parent::normalize( $field );
|
79 |
+
$field = wp_parse_args( $field, array(
|
80 |
+
'std' => array(),
|
81 |
+
'mime_type' => '',
|
82 |
+
'max_file_uploads' => 0,
|
83 |
+
'force_delete' => false,
|
84 |
+
) );
|
85 |
+
|
86 |
+
$field['multiple'] = true;
|
87 |
+
|
88 |
+
return $field;
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Get the attributes for a field
|
93 |
+
*
|
94 |
+
* @param array $field
|
95 |
+
* @param mixed $value
|
96 |
+
*
|
97 |
+
* @return array
|
98 |
+
*/
|
99 |
+
static function get_attributes( $field, $value = null )
|
100 |
+
{
|
101 |
+
$attributes = parent::get_attributes( $field, $value );
|
102 |
+
$attributes['type'] = 'hidden';
|
103 |
+
$attributes['name'] .= ! $field['clone'] && $field['multiple'] ? '[]' : '';
|
104 |
+
$attributes['disabled'] = true;
|
105 |
+
$attributes['id'] = false;
|
106 |
+
$attributes['value'] = $value;
|
107 |
+
|
108 |
+
return $attributes;
|
109 |
+
}
|
110 |
+
|
111 |
+
static function get_mime_extensions()
|
112 |
+
{
|
113 |
+
$mime_types = wp_get_mime_types();
|
114 |
+
$extensions = array();
|
115 |
+
foreach( $mime_types as $ext => $mime )
|
116 |
+
{
|
117 |
+
$ext = explode( '|', $ext );
|
118 |
+
$extensions[ $mime ] = $ext;
|
119 |
+
|
120 |
+
$mime_parts = explode( '/', $mime );
|
121 |
+
if( empty( $extensions[ $mime_parts[0] ] ) )
|
122 |
+
$extensions[ $mime_parts[0] ] = array();
|
123 |
+
$extensions[ $mime_parts[0] ] = $extensions[ $mime_parts[0] . '/*' ] = array_merge( $extensions[ $mime_parts[0] ], $ext );
|
124 |
+
|
125 |
+
}
|
126 |
+
|
127 |
+
return $extensions;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Save meta value
|
132 |
+
*
|
133 |
+
* @param $new
|
134 |
+
* @param $old
|
135 |
+
* @param $post_id
|
136 |
+
* @param $field
|
137 |
+
*/
|
138 |
+
static function save( $new, $old, $post_id, $field )
|
139 |
+
{
|
140 |
+
delete_post_meta( $post_id, $field['id'] );
|
141 |
+
parent::save( $new, array(), $post_id, $field );
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Template for media item
|
146 |
+
* @return void
|
147 |
+
*/
|
148 |
+
static function print_templates()
|
149 |
+
{
|
150 |
+
require_once( MASHSB_RWMB_INC_DIR . 'templates/media.php' );
|
151 |
+
}
|
152 |
+
}
|
includes/admin/meta-box/inc/fields/multiple-values.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This class implements common methods used in fields which have multiple values
|
4 |
+
* like checkbox list, autocomplete, etc.
|
5 |
+
*
|
6 |
+
* The difference when handling actions for these fields are the way they get/set
|
7 |
+
* meta value. Briefly:
|
8 |
+
* - If field is cloneable, value is saved as a single entry in the database
|
9 |
+
* - Otherwise value is saved as multiple entries
|
10 |
+
*/
|
11 |
+
abstract class MASHSB_RWMB_Multiple_Values_Field extends MASHSB_RWMB_Field
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* Normalize parameters for field
|
15 |
+
*
|
16 |
+
* @param array $field
|
17 |
+
*
|
18 |
+
* @return array
|
19 |
+
*/
|
20 |
+
static function normalize( $field )
|
21 |
+
{
|
22 |
+
$field = parent::normalize( $field );
|
23 |
+
$field['multiple'] = true;
|
24 |
+
$field['field_name'] = $field['id'];
|
25 |
+
if ( ! $field['clone'] )
|
26 |
+
$field['field_name'] .= '[]';
|
27 |
+
|
28 |
+
return $field;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Output the field value
|
33 |
+
* Display option name instead of option value
|
34 |
+
*
|
35 |
+
* @param array $field Field parameters
|
36 |
+
* @param array $args Additional arguments. Not used for these fields.
|
37 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
38 |
+
*
|
39 |
+
* @return mixed Field value
|
40 |
+
*/
|
41 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
42 |
+
{
|
43 |
+
$value = self::get_value( $field, $args, $post_id );
|
44 |
+
if ( ! $value )
|
45 |
+
return '';
|
46 |
+
|
47 |
+
$output = '<ul>';
|
48 |
+
if ( $field['clone'] )
|
49 |
+
{
|
50 |
+
foreach ( $value as $subvalue )
|
51 |
+
{
|
52 |
+
$output .= '<li>';
|
53 |
+
$output .= '<ul>';
|
54 |
+
foreach ( $subvalue as $option )
|
55 |
+
{
|
56 |
+
$output .= '<li>' . $field['options'][$option] . '</li>';
|
57 |
+
}
|
58 |
+
$output .= '</ul>';
|
59 |
+
$output .= '</li>';
|
60 |
+
}
|
61 |
+
}
|
62 |
+
else
|
63 |
+
{
|
64 |
+
foreach ( $value as $option )
|
65 |
+
{
|
66 |
+
$output .= '<li>' . $field['options'][$option] . '</li>';
|
67 |
+
}
|
68 |
+
}
|
69 |
+
$output .= '</ul>';
|
70 |
+
|
71 |
+
return $output;
|
72 |
+
}
|
73 |
+
}
|
includes/admin/meta-box/inc/fields/number.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Number field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Number_Field extends MASHSB_RWMB_Input_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
*
|
12 |
+
* @return array
|
13 |
+
*/
|
14 |
+
static function normalize( $field )
|
15 |
+
{
|
16 |
+
$field = parent::normalize( $field );
|
17 |
+
|
18 |
+
$field = wp_parse_args( $field, array(
|
19 |
+
'step' => 1,
|
20 |
+
'min' => 0,
|
21 |
+
'max' => false,
|
22 |
+
) );
|
23 |
+
|
24 |
+
return $field;
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Get the attributes for a field
|
29 |
+
*
|
30 |
+
* @param array $field
|
31 |
+
* @param mixed $value
|
32 |
+
*
|
33 |
+
* @return array
|
34 |
+
*/
|
35 |
+
static function get_attributes( $field, $value = null )
|
36 |
+
{
|
37 |
+
$attributes = parent::get_attributes( $field, $value );
|
38 |
+
$attributes = wp_parse_args( $attributes, array(
|
39 |
+
'step' => $field['step'],
|
40 |
+
'max' => $field['max'],
|
41 |
+
'min' => $field['min'],
|
42 |
+
) );
|
43 |
+
$attributes['type'] = 'number';
|
44 |
+
|
45 |
+
return $attributes;
|
46 |
+
}
|
47 |
+
}
|
includes/admin/meta-box/inc/fields/object-choice.php
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Abstract field to select an object: post, user, taxonomy, etc.
|
4 |
+
*/
|
5 |
+
abstract class MASHSB_RWMB_Object_Choice_Field extends MASHSB_RWMB_Choice_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $options
|
11 |
+
* @param mixed $db_fields
|
12 |
+
* @param mixed $meta
|
13 |
+
* @param array $field
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
public static function walk( $options, $db_fields, $meta, $field )
|
17 |
+
{
|
18 |
+
switch ( $field['field_type'] )
|
19 |
+
{
|
20 |
+
case 'checkbox_list':
|
21 |
+
case 'radio_list':
|
22 |
+
return MASHSB_RWMB_Input_List_Field::walk( $options, $db_fields, $meta, $field );
|
23 |
+
break;
|
24 |
+
case 'select_tree':
|
25 |
+
return MASHSB_RWMB_Select_Tree_Field::walk( $options, $db_fields, $meta, $field );
|
26 |
+
break;
|
27 |
+
case 'select_advanced':
|
28 |
+
return MASHSB_RWMB_Select_Advanced_Field::walk( $options, $db_fields, $meta, $field );
|
29 |
+
break;
|
30 |
+
case 'select':
|
31 |
+
default:
|
32 |
+
return MASHSB_RWMB_Select_Field::walk( $options, $db_fields, $meta, $field );
|
33 |
+
break;
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Normalize parameters for field
|
39 |
+
*
|
40 |
+
* @param array $field
|
41 |
+
*
|
42 |
+
* @return array
|
43 |
+
*/
|
44 |
+
public static function normalize( $field )
|
45 |
+
{
|
46 |
+
$field = parent::normalize( $field );
|
47 |
+
$field = wp_parse_args( $field, array(
|
48 |
+
'flatten' => true,
|
49 |
+
'query_args' => array(),
|
50 |
+
'field_type' => 'select_advanced',
|
51 |
+
) );
|
52 |
+
|
53 |
+
if ( 'checkbox_tree' === $field['field_type'] )
|
54 |
+
{
|
55 |
+
$field['field_type'] = 'checkbox_list';
|
56 |
+
$field['flatten'] = false;
|
57 |
+
}
|
58 |
+
|
59 |
+
switch ( $field['field_type'] )
|
60 |
+
{
|
61 |
+
case 'checkbox_list':
|
62 |
+
case 'radio_list':
|
63 |
+
$field['multiple'] = 'radio_list' === $field['field_type'] ? false : true;
|
64 |
+
return MASHSB_RWMB_Input_List_Field::normalize( $field );
|
65 |
+
break;
|
66 |
+
case 'select_advanced':
|
67 |
+
return MASHSB_RWMB_Select_Advanced_Field::normalize( $field );
|
68 |
+
break;
|
69 |
+
case 'select_tree':
|
70 |
+
return MASHSB_RWMB_Select_Tree_Field::normalize( $field );
|
71 |
+
break;
|
72 |
+
case 'select':
|
73 |
+
default:
|
74 |
+
return MASHSB_RWMB_Select_Field::normalize( $field );
|
75 |
+
break;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Get the attributes for a field
|
81 |
+
*
|
82 |
+
* @param array $field
|
83 |
+
* @param mixed $value
|
84 |
+
*
|
85 |
+
* @return array
|
86 |
+
*/
|
87 |
+
public static function get_attributes( $field, $value = null )
|
88 |
+
{
|
89 |
+
switch ( $field['field_type'] )
|
90 |
+
{
|
91 |
+
case 'checkbox_list':
|
92 |
+
case 'radio_list':
|
93 |
+
return MASHSB_RWMB_Input_List_Field::get_attributes( $field, $value );
|
94 |
+
break;
|
95 |
+
case 'select_advanced':
|
96 |
+
$attributes = MASHSB_RWMB_Select_Advanced_Field::get_attributes( $field, $value );
|
97 |
+
$attributes['class'] .= ' mashsb-rwmb-select_advanced';
|
98 |
+
return $attributes;
|
99 |
+
break;
|
100 |
+
case 'select_tree':
|
101 |
+
return MASHSB_RWMB_Select_Tree_Field::get_attributes( $field, $value );
|
102 |
+
break;
|
103 |
+
case 'select':
|
104 |
+
default:
|
105 |
+
return MASHSB_RWMB_Select_Field::get_attributes( $field, $value );
|
106 |
+
break;
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Get field names of object to be used by walker
|
112 |
+
* @return array
|
113 |
+
*/
|
114 |
+
public static function get_db_fields()
|
115 |
+
{
|
116 |
+
return array(
|
117 |
+
'parent' => '',
|
118 |
+
'id' => '',
|
119 |
+
'label' => '',
|
120 |
+
);
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Enqueue scripts and styles
|
125 |
+
*/
|
126 |
+
public static function admin_enqueue_scripts()
|
127 |
+
{
|
128 |
+
MASHSB_RWMB_Input_List_Field::admin_enqueue_scripts();
|
129 |
+
MASHSB_RWMB_Select_Field::admin_enqueue_scripts();
|
130 |
+
MASHSB_RWMB_Select_Tree_Field::admin_enqueue_scripts();
|
131 |
+
MASHSB_RWMB_Select_Advanced_Field::admin_enqueue_scripts();
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Get options for walker
|
136 |
+
*
|
137 |
+
* @param array $field
|
138 |
+
*
|
139 |
+
* @return array
|
140 |
+
*/
|
141 |
+
public static function get_options( $field )
|
142 |
+
{
|
143 |
+
return array();
|
144 |
+
}
|
145 |
+
}
|
includes/admin/meta-box/inc/fields/oembed.php
ADDED
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* oEmbed field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_OEmbed_Field extends MASHSB_RWMB_URL_Field
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Enqueue scripts and styles
|
10 |
+
*/
|
11 |
+
public static function admin_enqueue_scripts()
|
12 |
+
{
|
13 |
+
wp_enqueue_style( 'mashsb-rwmb-oembed', MASHSB_RWMB_CSS_URL . 'oembed.css' );
|
14 |
+
wp_enqueue_script( 'mashsb-rwmb-oembed', MASHSB_RWMB_JS_URL . 'oembed.js', array(), MASHSB_RWMB_VER, true );
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Add actions
|
19 |
+
*/
|
20 |
+
public static function add_actions()
|
21 |
+
{
|
22 |
+
add_action( 'wp_ajax_rwmb_get_embed', array( __CLASS__, 'wp_ajax_get_embed' ) );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Ajax callback for returning oEmbed HTML
|
27 |
+
*/
|
28 |
+
public static function wp_ajax_get_embed()
|
29 |
+
{
|
30 |
+
$url = (string) filter_input( INPUT_POST, 'url', FILTER_SANITIZE_URL );
|
31 |
+
wp_send_json_success( self::get_embed( $url ) );
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get embed html from url
|
36 |
+
*
|
37 |
+
* @param string $url
|
38 |
+
* @return string
|
39 |
+
*/
|
40 |
+
public static function get_embed( $url )
|
41 |
+
{
|
42 |
+
/**
|
43 |
+
* Set arguments for getting embeded HTML.
|
44 |
+
* Without arguments, default width will be taken from global $content_width, which can break UI in the admin
|
45 |
+
* @link https://github.com/rilwis/meta-box/issues/801
|
46 |
+
* @see WP_oEmbed::fetch()
|
47 |
+
* @see WP_Embed::shortcode()
|
48 |
+
* @see wp_embed_defaults()
|
49 |
+
*/
|
50 |
+
$args = array();
|
51 |
+
if ( is_admin() )
|
52 |
+
{
|
53 |
+
$args['width'] = 360;
|
54 |
+
}
|
55 |
+
|
56 |
+
// Try oembed first
|
57 |
+
$embed = wp_oembed_get( $url, $args );
|
58 |
+
|
59 |
+
// If no oembed provides found, try WordPress auto embed
|
60 |
+
if ( ! $embed )
|
61 |
+
{
|
62 |
+
$embed = $GLOBALS['wp_embed']->shortcode( $args, $url );
|
63 |
+
}
|
64 |
+
|
65 |
+
return $embed ? $embed : __( 'Embed HTML not available.', 'meta-box' );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Get field HTML
|
70 |
+
*
|
71 |
+
* @param mixed $meta
|
72 |
+
* @param array $field
|
73 |
+
* @return string
|
74 |
+
*/
|
75 |
+
public static function html( $meta, $field )
|
76 |
+
{
|
77 |
+
$attributes = self::get_attributes( $field, $meta );
|
78 |
+
return sprintf(
|
79 |
+
'<input %s>
|
80 |
+
<a href="#" class="show-embed button">%s</a>
|
81 |
+
<span class="spinner"></span>
|
82 |
+
<div class="embed-code">%s</div>',
|
83 |
+
self::render_attributes( $attributes ),
|
84 |
+
__( 'Preview', 'meta-box' ),
|
85 |
+
$meta ? self::get_embed( $meta ) : ''
|
86 |
+
);
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Output the field value
|
91 |
+
* Display embed media
|
92 |
+
*
|
93 |
+
* @param array $field Field parameters
|
94 |
+
* @param array $args Additional arguments. Not used for these fields.
|
95 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
96 |
+
*
|
97 |
+
* @return mixed Field value
|
98 |
+
*/
|
99 |
+
public static function the_value( $field, $args = array(), $post_id = null )
|
100 |
+
{
|
101 |
+
$value = self::get_value( $field, $args, $post_id );
|
102 |
+
$output = '';
|
103 |
+
if ( empty( $value ) )
|
104 |
+
{
|
105 |
+
return $output;
|
106 |
+
}
|
107 |
+
if ( $field['clone'] )
|
108 |
+
{
|
109 |
+
$output = '<ul>';
|
110 |
+
foreach ( $value as $subvalue )
|
111 |
+
{
|
112 |
+
$output .= '<li>' . self::get_embed( $subvalue ) . '</li>';
|
113 |
+
}
|
114 |
+
$output .= '</ul>';
|
115 |
+
}
|
116 |
+
else
|
117 |
+
{
|
118 |
+
$output = self::get_embed( $value );
|
119 |
+
}
|
120 |
+
return $output;
|
121 |
+
}
|
122 |
+
}
|
includes/admin/meta-box/inc/fields/password.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Password field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Password_Field extends MASHSB_RWMB_Text_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get the attributes for a field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
* @param mixed $value
|
12 |
+
* @return array
|
13 |
+
*/
|
14 |
+
static function get_attributes( $field, $value = null )
|
15 |
+
{
|
16 |
+
$attributes = parent::get_attributes( $field, $value );
|
17 |
+
$attributes['type'] = 'password';
|
18 |
+
return $attributes;
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Store secured password in the database.
|
23 |
+
* @param mixed $new
|
24 |
+
* @param mixed $old
|
25 |
+
* @param int $post_id
|
26 |
+
* @param array $field
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
static function value( $new, $old, $post_id, $field )
|
30 |
+
{
|
31 |
+
$new = $new != $old ? wp_hash_password( $new ) : $new;
|
32 |
+
return $new;
|
33 |
+
}
|
34 |
+
}
|
includes/admin/meta-box/inc/fields/plupload-image.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Image upload field which uses plupload library to drag and drop files to upload.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Plupload_Image_Field extends MASHSB_RWMB_Image_Upload_Field {}
|
includes/admin/meta-box/inc/fields/post.php
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Post field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Post_Field extends MASHSB_RWMB_Object_Choice_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
* @return array
|
12 |
+
*/
|
13 |
+
public static function normalize( $field )
|
14 |
+
{
|
15 |
+
/**
|
16 |
+
* Set default field args
|
17 |
+
*/
|
18 |
+
$field = parent::normalize( $field );
|
19 |
+
$field = wp_parse_args( $field, array(
|
20 |
+
'post_type' => 'post',
|
21 |
+
'parent' => false,
|
22 |
+
) );
|
23 |
+
|
24 |
+
if ( ! isset( $field['query_args']['post_type'] ) )
|
25 |
+
$field['query_args']['post_type'] = $field['post_type'];
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Set default placeholder
|
29 |
+
* - If multiple post types: show 'Select a post'
|
30 |
+
* - If single post type: show 'Select a %post_type_name%'
|
31 |
+
*/
|
32 |
+
if ( empty( $field['placeholder'] ) )
|
33 |
+
{
|
34 |
+
$field['placeholder'] = __( 'Select a post', 'meta-box' );
|
35 |
+
if ( is_string( $field['query_args']['post_type'] ) && post_type_exists( $field['query_args']['post_type'] ) )
|
36 |
+
{
|
37 |
+
$post_type_object = get_post_type_object( $field['query_args']['post_type'] );
|
38 |
+
$field['placeholder'] = sprintf( __( 'Select a %s', 'meta-box' ), $post_type_object->labels->singular_name );
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Set parent option, which will change field name to `parent_id` to save as post parent
|
44 |
+
*/
|
45 |
+
if ( $field['parent'] )
|
46 |
+
{
|
47 |
+
$field['multiple'] = false;
|
48 |
+
$field['field_name'] = 'parent_id';
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Set default query args
|
53 |
+
*/
|
54 |
+
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
55 |
+
'post_status' => 'publish',
|
56 |
+
'posts_per_page' => - 1,
|
57 |
+
) );
|
58 |
+
|
59 |
+
return $field;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Get field names of object to be used by walker
|
64 |
+
*
|
65 |
+
* @return array
|
66 |
+
*/
|
67 |
+
public static function get_db_fields()
|
68 |
+
{
|
69 |
+
return array(
|
70 |
+
'parent' => 'post_parent',
|
71 |
+
'id' => 'ID',
|
72 |
+
'label' => 'post_title',
|
73 |
+
);
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Get meta value
|
78 |
+
* If field is cloneable, value is saved as a single entry in DB
|
79 |
+
* Otherwise value is saved as multiple entries (for backward compatibility)
|
80 |
+
*
|
81 |
+
* @see "save" method for better understanding
|
82 |
+
*
|
83 |
+
* @param $post_id
|
84 |
+
* @param $saved
|
85 |
+
* @param $field
|
86 |
+
*
|
87 |
+
* @return array
|
88 |
+
*/
|
89 |
+
public static function meta( $post_id, $saved, $field )
|
90 |
+
{
|
91 |
+
if ( isset( $field['parent'] ) && $field['parent'] )
|
92 |
+
{
|
93 |
+
$post = get_post( $post_id );
|
94 |
+
return $post->post_parent;
|
95 |
+
}
|
96 |
+
|
97 |
+
return parent::meta( $post_id, $saved, $field );
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Get options for walker
|
102 |
+
*
|
103 |
+
* @param array $field
|
104 |
+
* @return array
|
105 |
+
*/
|
106 |
+
public static function get_options( $field )
|
107 |
+
{
|
108 |
+
$query = new WP_Query( $field['query_args'] );
|
109 |
+
return $query->have_posts() ? $query->posts : array();
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Get option label
|
114 |
+
*
|
115 |
+
* @param string $value Option value
|
116 |
+
* @param array $field Field parameter
|
117 |
+
*
|
118 |
+
* @return string
|
119 |
+
*/
|
120 |
+
public static function get_option_label( $value, $field )
|
121 |
+
{
|
122 |
+
return sprintf(
|
123 |
+
'<a href="%s" title="%s">%s</a>',
|
124 |
+
esc_url( get_permalink( $value ) ),
|
125 |
+
the_title_attribute( array(
|
126 |
+
'post' => $value,
|
127 |
+
'echo' => false,
|
128 |
+
) ),
|
129 |
+
get_the_title( $value )
|
130 |
+
);
|
131 |
+
}
|
132 |
+
}
|
includes/admin/meta-box/inc/fields/radio.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Radio field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Radio_Field extends MASHSB_RWMB_Input_List_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
* @param array $field
|
10 |
+
* @return array
|
11 |
+
*/
|
12 |
+
static function normalize( $field )
|
13 |
+
{
|
14 |
+
$field['multiple'] = false;
|
15 |
+
$field = parent::normalize( $field );
|
16 |
+
|
17 |
+
return $field;
|
18 |
+
}
|
19 |
+
}
|
includes/admin/meta-box/inc/fields/range.php
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* HTML5 range field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Range_Field extends MASHSB_RWMB_Number_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
static function html( $meta, $field )
|
15 |
+
{
|
16 |
+
$output = parent::html( $meta, $field );
|
17 |
+
$output .= sprintf( '<span class="mashsb-rwmb-output">%s</span>', $meta );
|
18 |
+
return $output;
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Enqueue styles
|
23 |
+
*/
|
24 |
+
static function admin_enqueue_scripts()
|
25 |
+
{
|
26 |
+
wp_enqueue_style( 'mashsb-rwmb-range', MASHSB_RWMB_CSS_URL . 'range.css', array(), MASHSB_RWMB_VER );
|
27 |
+
wp_enqueue_script( 'mashsb-rwmb-range', MASHSB_RWMB_JS_URL . 'range.js', array(), MASHSB_RWMB_VER, true );
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Normalize parameters for field.
|
32 |
+
*
|
33 |
+
* @param array $field
|
34 |
+
*
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
static function normalize( $field )
|
38 |
+
{
|
39 |
+
$field = wp_parse_args( $field, array(
|
40 |
+
'min' => 0,
|
41 |
+
'max' => 10,
|
42 |
+
'step' => 1,
|
43 |
+
) );
|
44 |
+
|
45 |
+
$field = parent::normalize( $field );
|
46 |
+
|
47 |
+
return $field;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Get the attributes for a field
|
52 |
+
*
|
53 |
+
* @param array $field
|
54 |
+
* @param mixed $value
|
55 |
+
*
|
56 |
+
* @return array
|
57 |
+
*/
|
58 |
+
static function get_attributes( $field, $value = null )
|
59 |
+
{
|
60 |
+
$attributes = parent::get_attributes( $field, $value );
|
61 |
+
$attributes['type'] = 'range';
|
62 |
+
|
63 |
+
return $attributes;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Ensure number in range.
|
68 |
+
*
|
69 |
+
* @param mixed $new
|
70 |
+
* @param mixed $old
|
71 |
+
* @param int $post_id
|
72 |
+
* @param array $field
|
73 |
+
*
|
74 |
+
* @return int
|
75 |
+
*/
|
76 |
+
static function value( $new, $old, $post_id, $field )
|
77 |
+
{
|
78 |
+
$new = intval( $new );
|
79 |
+
$min = intval( $field['min'] );
|
80 |
+
$max = intval( $field['max'] );
|
81 |
+
|
82 |
+
if ( $new < $min )
|
83 |
+
{
|
84 |
+
return $min;
|
85 |
+
}
|
86 |
+
elseif ( $new > $max )
|
87 |
+
{
|
88 |
+
return $max;
|
89 |
+
}
|
90 |
+
|
91 |
+
return $new;
|
92 |
+
}
|
93 |
+
}
|
includes/admin/meta-box/inc/fields/select-advanced.php
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Select advanced field which uses select2 library.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Select_Advanced_Field extends MASHSB_RWMB_Select_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*/
|
10 |
+
public static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
parent::admin_enqueue_scripts();
|
13 |
+
wp_enqueue_style( 'mashsb-rwmb-select2', MASHSB_RWMB_CSS_URL . 'select2/select2.css', array(), '4.0.1' );
|
14 |
+
wp_enqueue_style( 'mashsb-rwmb-select-advanced', MASHSB_RWMB_CSS_URL . 'select-advanced.css', array(), MASHSB_RWMB_VER );
|
15 |
+
|
16 |
+
wp_register_script( 'mashsb-rwmb-select2', MASHSB_RWMB_JS_URL . 'select2/select2.min.js', array(), '4.0.2', true );
|
17 |
+
|
18 |
+
//Localize
|
19 |
+
$deps = array( 'mashsb-rwmb-select2', 'mashsb-rwmb-select' );
|
20 |
+
$dir = MASHSB_RWMB_JS_URL . 'select2/i18n/';
|
21 |
+
$file = str_replace( '_', '-', get_locale() );
|
22 |
+
$parts = explode( '-', $file );
|
23 |
+
$file = file_exists( MASHSB_RWMB_DIR . 'js/select2/i18n/' . $file . '.js' ) ? $file : $parts[0];
|
24 |
+
|
25 |
+
if ( file_exists( MASHSB_RWMB_DIR . 'js/select2/i18n/' . $file . '.js' ) )
|
26 |
+
{
|
27 |
+
wp_register_script( 'mashsb-rwmb-select2-i18n', $dir . $file . '.js', array( 'mashsb-rwmb-select2' ), '4.0.2', true );
|
28 |
+
$deps[] = 'mashsb-rwmb-select2-i18n';
|
29 |
+
}
|
30 |
+
|
31 |
+
wp_enqueue_script( 'mashsb-rwmb-select', MASHSB_RWMB_JS_URL . 'select.js', array(), MASHSB_RWMB_VER, true );
|
32 |
+
wp_enqueue_script( 'mashsb-rwmb-select-advanced', MASHSB_RWMB_JS_URL . 'select-advanced.js', $deps, MASHSB_RWMB_VER, true );
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Walk options
|
38 |
+
*
|
39 |
+
* @param mixed $meta
|
40 |
+
* @param array $field
|
41 |
+
* @param mixed $options
|
42 |
+
* @param mixed $db_fields
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public static function walk( $options, $db_fields, $meta, $field )
|
47 |
+
{
|
48 |
+
$attributes = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_attributes' ), $field, $meta );
|
49 |
+
$walker = new MASHSB_RWMB_Select_Walker( $db_fields, $field, $meta );
|
50 |
+
$output = sprintf(
|
51 |
+
'<select %s>',
|
52 |
+
self::render_attributes( $attributes )
|
53 |
+
);
|
54 |
+
|
55 |
+
$output .= '<option></option>';
|
56 |
+
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
57 |
+
$output .= '</select>';
|
58 |
+
$output .= self::get_select_all_html( $field );
|
59 |
+
return $output;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Normalize parameters for field
|
64 |
+
*
|
65 |
+
* @param array $field
|
66 |
+
* @return array
|
67 |
+
*/
|
68 |
+
public static function normalize( $field )
|
69 |
+
{
|
70 |
+
$field = wp_parse_args( $field, array(
|
71 |
+
'js_options' => array(),
|
72 |
+
'placeholder' => 'Select an item',
|
73 |
+
) );
|
74 |
+
|
75 |
+
$field = parent::normalize( $field );
|
76 |
+
|
77 |
+
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
78 |
+
'allowClear' => true,
|
79 |
+
'width' => 'none',
|
80 |
+
'placeholder' => $field['placeholder'],
|
81 |
+
) );
|
82 |
+
|
83 |
+
return $field;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Get the attributes for a field
|
88 |
+
*
|
89 |
+
* @param array $field
|
90 |
+
* @param mixed $value
|
91 |
+
* @return array
|
92 |
+
*/
|
93 |
+
public static function get_attributes( $field, $value = null )
|
94 |
+
{
|
95 |
+
$attributes = parent::get_attributes( $field, $value );
|
96 |
+
$attributes = wp_parse_args( $attributes, array(
|
97 |
+
'data-options' => wp_json_encode( $field['js_options'] ),
|
98 |
+
) );
|
99 |
+
|
100 |
+
return $attributes;
|
101 |
+
}
|
102 |
+
}
|
includes/admin/meta-box/inc/fields/select-tree.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Select tree field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Select_Tree_Field extends MASHSB_RWMB_Select_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Walk options
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
* @param mixed $options
|
13 |
+
* @param mixed $db_fields
|
14 |
+
*
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
public static function walk( $options, $db_fields, $meta, $field )
|
18 |
+
{
|
19 |
+
$walker = new MASHSB_RWMB_Select_Tree_Walker( $db_fields, $field, $meta );
|
20 |
+
return $walker->walk( $options );
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Enqueue scripts and styles
|
25 |
+
*/
|
26 |
+
public static function admin_enqueue_scripts()
|
27 |
+
{
|
28 |
+
parent::admin_enqueue_scripts();
|
29 |
+
wp_enqueue_style( 'mashsb-rwmb-select-tree', MASHSB_RWMB_CSS_URL . 'select-tree.css', array( 'mashsb-rwmb-select' ), MASHSB_RWMB_VER );
|
30 |
+
wp_enqueue_script( 'mashsb-rwmb-select-tree', MASHSB_RWMB_JS_URL . 'select-tree.js', array( 'mashsb-rwmb-select' ), MASHSB_RWMB_VER, true );
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Normalize parameters for field
|
35 |
+
*
|
36 |
+
* @param array $field
|
37 |
+
* @return array
|
38 |
+
*/
|
39 |
+
public static function normalize( $field )
|
40 |
+
{
|
41 |
+
$field['multiple'] = true;
|
42 |
+
$field['size'] = 0;
|
43 |
+
$field = parent::normalize( $field );
|
44 |
+
|
45 |
+
return $field;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Get the attributes for a field
|
50 |
+
*
|
51 |
+
* @param array $field
|
52 |
+
* @param mixed $value
|
53 |
+
*
|
54 |
+
* @return array
|
55 |
+
*/
|
56 |
+
public static function get_attributes( $field, $value = null )
|
57 |
+
{
|
58 |
+
$attributes = parent::get_attributes( $field, $value );
|
59 |
+
$attributes['multiple'] = false;
|
60 |
+
$attributes['id'] = false;
|
61 |
+
|
62 |
+
return $attributes;
|
63 |
+
}
|
64 |
+
}
|
includes/admin/meta-box/inc/fields/select.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Select field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Select_Field extends MASHSB_RWMB_Choice_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*/
|
10 |
+
public static function admin_enqueue_scripts()
|
11 |
+
{
|
12 |
+
wp_enqueue_style( 'mashsb-rwmb-select', MASHSB_RWMB_CSS_URL . 'select.css', array(), MASHSB_RWMB_VER );
|
13 |
+
wp_enqueue_script( 'mashsb-rwmb-select', MASHSB_RWMB_JS_URL . 'select.js', array(), MASHSB_RWMB_VER, true );
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Walk options
|
18 |
+
*
|
19 |
+
* @param mixed $meta
|
20 |
+
* @param array $field
|
21 |
+
* @param mixed $options
|
22 |
+
* @param mixed $db_fields
|
23 |
+
*
|
24 |
+
* @return string
|
25 |
+
*/
|
26 |
+
public static function walk( $options, $db_fields, $meta, $field )
|
27 |
+
{
|
28 |
+
$attributes = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_attributes' ), $field, $meta );
|
29 |
+
$walker = new MASHSB_RWMB_Select_Walker( $db_fields, $field, $meta );
|
30 |
+
$output = sprintf(
|
31 |
+
'<select %s>',
|
32 |
+
self::render_attributes( $attributes )
|
33 |
+
);
|
34 |
+
if ( false === $field['multiple'] )
|
35 |
+
{
|
36 |
+
$output .= isset( $field['placeholder'] ) ? "<option value=''>{$field['placeholder']}</option>" : '<option></option>';
|
37 |
+
}
|
38 |
+
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
39 |
+
$output .= '</select>';
|
40 |
+
$output .= self::get_select_all_html( $field );
|
41 |
+
return $output;
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Normalize parameters for field
|
46 |
+
*
|
47 |
+
* @param array $field
|
48 |
+
* @return array
|
49 |
+
*/
|
50 |
+
public static function normalize( $field )
|
51 |
+
{
|
52 |
+
$field = parent::normalize( $field );
|
53 |
+
$field = $field['multiple'] ? MASHSB_RWMB_Multiple_Values_Field::normalize( $field ) : $field;
|
54 |
+
$field = wp_parse_args( $field, array(
|
55 |
+
'size' => $field['multiple'] ? 5 : 0,
|
56 |
+
'select_all_none' => false,
|
57 |
+
) );
|
58 |
+
|
59 |
+
return $field;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Get the attributes for a field
|
64 |
+
*
|
65 |
+
* @param array $field
|
66 |
+
* @param mixed $value
|
67 |
+
*
|
68 |
+
* @return array
|
69 |
+
*/
|
70 |
+
public static function get_attributes( $field, $value = null )
|
71 |
+
{
|
72 |
+
$attributes = parent::get_attributes( $field, $value );
|
73 |
+
$attributes = wp_parse_args( $attributes, array(
|
74 |
+
'multiple' => $field['multiple'],
|
75 |
+
'size' => $field['size'],
|
76 |
+
) );
|
77 |
+
|
78 |
+
return $attributes;
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Get html for select all|none for multiple select
|
83 |
+
*
|
84 |
+
* @param array $field
|
85 |
+
* @return string
|
86 |
+
*/
|
87 |
+
public static function get_select_all_html( $field )
|
88 |
+
{
|
89 |
+
if ( $field['multiple'] && $field['select_all_none'] )
|
90 |
+
{
|
91 |
+
return '<div class="mashsb-rwmb-select-all-none">' . __( 'Select', 'meta-box' ) . ': <a data-type="all" href="#">' . __( 'All', 'meta-box' ) . '</a> | <a data-type="none" href="#">' . __( 'None', 'meta-box' ) . '</a></div>';
|
92 |
+
}
|
93 |
+
return '';
|
94 |
+
}
|
95 |
+
}
|
includes/admin/meta-box/inc/fields/slider.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* jQueryUI slider field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Slider_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
$url = MASHSB_RWMB_CSS_URL . 'jqueryui';
|
15 |
+
wp_enqueue_style( 'jquery-ui-core', "{$url}/jquery.ui.core.css", array(), '1.8.17' );
|
16 |
+
wp_enqueue_style( 'jquery-ui-theme', "{$url}/jquery.ui.theme.css", array(), '1.8.17' );
|
17 |
+
wp_enqueue_style( 'jquery-ui-slider', "{$url}/jquery.ui.slider.css", array(), '1.8.17' );
|
18 |
+
wp_enqueue_style( 'mashsb-rwmb-slider', MASHSB_RWMB_CSS_URL . 'slider.css' );
|
19 |
+
|
20 |
+
wp_enqueue_script( 'mashsb-rwmb-slider', MASHSB_RWMB_JS_URL . 'slider.js', array( 'jquery-ui-slider', 'jquery-ui-widget', 'jquery-ui-mouse', 'jquery-ui-core' ), MASHSB_RWMB_VER, true );
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Get div HTML
|
25 |
+
*
|
26 |
+
* @param mixed $meta
|
27 |
+
* @param array $field
|
28 |
+
*
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
static function html( $meta, $field )
|
32 |
+
{
|
33 |
+
return sprintf(
|
34 |
+
'<div class="clearfix">
|
35 |
+
<div class="mashsb-rwmb-slider" id="%s" data-options="%s"></div>
|
36 |
+
<span class="mashsb-rwmb-slider-value-label">%s<span>%s</span>%s</span>
|
37 |
+
<input type="hidden" name="%s" value="%s" class="mashsb-rwmb-slider-value">
|
38 |
+
</div>',
|
39 |
+
$field['id'], esc_attr( wp_json_encode( $field['js_options'] ) ),
|
40 |
+
$field['prefix'], $meta, $field['suffix'],
|
41 |
+
$field['field_name'], $meta
|
42 |
+
);
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Normalize parameters for field
|
47 |
+
*
|
48 |
+
* @param array $field
|
49 |
+
*
|
50 |
+
* @return array
|
51 |
+
*/
|
52 |
+
static function normalize( $field )
|
53 |
+
{
|
54 |
+
$field = parent::normalize( $field );
|
55 |
+
$field = wp_parse_args( $field, array(
|
56 |
+
'prefix' => '',
|
57 |
+
'suffix' => '',
|
58 |
+
'js_options' => array(),
|
59 |
+
) );
|
60 |
+
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
61 |
+
'range' => 'min', // range = 'min' will add a dark background to sliding part, better UI
|
62 |
+
) );
|
63 |
+
|
64 |
+
return $field;
|
65 |
+
}
|
66 |
+
}
|
includes/admin/meta-box/inc/fields/taxonomy-advanced.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Taxonomy advanced field class which saves terms' IDs in the post meta.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Taxonomy_Advanced_Field extends MASHSB_RWMB_Taxonomy_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get meta values to save
|
9 |
+
* Save terms in custom field, no more by setting post terms
|
10 |
+
* Save in form of comma-separated IDs
|
11 |
+
*
|
12 |
+
* @param mixed $new
|
13 |
+
* @param mixed $old
|
14 |
+
* @param int $post_id
|
15 |
+
* @param array $field
|
16 |
+
*
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
static function value( $new, $old, $post_id, $field )
|
20 |
+
{
|
21 |
+
return is_array( $new ) ? implode( ',', array_unique( $new ) ) : null;
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Save meta value
|
26 |
+
*
|
27 |
+
* @param mixed $new
|
28 |
+
* @param mixed $old
|
29 |
+
* @param int $post_id
|
30 |
+
* @param array $field
|
31 |
+
*
|
32 |
+
* @return string
|
33 |
+
*/
|
34 |
+
static function save( $new, $old, $post_id, $field )
|
35 |
+
{
|
36 |
+
if ( $new )
|
37 |
+
update_post_meta( $post_id, $field['id'], $new );
|
38 |
+
else
|
39 |
+
delete_post_meta( $post_id, $field['id'] );
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Standard meta retrieval
|
44 |
+
*
|
45 |
+
* @param int $post_id
|
46 |
+
* @param bool $saved
|
47 |
+
* @param array $field
|
48 |
+
*
|
49 |
+
* @return array
|
50 |
+
*/
|
51 |
+
static function meta( $post_id, $saved, $field )
|
52 |
+
{
|
53 |
+
$meta = get_post_meta( $post_id, $field['id'], true );
|
54 |
+
$meta = wp_parse_id_list( $meta );
|
55 |
+
return $meta;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Get the field value
|
60 |
+
* Return list of post term objects
|
61 |
+
*
|
62 |
+
* @param array $field Field parameters
|
63 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
64 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
65 |
+
*
|
66 |
+
* @return array List of post term objects
|
67 |
+
*/
|
68 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
69 |
+
{
|
70 |
+
if ( ! $post_id )
|
71 |
+
$post_id = get_the_ID();
|
72 |
+
|
73 |
+
$value = self::meta( $post_id, '', $field );
|
74 |
+
|
75 |
+
// Allow to pass more arguments to "get_terms"
|
76 |
+
$args = wp_parse_args( array(
|
77 |
+
'include' => $value,
|
78 |
+
'hide_empty' => false,
|
79 |
+
), $args );
|
80 |
+
$value = get_terms( $field['taxonomy'], $args );
|
81 |
+
|
82 |
+
// Get single value if necessary
|
83 |
+
if ( ! $field['clone'] && ! $field['multiple'] )
|
84 |
+
{
|
85 |
+
$value = reset( $value );
|
86 |
+
}
|
87 |
+
return $value;
|
88 |
+
}
|
89 |
+
}
|
includes/admin/meta-box/inc/fields/taxonomy.php
ADDED
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Taxonomy field class which set post terms when saving.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Taxonomy_Field extends MASHSB_RWMB_Object_Choice_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Add default value for 'taxonomy' field
|
9 |
+
*
|
10 |
+
* @param $field
|
11 |
+
* @return array
|
12 |
+
*/
|
13 |
+
static function normalize( $field )
|
14 |
+
{
|
15 |
+
/**
|
16 |
+
* Backwards compatibility with field args
|
17 |
+
*/
|
18 |
+
if ( isset( $field['options']['args'] ) )
|
19 |
+
$field['query_args'] = $field['options']['args'];
|
20 |
+
if ( isset( $field['options']['taxonomy'] ) )
|
21 |
+
$field['taxonomy'] = $field['options']['taxonomy'];
|
22 |
+
if ( isset( $field['options']['type'] ) )
|
23 |
+
$field['field_type'] = $field['options']['type'];
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Set default field args
|
27 |
+
*/
|
28 |
+
$field = parent::normalize( $field );
|
29 |
+
$field = wp_parse_args( $field, array(
|
30 |
+
'taxonomy' => 'category',
|
31 |
+
) );
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Set default query args
|
35 |
+
*/
|
36 |
+
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
37 |
+
'hide_empty' => false,
|
38 |
+
) );
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Set default placeholder
|
42 |
+
* - If multiple taxonomies: show 'Select a term'
|
43 |
+
* - If single taxonomy: show 'Select a %taxonomy_name%'
|
44 |
+
*/
|
45 |
+
if ( empty( $field['placeholder'] ) )
|
46 |
+
{
|
47 |
+
$field['placeholder'] = __( 'Select a term', 'meta-box' );
|
48 |
+
if ( is_string( $field['taxonomy'] ) && taxonomy_exists( $field['taxonomy'] ) )
|
49 |
+
{
|
50 |
+
$taxonomy_object = get_taxonomy( $field['taxonomy'] );
|
51 |
+
$field['placeholder'] = sprintf( __( 'Select a %s', 'meta-box' ), $taxonomy_object->labels->singular_name );
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Prevent cloning for taxonomy field
|
57 |
+
*/
|
58 |
+
$field['clone'] = false;
|
59 |
+
|
60 |
+
return $field;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Get field names of object to be used by walker
|
65 |
+
*
|
66 |
+
* @return array
|
67 |
+
*/
|
68 |
+
static function get_db_fields()
|
69 |
+
{
|
70 |
+
return array(
|
71 |
+
'parent' => 'parent',
|
72 |
+
'id' => 'term_id',
|
73 |
+
'label' => 'name',
|
74 |
+
);
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Get options for selects, checkbox list, etc via the terms
|
79 |
+
*
|
80 |
+
* @param array $field Field parameters
|
81 |
+
*
|
82 |
+
* @return array
|
83 |
+
*/
|
84 |
+
static function get_options( $field )
|
85 |
+
{
|
86 |
+
$options = get_terms( $field['taxonomy'], $field['query_args'] );
|
87 |
+
return $options;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Save meta value
|
92 |
+
*
|
93 |
+
* @param mixed $new
|
94 |
+
* @param mixed $old
|
95 |
+
* @param int $post_id
|
96 |
+
* @param array $field
|
97 |
+
*
|
98 |
+
* @return string
|
99 |
+
*/
|
100 |
+
static function save( $new, $old, $post_id, $field )
|
101 |
+
{
|
102 |
+
$new = array_unique( array_map( 'intval', (array) $new ) );
|
103 |
+
$new = empty( $new ) ? null : $new;
|
104 |
+
wp_set_object_terms( $post_id, $new, $field['taxonomy'] );
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Standard meta retrieval
|
109 |
+
*
|
110 |
+
* @param int $post_id
|
111 |
+
* @param bool $saved
|
112 |
+
* @param array $field
|
113 |
+
*
|
114 |
+
* @return array
|
115 |
+
*/
|
116 |
+
static function meta( $post_id, $saved, $field )
|
117 |
+
{
|
118 |
+
$meta = get_the_terms( $post_id, $field['taxonomy'] );
|
119 |
+
$meta = (array) $meta;
|
120 |
+
$meta = wp_list_pluck( $meta, 'term_id' );
|
121 |
+
|
122 |
+
return $meta;
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Get the field value
|
127 |
+
* Return list of post term objects
|
128 |
+
*
|
129 |
+
* @param array $field Field parameters
|
130 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
131 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
132 |
+
*
|
133 |
+
* @return array List of post term objects
|
134 |
+
*/
|
135 |
+
static function get_value( $field, $args = array(), $post_id = null )
|
136 |
+
{
|
137 |
+
$value = get_the_terms( $post_id, $field['taxonomy'] );
|
138 |
+
|
139 |
+
// Get single value if necessary
|
140 |
+
if ( ! $field['clone'] && ! $field['multiple'] && is_array( $value ) )
|
141 |
+
{
|
142 |
+
$value = reset( $value );
|
143 |
+
}
|
144 |
+
return $value;
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Get option label
|
149 |
+
*
|
150 |
+
* @param string $value Option value
|
151 |
+
* @param array $field Field parameter
|
152 |
+
*
|
153 |
+
* @return string
|
154 |
+
*/
|
155 |
+
static function get_option_label( $value, $field )
|
156 |
+
{
|
157 |
+
return sprintf(
|
158 |
+
'<a href="%s" title="%s">%s</a>',
|
159 |
+
esc_url( get_term_link( $value ) ),
|
160 |
+
esc_attr( $value->name ),
|
161 |
+
$value->name
|
162 |
+
);
|
163 |
+
}
|
164 |
+
}
|
includes/admin/meta-box/inc/fields/text-list.php
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Text list field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Text_List_Field extends MASHSB_RWMB_Multiple_Values_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
*
|
13 |
+
* @return string
|
14 |
+
*/
|
15 |
+
static function html( $meta, $field )
|
16 |
+
{
|
17 |
+
$html = array();
|
18 |
+
$input = '<label><input type="text" class="mashsb-rwmb-text-list" name="%s" value="%s" placeholder="%s"> %s</label>';
|
19 |
+
|
20 |
+
$count = 0;
|
21 |
+
foreach ( $field['options'] as $placeholder => $label )
|
22 |
+
{
|
23 |
+
$html[] = sprintf(
|
24 |
+
$input,
|
25 |
+
$field['field_name'],
|
26 |
+
isset( $meta[$count] ) ? esc_attr( $meta[$count] ) : '',
|
27 |
+
$placeholder,
|
28 |
+
$label
|
29 |
+
);
|
30 |
+
$count ++;
|
31 |
+
}
|
32 |
+
|
33 |
+
return implode( ' ', $html );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Output the field value
|
38 |
+
* Display option name instead of option value
|
39 |
+
*
|
40 |
+
* @param array $field Field parameters
|
41 |
+
* @param array $args Additional arguments. Not used for these fields.
|
42 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
43 |
+
*
|
44 |
+
* @return mixed Field value
|
45 |
+
*/
|
46 |
+
static function the_value( $field, $args = array(), $post_id = null )
|
47 |
+
{
|
48 |
+
$value = self::get_value( $field, $args, $post_id );
|
49 |
+
if ( ! $value )
|
50 |
+
return '';
|
51 |
+
|
52 |
+
$output = '<ul>';
|
53 |
+
if ( $field['clone'] )
|
54 |
+
{
|
55 |
+
foreach ( $value as $subvalue )
|
56 |
+
{
|
57 |
+
$output .= '<li>';
|
58 |
+
$output .= '<ul>';
|
59 |
+
|
60 |
+
$i = 0;
|
61 |
+
foreach ( $field['options'] as $placeholder => $label )
|
62 |
+
{
|
63 |
+
$output .= sprintf(
|
64 |
+
'<li><label>%s</label>: %s</li>',
|
65 |
+
$label,
|
66 |
+
isset( $subvalue[$i] ) ? $subvalue[$i] : ''
|
67 |
+
);
|
68 |
+
$i ++;
|
69 |
+
}
|
70 |
+
$output .= '</ul>';
|
71 |
+
$output .= '</li>';
|
72 |
+
}
|
73 |
+
}
|
74 |
+
else
|
75 |
+
{
|
76 |
+
$i = 0;
|
77 |
+
foreach ( $field['options'] as $placeholder => $label )
|
78 |
+
{
|
79 |
+
$output .= sprintf(
|
80 |
+
'<li><label>%s</label>: %s</li>',
|
81 |
+
$label,
|
82 |
+
isset( $value[$i] ) ? $value[$i] : ''
|
83 |
+
);
|
84 |
+
$i ++;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
$output .= '</ul>';
|
88 |
+
|
89 |
+
return $output;
|
90 |
+
}
|
91 |
+
}
|
includes/admin/meta-box/inc/fields/text.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Text field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Text_Field extends MASHSB_RWMB_Input_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
* @return array
|
12 |
+
*/
|
13 |
+
static function normalize( $field )
|
14 |
+
{
|
15 |
+
$field = parent::normalize( $field );
|
16 |
+
|
17 |
+
$field = wp_parse_args( $field, array(
|
18 |
+
'size' => 30,
|
19 |
+
'maxlength' => false,
|
20 |
+
'pattern' => false,
|
21 |
+
) );
|
22 |
+
|
23 |
+
return $field;
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get the attributes for a field
|
28 |
+
*
|
29 |
+
* @param array $field
|
30 |
+
* @param mixed $value
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
static function get_attributes( $field, $value = null )
|
35 |
+
{
|
36 |
+
$attributes = parent::get_attributes( $field, $value );
|
37 |
+
$attributes = wp_parse_args( $attributes, array(
|
38 |
+
'size' => $field['size'],
|
39 |
+
'maxlength' => $field['maxlength'],
|
40 |
+
'pattern' => $field['pattern'],
|
41 |
+
'placeholder' => $field['placeholder'],
|
42 |
+
) );
|
43 |
+
|
44 |
+
$attributes['type'] = 'text';
|
45 |
+
|
46 |
+
return $attributes;
|
47 |
+
}
|
48 |
+
}
|
includes/admin/meta-box/inc/fields/textarea.php
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Textarea field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Textarea_Field extends MASHSB_RWMB_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get field HTML
|
9 |
+
*
|
10 |
+
* @param mixed $meta
|
11 |
+
* @param array $field
|
12 |
+
*
|
13 |
+
* @return string
|
14 |
+
*/
|
15 |
+
static function html( $meta, $field )
|
16 |
+
{
|
17 |
+
$attributes = self::get_attributes( $field, $meta );
|
18 |
+
return sprintf(
|
19 |
+
'<textarea %s>%s</textarea>',
|
20 |
+
self::render_attributes( $attributes ),
|
21 |
+
$meta
|
22 |
+
);
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Escape meta for field output
|
27 |
+
*
|
28 |
+
* @param mixed $meta
|
29 |
+
* @return mixed
|
30 |
+
*/
|
31 |
+
static function esc_meta( $meta )
|
32 |
+
{
|
33 |
+
return is_array( $meta ) ? array_map( 'esc_textarea', $meta ) : esc_textarea( $meta );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Normalize parameters for field
|
38 |
+
*
|
39 |
+
* @param array $field
|
40 |
+
* @return array
|
41 |
+
*/
|
42 |
+
static function normalize( $field )
|
43 |
+
{
|
44 |
+
$field = parent::normalize( $field );
|
45 |
+
$field = wp_parse_args( $field, array(
|
46 |
+
'cols' => 60,
|
47 |
+
'rows' => 3,
|
48 |
+
'maxlength' => false,
|
49 |
+
'wrap' => false,
|
50 |
+
'readonly' => false,
|
51 |
+
) );
|
52 |
+
|
53 |
+
return $field;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get the attributes for a field
|
58 |
+
*
|
59 |
+
* @param array $field
|
60 |
+
* @param mixed $value
|
61 |
+
*
|
62 |
+
* @return array
|
63 |
+
*/
|
64 |
+
static function get_attributes( $field, $value = null )
|
65 |
+
{
|
66 |
+
$attributes = parent::get_attributes( $field, $value );
|
67 |
+
$attributes = wp_parse_args( $attributes, array(
|
68 |
+
'cols' => $field['cols'],
|
69 |
+
'rows' => $field['rows'],
|
70 |
+
'maxlength' => $field['maxlength'],
|
71 |
+
'wrap' => $field['wrap'],
|
72 |
+
'readonly' => $field['readonly'],
|
73 |
+
'placeholder' => $field['placeholder'],
|
74 |
+
) );
|
75 |
+
$attributes['class'] .= ' large-text';
|
76 |
+
|
77 |
+
return $attributes;
|
78 |
+
}
|
79 |
+
}
|
includes/admin/meta-box/inc/fields/thickbox-image.php
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Image upload field which uses thickbox library to upload.
|
4 |
+
* @deprecated Use image_advanced instead
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Thickbox_Image_Field extends MASHSB_RWMB_Image_Field
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Add custom actions for the field.
|
10 |
+
*/
|
11 |
+
public static function add_actions()
|
12 |
+
{
|
13 |
+
parent::add_actions();
|
14 |
+
add_filter( 'get_media_item_args', array( __CLASS__, 'allow_img_insertion' ) );
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Always enable insert to post button in the popup
|
19 |
+
* @link https://github.com/rilwis/meta-box/issues/809
|
20 |
+
* @link http://wordpress.stackexchange.com/q/22175/2051
|
21 |
+
* @param array $vars
|
22 |
+
* @return array
|
23 |
+
*/
|
24 |
+
public static function allow_img_insertion( $vars )
|
25 |
+
{
|
26 |
+
$vars['send'] = true; // 'send' as in "Send to Editor"
|
27 |
+
return $vars;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Enqueue scripts and styles
|
32 |
+
*/
|
33 |
+
public static function admin_enqueue_scripts()
|
34 |
+
{
|
35 |
+
parent::admin_enqueue_scripts();
|
36 |
+
|
37 |
+
add_thickbox();
|
38 |
+
wp_enqueue_script( 'media-upload' );
|
39 |
+
|
40 |
+
wp_enqueue_script( 'mashsb-rwmb-thickbox-image', MASHSB_RWMB_JS_URL . 'thickbox-image.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Get field HTML
|
45 |
+
*
|
46 |
+
* @param mixed $meta
|
47 |
+
* @param array $field
|
48 |
+
*
|
49 |
+
* @return string
|
50 |
+
*/
|
51 |
+
public static function html( $meta, $field )
|
52 |
+
{
|
53 |
+
$i18n_title = apply_filters( 'rwmb_thickbox_image_upload_string', _x( 'Upload Images', 'image upload', 'meta-box' ), $field );
|
54 |
+
|
55 |
+
// Uploaded images
|
56 |
+
$html = parent::get_uploaded_images( $meta, $field );
|
57 |
+
|
58 |
+
// Show form upload
|
59 |
+
$html .= "<a href='#' class='button mashsb-rwmb-thickbox-upload' data-field_id='{$field['id']}'>{$i18n_title}</a>";
|
60 |
+
|
61 |
+
return $html;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Get field value
|
66 |
+
* It's the combination of new (uploaded) images and saved images
|
67 |
+
*
|
68 |
+
* @param array $new
|
69 |
+
* @param array $old
|
70 |
+
* @param int $post_id
|
71 |
+
* @param array $field
|
72 |
+
*
|
73 |
+
* @return array
|
74 |
+
*/
|
75 |
+
public static function value( $new, $old, $post_id, $field )
|
76 |
+
{
|
77 |
+
return array_unique( array_merge( $old, $new ) );
|
78 |
+
}
|
79 |
+
}
|
includes/admin/meta-box/inc/fields/time.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Time field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_Time_Field extends MASHSB_RWMB_Datetime_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Enqueue scripts and styles
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
public static function admin_enqueue_scripts()
|
13 |
+
{
|
14 |
+
parent::admin_register_scripts();
|
15 |
+
wp_enqueue_style( 'jquery-ui-timepicker' );
|
16 |
+
wp_enqueue_script( 'mashsb-rwmb-time' );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Normalize parameters for field
|
21 |
+
*
|
22 |
+
* @param array $field
|
23 |
+
* @return array
|
24 |
+
*/
|
25 |
+
public static function normalize( $field )
|
26 |
+
{
|
27 |
+
$field = parent::normalize( $field );
|
28 |
+
$field['js_options']['timeFormat'] = empty( $field['format'] ) ? $field['js_options']['timeFormat'] : $field['format'];
|
29 |
+
return $field;
|
30 |
+
}
|
31 |
+
}
|
includes/admin/meta-box/inc/fields/url.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* HTML5 URL field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_URL_Field extends MASHSB_RWMB_Text_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get the attributes for a field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
* @param mixed $value
|
12 |
+
*
|
13 |
+
* @return array
|
14 |
+
*/
|
15 |
+
static function get_attributes( $field, $value = null )
|
16 |
+
{
|
17 |
+
$attributes = parent::get_attributes( $field, $value );
|
18 |
+
$attributes['type'] = 'url';
|
19 |
+
|
20 |
+
return $attributes;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Sanitize url
|
25 |
+
*
|
26 |
+
* @param mixed $new
|
27 |
+
* @param mixed $old
|
28 |
+
* @param int $post_id
|
29 |
+
* @param array $field
|
30 |
+
*
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
static function value( $new, $old, $post_id, $field )
|
34 |
+
{
|
35 |
+
return is_array( $new ) ? array_map( 'esc_url_raw', $new ) : esc_url_raw( $new );
|
36 |
+
}
|
37 |
+
}
|
includes/admin/meta-box/inc/fields/user.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* User field class.
|
4 |
+
*/
|
5 |
+
class MASHSB_RWMB_User_Field extends MASHSB_RWMB_Object_Choice_Field
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Normalize parameters for field
|
9 |
+
*
|
10 |
+
* @param array $field
|
11 |
+
*
|
12 |
+
* @return array
|
13 |
+
*/
|
14 |
+
static function normalize( $field )
|
15 |
+
{
|
16 |
+
/**
|
17 |
+
* Set default field args
|
18 |
+
*/
|
19 |
+
$field = parent::normalize( $field );
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Prevent select tree for user since it's not hierarchical
|
23 |
+
*/
|
24 |
+
$field['field_type'] = 'select_tree' === $field['field_type'] ? 'select' : $field['field_type'];
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Set to always flat
|
28 |
+
*/
|
29 |
+
$field['flatten'] = true;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Set default placeholder
|
33 |
+
*/
|
34 |
+
$field['placeholder'] = empty( $field['placeholder'] ) ? __( 'Select an user', 'meta-box' ) : $field['placeholder'];
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Set default query args
|
38 |
+
*/
|
39 |
+
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
40 |
+
'orderby' => 'display_name',
|
41 |
+
'order' => 'asc',
|
42 |
+
'role' => '',
|
43 |
+
'fields' => 'all',
|
44 |
+
) );
|
45 |
+
|
46 |
+
return $field;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Get users
|
51 |
+
*
|
52 |
+
* @param array $field
|
53 |
+
*
|
54 |
+
* @return array
|
55 |
+
*/
|
56 |
+
static function get_options( $field )
|
57 |
+
{
|
58 |
+
$options = get_users( $field['query_args'] );
|
59 |
+
return $options;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Get field names of object to be used by walker
|
64 |
+
*
|
65 |
+
* @return array
|
66 |
+
*/
|
67 |
+
static function get_db_fields()
|
68 |
+
{
|
69 |
+
return array(
|
70 |
+
'parent' => 'parent',
|
71 |
+
'id' => 'ID',
|
72 |
+
'label' => 'display_name',
|
73 |
+
);
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Get option label
|
78 |
+
*
|
79 |
+
* @param string $value Option value
|
80 |
+
* @param array $field Field parameter
|
81 |
+
*
|
82 |
+
* @return string
|
83 |
+
*/
|
84 |
+
static function get_option_label( $value, $field )
|
85 |
+
{
|
86 |
+
$user = get_userdata( $value );
|
87 |
+
return '<a href="' . get_author_posts_url( $value ) . '">' . $user->display_name . '</a>';
|
88 |
+
}
|
89 |
+
}
|
includes/admin/meta-box/inc/fields/validate-og.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Custom HTML field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Validate_Og_Field extends MASHSB_RWMB_Field {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Get field HTML
|
10 |
+
*
|
11 |
+
* @param mixed $meta
|
12 |
+
* @param array $field
|
13 |
+
*
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
static function html( $meta, $field ) {
|
17 |
+
global $post;
|
18 |
+
$html = !empty( $field['std'] ) ? $field['std'] : '';
|
19 |
+
if( !empty( $field['callback'] ) && is_callable( $field['callback'] ) ) {
|
20 |
+
$html = call_user_func_array( $field['callback'], array($meta, $field) );
|
21 |
+
}
|
22 |
+
//return $html;
|
23 |
+
//return get_permalink( $post->ID );
|
24 |
+
return self::get_fb_debugger_url($post, $field);
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Link to the open graph debugger to check if open graph tags are valid
|
29 |
+
*
|
30 |
+
* @global array $post
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
static function get_fb_debugger_url($post, $field) {
|
34 |
+
//var_dump( $post );
|
35 |
+
if( isset( $post ) && $post->post_status == "publish" ) {
|
36 |
+
$url = get_permalink( $post->ID );
|
37 |
+
return '<a href="https://developers.facebook.com/tools/debug/og/object?q=' . $url . '" target="_blank" class="button-small"> Validate Open Graph data </a>' . $field['helper'];
|
38 |
+
} else {
|
39 |
+
return '';
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
}
|
includes/admin/meta-box/inc/fields/wysiwyg.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* WYSIWYG (editor) field class.
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Wysiwyg_Field extends MASHSB_RWMB_Field
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Array of cloneable editors.
|
10 |
+
* @var array
|
11 |
+
*/
|
12 |
+
static $cloneable_editors = array();
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Enqueue scripts and styles.
|
16 |
+
*/
|
17 |
+
static function admin_enqueue_scripts()
|
18 |
+
{
|
19 |
+
wp_enqueue_style( 'mashsb-rwmb-wysiwyg', MASHSB_RWMB_CSS_URL . 'wysiwyg.css', array(), MASHSB_RWMB_VER );
|
20 |
+
wp_enqueue_script( 'mashsb-rwmb-wysiwyg', MASHSB_RWMB_JS_URL . 'wysiwyg.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Change field value on save
|
25 |
+
*
|
26 |
+
* @param mixed $new
|
27 |
+
* @param mixed $old
|
28 |
+
* @param int $post_id
|
29 |
+
* @param array $field
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
static function value( $new, $old, $post_id, $field )
|
33 |
+
{
|
34 |
+
if ( $field['raw'] )
|
35 |
+
{
|
36 |
+
$meta = $new;
|
37 |
+
}
|
38 |
+
elseif ( $field['clone'] )
|
39 |
+
{
|
40 |
+
$meta = array_map( 'wpautop', $new );
|
41 |
+
}
|
42 |
+
else
|
43 |
+
{
|
44 |
+
$meta = wpautop( $new );
|
45 |
+
}
|
46 |
+
|
47 |
+
return $meta;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Get field HTML
|
52 |
+
*
|
53 |
+
* @param mixed $meta
|
54 |
+
* @param array $field
|
55 |
+
* @return string
|
56 |
+
*/
|
57 |
+
static function html( $meta, $field )
|
58 |
+
{
|
59 |
+
// Using output buffering because wp_editor() echos directly
|
60 |
+
ob_start();
|
61 |
+
|
62 |
+
$field['options']['textarea_name'] = $field['field_name'];
|
63 |
+
$attributes = self::get_attributes( $field );
|
64 |
+
|
65 |
+
// Use new wp_editor() since WP 3.3
|
66 |
+
wp_editor( $meta, $attributes['id'], $field['options'] );
|
67 |
+
|
68 |
+
return ob_get_clean();
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Escape meta for field output
|
73 |
+
*
|
74 |
+
* @param mixed $meta
|
75 |
+
* @return mixed
|
76 |
+
*/
|
77 |
+
static function esc_meta( $meta )
|
78 |
+
{
|
79 |
+
return $meta;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Normalize parameters for field
|
84 |
+
*
|
85 |
+
* @param array $field
|
86 |
+
* @return array
|
87 |
+
*/
|
88 |
+
static function normalize( $field )
|
89 |
+
{
|
90 |
+
$field = parent::normalize( $field );
|
91 |
+
$field = wp_parse_args( $field, array(
|
92 |
+
'raw' => false,
|
93 |
+
'options' => array(),
|
94 |
+
) );
|
95 |
+
|
96 |
+
$field['options'] = wp_parse_args( $field['options'], array(
|
97 |
+
'editor_class' => 'mashsb-rwmb-wysiwyg',
|
98 |
+
'dfw' => true, // Use default WordPress full screen UI
|
99 |
+
) );
|
100 |
+
|
101 |
+
// Keep the filter to be compatible with previous versions
|
102 |
+
$field['options'] = apply_filters( 'rwmb_wysiwyg_settings', $field['options'] );
|
103 |
+
|
104 |
+
return $field;
|
105 |
+
}
|
106 |
+
}
|
includes/admin/meta-box/inc/functions.php
ADDED
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Plugin public functions.
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( ! function_exists( 'mashsb_rwmb_meta' ) )
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Get post meta
|
10 |
+
*
|
11 |
+
* @param string $key Meta key. Required.
|
12 |
+
* @param int|null $post_id Post ID. null for current post. Optional
|
13 |
+
* @param array $args Array of arguments. Optional.
|
14 |
+
*
|
15 |
+
* @return mixed
|
16 |
+
*/
|
17 |
+
function mashsb_rwmb_meta( $key, $args = array(), $post_id = null )
|
18 |
+
{
|
19 |
+
/**
|
20 |
+
* If meta boxes is registered in the backend only, we can't get field's params
|
21 |
+
* This is for backward compatibility with version < 4.8.0
|
22 |
+
*/
|
23 |
+
$field = MASHSB_RWMB_Helper::find_field( $key );
|
24 |
+
if ( false === $field || isset( $args['type'] ) )
|
25 |
+
{
|
26 |
+
return apply_filters( 'mashsb_rwmb_meta', MASHSB_RWMB_Helper::meta( $key, $args, $post_id ) );
|
27 |
+
}
|
28 |
+
$meta = in_array( $field['type'], array( 'oembed', 'map' ) ) ?
|
29 |
+
mashsb_rwmb_the_value( $key, $args, $post_id, false ) :
|
30 |
+
mashsb_rwmb_the_value( $key, $args, $post_id );
|
31 |
+
return apply_filters( 'mashsb_rwmb_meta', $meta, $key, $args, $post_id );
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
if ( ! function_exists( 'mashsb_rwmb_the_value' ) )
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Get value of custom field.
|
39 |
+
* This is used to replace old version of mashsb_rwmb_meta key.
|
40 |
+
*
|
41 |
+
* @param string $field_id Field ID. Required.
|
42 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
43 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
44 |
+
*
|
45 |
+
* @return mixed false if field doesn't exist. Field value otherwise.
|
46 |
+
*/
|
47 |
+
function mashsb_rwmb_the_value( $field_id, $args = array(), $post_id = null )
|
48 |
+
{
|
49 |
+
$field = MASHSB_RWMB_Helper::find_field( $field_id );
|
50 |
+
|
51 |
+
// Get field value
|
52 |
+
$value = $field ? call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_value' ), $field, $args, $post_id ) : false;
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Allow developers to change the returned value of field
|
56 |
+
* For version < 4.8.2, the filter name was 'rwmb_get_field'
|
57 |
+
*
|
58 |
+
* @param mixed $value Field value
|
59 |
+
* @param array $field Field parameter
|
60 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
61 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
62 |
+
*/
|
63 |
+
$value = apply_filters( 'mashsb_rwmb_the_value', $value, $field, $args, $post_id );
|
64 |
+
|
65 |
+
return $value;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
if ( ! function_exists( 'mashsb_rwmb_the_value' ) )
|
70 |
+
{
|
71 |
+
/**
|
72 |
+
* Display the value of a field
|
73 |
+
*
|
74 |
+
* @param string $field_id Field ID. Required.
|
75 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
76 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
77 |
+
* @param bool $echo Display field meta value? Default `true` which works in almost all cases. We use `false` for the [mashsb_rwmb_meta] shortcode
|
78 |
+
*
|
79 |
+
* @return string
|
80 |
+
*/
|
81 |
+
function mashsb_rwmb_the_value( $field_id, $args = array(), $post_id = null, $echo = true )
|
82 |
+
{
|
83 |
+
// Find field
|
84 |
+
$field = MASHSB_RWMB_Helper::find_field( $field_id );
|
85 |
+
|
86 |
+
if ( ! $field )
|
87 |
+
return '';
|
88 |
+
|
89 |
+
$output = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'the_value' ), $field, $args, $post_id );
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Allow developers to change the returned value of field
|
93 |
+
* For version < 4.8.2, the filter name was 'rwmb_get_field'
|
94 |
+
*
|
95 |
+
* @param mixed $value Field HTML output
|
96 |
+
* @param array $field Field parameter
|
97 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details
|
98 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
99 |
+
*/
|
100 |
+
$output = apply_filters( 'mashsb_rwmb_the_value', $output, $field, $args, $post_id );
|
101 |
+
|
102 |
+
if ( $echo )
|
103 |
+
echo $output;
|
104 |
+
|
105 |
+
return $output;
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
if ( ! function_exists( 'mashsb_rwmb_meta_shortcode' ) )
|
110 |
+
{
|
111 |
+
/**
|
112 |
+
* Shortcode to display meta value
|
113 |
+
*
|
114 |
+
* @param array $atts Shortcode attributes, same as meta() function, but has more "meta_key" parameter
|
115 |
+
*
|
116 |
+
* @see meta() function below
|
117 |
+
*
|
118 |
+
* @return string
|
119 |
+
*/
|
120 |
+
function mashsb_rwmb_meta_shortcode( $atts )
|
121 |
+
{
|
122 |
+
$atts = wp_parse_args( $atts, array(
|
123 |
+
'post_id' => get_the_ID(),
|
124 |
+
) );
|
125 |
+
if ( empty( $atts['meta_key'] ) )
|
126 |
+
return '';
|
127 |
+
|
128 |
+
$field_id = $atts['meta_key'];
|
129 |
+
$post_id = $atts['post_id'];
|
130 |
+
unset( $atts['meta_key'], $atts['post_id'] );
|
131 |
+
|
132 |
+
return mashsb_rwmb_the_value( $field_id, $atts, $post_id, false );
|
133 |
+
}
|
134 |
+
|
135 |
+
add_shortcode( 'mashsb_rwmb_meta', 'mashsb_rwmb_meta_shortcode' );
|
136 |
+
}
|
includes/admin/meta-box/inc/helper.php
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The helper class.
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Wrapper class for helper functions.
|
8 |
+
*/
|
9 |
+
class MASHSB_RWMB_Helper
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* Stores all registered fields
|
13 |
+
* @var array
|
14 |
+
*/
|
15 |
+
private static $fields = array();
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Hash all fields into an indexed array for search
|
19 |
+
* @param string $post_type Post type
|
20 |
+
*/
|
21 |
+
public static function hash_fields( $post_type )
|
22 |
+
{
|
23 |
+
self::$fields[$post_type] = array();
|
24 |
+
|
25 |
+
$meta_boxes = MASHSB_RWMB_Core::get_meta_boxes();
|
26 |
+
foreach ( $meta_boxes as $meta_box )
|
27 |
+
{
|
28 |
+
$meta_box = MASHSB_RW_Meta_Box::normalize( $meta_box );
|
29 |
+
if ( ! in_array( $post_type, $meta_box['post_types'] ) )
|
30 |
+
{
|
31 |
+
continue;
|
32 |
+
}
|
33 |
+
foreach ( $meta_box['fields'] as $field )
|
34 |
+
{
|
35 |
+
if ( ! empty( $field['id'] ) )
|
36 |
+
{
|
37 |
+
self::$fields[$post_type][$field['id']] = $field;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Find field by field ID.
|
45 |
+
* This function finds field in meta boxes registered by 'rwmb_meta_boxes' filter.
|
46 |
+
*
|
47 |
+
* @param string $field_id Field ID
|
48 |
+
* @param int $post_id
|
49 |
+
* @return array|false Field params (array) if success. False otherwise.
|
50 |
+
*/
|
51 |
+
public static function find_field( $field_id, $post_id = null )
|
52 |
+
{
|
53 |
+
$post_type = get_post_type( $post_id );
|
54 |
+
if ( empty( self::$fields[$post_type] ) )
|
55 |
+
{
|
56 |
+
self::hash_fields( $post_type );
|
57 |
+
}
|
58 |
+
$fields = self::$fields[$post_type];
|
59 |
+
if ( ! isset( $fields[$field_id] ) )
|
60 |
+
{
|
61 |
+
return false;
|
62 |
+
}
|
63 |
+
$field = $fields[$field_id];
|
64 |
+
return call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'normalize' ), $field );
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Get post meta
|
69 |
+
*
|
70 |
+
* @param string $key Meta key. Required.
|
71 |
+
* @param int|null $post_id Post ID. null for current post. Optional
|
72 |
+
* @param array $args Array of arguments. Optional.
|
73 |
+
*
|
74 |
+
* @return mixed
|
75 |
+
*/
|
76 |
+
public static function meta( $key, $args = array(), $post_id = null )
|
77 |
+
{
|
78 |
+
$post_id = empty( $post_id ) ? get_the_ID() : $post_id;
|
79 |
+
$args = wp_parse_args( $args, array(
|
80 |
+
'type' => 'text',
|
81 |
+
'multiple' => false,
|
82 |
+
'clone' => false,
|
83 |
+
) );
|
84 |
+
// Always set 'multiple' true for following field types
|
85 |
+
if ( in_array( $args['type'], array( 'checkbox_list', 'autocomplete', 'file', 'file_advanced', 'image', 'image_advanced', 'plupload_image', 'thickbox_image' ) ) )
|
86 |
+
{
|
87 |
+
$args['multiple'] = true;
|
88 |
+
}
|
89 |
+
|
90 |
+
$field = array(
|
91 |
+
'id' => $key,
|
92 |
+
'type' => $args['type'],
|
93 |
+
'clone' => $args['clone'],
|
94 |
+
'multiple' => $args['multiple'],
|
95 |
+
);
|
96 |
+
$class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
97 |
+
|
98 |
+
switch ( $args['type'] )
|
99 |
+
{
|
100 |
+
case 'taxonomy_advanced':
|
101 |
+
if ( empty( $args['taxonomy'] ) )
|
102 |
+
{
|
103 |
+
break;
|
104 |
+
}
|
105 |
+
$meta = get_post_meta( $post_id, $key, ! $args['multiple'] );
|
106 |
+
$term_ids = wp_parse_id_list( $meta );
|
107 |
+
// Allow to pass more arguments to "get_terms"
|
108 |
+
$func_args = wp_parse_args( array(
|
109 |
+
'include' => $term_ids,
|
110 |
+
'hide_empty' => false,
|
111 |
+
), $args );
|
112 |
+
unset( $func_args['type'], $func_args['taxonomy'], $func_args['multiple'] );
|
113 |
+
$meta = get_terms( $args['taxonomy'], $func_args );
|
114 |
+
break;
|
115 |
+
case 'taxonomy':
|
116 |
+
$meta = empty( $args['taxonomy'] ) ? array() : get_the_terms( $post_id, $args['taxonomy'] );
|
117 |
+
break;
|
118 |
+
case 'map':
|
119 |
+
$field = array(
|
120 |
+
'id' => $key,
|
121 |
+
'multiple' => false,
|
122 |
+
'clone' => false,
|
123 |
+
);
|
124 |
+
$meta = MASHSB_RWMB_Map_Field::the_value( $field, $args, $post_id );
|
125 |
+
break;
|
126 |
+
case 'oembed':
|
127 |
+
$meta = MASHSB_RWMB_OEmbed_Field::the_value( $field, $args, $post_id );
|
128 |
+
break;
|
129 |
+
default:
|
130 |
+
$meta = call_user_func( array( $class, 'get_value' ), $field, $args, $post_id );
|
131 |
+
break;
|
132 |
+
}
|
133 |
+
return apply_filters( 'rwmb_meta', $meta, $key, $args, $post_id );
|
134 |
+
}
|
135 |
+
}
|
includes/admin/meta-box/inc/loader.php
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Load plugin's files with check for installing it as a standalone plugin or
|
4 |
+
* a module of a theme / plugin. If standalone plugin is already installed, it
|
5 |
+
* will take higher priority.
|
6 |
+
* @package Meta Box
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Plugin loader class.
|
11 |
+
* @package Meta Box
|
12 |
+
*/
|
13 |
+
class MASHSB_RWMB_Loader
|
14 |
+
{
|
15 |
+
/**
|
16 |
+
* Class constructor.
|
17 |
+
*/
|
18 |
+
public function __construct()
|
19 |
+
{
|
20 |
+
$this->constants();
|
21 |
+
spl_autoload_register( array( $this, 'autoload' ) );
|
22 |
+
$this->init();
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Define plugin constants.
|
27 |
+
*/
|
28 |
+
public function constants()
|
29 |
+
{
|
30 |
+
// Script version, used to add version for scripts and styles
|
31 |
+
define( 'MASHSB_RWMB_VER', '4.8.4' );
|
32 |
+
|
33 |
+
list( $path, $url ) = self::get_path();
|
34 |
+
|
35 |
+
// Plugin URLs, for fast enqueuing scripts and styles
|
36 |
+
define( 'MASHSB_RWMB_URL', $url );
|
37 |
+
define( 'MASHSB_RWMB_JS_URL', trailingslashit( MASHSB_RWMB_URL . 'js' ) );
|
38 |
+
define( 'MASHSB_RWMB_CSS_URL', trailingslashit( MASHSB_RWMB_URL . 'css' ) );
|
39 |
+
|
40 |
+
// Plugin paths, for including files
|
41 |
+
define( 'MASHSB_RWMB_DIR', $path );
|
42 |
+
define( 'MASHSB_RWMB_INC_DIR', trailingslashit( MASHSB_RWMB_DIR . 'inc' ) );
|
43 |
+
define( 'MASHSB_RWMB_FIELDS_DIR', trailingslashit( MASHSB_RWMB_INC_DIR . 'fields' ) );
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Get plugin base path and URL.
|
48 |
+
* The method is static and can be used in extensions.
|
49 |
+
* @link http://www.deluxeblogtips.com/2013/07/get-url-of-php-file-in-wordpress.html
|
50 |
+
* @param string $base Base folder path
|
51 |
+
* @return array Path and URL.
|
52 |
+
*/
|
53 |
+
public static function get_path( $base = '' )
|
54 |
+
{
|
55 |
+
// Plugin base path
|
56 |
+
$path = $base ? $base : dirname( dirname( __FILE__ ) );
|
57 |
+
$path = wp_normalize_path( untrailingslashit( $path ) );
|
58 |
+
|
59 |
+
// Installed as a plugin?
|
60 |
+
if ( 0 === strpos( $path, wp_normalize_path( WP_PLUGIN_DIR ) ) || 0 === strpos( $path, wp_normalize_path( WPMU_PLUGIN_DIR ) ) )
|
61 |
+
{
|
62 |
+
$url = plugins_url( '', $path . '/' . basename( $path ) );
|
63 |
+
}
|
64 |
+
// Included into themes
|
65 |
+
else
|
66 |
+
{
|
67 |
+
// Get plugin base URL
|
68 |
+
$content_url = untrailingslashit( dirname( dirname( get_stylesheet_directory_uri() ) ) );
|
69 |
+
$content_dir = untrailingslashit( WP_CONTENT_DIR );
|
70 |
+
$url = str_replace( wp_normalize_path( $content_dir ), $content_url, $path );
|
71 |
+
}
|
72 |
+
|
73 |
+
$path = trailingslashit( $path );
|
74 |
+
$url = trailingslashit( $url );
|
75 |
+
|
76 |
+
return array( $path, $url );
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Autoload fields' classes.
|
81 |
+
* @param string $class Class name
|
82 |
+
*/
|
83 |
+
public function autoload( $class )
|
84 |
+
{
|
85 |
+
// Only load plugin's classes
|
86 |
+
if ( 'MASHSB_RW_Meta_Box' != $class && 0 !== strpos( $class, 'MASHSB_RWMB_' ) )
|
87 |
+
{
|
88 |
+
return;
|
89 |
+
}
|
90 |
+
|
91 |
+
// Get file name
|
92 |
+
$file = 'meta-box';
|
93 |
+
if ( 'MASHSB_RW_Meta_Box' != $class )
|
94 |
+
{
|
95 |
+
// Remove prefix 'MASHSB_RWMB_'
|
96 |
+
$file = substr( $class, 12 );
|
97 |
+
|
98 |
+
// Optional '_Field'
|
99 |
+
$file = preg_replace( '/_Field$/', '', $file );
|
100 |
+
}
|
101 |
+
|
102 |
+
$file = strtolower( str_replace( '_', '-', $file ) ) . '.php';
|
103 |
+
|
104 |
+
$dirs = array( MASHSB_RWMB_INC_DIR, MASHSB_RWMB_FIELDS_DIR, trailingslashit( MASHSB_RWMB_INC_DIR . 'walkers' ) );
|
105 |
+
foreach ( $dirs as $dir )
|
106 |
+
{
|
107 |
+
if ( file_exists( $dir . $file ) )
|
108 |
+
{
|
109 |
+
require $dir . $file;
|
110 |
+
return;
|
111 |
+
}
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Initialize plugin.
|
117 |
+
*/
|
118 |
+
public function init()
|
119 |
+
{
|
120 |
+
// Plugin core
|
121 |
+
new MASHSB_RWMB_Core;
|
122 |
+
|
123 |
+
if ( is_admin() )
|
124 |
+
{
|
125 |
+
// Validation module
|
126 |
+
new MASHSB_RWMB_Validation;
|
127 |
+
}
|
128 |
+
|
129 |
+
// Public functions
|
130 |
+
require MASHSB_RWMB_INC_DIR . 'functions.php';
|
131 |
+
}
|
132 |
+
}
|
includes/admin/meta-box/inc/meta-box.php
ADDED
@@ -0,0 +1,427 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* A class to rapid develop meta boxes for custom & built in content types
|
5 |
+
* Piggybacks on WordPress
|
6 |
+
*
|
7 |
+
* @author Tran Ngoc Tuan Anh <rilwis@gmail.com>
|
8 |
+
* @license GNU GPL2+
|
9 |
+
* @package Meta Box
|
10 |
+
*/
|
11 |
+
class MASHSB_RW_Meta_Box
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* @var array Meta box information
|
15 |
+
*/
|
16 |
+
public $meta_box;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @var array Fields information
|
20 |
+
*/
|
21 |
+
public $fields;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @var array Contains all field types of current meta box
|
25 |
+
*/
|
26 |
+
public $types;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @var bool Used to prevent duplicated calls like revisions, manual hook to wp_insert_post, etc.
|
30 |
+
*/
|
31 |
+
public $saved = false;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Create meta box based on given data
|
35 |
+
* @param array $meta_box Meta box definition
|
36 |
+
*/
|
37 |
+
function __construct( $meta_box )
|
38 |
+
{
|
39 |
+
// Run script only in admin area
|
40 |
+
if ( ! is_admin() )
|
41 |
+
return;
|
42 |
+
|
43 |
+
$meta_box = self::normalize( $meta_box );
|
44 |
+
$meta_box['fields'] = self::normalize_fields( $meta_box['fields'] );
|
45 |
+
|
46 |
+
$this->meta_box = $meta_box;
|
47 |
+
$this->fields = &$this->meta_box['fields'];
|
48 |
+
|
49 |
+
// Allow users to show/hide meta box
|
50 |
+
// 1st action applies to all meta boxes
|
51 |
+
// 2nd action applies to only current meta box
|
52 |
+
$show = true;
|
53 |
+
$show = apply_filters( 'rwmb_show', $show, $this->meta_box );
|
54 |
+
$show = apply_filters( "rwmb_show_{$this->meta_box['id']}", $show, $this->meta_box );
|
55 |
+
if ( ! $show )
|
56 |
+
return;
|
57 |
+
|
58 |
+
// Enqueue common styles and scripts
|
59 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
60 |
+
|
61 |
+
// Add additional actions for fields
|
62 |
+
$fields = self::get_fields( $this->fields );
|
63 |
+
foreach ( $fields as $field )
|
64 |
+
{
|
65 |
+
call_user_func( array( self::get_class_name( $field ), 'add_actions' ) );
|
66 |
+
}
|
67 |
+
|
68 |
+
// Add meta box
|
69 |
+
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
|
70 |
+
|
71 |
+
// Hide meta box if it's set 'default_hidden'
|
72 |
+
add_filter( 'default_hidden_meta_boxes', array( $this, 'hide' ), 10, 2 );
|
73 |
+
|
74 |
+
// Save post meta
|
75 |
+
foreach ( $this->meta_box['post_types'] as $post_type )
|
76 |
+
{
|
77 |
+
if ( 'attachment' === $post_type )
|
78 |
+
{
|
79 |
+
// Attachment uses other hooks
|
80 |
+
// @see wp_update_post(), wp_insert_attachment()
|
81 |
+
add_action( 'edit_attachment', array( $this, 'save_post' ) );
|
82 |
+
add_action( 'add_attachment', array( $this, 'save_post' ) );
|
83 |
+
}
|
84 |
+
else
|
85 |
+
{
|
86 |
+
add_action( "save_post_{$post_type}", array( $this, 'save_post' ) );
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Enqueue common styles
|
93 |
+
*
|
94 |
+
* @return void
|
95 |
+
*/
|
96 |
+
function admin_enqueue_scripts()
|
97 |
+
{
|
98 |
+
if ( ! $this->is_edit_screen() )
|
99 |
+
return;
|
100 |
+
|
101 |
+
wp_enqueue_style( 'rwmb', MASHSB_RWMB_CSS_URL . 'style.css', array(), MASHSB_RWMB_VER );
|
102 |
+
if( is_rtl() )
|
103 |
+
wp_enqueue_style( 'mashsb-rwmb-rtl', MASHSB_RWMB_CSS_URL . 'style-rtl.css', array(), MASHSB_RWMB_VER );
|
104 |
+
|
105 |
+
// Load clone script conditionally
|
106 |
+
$fields = self::get_fields( $this->fields );
|
107 |
+
foreach ( $fields as $field )
|
108 |
+
{
|
109 |
+
if ( $field['clone'] )
|
110 |
+
{
|
111 |
+
wp_enqueue_script( 'mashsb-rwmb-clone', MASHSB_RWMB_JS_URL . 'clone.js', array( 'jquery-ui-sortable' ), MASHSB_RWMB_VER, true );
|
112 |
+
break;
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
// Enqueue scripts and styles for fields
|
117 |
+
foreach ( $fields as $field )
|
118 |
+
{
|
119 |
+
call_user_func( array( self::get_class_name( $field ), 'admin_enqueue_scripts' ) );
|
120 |
+
}
|
121 |
+
|
122 |
+
// Auto save
|
123 |
+
if ( $this->meta_box['autosave'] )
|
124 |
+
wp_enqueue_script( 'mashsb-rwmb-autosave', MASHSB_RWMB_JS_URL . 'autosave.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Allow developers to enqueue more scripts and styles
|
128 |
+
*
|
129 |
+
* @param MASHSB_RW_Meta_Box $object Meta Box object
|
130 |
+
*/
|
131 |
+
do_action( 'mashsb_rwmb_enqueue_scripts', $this );
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Get all fields of a meta box, recursively
|
136 |
+
*
|
137 |
+
* @param array $fields
|
138 |
+
*
|
139 |
+
* @return array
|
140 |
+
*/
|
141 |
+
static function get_fields( $fields )
|
142 |
+
{
|
143 |
+
$all_fields = array();
|
144 |
+
foreach ( $fields as $field )
|
145 |
+
{
|
146 |
+
$all_fields[] = $field;
|
147 |
+
if ( isset( $field['fields'] ) )
|
148 |
+
$all_fields = array_merge( $all_fields, self::get_fields( $field['fields'] ) );
|
149 |
+
}
|
150 |
+
|
151 |
+
return $all_fields;
|
152 |
+
}
|
153 |
+
|
154 |
+
/**************************************************
|
155 |
+
* SHOW META BOX
|
156 |
+
**************************************************/
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Add meta box for multiple post types
|
160 |
+
*
|
161 |
+
* @return void
|
162 |
+
*/
|
163 |
+
function add_meta_boxes()
|
164 |
+
{
|
165 |
+
foreach ( $this->meta_box['post_types'] as $post_type )
|
166 |
+
{
|
167 |
+
add_meta_box(
|
168 |
+
$this->meta_box['id'],
|
169 |
+
$this->meta_box['title'],
|
170 |
+
array( $this, 'show' ),
|
171 |
+
$post_type,
|
172 |
+
$this->meta_box['context'],
|
173 |
+
$this->meta_box['priority']
|
174 |
+
);
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Hide meta box if it's set 'default_hidden'
|
180 |
+
*
|
181 |
+
* @param array $hidden Array of default hidden meta boxes
|
182 |
+
* @param object $screen Current screen information
|
183 |
+
*
|
184 |
+
* @return array
|
185 |
+
*/
|
186 |
+
function hide( $hidden, $screen )
|
187 |
+
{
|
188 |
+
if ( $this->is_edit_screen( $screen ) && $this->meta_box['default_hidden'] )
|
189 |
+
{
|
190 |
+
$hidden[] = $this->meta_box['id'];
|
191 |
+
}
|
192 |
+
|
193 |
+
return $hidden;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Callback function to show fields in meta box
|
198 |
+
*
|
199 |
+
* @return void
|
200 |
+
*/
|
201 |
+
function show()
|
202 |
+
{
|
203 |
+
$saved = $this->is_saved();
|
204 |
+
|
205 |
+
// Container
|
206 |
+
printf(
|
207 |
+
'<div class="mashsb-rwmb-meta-box" data-autosave="%s">',
|
208 |
+
$this->meta_box['autosave'] ? 'true' : 'false'
|
209 |
+
);
|
210 |
+
|
211 |
+
wp_nonce_field( "mashsb-rwmb-save-{$this->meta_box['id']}", "nonce_{$this->meta_box['id']}" );
|
212 |
+
|
213 |
+
// Allow users to add custom code before meta box content
|
214 |
+
// 1st action applies to all meta boxes
|
215 |
+
// 2nd action applies to only current meta box
|
216 |
+
do_action( 'rwmb_before', $this );
|
217 |
+
do_action( "rwmb_before_{$this->meta_box['id']}", $this );
|
218 |
+
|
219 |
+
foreach ( $this->fields as $field )
|
220 |
+
{
|
221 |
+
call_user_func( array( self::get_class_name( $field ), 'show' ), $field, $saved );
|
222 |
+
}
|
223 |
+
|
224 |
+
// Allow users to add custom code after meta box content
|
225 |
+
// 1st action applies to all meta boxes
|
226 |
+
// 2nd action applies to only current meta box
|
227 |
+
do_action( 'mashsb_rwmb_after', $this );
|
228 |
+
do_action( "mashsb_rwmb_after_{$this->meta_box['id']}", $this );
|
229 |
+
|
230 |
+
// End container
|
231 |
+
echo '</div>';
|
232 |
+
}
|
233 |
+
|
234 |
+
/**************************************************
|
235 |
+
* SAVE META BOX
|
236 |
+
**************************************************/
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Save data from meta box
|
240 |
+
*
|
241 |
+
* @param int $post_id Post ID
|
242 |
+
*/
|
243 |
+
function save_post( $post_id )
|
244 |
+
{
|
245 |
+
// Check if this function is called to prevent duplicated calls like revisions, manual hook to wp_insert_post, etc.
|
246 |
+
if ( true === $this->saved )
|
247 |
+
return;
|
248 |
+
$this->saved = true;
|
249 |
+
|
250 |
+
// Check whether form is submitted properly
|
251 |
+
$nonce = (string) filter_input( INPUT_POST, "nonce_{$this->meta_box['id']}" );
|
252 |
+
if ( ! wp_verify_nonce( $nonce, "mashsb-rwmb-save-{$this->meta_box['id']}" ) )
|
253 |
+
return;
|
254 |
+
|
255 |
+
// Autosave
|
256 |
+
if ( defined( 'DOING_AUTOSAVE' ) && ! $this->meta_box['autosave'] )
|
257 |
+
return;
|
258 |
+
|
259 |
+
// Make sure meta is added to the post, not a revision
|
260 |
+
if ( $the_post = wp_is_post_revision( $post_id ) )
|
261 |
+
$post_id = $the_post;
|
262 |
+
|
263 |
+
// Before save action
|
264 |
+
do_action( 'rwmb_before_save_post', $post_id );
|
265 |
+
do_action( "rwmb_{$this->meta_box['id']}_before_save_post", $post_id );
|
266 |
+
|
267 |
+
foreach ( $this->fields as $field )
|
268 |
+
{
|
269 |
+
$name = $field['id'];
|
270 |
+
$single = $field['clone'] || ! $field['multiple'];
|
271 |
+
$old = get_post_meta( $post_id, $name, $single );
|
272 |
+
$new = isset( $_POST[$name] ) ? $_POST[$name] : ( $single ? '' : array() );
|
273 |
+
|
274 |
+
// Allow field class change the value
|
275 |
+
$new = call_user_func( array( self::get_class_name( $field ), 'value' ), $new, $old, $post_id, $field );
|
276 |
+
$new = MASHSB_RWMB_Core::filter( 'value', $new, $field, $old );
|
277 |
+
|
278 |
+
// Call defined method to save meta value, if there's no methods, call common one
|
279 |
+
call_user_func( array( self::get_class_name( $field ), 'save' ), $new, $old, $post_id, $field );
|
280 |
+
}
|
281 |
+
|
282 |
+
// After save action
|
283 |
+
do_action( 'mashsb_rwmb_after_save_post', $post_id );
|
284 |
+
do_action( "mashsb_rwmb_{$this->meta_box['id']}_after_save_post", $post_id );
|
285 |
+
}
|
286 |
+
|
287 |
+
/**************************************************
|
288 |
+
* HELPER FUNCTIONS
|
289 |
+
**************************************************/
|
290 |
+
|
291 |
+
/**
|
292 |
+
* Normalize parameters for meta box
|
293 |
+
*
|
294 |
+
* @param array $meta_box Meta box definition
|
295 |
+
*
|
296 |
+
* @return array $meta_box Normalized meta box
|
297 |
+
*/
|
298 |
+
static function normalize( $meta_box )
|
299 |
+
{
|
300 |
+
// Set default values for meta box
|
301 |
+
$meta_box = wp_parse_args( $meta_box, array(
|
302 |
+
'id' => sanitize_title( $meta_box['title'] ),
|
303 |
+
'context' => 'normal',
|
304 |
+
'priority' => 'high',
|
305 |
+
'post_types' => 'post',
|
306 |
+
'autosave' => false,
|
307 |
+
'default_hidden' => false,
|
308 |
+
) );
|
309 |
+
|
310 |
+
/**
|
311 |
+
* Use 'post_types' for better understanding and fallback to 'pages' for previous versions
|
312 |
+
* @since 4.4.1
|
313 |
+
*/
|
314 |
+
if ( ! empty( $meta_box['pages'] ) )
|
315 |
+
{
|
316 |
+
$meta_box['post_types'] = $meta_box['pages'];
|
317 |
+
}
|
318 |
+
|
319 |
+
// Allow to set 'post_types' param by string
|
320 |
+
if ( is_string( $meta_box['post_types'] ) )
|
321 |
+
{
|
322 |
+
$meta_box['post_types'] = array( $meta_box['post_types'] );
|
323 |
+
}
|
324 |
+
|
325 |
+
// Allow to add default values for meta box
|
326 |
+
$meta_box = apply_filters( 'rwmb_normalize_meta_box', $meta_box );
|
327 |
+
$meta_box = apply_filters( "rwmb_normalize_{$meta_box['id']}_meta_box", $meta_box );
|
328 |
+
|
329 |
+
return $meta_box;
|
330 |
+
}
|
331 |
+
|
332 |
+
/**
|
333 |
+
* Normalize an array of fields
|
334 |
+
*
|
335 |
+
* @param array $fields Array of fields
|
336 |
+
*
|
337 |
+
* @return array $fields Normalized fields
|
338 |
+
*/
|
339 |
+
static function normalize_fields( $fields )
|
340 |
+
{
|
341 |
+
foreach ( $fields as $k => $field )
|
342 |
+
{
|
343 |
+
$class = self::get_class_name( $field );
|
344 |
+
|
345 |
+
// Make sure field has correct 'type', ignore warning error when users forget to set field type or set incorrect one
|
346 |
+
if ( false === $class )
|
347 |
+
{
|
348 |
+
unset( $fields[$k] );
|
349 |
+
continue;
|
350 |
+
}
|
351 |
+
|
352 |
+
// Allow field class add/change default field values
|
353 |
+
$field = call_user_func( array( $class, 'normalize' ), $field );
|
354 |
+
|
355 |
+
if ( isset( $field['fields'] ) )
|
356 |
+
$field['fields'] = self::normalize_fields( $field['fields'] );
|
357 |
+
|
358 |
+
// Allow to add default values for fields
|
359 |
+
$field = apply_filters( 'rwmb_normalize_field', $field );
|
360 |
+
$field = apply_filters( "rwmb_normalize_{$field['type']}_field", $field );
|
361 |
+
$field = apply_filters( "rwmb_normalize_{$field['id']}_field", $field );
|
362 |
+
|
363 |
+
$fields[$k] = $field;
|
364 |
+
}
|
365 |
+
|
366 |
+
return $fields;
|
367 |
+
}
|
368 |
+
|
369 |
+
/**
|
370 |
+
* Get field class name
|
371 |
+
*
|
372 |
+
* @param array $field Field array
|
373 |
+
* @return string Field class name
|
374 |
+
*/
|
375 |
+
static function get_class_name( $field )
|
376 |
+
{
|
377 |
+
$type = str_replace( array( '-', '_' ), ' ', $field['type'] );
|
378 |
+
$class = 'MASHSB_RWMB_' . ucwords( $type ) . '_Field';
|
379 |
+
$class = str_replace( ' ', '_', $class );
|
380 |
+
return $class;
|
381 |
+
}
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Check if meta box is saved before.
|
385 |
+
* This helps saving empty value in meta fields (for text box, check box, etc.) and set the correct default values.
|
386 |
+
*
|
387 |
+
* @return bool
|
388 |
+
*/
|
389 |
+
public function is_saved()
|
390 |
+
{
|
391 |
+
$post = get_post();
|
392 |
+
|
393 |
+
foreach ( $this->fields as $field )
|
394 |
+
{
|
395 |
+
if ( empty( $field['id'] ) )
|
396 |
+
{
|
397 |
+
continue;
|
398 |
+
}
|
399 |
+
$value = get_post_meta( $post->ID, $field['id'], ! $field['multiple'] );
|
400 |
+
if (
|
401 |
+
( ! $field['multiple'] && '' !== $value )
|
402 |
+
|| ( $field['multiple'] && array() !== $value )
|
403 |
+
)
|
404 |
+
{
|
405 |
+
return true;
|
406 |
+
}
|
407 |
+
}
|
408 |
+
|
409 |
+
return false;
|
410 |
+
}
|
411 |
+
|
412 |
+
/**
|
413 |
+
* Check if we're on the right edit screen.
|
414 |
+
*
|
415 |
+
* @param WP_Screen $screen Screen object. Optional. Use current screen object by default.
|
416 |
+
*
|
417 |
+
* @return bool
|
418 |
+
*/
|
419 |
+
function is_edit_screen( $screen = null )
|
420 |
+
{
|
421 |
+
if ( ! ( $screen instanceof WP_Screen ) )
|
422 |
+
{
|
423 |
+
$screen = get_current_screen();
|
424 |
+
}
|
425 |
+
return 'post' == $screen->base && in_array( $screen->post_type, $this->meta_box['post_types'] );
|
426 |
+
}
|
427 |
+
}
|
includes/admin/meta-box/inc/templates/image-advanced.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script id="tmpl-mashsb-rwmb-image-item" type="text/html">
|
2 |
+
<input type="hidden" name="{{{ data.fieldName }}}" value="{{{ data.id }}}" class="mashsb-rwmb-media-input">
|
3 |
+
<!--<div class="mashsb-rwmb-media-preview" style="background-image: url({{{ data.sizes.full.url }}});">-->
|
4 |
+
<img src="{{{ data.sizes.full.url }}}">
|
5 |
+
<!--<div class="mashsb-rwmb-media-content">
|
6 |
+
<div class="centered">
|
7 |
+
<img src="{{{ data.sizes.full.url }}}">
|
8 |
+
</div>
|
9 |
+
</div>//-->
|
10 |
+
</div>
|
11 |
+
<div class="mashsb-rwmb-overlay"></div>
|
12 |
+
<div class="mashsb-rwmb-media-bar">
|
13 |
+
<a class="mashsb-rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
14 |
+
<span class="dashicons dashicons-edit"></span>
|
15 |
+
</a>
|
16 |
+
<a href="#" class="mashsb-rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
|
17 |
+
<span class="dashicons dashicons-no-alt"></span>
|
18 |
+
</a>
|
19 |
+
</div>
|
20 |
+
</script>
|
includes/admin/meta-box/inc/templates/image-advanced_1.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script id="tmpl-mashsb-rwmb-image-item" type="text/html">
|
2 |
+
<input type="hidden" name="{{{ data.fieldName }}}" value="{{{ data.id }}}" class="mashsb-rwmb-media-input">
|
3 |
+
<div class="mashsb-rwmb-media-preview">
|
4 |
+
<div class="mashsb-rwmb-media-content">
|
5 |
+
<div class="centered">
|
6 |
+
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
+
<# if ( data.sizes.thumbnail ) { #>
|
8 |
+
<img src="{{{ data.sizes.thumbnail.url }}}">
|
9 |
+
<# } else { #>
|
10 |
+
<img src="{{{ data.sizes.full.url }}}">
|
11 |
+
<# } #>
|
12 |
+
<# } else { #>
|
13 |
+
<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
|
14 |
+
<img src="{{ data.image.src }}" />
|
15 |
+
<# } else { #>
|
16 |
+
<img src="{{ data.icon }}" />
|
17 |
+
<# } #>
|
18 |
+
<# } #>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
<div class="mashsb-rwmb-overlay"></div>
|
23 |
+
<div class="mashsb-rwmb-media-bar">
|
24 |
+
<a class="mashsb-rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
25 |
+
<span class="dashicons dashicons-edit"></span>
|
26 |
+
</a>
|
27 |
+
<a href="#" class="mashsb-rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
|
28 |
+
<span class="dashicons dashicons-no-alt"></span>
|
29 |
+
</a>
|
30 |
+
</div>
|
31 |
+
</script>
|
includes/admin/meta-box/inc/templates/media.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script id="tmpl-mashsb-rwmb-media-item" type="text/html">
|
2 |
+
<input type="hidden" name="{{{ data.fieldName }}}" value="{{{ data.id }}}" class="mashsb-rwmb-media-input">
|
3 |
+
<div class="mashsb-rwmb-media-preview">
|
4 |
+
<div class="mashsb-rwmb-media-content">
|
5 |
+
<div class="centered">
|
6 |
+
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
+
<# if ( data.sizes.thumbnail ) { #>
|
8 |
+
<img src="{{{ data.sizes.thumbnail.url }}}">
|
9 |
+
<# } else { #>
|
10 |
+
<img src="{{{ data.sizes.full.url }}}">
|
11 |
+
<# } #>
|
12 |
+
<# } else { #>
|
13 |
+
<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
|
14 |
+
<img src="{{ data.image.src }}" />
|
15 |
+
<# } else { #>
|
16 |
+
<img src="{{ data.icon }}" />
|
17 |
+
<# } #>
|
18 |
+
<# } #>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
<div class="mashsb-rwmb-media-info">
|
23 |
+
<h4>
|
24 |
+
<a href="{{{ data.url }}}" target="_blank" title="{{{ i18nRwmbMedia.view }}}">
|
25 |
+
<# if( data.title ) { #> {{{ data.title }}}
|
26 |
+
<# } else { #> {{{ i18nRwmbMedia.noTitle }}}
|
27 |
+
<# } #>
|
28 |
+
</a>
|
29 |
+
</h4>
|
30 |
+
<p>{{{ data.mime }}}</p>
|
31 |
+
<p>
|
32 |
+
<a class="mashsb-rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
33 |
+
<span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
|
34 |
+
</a>
|
35 |
+
<a href="#" class="mashsb-rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
|
36 |
+
<span class="dashicons dashicons-no-alt"></span>{{{ i18nRwmbMedia.remove }}}
|
37 |
+
</a>
|
38 |
+
</p>
|
39 |
+
</div>
|
40 |
+
</script>
|
41 |
+
|
42 |
+
<script id="tmpl-mashsb-rwmb-media-status" type="text/html">
|
43 |
+
<# if ( data.maxFiles > 0 ) { #>
|
44 |
+
{{{ data.items }}}/{{{ data.maxFiles }}}
|
45 |
+
<# if ( 1 < data.maxFiles ) { #> {{{ i18nRwmbMedia.multiple }}} <# } else {#> {{{ i18nRwmbMedia.single }}} <# } #>
|
46 |
+
<# } #>
|
47 |
+
</script>
|
includes/admin/meta-box/inc/templates/upload.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script id="tmpl-mashsb-rwmb-upload-area" type="text/html">
|
2 |
+
<div class="mashsb-rwmb-upload-inside">
|
3 |
+
<h3>{{{ i18nRwmbMedia.uploadInstructions }}}</h3>
|
4 |
+
<p> or</p>
|
5 |
+
<p><a href="#" class="mashsb-rwmb-browse-button button button-hero" id="{{{ _.uniqueId( 'mashsb-rwmb-upload-browser-') }}}">{{{ i18nRwmbMedia.select }}}</a></p>
|
6 |
+
</div>
|
7 |
+
</script>
|
includes/admin/meta-box/inc/validation.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Validation module.
|
4 |
+
* @package Meta Box
|
5 |
+
*/
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Validation class.
|
9 |
+
*/
|
10 |
+
class MASHSB_RWMB_Validation
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* Add hooks when module is loaded.
|
14 |
+
*/
|
15 |
+
public function __construct()
|
16 |
+
{
|
17 |
+
add_action( 'mashsb_rwmb_after', array( $this, 'rules' ) );
|
18 |
+
add_action( 'mashsb_rwmb_enqueue_scripts', array( $this, 'scripts' ) );
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Output validation rules of each meta box.
|
23 |
+
* The rules are outputted in [data-rules] attribute of an hidden <script> and will be converted into JSON by JS.
|
24 |
+
* @param MASHSB_RW_Meta_Box $object Meta Box object
|
25 |
+
*/
|
26 |
+
public function rules( MASHSB_RW_Meta_Box $object )
|
27 |
+
{
|
28 |
+
if ( ! empty( $object->meta_box['validation'] ) )
|
29 |
+
{
|
30 |
+
echo '<script type="text/html" class="mashsb-rwmb-validation-rules" data-rules="' . esc_attr( json_encode( $object->meta_box['validation'] ) ) . '"></script>';
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Enqueue scripts for validation.
|
36 |
+
*/
|
37 |
+
public function scripts()
|
38 |
+
{
|
39 |
+
wp_enqueue_script( 'jquery-validate', MASHSB_RWMB_JS_URL . 'jquery.validate.min.js', array( 'jquery' ), MASHSB_RWMB_VER, true );
|
40 |
+
wp_enqueue_script( 'mashsb-rwmb-validate', MASHSB_RWMB_JS_URL . 'validate.js', array( 'jquery-validate' ), MASHSB_RWMB_VER, true );
|
41 |
+
wp_localize_script( 'mashsb-rwmb-validate', 'rwmbValidate', array(
|
42 |
+
'summaryMessage' => __( 'Please correct the errors highlighted below and try again.', 'meta-box' ),
|
43 |
+
) );
|
44 |
+
}
|
45 |
+
}
|
includes/admin/meta-box/inc/walkers/input-list-walker.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Input List Walker
|
4 |
+
* For checkbox and radio list fields
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Input_List_Walker extends MASHSB_RWMB_Walker
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* @see Walker::start_lvl()
|
10 |
+
*
|
11 |
+
* @param string $output Passed by reference. Used to append additional content.
|
12 |
+
* @param int $depth Depth of item.
|
13 |
+
* @param array $args
|
14 |
+
*/
|
15 |
+
public function start_lvl( &$output, $depth = 0, $args = array() )
|
16 |
+
{
|
17 |
+
$output .= "<ul class='mashsb-rwmb-input-list'>";
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @see Walker::end_lvl()
|
22 |
+
*
|
23 |
+
* @param string $output Passed by reference. Used to append additional content.
|
24 |
+
* @param int $depth Depth of item.
|
25 |
+
* @param array $args
|
26 |
+
*/
|
27 |
+
public function end_lvl( &$output, $depth = 0, $args = array() )
|
28 |
+
{
|
29 |
+
$output .= "</ul>";
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @see Walker::start_el()
|
34 |
+
*
|
35 |
+
* @param string $output Passed by reference. Used to append additional content.
|
36 |
+
* @param object $object Item data object.
|
37 |
+
* @param int $depth Depth of item.
|
38 |
+
* @param int $current_object_id Item ID.
|
39 |
+
* @param array $args
|
40 |
+
*/
|
41 |
+
public function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 )
|
42 |
+
{
|
43 |
+
$label = $this->db_fields['label'];
|
44 |
+
$id = $this->db_fields['id'];
|
45 |
+
$meta = $this->meta;
|
46 |
+
$field = $this->field;
|
47 |
+
$field_class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
48 |
+
$attributes = call_user_func( array( $field_class, 'get_attributes' ), $field, $object->$id );
|
49 |
+
|
50 |
+
$output .= sprintf(
|
51 |
+
'<li><label><input %s %s>%s</label>',
|
52 |
+
MASHSB_RWMB_Field::render_attributes( $attributes ),
|
53 |
+
checked( in_array( $object->$id, $meta ), 1, false ),
|
54 |
+
$object->$label
|
55 |
+
);
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* @see Walker::end_el()
|
60 |
+
*
|
61 |
+
* @param string $output Passed by reference. Used to append additional content.
|
62 |
+
* @param object $page Page data object. Not used.
|
63 |
+
* @param int $depth Depth of page. Not Used.
|
64 |
+
* @param array $args
|
65 |
+
*/
|
66 |
+
public function end_el( &$output, $page, $depth = 0, $args = array() )
|
67 |
+
{
|
68 |
+
$output .= "</li>";
|
69 |
+
}
|
70 |
+
}
|
includes/admin/meta-box/inc/walkers/select-tree-walker.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Select Tree Walker for cascading select fields.
|
4 |
+
* @uses MASHSB_RWMB_Select_Walker
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Select_Tree_Walker
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Field data.
|
10 |
+
* @var string
|
11 |
+
*/
|
12 |
+
public $field;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Field meta value.
|
16 |
+
* @var array
|
17 |
+
*/
|
18 |
+
public $meta = array();
|
19 |
+
|
20 |
+
function __construct( $db_fields, $field, $meta )
|
21 |
+
{
|
22 |
+
$this->db_fields = wp_parse_args( (array) $db_fields, array(
|
23 |
+
'parent' => '',
|
24 |
+
'id' => '',
|
25 |
+
'label' => '',
|
26 |
+
) );
|
27 |
+
$this->field = $field;
|
28 |
+
$this->meta = (array) $meta;
|
29 |
+
}
|
30 |
+
|
31 |
+
function walk( $options )
|
32 |
+
{
|
33 |
+
$parent = $this->db_fields['parent'];
|
34 |
+
$children = array();
|
35 |
+
|
36 |
+
foreach ( $options as $o )
|
37 |
+
{
|
38 |
+
$children[$o->$parent][] = $o;
|
39 |
+
}
|
40 |
+
$top_level = isset( $children[0] ) ? 0 : $options[0]->$parent;
|
41 |
+
return $this->display_level( $children, $top_level, true );
|
42 |
+
}
|
43 |
+
|
44 |
+
function display_level( $options, $parent_id = 0, $active = false )
|
45 |
+
{
|
46 |
+
$id = $this->db_fields['id'];
|
47 |
+
$field = $this->field;
|
48 |
+
$meta = $this->meta;
|
49 |
+
$walker = new MASHSB_RWMB_Select_Walker( $this->db_fields, $this->field, $this->meta );
|
50 |
+
$field_class = MASHSB_RW_Meta_Box::get_class_name( $field );
|
51 |
+
$attributes = call_user_func( array( $field_class, 'get_attributes' ), $field, $meta );
|
52 |
+
|
53 |
+
$children = $options[$parent_id];
|
54 |
+
$output = sprintf(
|
55 |
+
'<div class="mashsb-rwmb-select-tree %s" data-parent-id="%s"><select %s>',
|
56 |
+
$active ? '' : 'hidden',
|
57 |
+
$parent_id,
|
58 |
+
MASHSB_RWMB_Field::render_attributes( $attributes )
|
59 |
+
);
|
60 |
+
$output .= isset( $field['placeholder'] ) ? "<option value=''>{$field['placeholder']}</option>" : '<option></option>';
|
61 |
+
$output .= $walker->walk( $children, - 1 );
|
62 |
+
$output .= '</select>';
|
63 |
+
|
64 |
+
foreach ( $children as $c )
|
65 |
+
{
|
66 |
+
if ( isset( $options[$c->$id] ) )
|
67 |
+
{
|
68 |
+
$output .= $this->display_level( $options, $c->$id, in_array( $c->$id, $meta ) && $active );
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
$output .= '</div>';
|
73 |
+
return $output;
|
74 |
+
}
|
75 |
+
}
|
includes/admin/meta-box/inc/walkers/select-walker.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Select Walker
|
4 |
+
* For generating Select fields
|
5 |
+
*/
|
6 |
+
class MASHSB_RWMB_Select_Walker extends MASHSB_RWMB_Walker
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* @see Walker::start_el()
|
10 |
+
*
|
11 |
+
* @param string $output Passed by reference. Used to append additional content.
|
12 |
+
* @param object $object Item
|
13 |
+
* @param int $depth Depth of Item.
|
14 |
+
* @param int $current_object_id Item id.
|
15 |
+
* @param array $args
|
16 |
+
*/
|
17 |
+
public function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 )
|
18 |
+
{
|
19 |
+
$label = $this->db_fields['label'];
|
20 |
+
$id = $this->db_fields['id'];
|
21 |
+
$meta = $this->meta;
|
22 |
+
$indent = str_repeat( " ", $depth * 4 );
|
23 |
+
|
24 |
+
$output .= sprintf(
|
25 |
+
'<option value="%s" %s>%s%s</option>',
|
26 |
+
$object->$id,
|
27 |
+
selected( in_array( $object->$id, $meta ), 1, false ),
|
28 |
+
$indent,
|
29 |
+
$object->$label
|
30 |
+
);
|
31 |
+
}
|
32 |
+
}
|
includes/admin/meta-box/inc/walkers/walker.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Base Walker
|
4 |
+
* Walkers must inherit this class and overwrite methods with its own.
|
5 |
+
*/
|
6 |
+
abstract class MASHSB_RWMB_Walker extends Walker
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* Field data.
|
10 |
+
*
|
11 |
+
* @access public
|
12 |
+
* @var array
|
13 |
+
*/
|
14 |
+
public $field;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Meta data.
|
18 |
+
*
|
19 |
+
* @access public
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
public $meta = array();
|
23 |
+
|
24 |
+
function __construct( $db_fields, $field, $meta )
|
25 |
+
{
|
26 |
+
$this->db_fields = wp_parse_args( (array) $db_fields, array(
|
27 |
+
'parent' => '',
|
28 |
+
'id' => '',
|
29 |
+
'label' => '',
|
30 |
+
) );
|
31 |
+
$this->field = $field;
|
32 |
+
$this->meta = (array) $meta;
|
33 |
+
}
|
34 |
+
}
|
includes/admin/meta-box/js/autocomplete.js
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Update date picker element
|
7 |
+
* Used for static & dynamic added elements (when clone)
|
8 |
+
*/
|
9 |
+
function updateAutocomplete( e )
|
10 |
+
{
|
11 |
+
var $this = $( this ),
|
12 |
+
$search = $this.siblings( '.mashsb-rwmb-autocomplete-search'),
|
13 |
+
$result = $this.siblings( '.mashsb-rwmb-autocomplete-results' ),
|
14 |
+
name = $this.attr( 'name' );
|
15 |
+
|
16 |
+
// If the function is called on cloning, then change the field name and clear all results
|
17 |
+
// @see clone.js
|
18 |
+
if ( e.hasOwnProperty( 'type' ) && 'clone' == e.type )
|
19 |
+
{
|
20 |
+
// Clear all results
|
21 |
+
$result.html( '' );
|
22 |
+
}
|
23 |
+
|
24 |
+
$search.removeClass( 'ui-autocomplete-input' )
|
25 |
+
.autocomplete( {
|
26 |
+
minLength: 0,
|
27 |
+
source : $this.data( 'options' ),
|
28 |
+
select : function ( event, ui )
|
29 |
+
{
|
30 |
+
$result.append(
|
31 |
+
'<div class="mashsb-rwmb-autocomplete-result">' +
|
32 |
+
'<div class="label">' + ( typeof ui.item.excerpt !== 'undefined' ? ui.item.excerpt : ui.item.label ) + '</div>' +
|
33 |
+
'<div class="actions">' + MASHSB_RWMB_Autocomplete.delete + '</div>' +
|
34 |
+
'<input type="hidden" class="mashsb-rwmb-autocomplete-value" name="' + name + '" value="' + ui.item.value + '">' +
|
35 |
+
'</div>'
|
36 |
+
);
|
37 |
+
|
38 |
+
// Reinitialize value
|
39 |
+
$search.val( '' );
|
40 |
+
|
41 |
+
return false;
|
42 |
+
}
|
43 |
+
} );
|
44 |
+
}
|
45 |
+
|
46 |
+
$( '.mashsb-rwmb-autocomplete-wrapper input[type="hidden"]' ).each( updateAutocomplete );
|
47 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', ':input.mashsb-rwmb-autocomplete', updateAutocomplete );
|
48 |
+
|
49 |
+
// Handle remove action
|
50 |
+
$( document ).on( 'click', '.mashsb-rwmb-autocomplete-result .actions', function ()
|
51 |
+
{
|
52 |
+
// remove result
|
53 |
+
$( this ).parent().remove();
|
54 |
+
} );
|
55 |
+
} );
|
includes/admin/meta-box/js/autosave.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
$( document ).ajaxSend( function( e, xhr, s )
|
6 |
+
{
|
7 |
+
if ( typeof s.data !== 'undefined' && -1 !== s.data.indexOf( 'action=autosave' ) )
|
8 |
+
{
|
9 |
+
$( '.mashsb-rwmb-meta-box').each( function()
|
10 |
+
{
|
11 |
+
var $meta_box = $( this );
|
12 |
+
if ( $meta_box.data( 'autosave' ) === true )
|
13 |
+
{
|
14 |
+
s.data += '&' + $meta_box.find( ':input' ).serialize();
|
15 |
+
}
|
16 |
+
} );
|
17 |
+
}
|
18 |
+
} );
|
19 |
+
} );
|
includes/admin/meta-box/js/clone.js
ADDED
@@ -0,0 +1,211 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* global jQuery, rwmb_cloneable_editors */
|
2 |
+
|
3 |
+
jQuery( function ( $ )
|
4 |
+
{
|
5 |
+
'use strict';
|
6 |
+
|
7 |
+
// Object holds all methods related to fields' index when clone
|
8 |
+
var cloneIndex = {
|
9 |
+
/**
|
10 |
+
* Set index for fields in a .mashsb-rwmb-clone
|
11 |
+
* @param $clone .mashsb-rwmb-clone element
|
12 |
+
* @param index Index value
|
13 |
+
*/
|
14 |
+
set: function ( $clone, index )
|
15 |
+
{
|
16 |
+
$clone.find( ':input[class|="rwmb"]' ).each( function ()
|
17 |
+
{
|
18 |
+
var $field = $( this );
|
19 |
+
|
20 |
+
// Name attribute
|
21 |
+
var name = $field.attr( 'name' );
|
22 |
+
if ( name )
|
23 |
+
{
|
24 |
+
$field.attr( 'name', cloneIndex.replace( index, name, '[', ']', false ) );
|
25 |
+
}
|
26 |
+
|
27 |
+
// ID attribute
|
28 |
+
var id = this.id;
|
29 |
+
if ( id )
|
30 |
+
{
|
31 |
+
$field.attr( 'id', cloneIndex.replace( index, id, '_' ) );
|
32 |
+
}
|
33 |
+
} );
|
34 |
+
|
35 |
+
// Address button's value attribute
|
36 |
+
var $address = $clone.find( '.mashsb-rwmb-map-goto-address-button' );
|
37 |
+
if ( $address.length )
|
38 |
+
{
|
39 |
+
var value = $address.attr( 'value' );
|
40 |
+
$address.attr( 'value', cloneIndex.replace( index, value, '_' ) );
|
41 |
+
}
|
42 |
+
},
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Replace an attribute of a field with updated index
|
46 |
+
* @param index New index value
|
47 |
+
* @param value Attribute value
|
48 |
+
* @param before String before returned value
|
49 |
+
* @param after String after returned value
|
50 |
+
* @param alternative Check if attribute does not contain any integer, will reset the attribute?
|
51 |
+
* @return string
|
52 |
+
*/
|
53 |
+
replace: function ( index, value, before, after, alternative )
|
54 |
+
{
|
55 |
+
before = before || '';
|
56 |
+
after = after || '';
|
57 |
+
alternative = alternative || true;
|
58 |
+
|
59 |
+
var regex = new RegExp( cloneIndex.escapeRegex( before ) + '(\\d+)' + cloneIndex.escapeRegex( after ) ),
|
60 |
+
newValue = before + index + after;
|
61 |
+
|
62 |
+
return regex.test( value ) ? value.replace( regex, newValue ) : (alternative ? value + newValue : value );
|
63 |
+
},
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Helper function to escape string in regular expression
|
67 |
+
* @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
68 |
+
* @param string
|
69 |
+
* @return string
|
70 |
+
*/
|
71 |
+
escapeRegex: function ( string )
|
72 |
+
{
|
73 |
+
return string.replace( /[.*+?^${}()|[\]\\]/g, "\\$&" );
|
74 |
+
},
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Helper function to create next index for clones
|
78 |
+
* @param $container .mashsb-rwmb-input container
|
79 |
+
* @return integer
|
80 |
+
*/
|
81 |
+
nextIndex: function ( $container )
|
82 |
+
{
|
83 |
+
var nextIndex = $container.data( 'next-index' );
|
84 |
+
$container.data( 'next-index', nextIndex + 1 );
|
85 |
+
return nextIndex;
|
86 |
+
}
|
87 |
+
};
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Clone fields
|
91 |
+
* @param $container A div container which has all fields
|
92 |
+
* @return void
|
93 |
+
*/
|
94 |
+
function clone( $container )
|
95 |
+
{
|
96 |
+
var $last = $container.children( '.mashsb-rwmb-clone:last' ),
|
97 |
+
$clone = $last.clone(),
|
98 |
+
$input = $clone.find( ':input[class|="rwmb"]' ),
|
99 |
+
nextIndex = cloneIndex.nextIndex( $container );
|
100 |
+
|
101 |
+
// Reset value for fields
|
102 |
+
$input.each( function ()
|
103 |
+
{
|
104 |
+
var $field = $( this );
|
105 |
+
if ( $field.is( ':radio' ) || $field.is( ':checkbox' ) )
|
106 |
+
{
|
107 |
+
// Reset 'checked' attribute
|
108 |
+
$field.prop( 'checked', false );
|
109 |
+
}
|
110 |
+
else if ( $field.is( 'select' ) )
|
111 |
+
{
|
112 |
+
// Reset select to first
|
113 |
+
$field.prop( 'selectedIndex', 0 )
|
114 |
+
}
|
115 |
+
else if ( 'hidden' !== $field.attr( 'type' ) )
|
116 |
+
{
|
117 |
+
// Reset value
|
118 |
+
$field.val( '' );
|
119 |
+
}
|
120 |
+
} );
|
121 |
+
|
122 |
+
// Insert Clone
|
123 |
+
$clone.insertAfter( $last );
|
124 |
+
// Set fields index. Must run before trigger clone event.
|
125 |
+
cloneIndex.set( $clone, nextIndex );
|
126 |
+
|
127 |
+
// Trigger custom clone event
|
128 |
+
$input.trigger( 'clone', nextIndex );
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Hide remove buttons when there's only 1 of them
|
133 |
+
*
|
134 |
+
* @param $container .mashsb-rwmb-input container
|
135 |
+
*
|
136 |
+
* @return void
|
137 |
+
*/
|
138 |
+
function toggleRemoveButtons( $container )
|
139 |
+
{
|
140 |
+
var $button = $container.find( '.remove-clone' );
|
141 |
+
$button.toggle( $button.length > 1 );
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Toggle add button
|
146 |
+
* Used with [data-max-clone] attribute. When max clone is reached, the add button is hid and vice versa
|
147 |
+
*
|
148 |
+
* @param $container .mashsb-rwmb-input container
|
149 |
+
*
|
150 |
+
* @return void
|
151 |
+
*/
|
152 |
+
function toggleAddButton( $container )
|
153 |
+
{
|
154 |
+
var $button = $container.find( '.add-clone' ),
|
155 |
+
maxClone = parseInt( $container.data( 'max-clone' ) ),
|
156 |
+
numClone = $container.find( '.mashsb-rwmb-clone' ).length;
|
157 |
+
|
158 |
+
$button.toggle( isNaN( maxClone ) || ( maxClone && numClone < maxClone ) );
|
159 |
+
}
|
160 |
+
|
161 |
+
$( '#wpbody-content' )
|
162 |
+
// Add clones
|
163 |
+
.on( 'click', '.add-clone', function ( e )
|
164 |
+
{
|
165 |
+
e.preventDefault();
|
166 |
+
|
167 |
+
var $container = $( this ).closest( '.mashsb-rwmb-input' );
|
168 |
+
clone( $container );
|
169 |
+
|
170 |
+
toggleRemoveButtons( $container );
|
171 |
+
toggleAddButton( $container );
|
172 |
+
} )
|
173 |
+
// Remove clones
|
174 |
+
.on( 'click', '.remove-clone', function ( e )
|
175 |
+
{
|
176 |
+
e.preventDefault();
|
177 |
+
|
178 |
+
var $this = $( this ),
|
179 |
+
$container = $this.closest( '.mashsb-rwmb-input' );
|
180 |
+
|
181 |
+
// Remove clone only if there are 2 or more of them
|
182 |
+
if ( $container.find( '.mashsb-rwmb-clone' ).length < 2 )
|
183 |
+
{
|
184 |
+
return;
|
185 |
+
}
|
186 |
+
|
187 |
+
$this.parent().trigger( 'remove' ).remove();
|
188 |
+
toggleRemoveButtons( $container );
|
189 |
+
toggleAddButton( $container )
|
190 |
+
} );
|
191 |
+
|
192 |
+
$( '.mashsb-rwmb-input' ).each( function ()
|
193 |
+
{
|
194 |
+
var $container = $( this );
|
195 |
+
toggleRemoveButtons( $container );
|
196 |
+
toggleAddButton( $container );
|
197 |
+
|
198 |
+
$container
|
199 |
+
.data( 'next-index', $container.children( '.mashsb-rwmb-clone' ).length )
|
200 |
+
.sortable( {
|
201 |
+
handle : '.mashsb-rwmb-clone-icon',
|
202 |
+
placeholder: ' mashsb-rwmb-clone mashsb-rwmb-clone-placeholder',
|
203 |
+
items : '.mashsb-rwmb-clone',
|
204 |
+
start : function ( event, ui )
|
205 |
+
{
|
206 |
+
// Make the placeholder has the same height as dragged item
|
207 |
+
ui.placeholder.height( ui.item.height() );
|
208 |
+
}
|
209 |
+
} );
|
210 |
+
} );
|
211 |
+
} );
|
includes/admin/meta-box/js/color.js
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Update color picker element
|
7 |
+
* Used for static & dynamic added elements (when clone)
|
8 |
+
*/
|
9 |
+
function update()
|
10 |
+
{
|
11 |
+
var $this = $( this ),
|
12 |
+
$container = $this.closest( '.mashsb-rwmb-color-clone' ),
|
13 |
+
data = $.extend(
|
14 |
+
{
|
15 |
+
change: function()
|
16 |
+
{
|
17 |
+
$( this ).trigger( 'color:change' );
|
18 |
+
},
|
19 |
+
clear: function()
|
20 |
+
{
|
21 |
+
$( this ).trigger( 'color:clear' );
|
22 |
+
}
|
23 |
+
},
|
24 |
+
$this.data( 'options' ) );
|
25 |
+
|
26 |
+
// Clone doesn't have input for color picker, we have to add the input and remove the color picker container
|
27 |
+
if ( $container.length > 0 )
|
28 |
+
{
|
29 |
+
$this.appendTo( $container ).siblings( '.wp-picker-container' ).remove();
|
30 |
+
}
|
31 |
+
|
32 |
+
// Show color picker
|
33 |
+
$this.wpColorPicker( data );
|
34 |
+
}
|
35 |
+
|
36 |
+
$( ':input.mashsb-rwmb-color' ).each( update );
|
37 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', 'input.mashsb-rwmb-color', update );
|
38 |
+
} );
|
includes/admin/meta-box/js/date.js
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Update date picker element
|
7 |
+
* Used for static & dynamic added elements (when clone)
|
8 |
+
*/
|
9 |
+
function update()
|
10 |
+
{
|
11 |
+
var $this = $( this ),
|
12 |
+
options = $this.data( 'options' ),
|
13 |
+
$inline = $this.siblings( '.mashsb-rwmb-datetime-inline' ),
|
14 |
+
$timestamp = $this.siblings( '.mashsb-rwmb-datetime-timestamp' ),
|
15 |
+
current = $this.val();
|
16 |
+
|
17 |
+
$this.siblings( '.ui-datepicker-append' ).remove(); // Remove appended text
|
18 |
+
if ( $timestamp.length )
|
19 |
+
{
|
20 |
+
var $picker = $inline.length ? $inline : $this;
|
21 |
+
options.onSelect = function ()
|
22 |
+
{
|
23 |
+
$timestamp.val( getTimestamp( $picker.datepicker( 'getDate' ) ) );
|
24 |
+
};
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( $inline.length )
|
28 |
+
{
|
29 |
+
options.altField = '#' + $this.attr( 'id' );
|
30 |
+
$inline
|
31 |
+
.removeClass( 'hasDatepicker' )
|
32 |
+
.empty()
|
33 |
+
.prop( 'id', '' )
|
34 |
+
.datepicker( options )
|
35 |
+
.datepicker( 'setDate', current );
|
36 |
+
}
|
37 |
+
else
|
38 |
+
{
|
39 |
+
$this.removeClass( 'hasDatepicker' ).datepicker( options );
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Convert date to Unix timestamp in milliseconds
|
45 |
+
* @link http://stackoverflow.com/a/14006555/556258
|
46 |
+
* @param date
|
47 |
+
* @return number
|
48 |
+
*/
|
49 |
+
function getTimestamp( date )
|
50 |
+
{
|
51 |
+
var milliseconds = Date.UTC( date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds() );
|
52 |
+
return Math.floor( milliseconds / 1000 );
|
53 |
+
}
|
54 |
+
|
55 |
+
$( ':input.mashsb-rwmb-date' ).each( update );
|
56 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', ':input.mashsb-rwmb-date', update );
|
57 |
+
} );
|
includes/admin/meta-box/js/datetime.js
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Update datetime picker element
|
7 |
+
* Used for static & dynamic added elements (when clone)
|
8 |
+
*/
|
9 |
+
function update()
|
10 |
+
{
|
11 |
+
var $this = $( this ),
|
12 |
+
options = $this.data( 'options' ),
|
13 |
+
$inline = $this.siblings( '.mashsb-rwmb-datetime-inline' ),
|
14 |
+
$timestamp = $this.siblings( '.mashsb-rwmb-datetime-timestamp' ),
|
15 |
+
current = $this.val();
|
16 |
+
|
17 |
+
$this.siblings( '.ui-datepicker-append' ).remove(); // Remove appended text
|
18 |
+
if ( $timestamp.length )
|
19 |
+
{
|
20 |
+
var $picker = $inline.length ? $inline : $this;
|
21 |
+
options.onSelect = function ()
|
22 |
+
{
|
23 |
+
$timestamp.val( getTimestamp( $picker.datetimepicker( 'getDate' ) ) );
|
24 |
+
};
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( $inline.length )
|
28 |
+
{
|
29 |
+
options.altField = '#' + $this.attr( 'id' );
|
30 |
+
$inline
|
31 |
+
.removeClass( 'hasDatepicker' )
|
32 |
+
.empty()
|
33 |
+
.prop( 'id', '' )
|
34 |
+
.datetimepicker( options )
|
35 |
+
.datetimepicker( 'setDate', current );
|
36 |
+
}
|
37 |
+
else
|
38 |
+
{
|
39 |
+
$this.removeClass( 'hasDatepicker' ).datetimepicker( options );
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Convert date to Unix timestamp in milliseconds
|
45 |
+
* @link http://stackoverflow.com/a/14006555/556258
|
46 |
+
* @param date
|
47 |
+
* @return number
|
48 |
+
*/
|
49 |
+
function getTimestamp( date )
|
50 |
+
{
|
51 |
+
var milliseconds = Date.UTC( date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds() );
|
52 |
+
return Math.floor( milliseconds / 1000 );
|
53 |
+
}
|
54 |
+
|
55 |
+
// Set language if available
|
56 |
+
if ( $.timepicker.regional.hasOwnProperty( MASHSB_RWMB_Datetimepicker.locale ) )
|
57 |
+
{
|
58 |
+
$.timepicker.setDefaults( $.timepicker.regional[MASHSB_RWMB_Datetimepicker.locale] );
|
59 |
+
}
|
60 |
+
else if ( $.timepicker.regional.hasOwnProperty( MASHSB_RWMB_Datetimepicker.localeShort ) )
|
61 |
+
{
|
62 |
+
$.timepicker.setDefaults( $.timepicker.regional[MASHSB_RWMB_Datetimepicker.localeShort] );
|
63 |
+
}
|
64 |
+
|
65 |
+
$( ':input.mashsb-rwmb-datetime' ).each( update );
|
66 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', ':input.mashsb-rwmb-datetime', update );
|
67 |
+
} );
|
includes/admin/meta-box/js/file-input.js
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
var frame;
|
6 |
+
|
7 |
+
$( 'body' ).on( 'click', '.mashsb-rwmb-file-input-select', function ( e )
|
8 |
+
{
|
9 |
+
e.preventDefault();
|
10 |
+
var $el = $( this );
|
11 |
+
|
12 |
+
// Create a frame only if needed
|
13 |
+
if ( !frame )
|
14 |
+
{
|
15 |
+
frame = wp.media( {
|
16 |
+
className: 'media-frame mashsb-rwmb-file-frame',
|
17 |
+
multiple : false,
|
18 |
+
title : rwmbFileInput.frameTitle
|
19 |
+
} );
|
20 |
+
}
|
21 |
+
|
22 |
+
// Open media uploader
|
23 |
+
frame.open();
|
24 |
+
|
25 |
+
// Remove all attached 'select' event
|
26 |
+
frame.off( 'select' );
|
27 |
+
|
28 |
+
// Handle selection
|
29 |
+
frame.on( 'select', function ()
|
30 |
+
{
|
31 |
+
var url = frame.state().get( 'selection' ).first().toJSON().url;
|
32 |
+
$el.siblings( 'input' ).val( url ).siblings( 'a' ).removeClass( 'hidden' );
|
33 |
+
} );
|
34 |
+
} );
|
35 |
+
|
36 |
+
// Clear selected images
|
37 |
+
$( 'body' ).on( 'click', '.mashsb-rwmb-file-input-remove', function ( e )
|
38 |
+
{
|
39 |
+
e.preventDefault();
|
40 |
+
$( this ).addClass( 'hidden' ).siblings( 'input' ).val( '' );
|
41 |
+
} );
|
42 |
+
} );
|
includes/admin/meta-box/js/file-upload.js
ADDED
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
window.rwmb = window.rwmb || {};
|
2 |
+
|
3 |
+
jQuery( function ( $ )
|
4 |
+
{
|
5 |
+
'use strict';
|
6 |
+
|
7 |
+
var views = rwmb.views = rwmb.views || {},
|
8 |
+
MediaField = views.MediaField,
|
9 |
+
FileUploadField, UploadButton;
|
10 |
+
|
11 |
+
FileUploadField = views.FileUploadField = MediaField.extend( {
|
12 |
+
createAddButton: function ()
|
13 |
+
{
|
14 |
+
this.addButton = new UploadButton( { collection: this.collection, props: this.props } );
|
15 |
+
}
|
16 |
+
} );
|
17 |
+
|
18 |
+
UploadButton = views.UploadButton = Backbone.View.extend( {
|
19 |
+
className: 'mashsb-rwmb-upload-area',
|
20 |
+
tagName : 'div',
|
21 |
+
template: wp.template( 'mashsb-rwmb-upload-area' ),
|
22 |
+
render : function ()
|
23 |
+
{
|
24 |
+
this.$el.html( this.template( {} ) );
|
25 |
+
return this;
|
26 |
+
},
|
27 |
+
|
28 |
+
initialize: function ( options )
|
29 |
+
{
|
30 |
+
this.props = options.props;
|
31 |
+
this.el.id = _.uniqueId( 'mashsb-rwmb-upload-area-');
|
32 |
+
this.render();
|
33 |
+
|
34 |
+
//Areas
|
35 |
+
this.dropzone = this.el;
|
36 |
+
this.browser = this.$('.mashsb-rwmb-browse-button')[0];
|
37 |
+
|
38 |
+
this.supports = {
|
39 |
+
upload: wp.Uploader.browser.supported
|
40 |
+
};
|
41 |
+
|
42 |
+
this.supported = this.supports.upload;
|
43 |
+
|
44 |
+
if ( this.supported ) {
|
45 |
+
this.initUploader();
|
46 |
+
}
|
47 |
+
|
48 |
+
this.listenTo( this.collection, 'add remove reset', function ()
|
49 |
+
{
|
50 |
+
var maxFiles = this.props.get( 'maxFiles' );
|
51 |
+
|
52 |
+
if ( maxFiles > 0 )
|
53 |
+
{
|
54 |
+
this.$el.toggle( this.collection.length < maxFiles );
|
55 |
+
}
|
56 |
+
} );
|
57 |
+
},
|
58 |
+
|
59 |
+
//Initializes plupload
|
60 |
+
//Uses code from wp.Uploader
|
61 |
+
initUploader: function ()
|
62 |
+
{
|
63 |
+
var isIE = navigator.userAgent.indexOf('Trident/') != -1 || navigator.userAgent.indexOf('MSIE ') != -1,
|
64 |
+
self = this,
|
65 |
+
extensions = this.getExtensions().join( ',' );
|
66 |
+
this.plupload = $.extend( true, {
|
67 |
+
multipart_params: {},
|
68 |
+
multipart: true,
|
69 |
+
urlstream_upload: true,
|
70 |
+
drop_element: this.dropzone,
|
71 |
+
browse_button: this.browser,
|
72 |
+
filters:{}}, wp.Uploader.defaults );
|
73 |
+
|
74 |
+
if( extensions )
|
75 |
+
this.plupload.filters.mime_types = [ { title: i18nRwmbMedia.select, extensions: extensions } ];
|
76 |
+
|
77 |
+
// Make sure flash sends cookies (seems in IE it does without switching to urlstream mode)
|
78 |
+
if ( ! isIE && 'flash' === plupload.predictRuntime( this.plupload ) &&
|
79 |
+
( ! this.plupload.required_features || ! this.plupload.required_features.hasOwnProperty( 'send_binary_string' ) ) )
|
80 |
+
{
|
81 |
+
this.plupload.required_features = this.plupload.required_features || {};
|
82 |
+
this.plupload.required_features.send_binary_string = true;
|
83 |
+
}
|
84 |
+
|
85 |
+
// Initialize the plupload instance.
|
86 |
+
this.uploader = new plupload.Uploader( this.plupload );
|
87 |
+
this.uploader.init();
|
88 |
+
|
89 |
+
this.uploader.bind( 'FilesAdded', function( up, files )
|
90 |
+
{
|
91 |
+
_.each( files, function( file )
|
92 |
+
{
|
93 |
+
var attributes, image;
|
94 |
+
|
95 |
+
// Ignore failed uploads.
|
96 |
+
if ( plupload.FAILED === file.status )
|
97 |
+
{
|
98 |
+
return;
|
99 |
+
}
|
100 |
+
|
101 |
+
// Generate attributes for a new `Attachment` model.
|
102 |
+
attributes = _.extend({
|
103 |
+
file: file,
|
104 |
+
uploading: true,
|
105 |
+
date: new Date(),
|
106 |
+
filename: file.name,
|
107 |
+
menuOrder: 0,
|
108 |
+
uploadedTo: wp.media.model.settings.post.id,
|
109 |
+
icon: i18nRwmbMedia.loadingUrl
|
110 |
+
}, _.pick( file, 'loaded', 'size', 'percent' ) );
|
111 |
+
|
112 |
+
// Handle early mime type scanning for images.
|
113 |
+
image = /(?:jpe?g|png|gif)$/i.exec( file.name );
|
114 |
+
|
115 |
+
// For images set the model's type and subtype attributes.
|
116 |
+
if ( image )
|
117 |
+
{
|
118 |
+
attributes.type = 'image';
|
119 |
+
|
120 |
+
// `jpeg`, `png` and `gif` are valid subtypes.
|
121 |
+
// `jpg` is not, so map it to `jpeg`.
|
122 |
+
attributes.subtype = ( 'jpg' === image[0] ) ? 'jpeg' : image[0];
|
123 |
+
}
|
124 |
+
|
125 |
+
// Create a model for the attachment, and add it to the Upload queue collection
|
126 |
+
// so listeners to the upload queue can track and display upload progress.
|
127 |
+
file.attachment = wp.media.model.Attachment.create( attributes );
|
128 |
+
wp.Uploader.queue.add( file.attachment );
|
129 |
+
self.collection.add( file.attachment );
|
130 |
+
});
|
131 |
+
|
132 |
+
up.refresh();
|
133 |
+
up.start();
|
134 |
+
});
|
135 |
+
|
136 |
+
this.uploader.bind( 'UploadProgress', function( up, file ) {
|
137 |
+
file.attachment.set( _.pick( file, 'loaded', 'percent' ) );
|
138 |
+
});
|
139 |
+
|
140 |
+
this.uploader.bind( 'FileUploaded', function( up, file, response ) {
|
141 |
+
var complete;
|
142 |
+
|
143 |
+
try {
|
144 |
+
response = JSON.parse( response.response );
|
145 |
+
} catch ( e ) {
|
146 |
+
return false;
|
147 |
+
}
|
148 |
+
|
149 |
+
if ( ! _.isObject( response ) || _.isUndefined( response.success ) || ! response.success )
|
150 |
+
return false;
|
151 |
+
|
152 |
+
_.each(['file','loaded','size','percent'], function( key ) {
|
153 |
+
file.attachment.unset( key );
|
154 |
+
});
|
155 |
+
|
156 |
+
file.attachment.set( _.extend( response.data, { uploading: false }) );
|
157 |
+
wp.media.model.Attachment.get( response.data.id, file.attachment );
|
158 |
+
|
159 |
+
complete = wp.Uploader.queue.all( function( attachment ) {
|
160 |
+
return ! attachment.get('uploading');
|
161 |
+
});
|
162 |
+
|
163 |
+
if ( complete )
|
164 |
+
wp.Uploader.queue.reset();
|
165 |
+
});
|
166 |
+
|
167 |
+
this.uploader.bind( 'Error', function ( up, error )
|
168 |
+
{
|
169 |
+
if( error.file.attachment )
|
170 |
+
error.file.attachment.destroy();
|
171 |
+
} );
|
172 |
+
},
|
173 |
+
|
174 |
+
getExtensions: function ()
|
175 |
+
{
|
176 |
+
var mimeTypes = this.props.get( 'mimeType' ).split(','),
|
177 |
+
exts = [];
|
178 |
+
|
179 |
+
_.each( mimeTypes, function( current, index )
|
180 |
+
{
|
181 |
+
if( i18nRwmbMedia.extensions[ current ] )
|
182 |
+
exts = exts.concat( i18nRwmbMedia.extensions[ current ] );
|
183 |
+
});
|
184 |
+
return exts;
|
185 |
+
}
|
186 |
+
} );
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Initialize fields
|
190 |
+
* @return void
|
191 |
+
*/
|
192 |
+
function init()
|
193 |
+
{
|
194 |
+
new FileUploadField( { input: this, el: $( this ).siblings( 'div.mashsb-rwmb-media-view' ) } );
|
195 |
+
}
|
196 |
+
$( ':input.mashsb-rwmb-file_upload' ).each( init );
|
197 |
+
$( '.mashsb-rwmb-input' )
|
198 |
+
.on( 'clone', ':input.mashsb-rwmb-file_upload', init )
|
199 |
+
} );
|
includes/admin/meta-box/js/file.js
ADDED
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( document ).ready( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
// Add more file
|
6 |
+
$( '.mashsb-rwmb-add-file' ).each( function ()
|
7 |
+
{
|
8 |
+
var $this = $( this ),
|
9 |
+
$uploads = $this.siblings( '.file-input' ),
|
10 |
+
$first = $uploads.first(),
|
11 |
+
uploadCount = $uploads.length,
|
12 |
+
$fileList = $this.closest( '.mashsb-rwmb-input' ).find( '.mashsb-rwmb-uploaded' ),
|
13 |
+
fileCount = $fileList.children( 'li' ).length,
|
14 |
+
maxFileUploads = $fileList.data( 'max_file_uploads' );
|
15 |
+
|
16 |
+
// Hide "Add New File" and input fields when loaded
|
17 |
+
if ( maxFileUploads > 0 )
|
18 |
+
{
|
19 |
+
if ( uploadCount + fileCount >= maxFileUploads )
|
20 |
+
{
|
21 |
+
$this.hide();
|
22 |
+
}
|
23 |
+
if ( fileCount >= maxFileUploads )
|
24 |
+
{
|
25 |
+
$uploads.hide();
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
$this.click( function ()
|
30 |
+
{
|
31 |
+
// Clone upload input only when needed
|
32 |
+
if ( maxFileUploads <= 0 || uploadCount + fileCount < maxFileUploads )
|
33 |
+
{
|
34 |
+
$first.clone().insertBefore( $this );
|
35 |
+
uploadCount++;
|
36 |
+
|
37 |
+
// If there're too many upload inputs, hide "Add New File"
|
38 |
+
if ( maxFileUploads > 0 && uploadCount + fileCount >= maxFileUploads )
|
39 |
+
{
|
40 |
+
$this.hide();
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
return false;
|
45 |
+
} );
|
46 |
+
} );
|
47 |
+
|
48 |
+
// Delete file via Ajax
|
49 |
+
$( '.mashsb-rwmb-uploaded' ).on( 'click', '.mashsb-rwmb-delete-file', function ()
|
50 |
+
{
|
51 |
+
var $this = $( this ),
|
52 |
+
$parent = $this.parents( 'li' ),
|
53 |
+
$container = $this.closest( '.mashsb-rwmb-uploaded' ),
|
54 |
+
data = {
|
55 |
+
action : 'rwmb_delete_file',
|
56 |
+
_ajax_nonce : $container.data( 'delete_nonce' ),
|
57 |
+
post_id : $( '#post_ID' ).val(),
|
58 |
+
field_id : $container.data( 'field_id' ),
|
59 |
+
attachment_id: $this.data( 'attachment_id' ),
|
60 |
+
force_delete : $container.data( 'force_delete' )
|
61 |
+
};
|
62 |
+
|
63 |
+
$.post( ajaxurl, data, function ( r )
|
64 |
+
{
|
65 |
+
if ( !r.success )
|
66 |
+
{
|
67 |
+
alert( r.data );
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
|
71 |
+
$parent.addClass( 'removed' );
|
72 |
+
|
73 |
+
// If transition events not supported
|
74 |
+
var div = document.createElement( 'div' );
|
75 |
+
if (
|
76 |
+
!( 'ontransitionend' in window ) &&
|
77 |
+
( 'onwebkittransitionend' in window ) && !( 'onotransitionend' in div || navigator.appName === 'Opera' )
|
78 |
+
)
|
79 |
+
{
|
80 |
+
$parent.remove();
|
81 |
+
$container.trigger( 'update.rwmbFile' );
|
82 |
+
}
|
83 |
+
|
84 |
+
$( '.mashsb-rwmb-uploaded' ).on( 'transitionend webkitTransitionEnd otransitionend', 'li.removed', function ()
|
85 |
+
{
|
86 |
+
$( this ).remove();
|
87 |
+
$container.trigger( 'update.rwmbFile' );
|
88 |
+
} );
|
89 |
+
}, 'json' );
|
90 |
+
|
91 |
+
return false;
|
92 |
+
} );
|
93 |
+
|
94 |
+
//Remove deleted file
|
95 |
+
$( '.mashsb-rwmb-uploaded' ).on( 'transitionend webkitTransitionEnd otransitionend', 'li.removed', function ()
|
96 |
+
{
|
97 |
+
$( this ).remove();
|
98 |
+
} );
|
99 |
+
|
100 |
+
$( 'body' ).on( 'update.rwmbFile', '.mashsb-rwmb-uploaded', function ()
|
101 |
+
{
|
102 |
+
var $fileList = $( this ),
|
103 |
+
maxFileUploads = $fileList.data( 'max_file_uploads' ),
|
104 |
+
$uploader = $fileList.siblings( '.new-files' ),
|
105 |
+
numFiles = $fileList.children().length;
|
106 |
+
|
107 |
+
if ( numFiles > 0 )
|
108 |
+
{
|
109 |
+
$fileList.removeClass( 'hidden' );
|
110 |
+
}
|
111 |
+
else
|
112 |
+
{
|
113 |
+
$fileList.addClass( 'hidden' );
|
114 |
+
}
|
115 |
+
|
116 |
+
// Return if maxFileUpload = 0
|
117 |
+
if ( maxFileUploads === 0 )
|
118 |
+
{
|
119 |
+
return false;
|
120 |
+
}
|
121 |
+
|
122 |
+
// Hide files button if reach max file uploads
|
123 |
+
if ( numFiles >= maxFileUploads )
|
124 |
+
{
|
125 |
+
$uploader.addClass( 'hidden' );
|
126 |
+
}
|
127 |
+
else
|
128 |
+
{
|
129 |
+
$uploader.removeClass( 'hidden' );
|
130 |
+
}
|
131 |
+
|
132 |
+
return false;
|
133 |
+
} );
|
134 |
+
|
135 |
+
// Reorder images
|
136 |
+
$( '.mashsb-rwmb-file' ).each( function ()
|
137 |
+
{
|
138 |
+
var $this = $( this ),
|
139 |
+
data = {
|
140 |
+
action : 'rwmb_reorder_files',
|
141 |
+
_ajax_nonce: $this.data( 'reorder_nonce' ),
|
142 |
+
post_id : $( '#post_ID' ).val(),
|
143 |
+
field_id : $this.data( 'field_id' )
|
144 |
+
};
|
145 |
+
$this.sortable( {
|
146 |
+
placeholder: 'ui-state-highlight',
|
147 |
+
items : 'li',
|
148 |
+
update : function ()
|
149 |
+
{
|
150 |
+
|
151 |
+
data.order = $this.sortable( 'serialize' );
|
152 |
+
|
153 |
+
$.post( ajaxurl, data );
|
154 |
+
}
|
155 |
+
} );
|
156 |
+
} );
|
157 |
+
} );
|
includes/admin/meta-box/js/image-advanced.js
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
window.rwmb = window.rwmb || {};
|
2 |
+
|
3 |
+
jQuery( function ( $ )
|
4 |
+
{
|
5 |
+
'use strict';
|
6 |
+
|
7 |
+
var views = rwmb.views = rwmb.views || {},
|
8 |
+
MediaField = views.MediaField,
|
9 |
+
MediaItem = views.MediaItem,
|
10 |
+
MediaList = views.MediaList,
|
11 |
+
ImageField, ImageList, ImageItem;
|
12 |
+
|
13 |
+
ImageField = views.ImageField = MediaField.extend( {
|
14 |
+
createList: function ()
|
15 |
+
{
|
16 |
+
this.list = new MediaList( { collection: this.collection, props: this.props, itemView: ImageItem } );
|
17 |
+
}
|
18 |
+
} );
|
19 |
+
|
20 |
+
ImageItem = views.ImageItem = MediaItem.extend( {
|
21 |
+
className: 'mashsb-rwmb-image-item',
|
22 |
+
template : wp.template( 'mashsb-rwmb-image-item' )
|
23 |
+
} );
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Initialize image fields
|
27 |
+
* @return void
|
28 |
+
*/
|
29 |
+
function initImageField()
|
30 |
+
{
|
31 |
+
new ImageField( { input: this, el: $( this ).siblings( 'div.mashsb-rwmb-media-view' ) } );
|
32 |
+
}
|
33 |
+
$( ':input.mashsb-rwmb-image_advanced' ).each( initImageField );
|
34 |
+
$( '.mashsb-rwmb-input' )
|
35 |
+
.on( 'clone', ':input.mashsb-rwmb-image_advanced', initImageField )
|
36 |
+
} );
|
includes/admin/meta-box/js/image-select.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
$( 'body' ).on( 'change', '.mashsb-rwmb-image-select input', function ()
|
6 |
+
{
|
7 |
+
var $this = $( this ),
|
8 |
+
type = $this.attr( 'type' ),
|
9 |
+
selected = $this.is( ':checked' ),
|
10 |
+
$parent = $this.parent(),
|
11 |
+
$others = $parent.siblings();
|
12 |
+
if ( selected )
|
13 |
+
{
|
14 |
+
$parent.addClass( 'mashsb-rwmb-active' );
|
15 |
+
if ( type === 'radio' )
|
16 |
+
{
|
17 |
+
$others.removeClass( 'mashsb-rwmb-active' );
|
18 |
+
}
|
19 |
+
}
|
20 |
+
else
|
21 |
+
{
|
22 |
+
$parent.removeClass( 'mashsb-rwmb-active' );
|
23 |
+
}
|
24 |
+
} );
|
25 |
+
$( '.mashsb-rwmb-image-select input' ).trigger( 'change' );
|
26 |
+
} );
|
includes/admin/meta-box/js/image-upload.js
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
window.rwmb = window.rwmb || {};
|
2 |
+
|
3 |
+
jQuery( function ( $ )
|
4 |
+
{
|
5 |
+
'use strict';
|
6 |
+
|
7 |
+
var views = rwmb.views = rwmb.views || {},
|
8 |
+
ImageField = views.ImageField,
|
9 |
+
ImageUploadField,
|
10 |
+
UploadButton = views.UploadButton;
|
11 |
+
|
12 |
+
ImageUploadField = views.ImageUploadField = ImageField.extend( {
|
13 |
+
createAddButton: function ()
|
14 |
+
{
|
15 |
+
this.addButton = new UploadButton( { collection: this.collection, props: this.props } );
|
16 |
+
}
|
17 |
+
} );
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Initialize fields
|
21 |
+
* @return void
|
22 |
+
*/
|
23 |
+
function init()
|
24 |
+
{
|
25 |
+
new ImageUploadField( { input: this, el: $( this ).siblings( 'div.mashsb-rwmb-media-view' ) } );
|
26 |
+
console.log('win');
|
27 |
+
}
|
28 |
+
$( ':input.mashsb-rwmb-image_upload, :input.mashsb-rwmb-plupload_image' ).each( init );
|
29 |
+
$( '.mashsb-rwmb-input' )
|
30 |
+
.on( 'clone', ':input.mashsb-rwmb-image_upload, :input.mashsb-rwmb-plupload_image', init )
|
31 |
+
} );
|
includes/admin/meta-box/js/image.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
// Reorder images
|
6 |
+
$( '.mashsb-rwmb-images' ).each( function ()
|
7 |
+
{
|
8 |
+
var $this = $( this ),
|
9 |
+
data = {
|
10 |
+
action : 'rwmb_reorder_images',
|
11 |
+
_ajax_nonce: $this.data( 'reorder_nonce' ),
|
12 |
+
post_id : $( '#post_ID' ).val(),
|
13 |
+
field_id : $this.data( 'field_id' )
|
14 |
+
};
|
15 |
+
$this.sortable( {
|
16 |
+
placeholder: 'ui-state-highlight',
|
17 |
+
items : 'li',
|
18 |
+
update : function ()
|
19 |
+
{
|
20 |
+
data.order = $this.sortable( 'serialize' );
|
21 |
+
$.post( ajaxurl, data );
|
22 |
+
}
|
23 |
+
} );
|
24 |
+
} );
|
25 |
+
} );
|
includes/admin/meta-box/js/input-list.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function( $ )
|
2 |
+
{
|
3 |
+
function update()
|
4 |
+
{
|
5 |
+
var $this = $( this ),
|
6 |
+
$children = $this.closest( 'li' ).children('ul');
|
7 |
+
|
8 |
+
if ( $this.is( ':checked' ) )
|
9 |
+
{
|
10 |
+
$children.removeClass( 'hidden' );
|
11 |
+
}
|
12 |
+
else
|
13 |
+
{
|
14 |
+
$children
|
15 |
+
.addClass( 'hidden' )
|
16 |
+
.find( 'input' )
|
17 |
+
.removeAttr( 'checked' );
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
$( '.mashsb-rwmb-input' )
|
22 |
+
.on( 'change', '.mashsb-rwmb-input-list.collapse :checkbox', update )
|
23 |
+
.on( 'clone', '.mashsb-rwmb-input-list.collapse :checkbox', update );
|
24 |
+
$( '.mashsb-rwmb-input-list.collapse :checkbox' ).each( update );
|
25 |
+
} );
|
includes/admin/meta-box/js/jquery.validate.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
/*! jQuery Validation Plugin - v1.11.1 - 3/22/2013\n* https://github.com/jzaefferer/jquery-validation
|
2 |
+
* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT */(function(t){t.extend(t.fn,{validate:function(e){if(!this.length)return e&&e.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."),void 0;var i=t.data(this[0],"validator");return i?i:(this.attr("novalidate","novalidate"),i=new t.validator(e,this[0]),t.data(this[0],"validator",i),i.settings.onsubmit&&(this.validateDelegate(":submit","click",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(e.target).hasClass("cancel")&&(i.cancelSubmit=!0),void 0!==t(e.target).attr("formnovalidate")&&(i.cancelSubmit=!0)}),this.submit(function(e){function s(){var s;return i.settings.submitHandler?(i.submitButton&&(s=t("<input type='hidden'/>").attr("name",i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&s.remove(),!1):!0}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,s()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):s():(i.focusInvalid(),!1)})),i)},valid:function(){if(t(this[0]).is("form"))return this.validate().form();var e=!0,i=t(this[0].form).validate();return this.each(function(){e=e&&i.element(this)}),e},removeAttrs:function(e){var i={},s=this;return t.each(e.split(/\s/),function(t,e){i[e]=s.attr(e),s.removeAttr(e)}),i},rules:function(e,i){var s=this[0];if(e){var r=t.data(s.form,"validator").settings,n=r.rules,a=t.validator.staticRules(s);switch(e){case"add":t.extend(a,t.validator.normalizeRule(i)),delete a.messages,n[s.name]=a,i.messages&&(r.messages[s.name]=t.extend(r.messages[s.name],i.messages));break;case"remove":if(!i)return delete n[s.name],a;var u={};return t.each(i.split(/\s/),function(t,e){u[e]=a[e],delete a[e]}),u}}var o=t.validator.normalizeRules(t.extend({},t.validator.classRules(s),t.validator.attributeRules(s),t.validator.dataRules(s),t.validator.staticRules(s)),s);if(o.required){var l=o.required;delete o.required,o=t.extend({required:l},o)}return o}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+t(e).val())},filled:function(e){return!!t.trim(""+t(e).val())},unchecked:function(e){return!t(e).prop("checked")}}),t.validator=function(e,i){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=i,this.init()},t.validator.format=function(e,i){return 1===arguments.length?function(){var i=t.makeArray(arguments);return i.unshift(e),t.validator.format.apply(this,i)}:(arguments.length>2&&i.constructor!==Array&&(i=t.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),t.each(i,function(t,i){e=e.replace(RegExp("\\{"+t+"\\}","g"),function(){return i})}),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(t)).hide())},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(t,e){(9!==e.which||""!==this.elementValue(t))&&(t.name in this.submitted||t===this.lastElement)&&this.element(t)},onclick:function(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).addClass(i).removeClass(s):t(e).addClass(i).removeClass(s)},unhighlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).removeClass(i).addClass(s):t(e).removeClass(i).addClass(s)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:t.validator.format("Please enter no more than {0} characters."),minlength:t.validator.format("Please enter at least {0} characters."),rangelength:t.validator.format("Please enter a value between {0} and {1} characters long."),range:t.validator.format("Please enter a value between {0} and {1}."),max:t.validator.format("Please enter a value less than or equal to {0}."),min:t.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function e(e){var i=t.data(this[0].form,"validator"),s="on"+e.type.replace(/^validate/,"");i.settings[s]&&i.settings[s].call(i,this[0],e)}this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var i=this.groups={};t.each(this.settings.groups,function(e,s){"string"==typeof s&&(s=s.split(/\s/)),t.each(s,function(t,s){i[s]=e})});var s=this.settings.rules;t.each(s,function(e,i){s[e]=t.validator.normalizeRule(i)}),t(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",e).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",e),this.settings.invalidHandler&&t(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){e=this.validationTargetFor(this.clean(e)),this.lastElement=e,this.prepareElement(e),this.currentElements=t(e);var i=this.check(e)!==!1;return i?delete this.invalid[e.name]:this.invalid[e.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),i},showErrors:function(e){if(e){t.extend(this.errorMap,e),this.errorList=[];for(var i in e)this.errorList.push({message:e[i],element:this.findByName(i)[0]});this.successList=t.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e=0;for(var i in t)e++;return e},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(e){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var e=this,i={};return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in i||!e.objectLength(t(this).rules())?!1:(i[this.name]=!0,!0)})},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.replace(" ",".");return t(this.settings.errorElement+"."+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var i=t(e).attr("type"),s=t(e).val();return"radio"===i||"checkbox"===i?t("input[name='"+t(e).attr("name")+"']:checked").val():"string"==typeof s?s.replace(/\r/g,""):s},check:function(e){e=this.validationTargetFor(this.clean(e));var i,s=t(e).rules(),r=!1,n=this.elementValue(e);for(var a in s){var u={method:a,parameters:s[a]};try{if(i=t.validator.methods[a].call(this,n,e,u.parameters),"dependency-mismatch"===i){r=!0;continue}if(r=!1,"pending"===i)return this.toHide=this.toHide.not(this.errorsFor(e)),void 0;if(!i)return this.formatAndAdd(e,u),!1}catch(o){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+u.method+"' method.",o),o}}return r?void 0:(this.objectLength(s)&&this.successList.push(e),!0)},customDataMessage:function(e,i){return t(e).data("msg-"+i.toLowerCase())||e.attributes&&t(e).attr("data-msg-"+i.toLowerCase())},customMessage:function(t,e){var i=this.settings.messages[t];return i&&(i.constructor===String?i:i[e])},findDefined:function(){for(var t=0;arguments.length>t;t++)if(void 0!==arguments[t])return arguments[t];return void 0},defaultMessage:function(e,i){return this.findDefined(this.customMessage(e.name,i),this.customDataMessage(e,i),!this.settings.ignoreTitle&&e.title||void 0,t.validator.messages[i],"<strong>Warning: No message defined for "+e.name+"</strong>")},formatAndAdd:function(e,i){var s=this.defaultMessage(e,i.method),r=/\$?\{(\d+)\}/g;"function"==typeof s?s=s.call(this,i.parameters,e):r.test(s)&&(s=t.validator.format(s.replace(r,"{$1}"),i.parameters)),this.errorList.push({message:s,element:e}),this.errorMap[e.name]=s,this.submitted[e.name]=s},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e;for(t=0;this.errorList[t];t++){var i=this.errorList[t];this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message)}if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map(function(){return this.element})},showLabel:function(e,i){var s=this.errorsFor(e);s.length?(s.removeClass(this.settings.validClass).addClass(this.settings.errorClass),s.html(i)):(s=t("<"+this.settings.errorElement+">").attr("for",this.idOrName(e)).addClass(this.settings.errorClass).html(i||""),this.settings.wrapper&&(s=s.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(s).length||(this.settings.errorPlacement?this.settings.errorPlacement(s,t(e)):s.insertAfter(e))),!i&&this.settings.success&&(s.text(""),"string"==typeof this.settings.success?s.addClass(this.settings.success):this.settings.success(s,e)),this.toShow=this.toShow.add(s)},errorsFor:function(e){var i=this.idOrName(e);return this.errors().filter(function(){return t(this).attr("for")===i})},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name).not(this.settings.ignore)[0]),t},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){return t(this.currentForm).find("[name='"+e+"']")},getLength:function(e,i){switch(i.nodeName.toLowerCase()){case"select":return t("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return e.length},depend:function(t,e){return this.dependTypes[typeof t]?this.dependTypes[typeof t](t,e):!0},dependTypes:{"boolean":function(t){return t},string:function(e,i){return!!t(e,i.form).length},"function":function(t,e){return t(e)}},optional:function(e){var i=this.elementValue(e);return!t.validator.methods.required.call(this,i,e)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(e,i){this.pendingRequest--,0>this.pendingRequest&&(this.pendingRequest=0),delete this.pending[e.name],i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(e){return t.data(e,"previousValue")||t.data(e,"previousValue",{old:null,valid:!0,message:this.defaultMessage(e,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,i){e.constructor===String?this.classRuleSettings[e]=i:t.extend(this.classRuleSettings,e)},classRules:function(e){var i={},s=t(e).attr("class");return s&&t.each(s.split(" "),function(){this in t.validator.classRuleSettings&&t.extend(i,t.validator.classRuleSettings[this])}),i},attributeRules:function(e){var i={},s=t(e),r=s[0].getAttribute("type");for(var n in t.validator.methods){var a;"required"===n?(a=s.get(0).getAttribute(n),""===a&&(a=!0),a=!!a):a=s.attr(n),/min|max/.test(n)&&(null===r||/number|range|text/.test(r))&&(a=Number(a)),a?i[n]=a:r===n&&"range"!==r&&(i[n]=!0)}return i.maxlength&&/-1|2147483647|524288/.test(i.maxlength)&&delete i.maxlength,i},dataRules:function(e){var i,s,r={},n=t(e);for(i in t.validator.methods)s=n.data("rule-"+i.toLowerCase()),void 0!==s&&(r[i]=s);return r},staticRules:function(e){var i={},s=t.data(e.form,"validator");return s.settings.rules&&(i=t.validator.normalizeRule(s.settings.rules[e.name])||{}),i},normalizeRules:function(e,i){return t.each(e,function(s,r){if(r===!1)return delete e[s],void 0;if(r.param||r.depends){var n=!0;switch(typeof r.depends){case"string":n=!!t(r.depends,i.form).length;break;case"function":n=r.depends.call(i,i)}n?e[s]=void 0!==r.param?r.param:!0:delete e[s]}}),t.each(e,function(s,r){e[s]=t.isFunction(r)?r(i):r}),t.each(["minlength","maxlength"],function(){e[this]&&(e[this]=Number(e[this]))}),t.each(["rangelength","range"],function(){var i;e[this]&&(t.isArray(e[this])?e[this]=[Number(e[this][0]),Number(e[this][1])]:"string"==typeof e[this]&&(i=e[this].split(/[\s,]+/),e[this]=[Number(i[0]),Number(i[1])]))}),t.validator.autoCreateRanges&&(e.min&&e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),e.minlength&&e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e},normalizeRule:function(e){if("string"==typeof e){var i={};t.each(e.split(/\s/),function(){i[this]=!0}),e=i}return e},addMethod:function(e,i,s){t.validator.methods[e]=i,t.validator.messages[e]=void 0!==s?s:t.validator.messages[e],3>i.length&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,i,s){if(!this.depend(s,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var r=t(i).val();return r&&r.length>0}return this.checkable(i)?this.getLength(e,i)>0:t.trim(e).length>0},email:function(t,e){return this.optional(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(t)},url:function(t,e){return this.optional(e)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(""+new Date(t))},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(t)},number:function(t,e){return this.optional(e)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return"dependency-mismatch";if(/[^0-9 \-]+/.test(t))return!1;var i=0,s=0,r=!1;t=t.replace(/\D/g,"");for(var n=t.length-1;n>=0;n--){var a=t.charAt(n);s=parseInt(a,10),r&&(s*=2)>9&&(s-=9),i+=s,r=!r}return 0===i%10},minlength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||r>=s},maxlength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||s>=r},rangelength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||r>=s[0]&&s[1]>=r},min:function(t,e,i){return this.optional(e)||t>=i},max:function(t,e,i){return this.optional(e)||i>=t},range:function(t,e,i){return this.optional(e)||t>=i[0]&&i[1]>=t},equalTo:function(e,i,s){var r=t(s);return this.settings.onfocusout&&r.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){t(i).valid()}),e===r.val()},remote:function(e,i,s){if(this.optional(i))return"dependency-mismatch";var r=this.previousValue(i);if(this.settings.messages[i.name]||(this.settings.messages[i.name]={}),r.originalMessage=this.settings.messages[i.name].remote,this.settings.messages[i.name].remote=r.message,s="string"==typeof s&&{url:s}||s,r.old===e)return r.valid;r.old=e;var n=this;this.startRequest(i);var a={};return a[i.name]=e,t.ajax(t.extend(!0,{url:s,mode:"abort",port:"validate"+i.name,dataType:"json",data:a,success:function(s){n.settings.messages[i.name].remote=r.originalMessage;var a=s===!0||"true"===s;if(a){var u=n.formSubmitted;n.prepareElement(i),n.formSubmitted=u,n.successList.push(i),delete n.invalid[i.name],n.showErrors()}else{var o={},l=s||n.defaultMessage(i,"remote");o[i.name]=r.message=t.isFunction(l)?l(e):l,n.invalid[i.name]=!0,n.showErrors(o)}r.valid=a,n.stopRequest(i,a)}},s)),"pending"}}}),t.format=t.validator.format})(jQuery),function(t){var e={};if(t.ajaxPrefilter)t.ajaxPrefilter(function(t,i,s){var r=t.port;"abort"===t.mode&&(e[r]&&e[r].abort(),e[r]=s)});else{var i=t.ajax;t.ajax=function(s){var r=("mode"in s?s:t.ajaxSettings).mode,n=("port"in s?s:t.ajaxSettings).port;return"abort"===r?(e[n]&&e[n].abort(),e[n]=i.apply(this,arguments),e[n]):i.apply(this,arguments)}}}(jQuery),function(t){t.extend(t.fn,{validateDelegate:function(e,i,s){return this.bind(i,function(i){var r=t(i.target);return r.is(e)?s.apply(r,arguments):void 0})}})}(jQuery);
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-af.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Afrikaans initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Renier Pretorius. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['af'] = {
|
5 |
+
closeText: 'Selekteer',
|
6 |
+
prevText: 'Vorige',
|
7 |
+
nextText: 'Volgende',
|
8 |
+
currentText: 'Vandag',
|
9 |
+
monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
|
10 |
+
'Julie','Augustus','September','Oktober','November','Desember'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
|
12 |
+
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
|
13 |
+
dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
|
14 |
+
dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
|
15 |
+
dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['af']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ar-DZ.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
|
2 |
+
/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
|
3 |
+
|
4 |
+
jQuery(function($){
|
5 |
+
$.datepicker.regional['ar-DZ'] = {
|
6 |
+
closeText: 'إغلاق',
|
7 |
+
prevText: '<السابق',
|
8 |
+
nextText: 'التالي>',
|
9 |
+
currentText: 'اليوم',
|
10 |
+
monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',
|
11 |
+
'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'],
|
12 |
+
monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
|
13 |
+
dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
14 |
+
dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
15 |
+
dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
16 |
+
weekHeader: 'أسبوع',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 6,
|
19 |
+
isRTL: true,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ar-DZ']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ar.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Arabic Translation for jQuery UI date picker plugin. */
|
2 |
+
/* Khaled Alhourani -- me@khaledalhourani.com */
|
3 |
+
/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
|
4 |
+
jQuery(function($){
|
5 |
+
$.datepicker.regional['ar'] = {
|
6 |
+
closeText: 'إغلاق',
|
7 |
+
prevText: '<السابق',
|
8 |
+
nextText: 'التالي>',
|
9 |
+
currentText: 'اليوم',
|
10 |
+
monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
|
11 |
+
'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
|
12 |
+
monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
|
13 |
+
dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
14 |
+
dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
15 |
+
dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
|
16 |
+
weekHeader: 'أسبوع',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 6,
|
19 |
+
isRTL: true,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ar']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-az.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Jamil Najafov (necefov33@gmail.com). */
|
3 |
+
jQuery(function($) {
|
4 |
+
$.datepicker.regional['az'] = {
|
5 |
+
closeText: 'Bağla',
|
6 |
+
prevText: '<Geri',
|
7 |
+
nextText: 'İrəli>',
|
8 |
+
currentText: 'Bugün',
|
9 |
+
monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
|
10 |
+
'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
|
11 |
+
monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
|
12 |
+
'İyul','Avq','Sen','Okt','Noy','Dek'],
|
13 |
+
dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
|
14 |
+
dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
|
15 |
+
dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
|
16 |
+
weekHeader: 'Hf',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['az']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-be.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Belarusian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Pavel Selitskas <p.selitskas@gmail.com> */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['be'] = {
|
5 |
+
closeText: 'Зачыніць',
|
6 |
+
prevText: '←Папяр.',
|
7 |
+
nextText: 'Наст.→',
|
8 |
+
currentText: 'Сёньня',
|
9 |
+
monthNames: ['Студзень','Люты','Сакавік','Красавік','Травень','Чэрвень',
|
10 |
+
'Ліпень','Жнівень','Верасень','Кастрычнік','Лістапад','Сьнежань'],
|
11 |
+
monthNamesShort: ['Сту','Лют','Сак','Кра','Тра','Чэр',
|
12 |
+
'Ліп','Жні','Вер','Кас','Ліс','Сьн'],
|
13 |
+
dayNames: ['нядзеля','панядзелак','аўторак','серада','чацьвер','пятніца','субота'],
|
14 |
+
dayNamesShort: ['ндз','пнд','аўт','срд','чцв','птн','сбт'],
|
15 |
+
dayNamesMin: ['Нд','Пн','Аў','Ср','Чц','Пт','Сб'],
|
16 |
+
weekHeader: 'Тд',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['be']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-bg.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Bulgarian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Stoyan Kyosev (http://svest.org). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['bg'] = {
|
5 |
+
closeText: 'затвори',
|
6 |
+
prevText: '<назад',
|
7 |
+
nextText: 'напред>',
|
8 |
+
nextBigText: '>>',
|
9 |
+
currentText: 'днес',
|
10 |
+
monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
|
11 |
+
'Юли','Август','Септември','Октомври','Ноември','Декември'],
|
12 |
+
monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
|
13 |
+
'Юли','Авг','Сеп','Окт','Нов','Дек'],
|
14 |
+
dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
|
15 |
+
dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
|
16 |
+
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
|
17 |
+
weekHeader: 'Wk',
|
18 |
+
dateFormat: 'dd.mm.yy',
|
19 |
+
firstDay: 1,
|
20 |
+
isRTL: false,
|
21 |
+
showMonthAfterYear: false,
|
22 |
+
yearSuffix: ''};
|
23 |
+
$.datepicker.setDefaults($.datepicker.regional['bg']);
|
24 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-bs.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Bosnian i18n for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Kenan Konjo. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['bs'] = {
|
5 |
+
closeText: 'Zatvori',
|
6 |
+
prevText: '<',
|
7 |
+
nextText: '>',
|
8 |
+
currentText: 'Danas',
|
9 |
+
monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
|
10 |
+
'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
|
14 |
+
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
|
15 |
+
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['bs']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ca.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */
|
2 |
+
/* Writers: (joan.leon@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ca'] = {
|
5 |
+
closeText: 'Tanca',
|
6 |
+
prevText: 'Anterior',
|
7 |
+
nextText: 'Següent',
|
8 |
+
currentText: 'Avui',
|
9 |
+
monthNames: ['gener','febrer','març','abril','maig','juny',
|
10 |
+
'juliol','agost','setembre','octubre','novembre','desembre'],
|
11 |
+
monthNamesShort: ['gen','feb','març','abr','maig','juny',
|
12 |
+
'jul','ag','set','oct','nov','des'],
|
13 |
+
dayNames: ['diumenge','dilluns','dimarts','dimecres','dijous','divendres','dissabte'],
|
14 |
+
dayNamesShort: ['dg','dl','dt','dc','dj','dv','ds'],
|
15 |
+
dayNamesMin: ['dg','dl','dt','dc','dj','dv','ds'],
|
16 |
+
weekHeader: 'Set',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ca']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-cs.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Czech initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Tomas Muller (tomas@tomas-muller.net). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['cs'] = {
|
5 |
+
closeText: 'Zavřít',
|
6 |
+
prevText: '<Dříve',
|
7 |
+
nextText: 'Později>',
|
8 |
+
currentText: 'Nyní',
|
9 |
+
monthNames: ['leden','únor','březen','duben','květen','červen',
|
10 |
+
'červenec','srpen','září','říjen','listopad','prosinec'],
|
11 |
+
monthNamesShort: ['led','úno','bře','dub','kvě','čer',
|
12 |
+
'čvc','srp','zář','říj','lis','pro'],
|
13 |
+
dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
|
14 |
+
dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
|
15 |
+
dayNamesMin: ['ne','po','út','st','čt','pá','so'],
|
16 |
+
weekHeader: 'Týd',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['cs']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-cy-GB.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Welsh/UK initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by William Griffiths. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['cy-GB'] = {
|
5 |
+
closeText: 'Done',
|
6 |
+
prevText: 'Prev',
|
7 |
+
nextText: 'Next',
|
8 |
+
currentText: 'Today',
|
9 |
+
monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin',
|
10 |
+
'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'],
|
11 |
+
monthNamesShort: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh',
|
12 |
+
'Gor', 'Aws', 'Med', 'Hyd', 'Tac', 'Rha'],
|
13 |
+
dayNames: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'],
|
14 |
+
dayNamesShort: ['Sul', 'Llu', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],
|
15 |
+
dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'],
|
16 |
+
weekHeader: 'Wy',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['cy-GB']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-da.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Danish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Jan Christensen ( deletestuff@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['da'] = {
|
5 |
+
closeText: 'Luk',
|
6 |
+
prevText: '<Forrige',
|
7 |
+
nextText: 'Næste>',
|
8 |
+
currentText: 'Idag',
|
9 |
+
monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
|
10 |
+
'Juli','August','September','Oktober','November','December'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
|
14 |
+
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
|
15 |
+
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
|
16 |
+
weekHeader: 'Uge',
|
17 |
+
dateFormat: 'dd-mm-yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['da']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-de.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* German initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Milian Wolff (mail@milianw.de). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['de'] = {
|
5 |
+
closeText: 'Schließen',
|
6 |
+
prevText: '<Zurück',
|
7 |
+
nextText: 'Vor>',
|
8 |
+
currentText: 'Heute',
|
9 |
+
monthNames: ['Januar','Februar','März','April','Mai','Juni',
|
10 |
+
'Juli','August','September','Oktober','November','Dezember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dez'],
|
13 |
+
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
14 |
+
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
15 |
+
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
16 |
+
weekHeader: 'KW',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['de']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-el.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Greek (el) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Alex Cicovic (http://www.alexcicovic.com) */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['el'] = {
|
5 |
+
closeText: 'Κλείσιμο',
|
6 |
+
prevText: 'Προηγούμενος',
|
7 |
+
nextText: 'Επόμενος',
|
8 |
+
currentText: 'Τρέχων Μήνας',
|
9 |
+
monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
|
10 |
+
'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
|
11 |
+
monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
|
12 |
+
'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
|
13 |
+
dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
|
14 |
+
dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
|
15 |
+
dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
|
16 |
+
weekHeader: 'Εβδ',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['el']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-en-AU.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* English/Australia initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Based on the en-GB initialisation. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['en-AU'] = {
|
5 |
+
closeText: 'Done',
|
6 |
+
prevText: 'Prev',
|
7 |
+
nextText: 'Next',
|
8 |
+
currentText: 'Today',
|
9 |
+
monthNames: ['January','February','March','April','May','June',
|
10 |
+
'July','August','September','October','November','December'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
12 |
+
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
13 |
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
14 |
+
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
15 |
+
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['en-AU']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-en-GB.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* English/UK initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Stuart. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['en-GB'] = {
|
5 |
+
closeText: 'Done',
|
6 |
+
prevText: 'Prev',
|
7 |
+
nextText: 'Next',
|
8 |
+
currentText: 'Today',
|
9 |
+
monthNames: ['January','February','March','April','May','June',
|
10 |
+
'July','August','September','October','November','December'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
12 |
+
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
13 |
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
14 |
+
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
15 |
+
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-en-NZ.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* English/New Zealand initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Based on the en-GB initialisation. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['en-NZ'] = {
|
5 |
+
closeText: 'Done',
|
6 |
+
prevText: 'Prev',
|
7 |
+
nextText: 'Next',
|
8 |
+
currentText: 'Today',
|
9 |
+
monthNames: ['January','February','March','April','May','June',
|
10 |
+
'July','August','September','October','November','December'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
12 |
+
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
13 |
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
14 |
+
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
15 |
+
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['en-NZ']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-eo.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Esperanto initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Olivier M. (olivierweb@ifrance.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['eo'] = {
|
5 |
+
closeText: 'Fermi',
|
6 |
+
prevText: '<Anta',
|
7 |
+
nextText: 'Sekv>',
|
8 |
+
currentText: 'Nuna',
|
9 |
+
monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
|
10 |
+
'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Aŭg','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
|
14 |
+
dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
|
15 |
+
dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
|
16 |
+
weekHeader: 'Sb',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['eo']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-es.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
|
2 |
+
/* Traducido por Vester (xvester@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['es'] = {
|
5 |
+
closeText: 'Cerrar',
|
6 |
+
prevText: '<Ant',
|
7 |
+
nextText: 'Sig>',
|
8 |
+
currentText: 'Hoy',
|
9 |
+
monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
|
10 |
+
'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
|
11 |
+
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
|
12 |
+
'Jul','Ago','Sep','Oct','Nov','Dic'],
|
13 |
+
dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'],
|
14 |
+
dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],
|
15 |
+
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
|
16 |
+
weekHeader: 'Sm',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['es']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-et.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Estonian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['et'] = {
|
5 |
+
closeText: 'Sulge',
|
6 |
+
prevText: 'Eelnev',
|
7 |
+
nextText: 'Järgnev',
|
8 |
+
currentText: 'Täna',
|
9 |
+
monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
|
10 |
+
'Juuli','August','September','Oktoober','November','Detsember'],
|
11 |
+
monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
|
12 |
+
'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
|
13 |
+
dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
|
14 |
+
dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
|
15 |
+
dayNamesMin: ['P','E','T','K','N','R','L'],
|
16 |
+
weekHeader: 'näd',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['et']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-eu.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
|
2 |
+
/* Karrikas-ek itzulia (karrikas@karrikas.com) */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['eu'] = {
|
5 |
+
closeText: 'Egina',
|
6 |
+
prevText: '<Aur',
|
7 |
+
nextText: 'Hur>',
|
8 |
+
currentText: 'Gaur',
|
9 |
+
monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina',
|
10 |
+
'uztaila','abuztua','iraila','urria','azaroa','abendua'],
|
11 |
+
monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.',
|
12 |
+
'uzt.','abu.','ira.','urr.','aza.','abe.'],
|
13 |
+
dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'],
|
14 |
+
dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'],
|
15 |
+
dayNamesMin: ['ig','al','ar','az','og','ol','lr'],
|
16 |
+
weekHeader: 'As',
|
17 |
+
dateFormat: 'yy-mm-dd',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['eu']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fa.js
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
|
2 |
+
/* Javad Mowlanezhad -- jmowla@gmail.com */
|
3 |
+
/* Jalali calendar should supported soon! (Its implemented but I have to test it) */
|
4 |
+
jQuery(function($) {
|
5 |
+
$.datepicker.regional['fa'] = {
|
6 |
+
closeText: 'بستن',
|
7 |
+
prevText: '<قبلی',
|
8 |
+
nextText: 'بعدی>',
|
9 |
+
currentText: 'امروز',
|
10 |
+
monthNames: [
|
11 |
+
'فروردين',
|
12 |
+
'ارديبهشت',
|
13 |
+
'خرداد',
|
14 |
+
'تير',
|
15 |
+
'مرداد',
|
16 |
+
'شهريور',
|
17 |
+
'مهر',
|
18 |
+
'آبان',
|
19 |
+
'آذر',
|
20 |
+
'دی',
|
21 |
+
'بهمن',
|
22 |
+
'اسفند'
|
23 |
+
],
|
24 |
+
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
25 |
+
dayNames: [
|
26 |
+
'يکشنبه',
|
27 |
+
'دوشنبه',
|
28 |
+
'سهشنبه',
|
29 |
+
'چهارشنبه',
|
30 |
+
'پنجشنبه',
|
31 |
+
'جمعه',
|
32 |
+
'شنبه'
|
33 |
+
],
|
34 |
+
dayNamesShort: [
|
35 |
+
'ی',
|
36 |
+
'د',
|
37 |
+
'س',
|
38 |
+
'چ',
|
39 |
+
'پ',
|
40 |
+
'ج',
|
41 |
+
'ش'
|
42 |
+
],
|
43 |
+
dayNamesMin: [
|
44 |
+
'ی',
|
45 |
+
'د',
|
46 |
+
'س',
|
47 |
+
'چ',
|
48 |
+
'پ',
|
49 |
+
'ج',
|
50 |
+
'ش'
|
51 |
+
],
|
52 |
+
weekHeader: 'هف',
|
53 |
+
dateFormat: 'yy/mm/dd',
|
54 |
+
firstDay: 6,
|
55 |
+
isRTL: true,
|
56 |
+
showMonthAfterYear: false,
|
57 |
+
yearSuffix: ''};
|
58 |
+
$.datepicker.setDefaults($.datepicker.regional['fa']);
|
59 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fi.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Finnish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Harri Kilpiö (harrikilpio@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['fi'] = {
|
5 |
+
closeText: 'Sulje',
|
6 |
+
prevText: '«Edellinen',
|
7 |
+
nextText: 'Seuraava»',
|
8 |
+
currentText: 'Tänään',
|
9 |
+
monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu',
|
10 |
+
'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
|
11 |
+
monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä',
|
12 |
+
'Heinä','Elo','Syys','Loka','Marras','Joulu'],
|
13 |
+
dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','La'],
|
14 |
+
dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
|
15 |
+
dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
|
16 |
+
weekHeader: 'Vk',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['fi']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fo.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Faroese initialisation for the jQuery UI date picker plugin */
|
2 |
+
/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['fo'] = {
|
5 |
+
closeText: 'Lat aftur',
|
6 |
+
prevText: '<Fyrra',
|
7 |
+
nextText: 'Næsta>',
|
8 |
+
currentText: 'Í dag',
|
9 |
+
monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
|
10 |
+
'Juli','August','September','Oktober','November','Desember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Des'],
|
13 |
+
dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
|
14 |
+
dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
|
15 |
+
dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
|
16 |
+
weekHeader: 'Vk',
|
17 |
+
dateFormat: 'dd-mm-yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['fo']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fr-CA.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Canadian-French initialisation for the jQuery UI date picker plugin. */
|
2 |
+
jQuery(function ($) {
|
3 |
+
$.datepicker.regional['fr-CA'] = {
|
4 |
+
closeText: 'Fermer',
|
5 |
+
prevText: 'Précédent',
|
6 |
+
nextText: 'Suivant',
|
7 |
+
currentText: 'Aujourd\'hui',
|
8 |
+
monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
|
9 |
+
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
|
10 |
+
monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
|
11 |
+
'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
|
12 |
+
dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
|
13 |
+
dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
|
14 |
+
dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
|
15 |
+
weekHeader: 'Sem.',
|
16 |
+
dateFormat: 'yy-mm-dd',
|
17 |
+
firstDay: 0,
|
18 |
+
isRTL: false,
|
19 |
+
showMonthAfterYear: false,
|
20 |
+
yearSuffix: ''
|
21 |
+
};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['fr-CA']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fr-CH.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Swiss-French initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['fr-CH'] = {
|
5 |
+
closeText: 'Fermer',
|
6 |
+
prevText: '<Préc',
|
7 |
+
nextText: 'Suiv>',
|
8 |
+
currentText: 'Courant',
|
9 |
+
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
|
10 |
+
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
|
11 |
+
monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
|
12 |
+
'Jul','Aoû','Sep','Oct','Nov','Déc'],
|
13 |
+
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
|
14 |
+
dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
|
15 |
+
dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
|
16 |
+
weekHeader: 'Sm',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['fr-CH']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-fr.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* French initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Keith Wood (kbwood{at}iinet.com.au),
|
3 |
+
Stéphane Nahmani (sholby@sholby.net),
|
4 |
+
Stéphane Raimbault <stephane.raimbault@gmail.com> */
|
5 |
+
jQuery(function($){
|
6 |
+
$.datepicker.regional['fr'] = {
|
7 |
+
closeText: 'Fermer',
|
8 |
+
prevText: 'Précédent',
|
9 |
+
nextText: 'Suivant',
|
10 |
+
currentText: 'Aujourd\'hui',
|
11 |
+
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
|
12 |
+
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
|
13 |
+
monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
|
14 |
+
'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
|
15 |
+
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
|
16 |
+
dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
|
17 |
+
dayNamesMin: ['D','L','M','M','J','V','S'],
|
18 |
+
weekHeader: 'Sem.',
|
19 |
+
dateFormat: 'dd/mm/yy',
|
20 |
+
firstDay: 1,
|
21 |
+
isRTL: false,
|
22 |
+
showMonthAfterYear: false,
|
23 |
+
yearSuffix: ''};
|
24 |
+
$.datepicker.setDefaults($.datepicker.regional['fr']);
|
25 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-gl.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Galician localization for 'UI date picker' jQuery extension. */
|
2 |
+
/* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['gl'] = {
|
5 |
+
closeText: 'Pechar',
|
6 |
+
prevText: '<Ant',
|
7 |
+
nextText: 'Seg>',
|
8 |
+
currentText: 'Hoxe',
|
9 |
+
monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño',
|
10 |
+
'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'],
|
11 |
+
monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ',
|
12 |
+
'Xul','Ago','Set','Out','Nov','Dec'],
|
13 |
+
dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'],
|
14 |
+
dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'],
|
15 |
+
dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'],
|
16 |
+
weekHeader: 'Sm',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['gl']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-he.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Hebrew initialisation for the UI Datepicker extension. */
|
2 |
+
/* Written by Amir Hardon (ahardon at gmail dot com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['he'] = {
|
5 |
+
closeText: 'סגור',
|
6 |
+
prevText: '<הקודם',
|
7 |
+
nextText: 'הבא>',
|
8 |
+
currentText: 'היום',
|
9 |
+
monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
|
10 |
+
'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
|
11 |
+
monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני',
|
12 |
+
'יולי','אוג','ספט','אוק','נוב','דצמ'],
|
13 |
+
dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
|
14 |
+
dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
|
15 |
+
dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: true,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['he']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hi.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Hindi initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Michael Dawart. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['hi'] = {
|
5 |
+
closeText: 'बंद',
|
6 |
+
prevText: 'पिछला',
|
7 |
+
nextText: 'अगला',
|
8 |
+
currentText: 'आज',
|
9 |
+
monthNames: ['जनवरी ','फरवरी','मार्च','अप्रेल','मई','जून',
|
10 |
+
'जूलाई','अगस्त ','सितम्बर','अक्टूबर','नवम्बर','दिसम्बर'],
|
11 |
+
monthNamesShort: ['जन', 'फर', 'मार्च', 'अप्रेल', 'मई', 'जून',
|
12 |
+
'जूलाई', 'अग', 'सित', 'अक्ट', 'नव', 'दि'],
|
13 |
+
dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'],
|
14 |
+
dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
|
15 |
+
dayNamesMin: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
|
16 |
+
weekHeader: 'हफ्ता',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['hi']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hr.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Croatian i18n for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Vjekoslav Nesek. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['hr'] = {
|
5 |
+
closeText: 'Zatvori',
|
6 |
+
prevText: '<',
|
7 |
+
nextText: '>',
|
8 |
+
currentText: 'Danas',
|
9 |
+
monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
|
10 |
+
'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
|
11 |
+
monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
|
12 |
+
'Srp','Kol','Ruj','Lis','Stu','Pro'],
|
13 |
+
dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
|
14 |
+
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
|
15 |
+
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
|
16 |
+
weekHeader: 'Tje',
|
17 |
+
dateFormat: 'dd.mm.yy.',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['hr']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hu.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Hungarian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['hu'] = {
|
5 |
+
closeText: 'bezár',
|
6 |
+
prevText: 'vissza',
|
7 |
+
nextText: 'előre',
|
8 |
+
currentText: 'ma',
|
9 |
+
monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
|
10 |
+
'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
|
12 |
+
'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
|
13 |
+
dayNames: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
|
14 |
+
dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
|
15 |
+
dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
|
16 |
+
weekHeader: 'Hét',
|
17 |
+
dateFormat: 'yy.mm.dd.',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: true,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['hu']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-hy.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['hy'] = {
|
5 |
+
closeText: 'Փակել',
|
6 |
+
prevText: '<Նախ.',
|
7 |
+
nextText: 'Հաջ.>',
|
8 |
+
currentText: 'Այսօր',
|
9 |
+
monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
|
10 |
+
'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
|
11 |
+
monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
|
12 |
+
'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
|
13 |
+
dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
|
14 |
+
dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
|
15 |
+
dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
|
16 |
+
weekHeader: 'ՇԲՏ',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['hy']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-id.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Indonesian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Deden Fathurahman (dedenf@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['id'] = {
|
5 |
+
closeText: 'Tutup',
|
6 |
+
prevText: '<mundur',
|
7 |
+
nextText: 'maju>',
|
8 |
+
currentText: 'hari ini',
|
9 |
+
monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
|
10 |
+
'Juli','Agustus','September','Oktober','Nopember','Desember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
|
12 |
+
'Jul','Agus','Sep','Okt','Nop','Des'],
|
13 |
+
dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
|
14 |
+
dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
|
15 |
+
dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
|
16 |
+
weekHeader: 'Mg',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['id']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-is.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Icelandic initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Haukur H. Thorsson (haukur@eskill.is). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['is'] = {
|
5 |
+
closeText: 'Loka',
|
6 |
+
prevText: '< Fyrri',
|
7 |
+
nextText: 'Næsti >',
|
8 |
+
currentText: 'Í dag',
|
9 |
+
monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní',
|
10 |
+
'Júlí','Ágúst','September','Október','Nóvember','Desember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún',
|
12 |
+
'Júl','Ágú','Sep','Okt','Nóv','Des'],
|
13 |
+
dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'],
|
14 |
+
dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'],
|
15 |
+
dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'],
|
16 |
+
weekHeader: 'Vika',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['is']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-it.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Italian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Antonello Pasella (antonello.pasella@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['it'] = {
|
5 |
+
closeText: 'Chiudi',
|
6 |
+
prevText: '<Prec',
|
7 |
+
nextText: 'Succ>',
|
8 |
+
currentText: 'Oggi',
|
9 |
+
monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
|
10 |
+
'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
|
11 |
+
monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
|
12 |
+
'Lug','Ago','Set','Ott','Nov','Dic'],
|
13 |
+
dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'],
|
14 |
+
dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
|
15 |
+
dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
|
16 |
+
weekHeader: 'Sm',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['it']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ja.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Japanese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Kentaro SATO (kentaro@ranvis.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ja'] = {
|
5 |
+
closeText: '閉じる',
|
6 |
+
prevText: '<前',
|
7 |
+
nextText: '次>',
|
8 |
+
currentText: '今日',
|
9 |
+
monthNames: ['1月','2月','3月','4月','5月','6月',
|
10 |
+
'7月','8月','9月','10月','11月','12月'],
|
11 |
+
monthNamesShort: ['1月','2月','3月','4月','5月','6月',
|
12 |
+
'7月','8月','9月','10月','11月','12月'],
|
13 |
+
dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
|
14 |
+
dayNamesShort: ['日','月','火','水','木','金','土'],
|
15 |
+
dayNamesMin: ['日','月','火','水','木','金','土'],
|
16 |
+
weekHeader: '週',
|
17 |
+
dateFormat: 'yy/mm/dd',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: true,
|
21 |
+
yearSuffix: '年'};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ja']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ka.js
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Lado Lomidze (lado.lomidze@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ka'] = {
|
5 |
+
closeText: 'დახურვა',
|
6 |
+
prevText: '< წინა',
|
7 |
+
nextText: 'შემდეგი >',
|
8 |
+
currentText: 'დღეს',
|
9 |
+
monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'],
|
10 |
+
monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'],
|
11 |
+
dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'],
|
12 |
+
dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
|
13 |
+
dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
|
14 |
+
weekHeader: 'კვირა',
|
15 |
+
dateFormat: 'dd-mm-yy',
|
16 |
+
firstDay: 1,
|
17 |
+
isRTL: false,
|
18 |
+
showMonthAfterYear: false,
|
19 |
+
yearSuffix: ''};
|
20 |
+
$.datepicker.setDefaults($.datepicker.regional['ka']);
|
21 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-kk.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['kk'] = {
|
5 |
+
closeText: 'Жабу',
|
6 |
+
prevText: '<Алдыңғы',
|
7 |
+
nextText: 'Келесі>',
|
8 |
+
currentText: 'Бүгін',
|
9 |
+
monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
|
10 |
+
'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
|
11 |
+
monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
|
12 |
+
'Шіл','Там','Қыр','Қаз','Қар','Жел'],
|
13 |
+
dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
|
14 |
+
dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
|
15 |
+
dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
|
16 |
+
weekHeader: 'Не',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['kk']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-km.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Khmer initialisation for the jQuery calendar extension. */
|
2 |
+
/* Written by Chandara Om (chandara.teacher@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['km'] = {
|
5 |
+
closeText: 'ធ្វើរួច',
|
6 |
+
prevText: 'មុន',
|
7 |
+
nextText: 'បន្ទាប់',
|
8 |
+
currentText: 'ថ្ងៃនេះ',
|
9 |
+
monthNames: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា',
|
10 |
+
'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'],
|
11 |
+
monthNamesShort: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា',
|
12 |
+
'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'],
|
13 |
+
dayNames: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'],
|
14 |
+
dayNamesShort: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'],
|
15 |
+
dayNamesMin: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'],
|
16 |
+
weekHeader: 'សប្ដាហ៍',
|
17 |
+
dateFormat: 'dd-mm-yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['km']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ko.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Korean initialisation for the jQuery calendar extension. */
|
2 |
+
/* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ko'] = {
|
5 |
+
closeText: '닫기',
|
6 |
+
prevText: '이전달',
|
7 |
+
nextText: '다음달',
|
8 |
+
currentText: '오늘',
|
9 |
+
monthNames: ['1월','2월','3월','4월','5월','6월',
|
10 |
+
'7월','8월','9월','10월','11월','12월'],
|
11 |
+
monthNamesShort: ['1월','2월','3월','4월','5월','6월',
|
12 |
+
'7월','8월','9월','10월','11월','12월'],
|
13 |
+
dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'],
|
14 |
+
dayNamesShort: ['일','월','화','수','목','금','토'],
|
15 |
+
dayNamesMin: ['일','월','화','수','목','금','토'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'yy-mm-dd',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: true,
|
21 |
+
yearSuffix: '년'};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ko']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ky.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Kyrgyz (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Sergey Kartashov (ebishkek@yandex.ru). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ky'] = {
|
5 |
+
closeText: 'Жабуу',
|
6 |
+
prevText: '<Мур',
|
7 |
+
nextText: 'Кий>',
|
8 |
+
currentText: 'Бүгүн',
|
9 |
+
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
|
10 |
+
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
|
11 |
+
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
|
12 |
+
'Июл','Авг','Сен','Окт','Ноя','Дек'],
|
13 |
+
dayNames: ['жекшемби', 'дүйшөмбү', 'шейшемби', 'шаршемби', 'бейшемби', 'жума', 'ишемби'],
|
14 |
+
dayNamesShort: ['жек', 'дүй', 'шей', 'шар', 'бей', 'жум', 'ише'],
|
15 |
+
dayNamesMin: ['Жк','Дш','Шш','Шр','Бш','Жм','Иш'],
|
16 |
+
weekHeader: 'Жум',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''
|
22 |
+
};
|
23 |
+
$.datepicker.setDefaults($.datepicker.regional['ky']);
|
24 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-lb.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Luxembourgish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Michel Weimerskirch <michel@weimerskirch.net> */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['lb'] = {
|
5 |
+
closeText: 'Fäerdeg',
|
6 |
+
prevText: 'Zréck',
|
7 |
+
nextText: 'Weider',
|
8 |
+
currentText: 'Haut',
|
9 |
+
monthNames: ['Januar','Februar','Mäerz','Abrëll','Mee','Juni',
|
10 |
+
'Juli','August','September','Oktober','November','Dezember'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun',
|
12 |
+
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
|
13 |
+
dayNames: ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'],
|
14 |
+
dayNamesShort: ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'],
|
15 |
+
dayNamesMin: ['So','Mé','Dë','Më','Do','Fr','Sa'],
|
16 |
+
weekHeader: 'W',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['lb']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-lt.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* @author Arturas Paleicikas <arturas@avalon.lt> */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['lt'] = {
|
5 |
+
closeText: 'Uždaryti',
|
6 |
+
prevText: '<Atgal',
|
7 |
+
nextText: 'Pirmyn>',
|
8 |
+
currentText: 'Šiandien',
|
9 |
+
monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
|
10 |
+
'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
|
11 |
+
monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
|
12 |
+
'Lie','Rugp','Rugs','Spa','Lap','Gru'],
|
13 |
+
dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
|
14 |
+
dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
|
15 |
+
dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'yy-mm-dd',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['lt']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-lv.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['lv'] = {
|
5 |
+
closeText: 'Aizvērt',
|
6 |
+
prevText: 'Iepr',
|
7 |
+
nextText: 'Nāka',
|
8 |
+
currentText: 'Šodien',
|
9 |
+
monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
|
10 |
+
'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
|
12 |
+
'Jūl','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
|
14 |
+
dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
|
15 |
+
dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
|
16 |
+
weekHeader: 'Nav',
|
17 |
+
dateFormat: 'dd-mm-yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['lv']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-mk.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Macedonian i18n for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Stojce Slavkovski. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['mk'] = {
|
5 |
+
closeText: 'Затвори',
|
6 |
+
prevText: '<',
|
7 |
+
nextText: '>',
|
8 |
+
currentText: 'Денес',
|
9 |
+
monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни',
|
10 |
+
'Јули','Август','Септември','Октомври','Ноември','Декември'],
|
11 |
+
monthNamesShort: ['Јан','Фев','Мар','Апр','Мај','Јун',
|
12 |
+
'Јул','Авг','Сеп','Окт','Ное','Дек'],
|
13 |
+
dayNames: ['Недела','Понеделник','Вторник','Среда','Четврток','Петок','Сабота'],
|
14 |
+
dayNamesShort: ['Нед','Пон','Вто','Сре','Чет','Пет','Саб'],
|
15 |
+
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'],
|
16 |
+
weekHeader: 'Сед',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['mk']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ml.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Saji Nediyanchath (saji89@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ml'] = {
|
5 |
+
closeText: 'ശരി',
|
6 |
+
prevText: 'മുന്നത്തെ',
|
7 |
+
nextText: 'അടുത്തത് ',
|
8 |
+
currentText: 'ഇന്ന്',
|
9 |
+
monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്ച്ച്','ഏപ്രില്','മേയ്','ജൂണ്',
|
10 |
+
'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്','ഒക്ടോബര്','നവംബര്','ഡിസംബര്'],
|
11 |
+
monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്', 'ഏപ്രി', 'മേയ്', 'ജൂണ്',
|
12 |
+
'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
|
13 |
+
dayNames: ['ഞായര്', 'തിങ്കള്', 'ചൊവ്വ', 'ബുധന്', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
|
14 |
+
dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
|
15 |
+
dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
|
16 |
+
weekHeader: 'ആ',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ml']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ms.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Malaysian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ms'] = {
|
5 |
+
closeText: 'Tutup',
|
6 |
+
prevText: '<Sebelum',
|
7 |
+
nextText: 'Selepas>',
|
8 |
+
currentText: 'hari ini',
|
9 |
+
monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
|
10 |
+
'Julai','Ogos','September','Oktober','November','Disember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
|
12 |
+
'Jul','Ogo','Sep','Okt','Nov','Dis'],
|
13 |
+
dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
|
14 |
+
dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
|
15 |
+
dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
|
16 |
+
weekHeader: 'Mg',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ms']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nb.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Norwegian Bokmål initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Bjørn Johansen (post@bjornjohansen.no). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['nb'] = {
|
5 |
+
closeText: 'Lukk',
|
6 |
+
prevText: '«Forrige',
|
7 |
+
nextText: 'Neste»',
|
8 |
+
currentText: 'I dag',
|
9 |
+
monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
|
10 |
+
monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
|
11 |
+
dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
|
12 |
+
dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
|
13 |
+
dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
|
14 |
+
weekHeader: 'Uke',
|
15 |
+
dateFormat: 'dd.mm.yy',
|
16 |
+
firstDay: 1,
|
17 |
+
isRTL: false,
|
18 |
+
showMonthAfterYear: false,
|
19 |
+
yearSuffix: ''
|
20 |
+
};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['nb']);
|
22 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nl-BE.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Dutch (Belgium) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* David De Sloovere @DavidDeSloovere */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['nl-BE'] = {
|
5 |
+
closeText: 'Sluiten',
|
6 |
+
prevText: '←',
|
7 |
+
nextText: '→',
|
8 |
+
currentText: 'Vandaag',
|
9 |
+
monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
|
10 |
+
'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
|
11 |
+
monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
|
12 |
+
'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
|
13 |
+
dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
|
14 |
+
dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
|
15 |
+
dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['nl-BE']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nl.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Mathias Bynens <http://mathiasbynens.be/> */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional.nl = {
|
5 |
+
closeText: 'Sluiten',
|
6 |
+
prevText: '←',
|
7 |
+
nextText: '→',
|
8 |
+
currentText: 'Vandaag',
|
9 |
+
monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
|
10 |
+
'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
|
11 |
+
monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
|
12 |
+
'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
|
13 |
+
dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
|
14 |
+
dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
|
15 |
+
dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd-mm-yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional.nl);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-nn.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Norwegian Nynorsk initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Bjørn Johansen (post@bjornjohansen.no). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['nn'] = {
|
5 |
+
closeText: 'Lukk',
|
6 |
+
prevText: '«Førre',
|
7 |
+
nextText: 'Neste»',
|
8 |
+
currentText: 'I dag',
|
9 |
+
monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
|
10 |
+
monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
|
11 |
+
dayNamesShort: ['sun','mån','tys','ons','tor','fre','lau'],
|
12 |
+
dayNames: ['sundag','måndag','tysdag','onsdag','torsdag','fredag','laurdag'],
|
13 |
+
dayNamesMin: ['su','må','ty','on','to','fr','la'],
|
14 |
+
weekHeader: 'Veke',
|
15 |
+
dateFormat: 'dd.mm.yy',
|
16 |
+
firstDay: 1,
|
17 |
+
isRTL: false,
|
18 |
+
showMonthAfterYear: false,
|
19 |
+
yearSuffix: ''
|
20 |
+
};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['nn']);
|
22 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-no.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Norwegian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
|
3 |
+
|
4 |
+
jQuery(function($){
|
5 |
+
$.datepicker.regional['no'] = {
|
6 |
+
closeText: 'Lukk',
|
7 |
+
prevText: '«Forrige',
|
8 |
+
nextText: 'Neste»',
|
9 |
+
currentText: 'I dag',
|
10 |
+
monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
|
11 |
+
monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
|
12 |
+
dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
|
13 |
+
dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
|
14 |
+
dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
|
15 |
+
weekHeader: 'Uke',
|
16 |
+
dateFormat: 'dd.mm.yy',
|
17 |
+
firstDay: 1,
|
18 |
+
isRTL: false,
|
19 |
+
showMonthAfterYear: false,
|
20 |
+
yearSuffix: ''
|
21 |
+
};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['no']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-pl.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Polish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['pl'] = {
|
5 |
+
closeText: 'Zamknij',
|
6 |
+
prevText: '<Poprzedni',
|
7 |
+
nextText: 'Następny>',
|
8 |
+
currentText: 'Dziś',
|
9 |
+
monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
|
10 |
+
'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
|
11 |
+
monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
|
12 |
+
'Lip','Sie','Wrz','Pa','Lis','Gru'],
|
13 |
+
dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
|
14 |
+
dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
|
15 |
+
dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
|
16 |
+
weekHeader: 'Tydz',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['pl']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-pt-BR.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Brazilian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['pt-BR'] = {
|
5 |
+
closeText: 'Fechar',
|
6 |
+
prevText: '<Anterior',
|
7 |
+
nextText: 'Próximo>',
|
8 |
+
currentText: 'Hoje',
|
9 |
+
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
|
10 |
+
'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
|
11 |
+
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
|
12 |
+
'Jul','Ago','Set','Out','Nov','Dez'],
|
13 |
+
dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'],
|
14 |
+
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
|
15 |
+
dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
|
16 |
+
weekHeader: 'Sm',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-pt.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Portuguese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
jQuery(function($){
|
3 |
+
$.datepicker.regional['pt'] = {
|
4 |
+
closeText: 'Fechar',
|
5 |
+
prevText: '<Anterior',
|
6 |
+
nextText: 'Seguinte',
|
7 |
+
currentText: 'Hoje',
|
8 |
+
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
|
9 |
+
'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
|
10 |
+
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
|
11 |
+
'Jul','Ago','Set','Out','Nov','Dez'],
|
12 |
+
dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'],
|
13 |
+
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
|
14 |
+
dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
|
15 |
+
weekHeader: 'Sem',
|
16 |
+
dateFormat: 'dd/mm/yy',
|
17 |
+
firstDay: 0,
|
18 |
+
isRTL: false,
|
19 |
+
showMonthAfterYear: false,
|
20 |
+
yearSuffix: ''};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['pt']);
|
22 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-rm.js
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Romansh initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['rm'] = {
|
5 |
+
closeText: 'Serrar',
|
6 |
+
prevText: '<Suandant',
|
7 |
+
nextText: 'Precedent>',
|
8 |
+
currentText: 'Actual',
|
9 |
+
monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'],
|
10 |
+
monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'],
|
11 |
+
dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'],
|
12 |
+
dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'],
|
13 |
+
dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'],
|
14 |
+
weekHeader: 'emna',
|
15 |
+
dateFormat: 'dd/mm/yy',
|
16 |
+
firstDay: 1,
|
17 |
+
isRTL: false,
|
18 |
+
showMonthAfterYear: false,
|
19 |
+
yearSuffix: ''};
|
20 |
+
$.datepicker.setDefaults($.datepicker.regional['rm']);
|
21 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ro.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Romanian initialisation for the jQuery UI date picker plugin.
|
2 |
+
*
|
3 |
+
* Written by Edmond L. (ll_edmond@walla.com)
|
4 |
+
* and Ionut G. Stan (ionut.g.stan@gmail.com)
|
5 |
+
*/
|
6 |
+
jQuery(function($){
|
7 |
+
$.datepicker.regional['ro'] = {
|
8 |
+
closeText: 'Închide',
|
9 |
+
prevText: '« Luna precedentă',
|
10 |
+
nextText: 'Luna următoare »',
|
11 |
+
currentText: 'Azi',
|
12 |
+
monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
|
13 |
+
'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
|
14 |
+
monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
|
15 |
+
'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
16 |
+
dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
|
17 |
+
dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
|
18 |
+
dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
|
19 |
+
weekHeader: 'Săpt',
|
20 |
+
dateFormat: 'dd.mm.yy',
|
21 |
+
firstDay: 1,
|
22 |
+
isRTL: false,
|
23 |
+
showMonthAfterYear: false,
|
24 |
+
yearSuffix: ''};
|
25 |
+
$.datepicker.setDefaults($.datepicker.regional['ro']);
|
26 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ru.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Andrew Stromnov (stromnov@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ru'] = {
|
5 |
+
closeText: 'Закрыть',
|
6 |
+
prevText: '<Пред',
|
7 |
+
nextText: 'След>',
|
8 |
+
currentText: 'Сегодня',
|
9 |
+
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
|
10 |
+
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
|
11 |
+
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
|
12 |
+
'Июл','Авг','Сен','Окт','Ноя','Дек'],
|
13 |
+
dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
|
14 |
+
dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
|
15 |
+
dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
|
16 |
+
weekHeader: 'Нед',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ru']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sk.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Slovak initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Vojtech Rinik (vojto@hmm.sk). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sk'] = {
|
5 |
+
closeText: 'Zavrieť',
|
6 |
+
prevText: '<Predchádzajúci',
|
7 |
+
nextText: 'Nasledujúci>',
|
8 |
+
currentText: 'Dnes',
|
9 |
+
monthNames: ['január','február','marec','apríl','máj','jún',
|
10 |
+
'júl','august','september','október','november','december'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
|
12 |
+
'Júl','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNames: ['nedeľa','pondelok','utorok','streda','štvrtok','piatok','sobota'],
|
14 |
+
dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
|
15 |
+
dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
|
16 |
+
weekHeader: 'Ty',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['sk']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sl.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Slovenian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Jaka Jancar (jaka@kubje.org). */
|
3 |
+
/* c = č, s = š z = ž C = Č S = Š Z = Ž */
|
4 |
+
jQuery(function($){
|
5 |
+
$.datepicker.regional['sl'] = {
|
6 |
+
closeText: 'Zapri',
|
7 |
+
prevText: '<Prejšnji',
|
8 |
+
nextText: 'Naslednji>',
|
9 |
+
currentText: 'Trenutni',
|
10 |
+
monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
|
11 |
+
'Julij','Avgust','September','Oktober','November','December'],
|
12 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
13 |
+
'Jul','Avg','Sep','Okt','Nov','Dec'],
|
14 |
+
dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'],
|
15 |
+
dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'],
|
16 |
+
dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'],
|
17 |
+
weekHeader: 'Teden',
|
18 |
+
dateFormat: 'dd.mm.yy',
|
19 |
+
firstDay: 1,
|
20 |
+
isRTL: false,
|
21 |
+
showMonthAfterYear: false,
|
22 |
+
yearSuffix: ''};
|
23 |
+
$.datepicker.setDefaults($.datepicker.regional['sl']);
|
24 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sq.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Albanian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Flakron Bytyqi (flakron@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sq'] = {
|
5 |
+
closeText: 'mbylle',
|
6 |
+
prevText: '<mbrapa',
|
7 |
+
nextText: 'Përpara>',
|
8 |
+
currentText: 'sot',
|
9 |
+
monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
|
10 |
+
'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
|
11 |
+
monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
|
12 |
+
'Kor','Gus','Sht','Tet','Nën','Dhj'],
|
13 |
+
dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
|
14 |
+
dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
|
15 |
+
dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
|
16 |
+
weekHeader: 'Ja',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['sq']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sr-SR.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Serbian i18n for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Dejan Dimić. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sr-SR'] = {
|
5 |
+
closeText: 'Zatvori',
|
6 |
+
prevText: '<',
|
7 |
+
nextText: '>',
|
8 |
+
currentText: 'Danas',
|
9 |
+
monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
|
10 |
+
'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Avg','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
|
14 |
+
dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
|
15 |
+
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
|
16 |
+
weekHeader: 'Sed',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['sr-SR']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sr.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Serbian i18n for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Dejan Dimić. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sr'] = {
|
5 |
+
closeText: 'Затвори',
|
6 |
+
prevText: '<',
|
7 |
+
nextText: '>',
|
8 |
+
currentText: 'Данас',
|
9 |
+
monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун',
|
10 |
+
'Јул','Август','Септембар','Октобар','Новембар','Децембар'],
|
11 |
+
monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун',
|
12 |
+
'Јул','Авг','Сеп','Окт','Нов','Дец'],
|
13 |
+
dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'],
|
14 |
+
dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'],
|
15 |
+
dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'],
|
16 |
+
weekHeader: 'Сед',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['sr']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-sv.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Swedish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Anders Ekdahl ( anders@nomadiz.se). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sv'] = {
|
5 |
+
closeText: 'Stäng',
|
6 |
+
prevText: '«Förra',
|
7 |
+
nextText: 'Nästa»',
|
8 |
+
currentText: 'Idag',
|
9 |
+
monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
|
10 |
+
'Juli','Augusti','September','Oktober','November','December'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
|
14 |
+
dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
|
15 |
+
dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
|
16 |
+
weekHeader: 'Ve',
|
17 |
+
dateFormat: 'yy-mm-dd',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['sv']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-ta.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by S A Sureshkumar (saskumar@live.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ta'] = {
|
5 |
+
closeText: 'மூடு',
|
6 |
+
prevText: 'முன்னையது',
|
7 |
+
nextText: 'அடுத்தது',
|
8 |
+
currentText: 'இன்று',
|
9 |
+
monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
|
10 |
+
'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
|
11 |
+
monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
|
12 |
+
'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
|
13 |
+
dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
|
14 |
+
dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
|
15 |
+
dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
|
16 |
+
weekHeader: 'Не',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ta']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-th.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Thai initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by pipo (pipo@sixhead.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['th'] = {
|
5 |
+
closeText: 'ปิด',
|
6 |
+
prevText: '« ย้อน',
|
7 |
+
nextText: 'ถัดไป »',
|
8 |
+
currentText: 'วันนี้',
|
9 |
+
monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
|
10 |
+
'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
|
11 |
+
monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
|
12 |
+
'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
|
13 |
+
dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
|
14 |
+
dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
|
15 |
+
dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
|
16 |
+
weekHeader: 'Wk',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['th']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-tj.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Abdurahmon Saidov (saidovab@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['tj'] = {
|
5 |
+
closeText: 'Идома',
|
6 |
+
prevText: '<Қафо',
|
7 |
+
nextText: 'Пеш>',
|
8 |
+
currentText: 'Имрӯз',
|
9 |
+
monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн',
|
10 |
+
'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'],
|
11 |
+
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
|
12 |
+
'Июл','Авг','Сен','Окт','Ноя','Дек'],
|
13 |
+
dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'],
|
14 |
+
dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'],
|
15 |
+
dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'],
|
16 |
+
weekHeader: 'Хф',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['tj']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-tr.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Turkish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Izzet Emre Erkan (kara@karalamalar.net). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['tr'] = {
|
5 |
+
closeText: 'kapat',
|
6 |
+
prevText: '<geri',
|
7 |
+
nextText: 'ileri>',
|
8 |
+
currentText: 'bugün',
|
9 |
+
monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
|
10 |
+
'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
|
11 |
+
monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
|
12 |
+
'Tem','Ağu','Eyl','Eki','Kas','Ara'],
|
13 |
+
dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
|
14 |
+
dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
|
15 |
+
dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
|
16 |
+
weekHeader: 'Hf',
|
17 |
+
dateFormat: 'dd.mm.yy',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['tr']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-uk.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
|
3 |
+
/* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */
|
4 |
+
jQuery(function($){
|
5 |
+
$.datepicker.regional['uk'] = {
|
6 |
+
closeText: 'Закрити',
|
7 |
+
prevText: '<',
|
8 |
+
nextText: '>',
|
9 |
+
currentText: 'Сьогодні',
|
10 |
+
monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
|
11 |
+
'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'],
|
12 |
+
monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
|
13 |
+
'Лип','Сер','Вер','Жов','Лис','Гру'],
|
14 |
+
dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'],
|
15 |
+
dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'],
|
16 |
+
dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'],
|
17 |
+
weekHeader: 'Тиж',
|
18 |
+
dateFormat: 'dd/mm/yy',
|
19 |
+
firstDay: 1,
|
20 |
+
isRTL: false,
|
21 |
+
showMonthAfterYear: false,
|
22 |
+
yearSuffix: ''};
|
23 |
+
$.datepicker.setDefaults($.datepicker.regional['uk']);
|
24 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-vi.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Vietnamese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['vi'] = {
|
5 |
+
closeText: 'Đóng',
|
6 |
+
prevText: '<Trước',
|
7 |
+
nextText: 'Tiếp>',
|
8 |
+
currentText: 'Hôm nay',
|
9 |
+
monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
|
10 |
+
'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
|
11 |
+
monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
|
12 |
+
'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
|
13 |
+
dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
|
14 |
+
dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
|
15 |
+
dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
|
16 |
+
weekHeader: 'Tu',
|
17 |
+
dateFormat: 'dd/mm/yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: false,
|
21 |
+
yearSuffix: ''};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['vi']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-zh-CN.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Chinese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Cloudream (cloudream@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['zh-CN'] = {
|
5 |
+
closeText: '关闭',
|
6 |
+
prevText: '<上月',
|
7 |
+
nextText: '下月>',
|
8 |
+
currentText: '今天',
|
9 |
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
10 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
11 |
+
monthNamesShort: ['一月','二月','三月','四月','五月','六月',
|
12 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
13 |
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
14 |
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
15 |
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
16 |
+
weekHeader: '周',
|
17 |
+
dateFormat: 'yy-mm-dd',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: true,
|
21 |
+
yearSuffix: '年'};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['zh-CN']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-zh-HK.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Chinese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by SCCY (samuelcychan@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['zh-HK'] = {
|
5 |
+
closeText: '關閉',
|
6 |
+
prevText: '<上月',
|
7 |
+
nextText: '下月>',
|
8 |
+
currentText: '今天',
|
9 |
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
10 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
11 |
+
monthNamesShort: ['一月','二月','三月','四月','五月','六月',
|
12 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
13 |
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
14 |
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
15 |
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
16 |
+
weekHeader: '周',
|
17 |
+
dateFormat: 'dd-mm-yy',
|
18 |
+
firstDay: 0,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: true,
|
21 |
+
yearSuffix: '年'};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['zh-HK']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/datepicker-i18n/jquery.ui.datepicker-zh-TW.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Chinese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Ressol (ressol@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['zh-TW'] = {
|
5 |
+
closeText: '關閉',
|
6 |
+
prevText: '<上月',
|
7 |
+
nextText: '下月>',
|
8 |
+
currentText: '今天',
|
9 |
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
10 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
11 |
+
monthNamesShort: ['一月','二月','三月','四月','五月','六月',
|
12 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
13 |
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
14 |
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
15 |
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
16 |
+
weekHeader: '周',
|
17 |
+
dateFormat: 'yy/mm/dd',
|
18 |
+
firstDay: 1,
|
19 |
+
isRTL: false,
|
20 |
+
showMonthAfterYear: true,
|
21 |
+
yearSuffix: '年'};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['zh-TW']);
|
23 |
+
});
|
includes/admin/meta-box/js/jqueryui/jquery-ui-timepicker-addon-i18n.min.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery Timepicker Addon - v1.5.0 - 2014-09-01
|
2 |
+
* http://trentrichardson.com/examples/timepicker
|
3 |
+
* Copyright (c) 2014 Trent Richardson; Licensed MIT */
|
4 |
+
(function(e){e.timepicker.regional.af={timeOnlyTitle:"Kies Tyd",timeText:"Tyd ",hourText:"Ure ",minuteText:"Minute",secondText:"Sekondes",millisecText:"Millisekondes",microsecText:"Mikrosekondes",timezoneText:"Tydsone",currentText:"Huidige Tyd",closeText:"Klaar",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.am={timeOnlyTitle:"Ընտրեք ժամանակը",timeText:"Ժամանակը",hourText:"Ժամ",minuteText:"Րոպե",secondText:"Վարկյան",millisecText:"Միլիվարկյան",microsecText:"Միկրովարկյան",timezoneText:"Ժամային գոտին",currentText:"Այժմ",closeText:"Փակել",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.bg={timeOnlyTitle:"Изберете време",timeText:"Време",hourText:"Час",minuteText:"Минути",secondText:"Секунди",millisecText:"Милисекунди",microsecText:"Микросекунди",timezoneText:"Часови пояс",currentText:"Сега",closeText:"Затвори",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.ca={timeOnlyTitle:"Escollir una hora",timeText:"Hora",hourText:"Hores",minuteText:"Minuts",secondText:"Segons",millisecText:"Milisegons",microsecText:"Microsegons",timezoneText:"Fus horari",currentText:"Ara",closeText:"Tancar",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.cs={timeOnlyTitle:"Vyberte čas",timeText:"Čas",hourText:"Hodiny",minuteText:"Minuty",secondText:"Vteřiny",millisecText:"Milisekundy",microsecText:"Mikrosekundy",timezoneText:"Časové pásmo",currentText:"Nyní",closeText:"Zavřít",timeFormat:"HH:mm",amNames:["dop.","AM","A"],pmNames:["odp.","PM","P"],isRTL:!1},e.timepicker.regional.da={timeOnlyTitle:"Vælg tid",timeText:"Tid",hourText:"Time",minuteText:"Minut",secondText:"Sekund",millisecText:"Millisekund",microsecText:"Mikrosekund",timezoneText:"Tidszone",currentText:"Nu",closeText:"Luk",timeFormat:"HH:mm",amNames:["am","AM","A"],pmNames:["pm","PM","P"],isRTL:!1},e.timepicker.regional.de={timeOnlyTitle:"Zeit wählen",timeText:"Zeit",hourText:"Stunde",minuteText:"Minute",secondText:"Sekunde",millisecText:"Millisekunde",microsecText:"Mikrosekunde",timezoneText:"Zeitzone",currentText:"Jetzt",closeText:"Fertig",timeFormat:"HH:mm",amNames:["vorm.","AM","A"],pmNames:["nachm.","PM","P"],isRTL:!1},e.timepicker.regional.el={timeOnlyTitle:"Επιλογή ώρας",timeText:"Ώρα",hourText:"Ώρες",minuteText:"Λεπτά",secondText:"Δευτερόλεπτα",millisecText:"μιλιδευτερόλεπτο",microsecText:"Microseconds",timezoneText:"Ζώνη ώρας",currentText:"Τώρα",closeText:"Κλείσιμο",timeFormat:"HH:mm",amNames:["π.μ.","AM","A"],pmNames:["μ.μ.","PM","P"],isRTL:!1},e.timepicker.regional.es={timeOnlyTitle:"Elegir una hora",timeText:"Hora",hourText:"Horas",minuteText:"Minutos",secondText:"Segundos",millisecText:"Milisegundos",microsecText:"Microsegundos",timezoneText:"Uso horario",currentText:"Hoy",closeText:"Cerrar",timeFormat:"HH:mm",amNames:["a.m.","AM","A"],pmNames:["p.m.","PM","P"],isRTL:!1},e.timepicker.regional.et={timeOnlyTitle:"Vali aeg",timeText:"Aeg",hourText:"Tund",minuteText:"Minut",secondText:"Sekund",millisecText:"Millisekundis",microsecText:"Mikrosekundis",timezoneText:"Ajavöönd",currentText:"Praegu",closeText:"Valmis",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.eu={timeOnlyTitle:"Aukeratu ordua",timeText:"Ordua",hourText:"Orduak",minuteText:"Minutuak",secondText:"Segundoak",millisecText:"Milisegundoak",microsecText:"Mikrosegundoak",timezoneText:"Ordu-eremua",currentText:"Orain",closeText:"Itxi",timeFormat:"HH:mm",amNames:["a.m.","AM","A"],pmNames:["p.m.","PM","P"],isRTL:!1},e.timepicker.regional.fi={timeOnlyTitle:"Valitse aika",timeText:"Aika",hourText:"Tunti",minuteText:"Minuutti",secondText:"Sekunti",millisecText:"Millisekunnin",microsecText:"Mikrosekuntia",timezoneText:"Aikavyöhyke",currentText:"Nyt",closeText:"Sulje",timeFormat:"HH:mm",amNames:["ap.","AM","A"],pmNames:["ip.","PM","P"],isRTL:!1},e.timepicker.regional.fr={timeOnlyTitle:"Choisir une heure",timeText:"Heure",hourText:"Heures",minuteText:"Minutes",secondText:"Secondes",millisecText:"Millisecondes",microsecText:"Microsecondes",timezoneText:"Fuseau horaire",currentText:"Maintenant",closeText:"Terminé",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.gl={timeOnlyTitle:"Elixir unha hora",timeText:"Hora",hourText:"Horas",minuteText:"Minutos",secondText:"Segundos",millisecText:"Milisegundos",microsecText:"Microssegundos",timezoneText:"Fuso horario",currentText:"Agora",closeText:"Pechar",timeFormat:"HH:mm",amNames:["a.m.","AM","A"],pmNames:["p.m.","PM","P"],isRTL:!1},e.timepicker.regional.he={timeOnlyTitle:"בחירת זמן",timeText:"שעה",hourText:"שעות",minuteText:"דקות",secondText:"שניות",millisecText:"אלפית השנייה",microsecText:"מיקרו",timezoneText:"אזור זמן",currentText:"עכשיו",closeText:"סגור",timeFormat:"HH:mm",amNames:['לפנה"צ',"AM","A"],pmNames:['אחה"צ',"PM","P"],isRTL:!0},e.timepicker.regional.hr={timeOnlyTitle:"Odaberi vrijeme",timeText:"Vrijeme",hourText:"Sati",minuteText:"Minute",secondText:"Sekunde",millisecText:"Milisekunde",microsecText:"Mikrosekunde",timezoneText:"Vremenska zona",currentText:"Sada",closeText:"Gotovo",timeFormat:"HH:mm",amNames:["a.m.","AM","A"],pmNames:["p.m.","PM","P"],isRTL:!1},e.timepicker.regional.hu={timeOnlyTitle:"Válasszon időpontot",timeText:"Idő",hourText:"Óra",minuteText:"Perc",secondText:"Másodperc",millisecText:"Milliszekundumos",microsecText:"Ezredmásodperc",timezoneText:"Időzóna",currentText:"Most",closeText:"Kész",timeFormat:"HH:mm",amNames:["de.","AM","A"],pmNames:["du.","PM","P"],isRTL:!1},e.timepicker.regional.id={timeOnlyTitle:"Pilih Waktu",timeText:"Waktu",hourText:"Pukul",minuteText:"Menit",secondText:"Detik",millisecText:"Milidetik",microsecText:"Mikrodetik",timezoneText:"Zona Waktu",currentText:"Sekarang",closeText:"OK",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.it={timeOnlyTitle:"Scegli orario",timeText:"Orario",hourText:"Ora",minuteText:"Minuti",secondText:"Secondi",millisecText:"Millisecondi",microsecText:"Microsecondi",timezoneText:"Fuso orario",currentText:"Adesso",closeText:"Chiudi",timeFormat:"HH:mm",amNames:["m.","AM","A"],pmNames:["p.","PM","P"],isRTL:!1},e.timepicker.regional.ja={timeOnlyTitle:"時間を選択",timeText:"時間",hourText:"時",minuteText:"分",secondText:"秒",millisecText:"ミリ秒",microsecText:"マイクロ秒",timezoneText:"タイムゾーン",currentText:"現時刻",closeText:"閉じる",timeFormat:"HH:mm",amNames:["午前","AM","A"],pmNames:["午後","PM","P"],isRTL:!1},e.timepicker.regional.ko={timeOnlyTitle:"시간 선택",timeText:"시간",hourText:"시",minuteText:"분",secondText:"초",millisecText:"밀리초",microsecText:"마이크로",timezoneText:"표준 시간대",currentText:"현재 시각",closeText:"닫기",timeFormat:"tt h:mm",amNames:["오전","AM","A"],pmNames:["오후","PM","P"],isRTL:!1},e.timepicker.regional.lt={timeOnlyTitle:"Pasirinkite laiką",timeText:"Laikas",hourText:"Valandos",minuteText:"Minutės",secondText:"Sekundės",millisecText:"Milisekundės",microsecText:"Mikrosekundės",timezoneText:"Laiko zona",currentText:"Dabar",closeText:"Uždaryti",timeFormat:"HH:mm",amNames:["priešpiet","AM","A"],pmNames:["popiet","PM","P"],isRTL:!1},e.timepicker.regional.nl={timeOnlyTitle:"Tijdstip",timeText:"Tijd",hourText:"Uur",minuteText:"Minuut",secondText:"Seconde",millisecText:"Milliseconde",microsecText:"Microseconde",timezoneText:"Tijdzone",currentText:"Vandaag",closeText:"Sluiten",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.no={timeOnlyTitle:"Velg tid",timeText:"Tid",hourText:"Time",minuteText:"Minutt",secondText:"Sekund",millisecText:"Millisekund",microsecText:"mikrosekund",timezoneText:"Tidssone",currentText:"Nå",closeText:"Lukk",timeFormat:"HH:mm",amNames:["am","AM","A"],pmNames:["pm","PM","P"],isRTL:!1},e.timepicker.regional.pl={timeOnlyTitle:"Wybierz godzinę",timeText:"Czas",hourText:"Godzina",minuteText:"Minuta",secondText:"Sekunda",millisecText:"Milisekunda",microsecText:"Mikrosekunda",timezoneText:"Strefa czasowa",currentText:"Teraz",closeText:"Gotowe",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional["pt-BR"]={timeOnlyTitle:"Escolha o horário",timeText:"Horário",hourText:"Hora",minuteText:"Minutos",secondText:"Segundos",millisecText:"Milissegundos",microsecText:"Microssegundos",timezoneText:"Fuso horário",currentText:"Agora",closeText:"Fechar",timeFormat:"HH:mm",amNames:["a.m.","AM","A"],pmNames:["p.m.","PM","P"],isRTL:!1},e.timepicker.regional.pt={timeOnlyTitle:"Escolha uma hora",timeText:"Hora",hourText:"Horas",minuteText:"Minutos",secondText:"Segundos",millisecText:"Milissegundos",microsecText:"Microssegundos",timezoneText:"Fuso horário",currentText:"Agora",closeText:"Fechar",timeFormat:"HH:mm",amNames:["a.m.","AM","A"],pmNames:["p.m.","PM","P"],isRTL:!1},e.timepicker.regional.ro={timeOnlyTitle:"Alegeţi o oră",timeText:"Timp",hourText:"Ore",minuteText:"Minute",secondText:"Secunde",millisecText:"Milisecunde",microsecText:"Microsecunde",timezoneText:"Fus orar",currentText:"Acum",closeText:"Închide",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.ru={timeOnlyTitle:"Выберите время",timeText:"Время",hourText:"Часы",minuteText:"Минуты",secondText:"Секунды",millisecText:"Миллисекунды",microsecText:"Микросекунды",timezoneText:"Часовой пояс",currentText:"Сейчас",closeText:"Закрыть",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.sk={timeOnlyTitle:"Zvoľte čas",timeText:"Čas",hourText:"Hodiny",minuteText:"Minúty",secondText:"Sekundy",millisecText:"Milisekundy",microsecText:"Mikrosekundy",timezoneText:"Časové pásmo",currentText:"Teraz",closeText:"Zavrieť",timeFormat:"H:m",amNames:["dop.","AM","A"],pmNames:["pop.","PM","P"],isRTL:!1},e.timepicker.regional.sl={timeOnlyTitle:"Izberite čas",timeText:"Čas",hourText:"Ura",minuteText:"Minute",secondText:"Sekunde",millisecText:"Milisekunde",microsecText:"Mikrosekunde",timezoneText:"Časovni pas",currentText:"Sedaj",closeText:"Zapri",timeFormat:"HH:mm",amNames:["dop.","AM","A"],pmNames:["pop.","PM","P"],isRTL:!1},e.timepicker.regional["sr-RS"]={timeOnlyTitle:"Одаберите време",timeText:"Време",hourText:"Сати",minuteText:"Минути",secondText:"Секунде",millisecText:"Милисекунде",microsecText:"Микросекунде",timezoneText:"Временска зона",currentText:"Сада",closeText:"Затвори",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional["sr-YU"]={timeOnlyTitle:"Odaberite vreme",timeText:"Vreme",hourText:"Sati",minuteText:"Minuti",secondText:"Sekunde",millisecText:"Milisekunde",microsecText:"Mikrosekunde",timezoneText:"Vremenska zona",currentText:"Sada",closeText:"Zatvori",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.sv={timeOnlyTitle:"Välj en tid",timeText:"Tid",hourText:"Timme",minuteText:"Minut",secondText:"Sekund",millisecText:"Millisekund",microsecText:"Mikrosekund",timezoneText:"Tidszon",currentText:"Nu",closeText:"Stäng",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.th={timeOnlyTitle:"เลือกเวลา",timeText:"เวลา ",hourText:"ชั่วโมง ",minuteText:"นาที",secondText:"วินาที",millisecText:"มิลลิวินาที",microsecText:"ไมโคริวินาที",timezoneText:"เขตเวลา",currentText:"เวลาปัจจุบัน",closeText:"ปิด",timeFormat:"hh:mm tt"},e.timepicker.regional.tr={timeOnlyTitle:"Zaman Seçiniz",timeText:"Zaman",hourText:"Saat",minuteText:"Dakika",secondText:"Saniye",millisecText:"Milisaniye",microsecText:"Mikrosaniye",timezoneText:"Zaman Dilimi",currentText:"Şu an",closeText:"Tamam",timeFormat:"HH:mm",amNames:["ÖÖ","Ö"],pmNames:["ÖS","S"],isRTL:!1},e.timepicker.regional.uk={timeOnlyTitle:"Виберіть час",timeText:"Час",hourText:"Години",minuteText:"Хвилини",secondText:"Секунди",millisecText:"Мілісекунди",microsecText:"Мікросекунди",timezoneText:"Часовий пояс",currentText:"Зараз",closeText:"Закрити",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional.vi={timeOnlyTitle:"Chọn giờ",timeText:"Thời gian",hourText:"Giờ",minuteText:"Phút",secondText:"Giây",millisecText:"Mili giây",microsecText:"Micrô giây",timezoneText:"Múi giờ",currentText:"Hiện thời",closeText:"Đóng",timeFormat:"HH:mm",amNames:["SA","S"],pmNames:["CH","C"],isRTL:!1},e.timepicker.regional["zh-CN"]={timeOnlyTitle:"选择时间",timeText:"时间",hourText:"小时",minuteText:"分钟",secondText:"秒钟",millisecText:"毫秒",microsecText:"微秒",timezoneText:"时区",currentText:"现在时间",closeText:"关闭",timeFormat:"HH:mm",amNames:["AM","A"],pmNames:["PM","P"],isRTL:!1},e.timepicker.regional["zh-TW"]={timeOnlyTitle:"選擇時分秒",timeText:"時間",hourText:"時",minuteText:"分",secondText:"秒",millisecText:"毫秒",microsecText:"微秒",timezoneText:"時區",currentText:"現在時間",closeText:"確定",timeFormat:"HH:mm",amNames:["上午","AM","A"],pmNames:["下午","PM","P"],isRTL:!1}})(jQuery);
|
includes/admin/meta-box/js/jqueryui/jquery-ui-timepicker-addon.min.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery Timepicker Addon - v1.5.0 - 2014-09-01
|
2 |
+
* http://trentrichardson.com/examples/timepicker
|
3 |
+
* Copyright (c) 2014 Trent Richardson; Licensed MIT */
|
4 |
+
(function($){if($.ui.timepicker=$.ui.timepicker||{},!$.ui.timepicker.version){$.extend($.ui,{timepicker:{version:"1.5.0"}});var Timepicker=function(){this.regional=[],this.regional[""]={currentText:"Now",closeText:"Done",amNames:["AM","A"],pmNames:["PM","P"],timeFormat:"HH:mm",timeSuffix:"",timeOnlyTitle:"Choose Time",timeText:"Time",hourText:"Hour",minuteText:"Minute",secondText:"Second",millisecText:"Millisecond",microsecText:"Microsecond",timezoneText:"Time Zone",isRTL:!1},this._defaults={showButtonPanel:!0,timeOnly:!1,timeOnlyShowDate:!1,showHour:null,showMinute:null,showSecond:null,showMillisec:null,showMicrosec:null,showTimezone:null,showTime:!0,stepHour:1,stepMinute:1,stepSecond:1,stepMillisec:1,stepMicrosec:1,hour:0,minute:0,second:0,millisec:0,microsec:0,timezone:null,hourMin:0,minuteMin:0,secondMin:0,millisecMin:0,microsecMin:0,hourMax:23,minuteMax:59,secondMax:59,millisecMax:999,microsecMax:999,minDateTime:null,maxDateTime:null,maxTime:null,minTime:null,onSelect:null,hourGrid:0,minuteGrid:0,secondGrid:0,millisecGrid:0,microsecGrid:0,alwaysSetTime:!0,separator:" ",altFieldTimeOnly:!0,altTimeFormat:null,altSeparator:null,altTimeSuffix:null,altRedirectFocus:!0,pickerTimeFormat:null,pickerTimeSuffix:null,showTimepicker:!0,timezoneList:null,addSliderAccess:!1,sliderAccessArgs:null,controlType:"slider",defaultValue:null,parse:"strict"},$.extend(this._defaults,this.regional[""])};$.extend(Timepicker.prototype,{$input:null,$altInput:null,$timeObj:null,inst:null,hour_slider:null,minute_slider:null,second_slider:null,millisec_slider:null,microsec_slider:null,timezone_select:null,maxTime:null,minTime:null,hour:0,minute:0,second:0,millisec:0,microsec:0,timezone:null,hourMinOriginal:null,minuteMinOriginal:null,secondMinOriginal:null,millisecMinOriginal:null,microsecMinOriginal:null,hourMaxOriginal:null,minuteMaxOriginal:null,secondMaxOriginal:null,millisecMaxOriginal:null,microsecMaxOriginal:null,ampm:"",formattedDate:"",formattedTime:"",formattedDateTime:"",timezoneList:null,units:["hour","minute","second","millisec","microsec"],support:{},control:null,setDefaults:function(e){return extendRemove(this._defaults,e||{}),this},_newInst:function($input,opts){var tp_inst=new Timepicker,inlineSettings={},fns={},overrides,i;for(var attrName in this._defaults)if(this._defaults.hasOwnProperty(attrName)){var attrValue=$input.attr("time:"+attrName);if(attrValue)try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}overrides={beforeShow:function(e,t){return $.isFunction(tp_inst._defaults.evnts.beforeShow)?tp_inst._defaults.evnts.beforeShow.call($input[0],e,t,tp_inst):void 0},onChangeMonthYear:function(e,t,i){tp_inst._updateDateTime(i),$.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)&&tp_inst._defaults.evnts.onChangeMonthYear.call($input[0],e,t,i,tp_inst)},onClose:function(e,t){tp_inst.timeDefined===!0&&""!==$input.val()&&tp_inst._updateDateTime(t),$.isFunction(tp_inst._defaults.evnts.onClose)&&tp_inst._defaults.evnts.onClose.call($input[0],e,t,tp_inst)}};for(i in overrides)overrides.hasOwnProperty(i)&&(fns[i]=opts[i]||null);tp_inst._defaults=$.extend({},this._defaults,inlineSettings,opts,overrides,{evnts:fns,timepicker:tp_inst}),tp_inst.amNames=$.map(tp_inst._defaults.amNames,function(e){return e.toUpperCase()}),tp_inst.pmNames=$.map(tp_inst._defaults.pmNames,function(e){return e.toUpperCase()}),tp_inst.support=detectSupport(tp_inst._defaults.timeFormat+(tp_inst._defaults.pickerTimeFormat?tp_inst._defaults.pickerTimeFormat:"")+(tp_inst._defaults.altTimeFormat?tp_inst._defaults.altTimeFormat:"")),"string"==typeof tp_inst._defaults.controlType?("slider"===tp_inst._defaults.controlType&&$.ui.slider===void 0&&(tp_inst._defaults.controlType="select"),tp_inst.control=tp_inst._controls[tp_inst._defaults.controlType]):tp_inst.control=tp_inst._defaults.controlType;var timezoneList=[-720,-660,-600,-570,-540,-480,-420,-360,-300,-270,-240,-210,-180,-120,-60,0,60,120,180,210,240,270,300,330,345,360,390,420,480,525,540,570,600,630,660,690,720,765,780,840];null!==tp_inst._defaults.timezoneList&&(timezoneList=tp_inst._defaults.timezoneList);var tzl=timezoneList.length,tzi=0,tzv=null;if(tzl>0&&"object"!=typeof timezoneList[0])for(;tzl>tzi;tzi++)tzv=timezoneList[tzi],timezoneList[tzi]={value:tzv,label:$.timepicker.timezoneOffsetString(tzv,tp_inst.support.iso8601)};return tp_inst._defaults.timezoneList=timezoneList,tp_inst.timezone=null!==tp_inst._defaults.timezone?$.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone):-1*(new Date).getTimezoneOffset(),tp_inst.hour=tp_inst._defaults.hour<tp_inst._defaults.hourMin?tp_inst._defaults.hourMin:tp_inst._defaults.hour>tp_inst._defaults.hourMax?tp_inst._defaults.hourMax:tp_inst._defaults.hour,tp_inst.minute=tp_inst._defaults.minute<tp_inst._defaults.minuteMin?tp_inst._defaults.minuteMin:tp_inst._defaults.minute>tp_inst._defaults.minuteMax?tp_inst._defaults.minuteMax:tp_inst._defaults.minute,tp_inst.second=tp_inst._defaults.second<tp_inst._defaults.secondMin?tp_inst._defaults.secondMin:tp_inst._defaults.second>tp_inst._defaults.secondMax?tp_inst._defaults.secondMax:tp_inst._defaults.second,tp_inst.millisec=tp_inst._defaults.millisec<tp_inst._defaults.millisecMin?tp_inst._defaults.millisecMin:tp_inst._defaults.millisec>tp_inst._defaults.millisecMax?tp_inst._defaults.millisecMax:tp_inst._defaults.millisec,tp_inst.microsec=tp_inst._defaults.microsec<tp_inst._defaults.microsecMin?tp_inst._defaults.microsecMin:tp_inst._defaults.microsec>tp_inst._defaults.microsecMax?tp_inst._defaults.microsecMax:tp_inst._defaults.microsec,tp_inst.ampm="",tp_inst.$input=$input,tp_inst._defaults.altField&&(tp_inst.$altInput=$(tp_inst._defaults.altField),tp_inst._defaults.altRedirectFocus===!0&&tp_inst.$altInput.css({cursor:"pointer"}).focus(function(){$input.trigger("focus")})),(0===tp_inst._defaults.minDate||0===tp_inst._defaults.minDateTime)&&(tp_inst._defaults.minDate=new Date),(0===tp_inst._defaults.maxDate||0===tp_inst._defaults.maxDateTime)&&(tp_inst._defaults.maxDate=new Date),void 0!==tp_inst._defaults.minDate&&tp_inst._defaults.minDate instanceof Date&&(tp_inst._defaults.minDateTime=new Date(tp_inst._defaults.minDate.getTime())),void 0!==tp_inst._defaults.minDateTime&&tp_inst._defaults.minDateTime instanceof Date&&(tp_inst._defaults.minDate=new Date(tp_inst._defaults.minDateTime.getTime())),void 0!==tp_inst._defaults.maxDate&&tp_inst._defaults.maxDate instanceof Date&&(tp_inst._defaults.maxDateTime=new Date(tp_inst._defaults.maxDate.getTime())),void 0!==tp_inst._defaults.maxDateTime&&tp_inst._defaults.maxDateTime instanceof Date&&(tp_inst._defaults.maxDate=new Date(tp_inst._defaults.maxDateTime.getTime())),tp_inst.$input.bind("focus",function(){tp_inst._onFocus()}),tp_inst},_addTimePicker:function(e){var t=this.$altInput&&this._defaults.altFieldTimeOnly?this.$input.val()+" "+this.$altInput.val():this.$input.val();this.timeDefined=this._parseTime(t),this._limitMinMaxDateTime(e,!1),this._injectTimePicker()},_parseTime:function(e,t){if(this.inst||(this.inst=$.datepicker._getInst(this.$input[0])),t||!this._defaults.timeOnly){var i=$.datepicker._get(this.inst,"dateFormat");try{var s=parseDateTimeInternal(i,this._defaults.timeFormat,e,$.datepicker._getFormatConfig(this.inst),this._defaults);if(!s.timeObj)return!1;$.extend(this,s.timeObj)}catch(a){return $.timepicker.log("Error parsing the date/time string: "+a+"\ndate/time string = "+e+"\ntimeFormat = "+this._defaults.timeFormat+"\ndateFormat = "+i),!1}return!0}var n=$.datepicker.parseTime(this._defaults.timeFormat,e,this._defaults);return n?($.extend(this,n),!0):!1},_injectTimePicker:function(){var e=this.inst.dpDiv,t=this.inst.settings,i=this,s="",a="",n=null,r={},l={},o=null,c=0,u=0;if(0===e.find("div.ui-timepicker-div").length&&t.showTimepicker){var m=' style="display:none;"',d='<div class="ui-timepicker-div'+(t.isRTL?" ui-timepicker-rtl":"")+'"><dl>'+'<dt class="ui_tpicker_time_label"'+(t.showTime?"":m)+">"+t.timeText+"</dt>"+'<dd class="ui_tpicker_time"'+(t.showTime?"":m)+"></dd>";for(c=0,u=this.units.length;u>c;c++){if(s=this.units[c],a=s.substr(0,1).toUpperCase()+s.substr(1),n=null!==t["show"+a]?t["show"+a]:this.support[s],r[s]=parseInt(t[s+"Max"]-(t[s+"Max"]-t[s+"Min"])%t["step"+a],10),l[s]=0,d+='<dt class="ui_tpicker_'+s+'_label"'+(n?"":m)+">"+t[s+"Text"]+"</dt>"+'<dd class="ui_tpicker_'+s+'"><div class="ui_tpicker_'+s+'_slider"'+(n?"":m)+"></div>",n&&t[s+"Grid"]>0){if(d+='<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>',"hour"===s)for(var h=t[s+"Min"];r[s]>=h;h+=parseInt(t[s+"Grid"],10)){l[s]++;var p=$.datepicker.formatTime(this.support.ampm?"hht":"HH",{hour:h},t);d+='<td data-for="'+s+'">'+p+"</td>"}else for(var _=t[s+"Min"];r[s]>=_;_+=parseInt(t[s+"Grid"],10))l[s]++,d+='<td data-for="'+s+'">'+(10>_?"0":"")+_+"</td>";d+="</tr></table></div>"}d+="</dd>"}var f=null!==t.showTimezone?t.showTimezone:this.support.timezone;d+='<dt class="ui_tpicker_timezone_label"'+(f?"":m)+">"+t.timezoneText+"</dt>",d+='<dd class="ui_tpicker_timezone" '+(f?"":m)+"></dd>",d+="</dl></div>";var g=$(d);for(t.timeOnly===!0&&(g.prepend('<div class="ui-widget-header ui-helper-clearfix ui-corner-all"><div class="ui-datepicker-title">'+t.timeOnlyTitle+"</div>"+"</div>"),e.find(".ui-datepicker-header, .ui-datepicker-calendar").hide()),c=0,u=i.units.length;u>c;c++)s=i.units[c],a=s.substr(0,1).toUpperCase()+s.substr(1),n=null!==t["show"+a]?t["show"+a]:this.support[s],i[s+"_slider"]=i.control.create(i,g.find(".ui_tpicker_"+s+"_slider"),s,i[s],t[s+"Min"],r[s],t["step"+a]),n&&t[s+"Grid"]>0&&(o=100*l[s]*t[s+"Grid"]/(r[s]-t[s+"Min"]),g.find(".ui_tpicker_"+s+" table").css({width:o+"%",marginLeft:t.isRTL?"0":o/(-2*l[s])+"%",marginRight:t.isRTL?o/(-2*l[s])+"%":"0",borderCollapse:"collapse"}).find("td").click(function(){var e=$(this),t=e.html(),a=parseInt(t.replace(/[^0-9]/g),10),n=t.replace(/[^apm]/gi),r=e.data("for");"hour"===r&&(-1!==n.indexOf("p")&&12>a?a+=12:-1!==n.indexOf("a")&&12===a&&(a=0)),i.control.value(i,i[r+"_slider"],s,a),i._onTimeChange(),i._onSelectHandler()}).css({cursor:"pointer",width:100/l[s]+"%",textAlign:"center",overflow:"hidden"}));if(this.timezone_select=g.find(".ui_tpicker_timezone").append("<select></select>").find("select"),$.fn.append.apply(this.timezone_select,$.map(t.timezoneList,function(e){return $("<option />").val("object"==typeof e?e.value:e).text("object"==typeof e?e.label:e)})),this.timezone!==void 0&&null!==this.timezone&&""!==this.timezone){var M=-1*new Date(this.inst.selectedYear,this.inst.selectedMonth,this.inst.selectedDay,12).getTimezoneOffset();M===this.timezone?selectLocalTimezone(i):this.timezone_select.val(this.timezone)}else this.hour!==void 0&&null!==this.hour&&""!==this.hour?this.timezone_select.val(t.timezone):selectLocalTimezone(i);this.timezone_select.change(function(){i._onTimeChange(),i._onSelectHandler()});var v=e.find(".ui-datepicker-buttonpane");if(v.length?v.before(g):e.append(g),this.$timeObj=g.find(".ui_tpicker_time"),null!==this.inst){var k=this.timeDefined;this._onTimeChange(),this.timeDefined=k}if(this._defaults.addSliderAccess){var T=this._defaults.sliderAccessArgs,D=this._defaults.isRTL;T.isRTL=D,setTimeout(function(){if(0===g.find(".ui-slider-access").length){g.find(".ui-slider:visible").sliderAccess(T);var e=g.find(".ui-slider-access:eq(0)").outerWidth(!0);e&&g.find("table:visible").each(function(){var t=$(this),i=t.outerWidth(),s=(""+t.css(D?"marginRight":"marginLeft")).replace("%",""),a=i-e,n=s*a/i+"%",r={width:a,marginRight:0,marginLeft:0};r[D?"marginRight":"marginLeft"]=n,t.css(r)})}},10)}i._limitMinMaxDateTime(this.inst,!0)}},_limitMinMaxDateTime:function(e,t){var i=this._defaults,s=new Date(e.selectedYear,e.selectedMonth,e.selectedDay);if(this._defaults.showTimepicker){if(null!==$.datepicker._get(e,"minDateTime")&&void 0!==$.datepicker._get(e,"minDateTime")&&s){var a=$.datepicker._get(e,"minDateTime"),n=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0,0);(null===this.hourMinOriginal||null===this.minuteMinOriginal||null===this.secondMinOriginal||null===this.millisecMinOriginal||null===this.microsecMinOriginal)&&(this.hourMinOriginal=i.hourMin,this.minuteMinOriginal=i.minuteMin,this.secondMinOriginal=i.secondMin,this.millisecMinOriginal=i.millisecMin,this.microsecMinOriginal=i.microsecMin),e.settings.timeOnly||n.getTime()===s.getTime()?(this._defaults.hourMin=a.getHours(),this.hour<=this._defaults.hourMin?(this.hour=this._defaults.hourMin,this._defaults.minuteMin=a.getMinutes(),this.minute<=this._defaults.minuteMin?(this.minute=this._defaults.minuteMin,this._defaults.secondMin=a.getSeconds(),this.second<=this._defaults.secondMin?(this.second=this._defaults.secondMin,this._defaults.millisecMin=a.getMilliseconds(),this.millisec<=this._defaults.millisecMin?(this.millisec=this._defaults.millisecMin,this._defaults.microsecMin=a.getMicroseconds()):(this.microsec<this._defaults.microsecMin&&(this.microsec=this._defaults.microsecMin),this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.secondMin=this.secondMinOriginal,this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.minuteMin=this.minuteMinOriginal,this._defaults.secondMin=this.secondMinOriginal,this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.hourMin=this.hourMinOriginal,this._defaults.minuteMin=this.minuteMinOriginal,this._defaults.secondMin=this.secondMinOriginal,this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)}if(null!==$.datepicker._get(e,"maxDateTime")&&void 0!==$.datepicker._get(e,"maxDateTime")&&s){var r=$.datepicker._get(e,"maxDateTime"),l=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0);(null===this.hourMaxOriginal||null===this.minuteMaxOriginal||null===this.secondMaxOriginal||null===this.millisecMaxOriginal)&&(this.hourMaxOriginal=i.hourMax,this.minuteMaxOriginal=i.minuteMax,this.secondMaxOriginal=i.secondMax,this.millisecMaxOriginal=i.millisecMax,this.microsecMaxOriginal=i.microsecMax),e.settings.timeOnly||l.getTime()===s.getTime()?(this._defaults.hourMax=r.getHours(),this.hour>=this._defaults.hourMax?(this.hour=this._defaults.hourMax,this._defaults.minuteMax=r.getMinutes(),this.minute>=this._defaults.minuteMax?(this.minute=this._defaults.minuteMax,this._defaults.secondMax=r.getSeconds(),this.second>=this._defaults.secondMax?(this.second=this._defaults.secondMax,this._defaults.millisecMax=r.getMilliseconds(),this.millisec>=this._defaults.millisecMax?(this.millisec=this._defaults.millisecMax,this._defaults.microsecMax=r.getMicroseconds()):(this.microsec>this._defaults.microsecMax&&(this.microsec=this._defaults.microsecMax),this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.secondMax=this.secondMaxOriginal,this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.minuteMax=this.minuteMaxOriginal,this._defaults.secondMax=this.secondMaxOriginal,this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.hourMax=this.hourMaxOriginal,this._defaults.minuteMax=this.minuteMaxOriginal,this._defaults.secondMax=this.secondMaxOriginal,this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)}if(null!==e.settings.minTime){var o=new Date("01/01/1970 "+e.settings.minTime);this.hour<o.getHours()?(this.hour=this._defaults.hourMin=o.getHours(),this.minute=this._defaults.minuteMin=o.getMinutes()):this.hour===o.getHours()&&this.minute<o.getMinutes()?this.minute=this._defaults.minuteMin=o.getMinutes():this._defaults.hourMin<o.getHours()?(this._defaults.hourMin=o.getHours(),this._defaults.minuteMin=o.getMinutes()):this._defaults.minuteMin=this._defaults.hourMin===o.getHours()===this.hour&&this._defaults.minuteMin<o.getMinutes()?o.getMinutes():0}if(null!==e.settings.maxTime){var c=new Date("01/01/1970 "+e.settings.maxTime);this.hour>c.getHours()?(this.hour=this._defaults.hourMax=c.getHours(),this.minute=this._defaults.minuteMax=c.getMinutes()):this.hour===c.getHours()&&this.minute>c.getMinutes()?this.minute=this._defaults.minuteMax=c.getMinutes():this._defaults.hourMax>c.getHours()?(this._defaults.hourMax=c.getHours(),this._defaults.minuteMax=c.getMinutes()):this._defaults.minuteMax=this._defaults.hourMax===c.getHours()===this.hour&&this._defaults.minuteMax>c.getMinutes()?c.getMinutes():59}if(void 0!==t&&t===!0){var u=parseInt(this._defaults.hourMax-(this._defaults.hourMax-this._defaults.hourMin)%this._defaults.stepHour,10),m=parseInt(this._defaults.minuteMax-(this._defaults.minuteMax-this._defaults.minuteMin)%this._defaults.stepMinute,10),d=parseInt(this._defaults.secondMax-(this._defaults.secondMax-this._defaults.secondMin)%this._defaults.stepSecond,10),h=parseInt(this._defaults.millisecMax-(this._defaults.millisecMax-this._defaults.millisecMin)%this._defaults.stepMillisec,10),p=parseInt(this._defaults.microsecMax-(this._defaults.microsecMax-this._defaults.microsecMin)%this._defaults.stepMicrosec,10);this.hour_slider&&(this.control.options(this,this.hour_slider,"hour",{min:this._defaults.hourMin,max:u,step:this._defaults.stepHour}),this.control.value(this,this.hour_slider,"hour",this.hour-this.hour%this._defaults.stepHour)),this.minute_slider&&(this.control.options(this,this.minute_slider,"minute",{min:this._defaults.minuteMin,max:m,step:this._defaults.stepMinute}),this.control.value(this,this.minute_slider,"minute",this.minute-this.minute%this._defaults.stepMinute)),this.second_slider&&(this.control.options(this,this.second_slider,"second",{min:this._defaults.secondMin,max:d,step:this._defaults.stepSecond}),this.control.value(this,this.second_slider,"second",this.second-this.second%this._defaults.stepSecond)),this.millisec_slider&&(this.control.options(this,this.millisec_slider,"millisec",{min:this._defaults.millisecMin,max:h,step:this._defaults.stepMillisec}),this.control.value(this,this.millisec_slider,"millisec",this.millisec-this.millisec%this._defaults.stepMillisec)),this.microsec_slider&&(this.control.options(this,this.microsec_slider,"microsec",{min:this._defaults.microsecMin,max:p,step:this._defaults.stepMicrosec}),this.control.value(this,this.microsec_slider,"microsec",this.microsec-this.microsec%this._defaults.stepMicrosec))}}},_onTimeChange:function(){if(this._defaults.showTimepicker){var e=this.hour_slider?this.control.value(this,this.hour_slider,"hour"):!1,t=this.minute_slider?this.control.value(this,this.minute_slider,"minute"):!1,i=this.second_slider?this.control.value(this,this.second_slider,"second"):!1,s=this.millisec_slider?this.control.value(this,this.millisec_slider,"millisec"):!1,a=this.microsec_slider?this.control.value(this,this.microsec_slider,"microsec"):!1,n=this.timezone_select?this.timezone_select.val():!1,r=this._defaults,l=r.pickerTimeFormat||r.timeFormat,o=r.pickerTimeSuffix||r.timeSuffix;"object"==typeof e&&(e=!1),"object"==typeof t&&(t=!1),"object"==typeof i&&(i=!1),"object"==typeof s&&(s=!1),"object"==typeof a&&(a=!1),"object"==typeof n&&(n=!1),e!==!1&&(e=parseInt(e,10)),t!==!1&&(t=parseInt(t,10)),i!==!1&&(i=parseInt(i,10)),s!==!1&&(s=parseInt(s,10)),a!==!1&&(a=parseInt(a,10)),n!==!1&&(n=""+n);var c=r[12>e?"amNames":"pmNames"][0],u=e!==parseInt(this.hour,10)||t!==parseInt(this.minute,10)||i!==parseInt(this.second,10)||s!==parseInt(this.millisec,10)||a!==parseInt(this.microsec,10)||this.ampm.length>0&&12>e!=(-1!==$.inArray(this.ampm.toUpperCase(),this.amNames))||null!==this.timezone&&n!==""+this.timezone;u&&(e!==!1&&(this.hour=e),t!==!1&&(this.minute=t),i!==!1&&(this.second=i),s!==!1&&(this.millisec=s),a!==!1&&(this.microsec=a),n!==!1&&(this.timezone=n),this.inst||(this.inst=$.datepicker._getInst(this.$input[0])),this._limitMinMaxDateTime(this.inst,!0)),this.support.ampm&&(this.ampm=c),this.formattedTime=$.datepicker.formatTime(r.timeFormat,this,r),this.$timeObj&&(l===r.timeFormat?this.$timeObj.text(this.formattedTime+o):this.$timeObj.text($.datepicker.formatTime(l,this,r)+o)),this.timeDefined=!0,u&&this._updateDateTime()}},_onSelectHandler:function(){var e=this._defaults.onSelect||this.inst.settings.onSelect,t=this.$input?this.$input[0]:null;e&&t&&e.apply(t,[this.formattedDateTime,this])},_updateDateTime:function(e){e=this.inst||e;var t=e.currentYear>0?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(e.selectedYear,e.selectedMonth,e.selectedDay),i=$.datepicker._daylightSavingAdjust(t),s=$.datepicker._get(e,"dateFormat"),a=$.datepicker._getFormatConfig(e),n=null!==i&&this.timeDefined;this.formattedDate=$.datepicker.formatDate(s,null===i?new Date:i,a);var r=this.formattedDate;if(""===e.lastVal&&(e.currentYear=e.selectedYear,e.currentMonth=e.selectedMonth,e.currentDay=e.selectedDay),this._defaults.timeOnly===!0&&this._defaults.timeOnlyShowDate===!1?r=this.formattedTime:(this._defaults.timeOnly!==!0&&(this._defaults.alwaysSetTime||n)||this._defaults.timeOnly===!0&&this._defaults.timeOnlyShowDate===!0)&&(r+=this._defaults.separator+this.formattedTime+this._defaults.timeSuffix),this.formattedDateTime=r,this._defaults.showTimepicker)if(this.$altInput&&this._defaults.timeOnly===!1&&this._defaults.altFieldTimeOnly===!0)this.$altInput.val(this.formattedTime),this.$input.val(this.formattedDate);else if(this.$altInput){this.$input.val(r);var l="",o=null!==this._defaults.altSeparator?this._defaults.altSeparator:this._defaults.separator,c=null!==this._defaults.altTimeSuffix?this._defaults.altTimeSuffix:this._defaults.timeSuffix;this._defaults.timeOnly||(l=this._defaults.altFormat?$.datepicker.formatDate(this._defaults.altFormat,null===i?new Date:i,a):this.formattedDate,l&&(l+=o)),l+=null!==this._defaults.altTimeFormat?$.datepicker.formatTime(this._defaults.altTimeFormat,this,this._defaults)+c:this.formattedTime+c,this.$altInput.val(l)}else this.$input.val(r);else this.$input.val(this.formattedDate);this.$input.trigger("change")},_onFocus:function(){if(!this.$input.val()&&this._defaults.defaultValue){this.$input.val(this._defaults.defaultValue);var e=$.datepicker._getInst(this.$input.get(0)),t=$.datepicker._get(e,"timepicker");if(t&&t._defaults.timeOnly&&e.input.val()!==e.lastVal)try{$.datepicker._updateDatepicker(e)}catch(i){$.timepicker.log(i)}}},_controls:{slider:{create:function(e,t,i,s,a,n,r){var l=e._defaults.isRTL;return t.prop("slide",null).slider({orientation:"horizontal",value:l?-1*s:s,min:l?-1*n:a,max:l?-1*a:n,step:r,slide:function(t,s){e.control.value(e,$(this),i,l?-1*s.value:s.value),e._onTimeChange()},stop:function(){e._onSelectHandler()}})},options:function(e,t,i,s,a){if(e._defaults.isRTL){if("string"==typeof s)return"min"===s||"max"===s?void 0!==a?t.slider(s,-1*a):Math.abs(t.slider(s)):t.slider(s);var n=s.min,r=s.max;return s.min=s.max=null,void 0!==n&&(s.max=-1*n),void 0!==r&&(s.min=-1*r),t.slider(s)}return"string"==typeof s&&void 0!==a?t.slider(s,a):t.slider(s)},value:function(e,t,i,s){return e._defaults.isRTL?void 0!==s?t.slider("value",-1*s):Math.abs(t.slider("value")):void 0!==s?t.slider("value",s):t.slider("value")}},select:{create:function(e,t,i,s,a,n,r){for(var l='<select class="ui-timepicker-select ui-state-default ui-corner-all" data-unit="'+i+'" data-min="'+a+'" data-max="'+n+'" data-step="'+r+'">',o=e._defaults.pickerTimeFormat||e._defaults.timeFormat,c=a;n>=c;c+=r)l+='<option value="'+c+'"'+(c===s?" selected":"")+">",l+="hour"===i?$.datepicker.formatTime($.trim(o.replace(/[^ht ]/gi,"")),{hour:c},e._defaults):"millisec"===i||"microsec"===i||c>=10?c:"0"+(""+c),l+="</option>";return l+="</select>",t.children("select").remove(),$(l).appendTo(t).change(function(){e._onTimeChange(),e._onSelectHandler()}),t},options:function(e,t,i,s,a){var n={},r=t.children("select");if("string"==typeof s){if(void 0===a)return r.data(s);n[s]=a}else n=s;return e.control.create(e,t,r.data("unit"),r.val(),n.min||r.data("min"),n.max||r.data("max"),n.step||r.data("step"))},value:function(e,t,i,s){var a=t.children("select");return void 0!==s?a.val(s):a.val()}}}}),$.fn.extend({timepicker:function(e){e=e||{};var t=Array.prototype.slice.call(arguments);return"object"==typeof e&&(t[0]=$.extend(e,{timeOnly:!0})),$(this).each(function(){$.fn.datetimepicker.apply($(this),t)})},datetimepicker:function(e){e=e||{};var t=arguments;return"string"==typeof e?"getDate"===e||"option"===e&&2===t.length&&"string"==typeof t[1]?$.fn.datepicker.apply($(this[0]),t):this.each(function(){var e=$(this);e.datepicker.apply(e,t)}):this.each(function(){var t=$(this);t.datepicker($.timepicker._newInst(t,e)._defaults)})}}),$.datepicker.parseDateTime=function(e,t,i,s,a){var n=parseDateTimeInternal(e,t,i,s,a);if(n.timeObj){var r=n.timeObj;n.date.setHours(r.hour,r.minute,r.second,r.millisec),n.date.setMicroseconds(r.microsec)}return n.date},$.datepicker.parseTime=function(e,t,i){var s=extendRemove(extendRemove({},$.timepicker._defaults),i||{});-1!==e.replace(/\'.*?\'/g,"").indexOf("Z");var a=function(e,t,i){var s,a=function(e,t){var i=[];return e&&$.merge(i,e),t&&$.merge(i,t),i=$.map(i,function(e){return e.replace(/[.*+?|()\[\]{}\\]/g,"\\$&")}),"("+i.join("|")+")?"},n=function(e){var t=e.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g),i={h:-1,m:-1,s:-1,l:-1,c:-1,t:-1,z:-1};if(t)for(var s=0;t.length>s;s++)-1===i[(""+t[s]).charAt(0)]&&(i[(""+t[s]).charAt(0)]=s+1);return i},r="^"+(""+e).replace(/([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,function(e){var t=e.length;switch(e.charAt(0).toLowerCase()){case"h":return 1===t?"(\\d?\\d)":"(\\d{"+t+"})";case"m":return 1===t?"(\\d?\\d)":"(\\d{"+t+"})";case"s":return 1===t?"(\\d?\\d)":"(\\d{"+t+"})";case"l":return"(\\d?\\d?\\d)";case"c":return"(\\d?\\d?\\d)";case"z":return"(z|[-+]\\d\\d:?\\d\\d|\\S+)?";case"t":return a(i.amNames,i.pmNames);default:return"("+e.replace(/\'/g,"").replace(/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g,function(e){return"\\"+e})+")?"}}).replace(/\s/g,"\\s?")+i.timeSuffix+"$",l=n(e),o="";s=t.match(RegExp(r,"i"));var c={hour:0,minute:0,second:0,millisec:0,microsec:0};return s?(-1!==l.t&&(void 0===s[l.t]||0===s[l.t].length?(o="",c.ampm=""):(o=-1!==$.inArray(s[l.t].toUpperCase(),i.amNames)?"AM":"PM",c.ampm=i["AM"===o?"amNames":"pmNames"][0])),-1!==l.h&&(c.hour="AM"===o&&"12"===s[l.h]?0:"PM"===o&&"12"!==s[l.h]?parseInt(s[l.h],10)+12:Number(s[l.h])),-1!==l.m&&(c.minute=Number(s[l.m])),-1!==l.s&&(c.second=Number(s[l.s])),-1!==l.l&&(c.millisec=Number(s[l.l])),-1!==l.c&&(c.microsec=Number(s[l.c])),-1!==l.z&&void 0!==s[l.z]&&(c.timezone=$.timepicker.timezoneOffsetNumber(s[l.z])),c):!1},n=function(e,t,i){try{var s=new Date("2012-01-01 "+t);if(isNaN(s.getTime())&&(s=new Date("2012-01-01T"+t),isNaN(s.getTime())&&(s=new Date("01/01/2012 "+t),isNaN(s.getTime()))))throw"Unable to parse time with native Date: "+t;return{hour:s.getHours(),minute:s.getMinutes(),second:s.getSeconds(),millisec:s.getMilliseconds(),microsec:s.getMicroseconds(),timezone:-1*s.getTimezoneOffset()}}catch(n){try{return a(e,t,i)}catch(r){$.timepicker.log("Unable to parse \ntimeString: "+t+"\ntimeFormat: "+e)}}return!1};return"function"==typeof s.parse?s.parse(e,t,s):"loose"===s.parse?n(e,t,s):a(e,t,s)},$.datepicker.formatTime=function(e,t,i){i=i||{},i=$.extend({},$.timepicker._defaults,i),t=$.extend({hour:0,minute:0,second:0,millisec:0,microsec:0,timezone:null},t);var s=e,a=i.amNames[0],n=parseInt(t.hour,10);return n>11&&(a=i.pmNames[0]),s=s.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,function(e){switch(e){case"HH":return("0"+n).slice(-2);case"H":return n;case"hh":return("0"+convert24to12(n)).slice(-2);case"h":return convert24to12(n);case"mm":return("0"+t.minute).slice(-2);case"m":return t.minute;case"ss":return("0"+t.second).slice(-2);case"s":return t.second;case"l":return("00"+t.millisec).slice(-3);case"c":return("00"+t.microsec).slice(-3);case"z":return $.timepicker.timezoneOffsetString(null===t.timezone?i.timezone:t.timezone,!1);case"Z":return $.timepicker.timezoneOffsetString(null===t.timezone?i.timezone:t.timezone,!0);case"T":return a.charAt(0).toUpperCase();case"TT":return a.toUpperCase();case"t":return a.charAt(0).toLowerCase();case"tt":return a.toLowerCase();default:return e.replace(/'/g,"")}})},$.datepicker._base_selectDate=$.datepicker._selectDate,$.datepicker._selectDate=function(e,t){var i,s=this._getInst($(e)[0]),a=this._get(s,"timepicker");a&&s.settings.showTimepicker?(a._limitMinMaxDateTime(s,!0),i=s.inline,s.inline=s.stay_open=!0,this._base_selectDate(e,t),s.inline=i,s.stay_open=!1,this._notifyChange(s),this._updateDatepicker(s)):this._base_selectDate(e,t)},$.datepicker._base_updateDatepicker=$.datepicker._updateDatepicker,$.datepicker._updateDatepicker=function(e){var t=e.input[0];if(!($.datepicker._curInst&&$.datepicker._curInst!==e&&$.datepicker._datepickerShowing&&$.datepicker._lastInput!==t||"boolean"==typeof e.stay_open&&e.stay_open!==!1)){this._base_updateDatepicker(e);var i=this._get(e,"timepicker");i&&i._addTimePicker(e)}},$.datepicker._base_doKeyPress=$.datepicker._doKeyPress,$.datepicker._doKeyPress=function(e){var t=$.datepicker._getInst(e.target),i=$.datepicker._get(t,"timepicker");if(i&&$.datepicker._get(t,"constrainInput")){var s=i.support.ampm,a=null!==i._defaults.showTimezone?i._defaults.showTimezone:i.support.timezone,n=$.datepicker._possibleChars($.datepicker._get(t,"dateFormat")),r=(""+i._defaults.timeFormat).replace(/[hms]/g,"").replace(/TT/g,s?"APM":"").replace(/Tt/g,s?"AaPpMm":"").replace(/tT/g,s?"AaPpMm":"").replace(/T/g,s?"AP":"").replace(/tt/g,s?"apm":"").replace(/t/g,s?"ap":"")+" "+i._defaults.separator+i._defaults.timeSuffix+(a?i._defaults.timezoneList.join(""):"")+i._defaults.amNames.join("")+i._defaults.pmNames.join("")+n,l=String.fromCharCode(void 0===e.charCode?e.keyCode:e.charCode);return e.ctrlKey||" ">l||!n||r.indexOf(l)>-1}return $.datepicker._base_doKeyPress(e)},$.datepicker._base_updateAlternate=$.datepicker._updateAlternate,$.datepicker._updateAlternate=function(e){var t=this._get(e,"timepicker");if(t){var i=t._defaults.altField;if(i){var s=(t._defaults.altFormat||t._defaults.dateFormat,this._getDate(e)),a=$.datepicker._getFormatConfig(e),n="",r=t._defaults.altSeparator?t._defaults.altSeparator:t._defaults.separator,l=t._defaults.altTimeSuffix?t._defaults.altTimeSuffix:t._defaults.timeSuffix,o=null!==t._defaults.altTimeFormat?t._defaults.altTimeFormat:t._defaults.timeFormat;n+=$.datepicker.formatTime(o,t,t._defaults)+l,t._defaults.timeOnly||t._defaults.altFieldTimeOnly||null===s||(n=t._defaults.altFormat?$.datepicker.formatDate(t._defaults.altFormat,s,a)+r+n:t.formattedDate+r+n),$(i).val(e.input.val()?n:"")}}else $.datepicker._base_updateAlternate(e)},$.datepicker._base_doKeyUp=$.datepicker._doKeyUp,$.datepicker._doKeyUp=function(e){var t=$.datepicker._getInst(e.target),i=$.datepicker._get(t,"timepicker");if(i&&i._defaults.timeOnly&&t.input.val()!==t.lastVal)try{$.datepicker._updateDatepicker(t)}catch(s){$.timepicker.log(s)}return $.datepicker._base_doKeyUp(e)},$.datepicker._base_gotoToday=$.datepicker._gotoToday,$.datepicker._gotoToday=function(e){var t=this._getInst($(e)[0]);t.dpDiv,this._base_gotoToday(e);var i=this._get(t,"timepicker");selectLocalTimezone(i);var s=new Date;this._setTime(t,s),this._setDate(t,s)},$.datepicker._disableTimepickerDatepicker=function(e){var t=this._getInst(e);if(t){var i=this._get(t,"timepicker");$(e).datepicker("getDate"),i&&(t.settings.showTimepicker=!1,i._defaults.showTimepicker=!1,i._updateDateTime(t))}},$.datepicker._enableTimepickerDatepicker=function(e){var t=this._getInst(e);if(t){var i=this._get(t,"timepicker");$(e).datepicker("getDate"),i&&(t.settings.showTimepicker=!0,i._defaults.showTimepicker=!0,i._addTimePicker(t),i._updateDateTime(t))}},$.datepicker._setTime=function(e,t){var i=this._get(e,"timepicker");if(i){var s=i._defaults;
|
5 |
+
i.hour=t?t.getHours():s.hour,i.minute=t?t.getMinutes():s.minute,i.second=t?t.getSeconds():s.second,i.millisec=t?t.getMilliseconds():s.millisec,i.microsec=t?t.getMicroseconds():s.microsec,i._limitMinMaxDateTime(e,!0),i._onTimeChange(),i._updateDateTime(e)}},$.datepicker._setTimeDatepicker=function(e,t,i){var s=this._getInst(e);if(s){var a=this._get(s,"timepicker");if(a){this._setDateFromField(s);var n;t&&("string"==typeof t?(a._parseTime(t,i),n=new Date,n.setHours(a.hour,a.minute,a.second,a.millisec),n.setMicroseconds(a.microsec)):(n=new Date(t.getTime()),n.setMicroseconds(t.getMicroseconds())),"Invalid Date"==""+n&&(n=void 0),this._setTime(s,n))}}},$.datepicker._base_setDateDatepicker=$.datepicker._setDateDatepicker,$.datepicker._setDateDatepicker=function(e,t){var i=this._getInst(e),s=t;if(i){"string"==typeof t&&(s=new Date(t),s.getTime()||(this._base_setDateDatepicker.apply(this,arguments),s=$(e).datepicker("getDate")));var a,n=this._get(i,"timepicker");s instanceof Date?(a=new Date(s.getTime()),a.setMicroseconds(s.getMicroseconds())):a=s,n&&a&&(n.support.timezone||null!==n._defaults.timezone||(n.timezone=-1*a.getTimezoneOffset()),s=$.timepicker.timezoneAdjust(s,n.timezone),a=$.timepicker.timezoneAdjust(a,n.timezone)),this._updateDatepicker(i),this._base_setDateDatepicker.apply(this,arguments),this._setTimeDatepicker(e,a,!0)}},$.datepicker._base_getDateDatepicker=$.datepicker._getDateDatepicker,$.datepicker._getDateDatepicker=function(e,t){var i=this._getInst(e);if(i){var s=this._get(i,"timepicker");if(s){void 0===i.lastVal&&this._setDateFromField(i,t);var a=this._getDate(i);return a&&s._parseTime($(e).val(),s.timeOnly)&&(a.setHours(s.hour,s.minute,s.second,s.millisec),a.setMicroseconds(s.microsec),null!=s.timezone&&(s.support.timezone||null!==s._defaults.timezone||(s.timezone=-1*a.getTimezoneOffset()),a=$.timepicker.timezoneAdjust(a,s.timezone))),a}return this._base_getDateDatepicker(e,t)}},$.datepicker._base_parseDate=$.datepicker.parseDate,$.datepicker.parseDate=function(e,t,i){var s;try{s=this._base_parseDate(e,t,i)}catch(a){if(!(a.indexOf(":")>=0))throw a;s=this._base_parseDate(e,t.substring(0,t.length-(a.length-a.indexOf(":")-2)),i),$.timepicker.log("Error parsing the date string: "+a+"\ndate string = "+t+"\ndate format = "+e)}return s},$.datepicker._base_formatDate=$.datepicker._formatDate,$.datepicker._formatDate=function(e){var t=this._get(e,"timepicker");return t?(t._updateDateTime(e),t.$input.val()):this._base_formatDate(e)},$.datepicker._base_optionDatepicker=$.datepicker._optionDatepicker,$.datepicker._optionDatepicker=function(e,t,i){var s,a=this._getInst(e);if(!a)return null;var n=this._get(a,"timepicker");if(n){var r,l,o,c,u=null,m=null,d=null,h=n._defaults.evnts,p={};if("string"==typeof t){if("minDate"===t||"minDateTime"===t)u=i;else if("maxDate"===t||"maxDateTime"===t)m=i;else if("onSelect"===t)d=i;else if(h.hasOwnProperty(t)){if(i===void 0)return h[t];p[t]=i,s={}}}else if("object"==typeof t){t.minDate?u=t.minDate:t.minDateTime?u=t.minDateTime:t.maxDate?m=t.maxDate:t.maxDateTime&&(m=t.maxDateTime);for(r in h)h.hasOwnProperty(r)&&t[r]&&(p[r]=t[r])}for(r in p)p.hasOwnProperty(r)&&(h[r]=p[r],s||(s=$.extend({},t)),delete s[r]);if(s&&isEmptyObject(s))return;if(u?(u=0===u?new Date:new Date(u),n._defaults.minDate=u,n._defaults.minDateTime=u):m?(m=0===m?new Date:new Date(m),n._defaults.maxDate=m,n._defaults.maxDateTime=m):d&&(n._defaults.onSelect=d),u||m)return c=$(e),o=c.datetimepicker("getDate"),l=this._base_optionDatepicker.call($.datepicker,e,s||t,i),c.datetimepicker("setDate",o),l}return void 0===i?this._base_optionDatepicker.call($.datepicker,e,t):this._base_optionDatepicker.call($.datepicker,e,s||t,i)};var isEmptyObject=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0},extendRemove=function(e,t){$.extend(e,t);for(var i in t)(null===t[i]||void 0===t[i])&&(e[i]=t[i]);return e},detectSupport=function(e){var t=e.replace(/'.*?'/g,"").toLowerCase(),i=function(e,t){return-1!==e.indexOf(t)?!0:!1};return{hour:i(t,"h"),minute:i(t,"m"),second:i(t,"s"),millisec:i(t,"l"),microsec:i(t,"c"),timezone:i(t,"z"),ampm:i(t,"t")&&i(e,"h"),iso8601:i(e,"Z")}},convert24to12=function(e){return e%=12,0===e&&(e=12),e+""},computeEffectiveSetting=function(e,t){return e&&e[t]?e[t]:$.timepicker._defaults[t]},splitDateTime=function(e,t){var i=computeEffectiveSetting(t,"separator"),s=computeEffectiveSetting(t,"timeFormat"),a=s.split(i),n=a.length,r=e.split(i),l=r.length;return l>1?{dateString:r.splice(0,l-n).join(i),timeString:r.splice(0,n).join(i)}:{dateString:e,timeString:""}},parseDateTimeInternal=function(e,t,i,s,a){var n,r,l;if(r=splitDateTime(i,a),n=$.datepicker._base_parseDate(e,r.dateString,s),""===r.timeString)return{date:n};if(l=$.datepicker.parseTime(t,r.timeString,a),!l)throw"Wrong time format";return{date:n,timeObj:l}},selectLocalTimezone=function(e,t){if(e&&e.timezone_select){var i=t||new Date;e.timezone_select.val(-i.getTimezoneOffset())}};$.timepicker=new Timepicker,$.timepicker.timezoneOffsetString=function(e,t){if(isNaN(e)||e>840||-720>e)return e;var i=e,s=i%60,a=(i-s)/60,n=t?":":"",r=(i>=0?"+":"-")+("0"+Math.abs(a)).slice(-2)+n+("0"+Math.abs(s)).slice(-2);return"+00:00"===r?"Z":r},$.timepicker.timezoneOffsetNumber=function(e){var t=(""+e).replace(":","");return"Z"===t.toUpperCase()?0:/^(\-|\+)\d{4}$/.test(t)?("-"===t.substr(0,1)?-1:1)*(60*parseInt(t.substr(1,2),10)+parseInt(t.substr(3,2),10)):e},$.timepicker.timezoneAdjust=function(e,t){var i=$.timepicker.timezoneOffsetNumber(t);return isNaN(i)||e.setMinutes(e.getMinutes()+-e.getTimezoneOffset()-i),e},$.timepicker.timeRange=function(e,t,i){return $.timepicker.handleRange("timepicker",e,t,i)},$.timepicker.datetimeRange=function(e,t,i){$.timepicker.handleRange("datetimepicker",e,t,i)},$.timepicker.dateRange=function(e,t,i){$.timepicker.handleRange("datepicker",e,t,i)},$.timepicker.handleRange=function(e,t,i,s){function a(a,n){var r=t[e]("getDate"),l=i[e]("getDate"),o=a[e]("getDate");if(null!==r){var c=new Date(r.getTime()),u=new Date(r.getTime());c.setMilliseconds(c.getMilliseconds()+s.minInterval),u.setMilliseconds(u.getMilliseconds()+s.maxInterval),s.minInterval>0&&c>l?i[e]("setDate",c):s.maxInterval>0&&l>u?i[e]("setDate",u):r>l&&n[e]("setDate",o)}}function n(t,i,a){if(t.val()){var n=t[e].call(t,"getDate");null!==n&&s.minInterval>0&&("minDate"===a&&n.setMilliseconds(n.getMilliseconds()+s.minInterval),"maxDate"===a&&n.setMilliseconds(n.getMilliseconds()-s.minInterval)),n.getTime&&i[e].call(i,"option",a,n)}}s=$.extend({},{minInterval:0,maxInterval:0,start:{},end:{}},s);var r=!1;return"timepicker"===e&&(r=!0,e="datetimepicker"),$.fn[e].call(t,$.extend({timeOnly:r,onClose:function(){a($(this),i)},onSelect:function(){n($(this),i,"minDate")}},s,s.start)),$.fn[e].call(i,$.extend({timeOnly:r,onClose:function(){a($(this),t)},onSelect:function(){n($(this),t,"maxDate")}},s,s.end)),a(t,i),n(t,i,"minDate"),n(i,t,"maxDate"),$([t.get(0),i.get(0)])},$.timepicker.log=function(){window.console&&window.console.log.apply(window.console,Array.prototype.slice.call(arguments))},$.timepicker._util={_extendRemove:extendRemove,_isEmptyObject:isEmptyObject,_convert24to12:convert24to12,_detectSupport:detectSupport,_selectLocalTimezone:selectLocalTimezone,_computeEffectiveSetting:computeEffectiveSetting,_splitDateTime:splitDateTime,_parseDateTimeInternal:parseDateTimeInternal},Date.prototype.getMicroseconds||(Date.prototype.microseconds=0,Date.prototype.getMicroseconds=function(){return this.microseconds},Date.prototype.setMicroseconds=function(e){return this.setMilliseconds(this.getMilliseconds()+Math.floor(e/1e3)),this.microseconds=e%1e3,this}),$.timepicker.version="1.5.0"}})(jQuery);
|
includes/admin/meta-box/js/map-frontend.js
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* global google, jQuery */
|
2 |
+
|
3 |
+
jQuery( function ( $ )
|
4 |
+
{
|
5 |
+
'use strict';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Callback function for Google Maps Lazy Load library to display map
|
9 |
+
*
|
10 |
+
* @return void
|
11 |
+
*/
|
12 |
+
function displayMap()
|
13 |
+
{
|
14 |
+
var $container = $( this ),
|
15 |
+
options = $container.data( 'map_options' );
|
16 |
+
|
17 |
+
var mapOptions = options.js_options,
|
18 |
+
center = new google.maps.LatLng( options.latitude, options.longitude ),
|
19 |
+
map;
|
20 |
+
|
21 |
+
switch ( mapOptions.mapTypeId )
|
22 |
+
{
|
23 |
+
case 'ROADMAP':
|
24 |
+
mapOptions.mapTypeId = google.maps.MapTypeId.ROADMAP;
|
25 |
+
break;
|
26 |
+
case 'SATELLITE':
|
27 |
+
mapOptions.mapTypeId = google.maps.MapTypeId.SATELLITE;
|
28 |
+
break;
|
29 |
+
case 'HYBRID':
|
30 |
+
mapOptions.mapTypeId = google.maps.MapTypeId.HYBRID;
|
31 |
+
break;
|
32 |
+
case 'TERRAIN':
|
33 |
+
mapOptions.mapTypeId = google.maps.MapTypeId.TERRAIN;
|
34 |
+
break;
|
35 |
+
}
|
36 |
+
mapOptions.center = center;
|
37 |
+
map = new google.maps.Map( this, mapOptions );
|
38 |
+
|
39 |
+
// Set marker
|
40 |
+
if ( options.marker )
|
41 |
+
{
|
42 |
+
var marker = new google.maps.Marker( {
|
43 |
+
position: center,
|
44 |
+
map : map
|
45 |
+
} );
|
46 |
+
|
47 |
+
// Set marker title
|
48 |
+
if ( options.marker_title )
|
49 |
+
{
|
50 |
+
marker.setTitle( options.marker_title );
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
// Set info window
|
55 |
+
if ( options.info_window )
|
56 |
+
{
|
57 |
+
var infoWindow = new google.maps.InfoWindow( {
|
58 |
+
content : options.info_window,
|
59 |
+
minWidth: 200
|
60 |
+
} );
|
61 |
+
|
62 |
+
google.maps.event.addListener( marker, 'click', function ()
|
63 |
+
{
|
64 |
+
infoWindow.open( map, marker );
|
65 |
+
} );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
// Loop through all map instances and display them
|
70 |
+
$( '.mashsb-rwmb-map-canvas' ).each( displayMap );
|
71 |
+
} );
|
includes/admin/meta-box/js/map.js
ADDED
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
// Use function construction to store map & DOM elements separately for each instance
|
6 |
+
var MapField = function ( $container )
|
7 |
+
{
|
8 |
+
this.$container = $container;
|
9 |
+
};
|
10 |
+
|
11 |
+
// Use prototype for better performance
|
12 |
+
MapField.prototype = {
|
13 |
+
// Initialize everything
|
14 |
+
init : function ()
|
15 |
+
{
|
16 |
+
this.initDomElements();
|
17 |
+
this.initMapElements();
|
18 |
+
|
19 |
+
this.initMarkerPosition();
|
20 |
+
this.addListeners();
|
21 |
+
this.autocomplete();
|
22 |
+
},
|
23 |
+
|
24 |
+
// Initialize DOM elements
|
25 |
+
initDomElements : function ()
|
26 |
+
{
|
27 |
+
this.canvas = this.$container.find( '.mashsb-rwmb-map-canvas' )[0];
|
28 |
+
this.$coordinate = this.$container.find( '.mashsb-rwmb-map-coordinate' );
|
29 |
+
this.$findButton = this.$container.find( '.mashsb-rwmb-map-goto-address-button' );
|
30 |
+
this.addressField = this.$findButton.val();
|
31 |
+
},
|
32 |
+
|
33 |
+
// Initialize map elements
|
34 |
+
initMapElements : function ()
|
35 |
+
{
|
36 |
+
var defaultLoc = $( this.canvas ).data( 'default-loc' ),
|
37 |
+
latLng;
|
38 |
+
|
39 |
+
defaultLoc = defaultLoc ? defaultLoc.split( ',' ) : [53.346881, -6.258860];
|
40 |
+
latLng = new google.maps.LatLng( defaultLoc[0], defaultLoc[1] ); // Initial position for map
|
41 |
+
|
42 |
+
this.map = new google.maps.Map( this.canvas, {
|
43 |
+
center : latLng,
|
44 |
+
zoom : 14,
|
45 |
+
streetViewControl: 0,
|
46 |
+
mapTypeId : google.maps.MapTypeId.ROADMAP
|
47 |
+
} );
|
48 |
+
this.marker = new google.maps.Marker( { position: latLng, map: this.map, draggable: true } );
|
49 |
+
this.geocoder = new google.maps.Geocoder();
|
50 |
+
},
|
51 |
+
|
52 |
+
// Initialize marker position
|
53 |
+
initMarkerPosition: function ()
|
54 |
+
{
|
55 |
+
var coord = this.$coordinate.val(),
|
56 |
+
l,
|
57 |
+
zoom;
|
58 |
+
|
59 |
+
if ( coord )
|
60 |
+
{
|
61 |
+
l = coord.split( ',' );
|
62 |
+
this.marker.setPosition( new google.maps.LatLng( l[0], l[1] ) );
|
63 |
+
|
64 |
+
zoom = l.length > 2 ? parseInt( l[2], 10 ) : 14;
|
65 |
+
|
66 |
+
this.map.setCenter( this.marker.position );
|
67 |
+
this.map.setZoom( zoom );
|
68 |
+
}
|
69 |
+
else if ( this.addressField )
|
70 |
+
{
|
71 |
+
this.geocodeAddress();
|
72 |
+
}
|
73 |
+
},
|
74 |
+
|
75 |
+
// Add event listeners for 'click' & 'drag'
|
76 |
+
addListeners : function ()
|
77 |
+
{
|
78 |
+
var that = this;
|
79 |
+
google.maps.event.addListener( this.map, 'click', function ( event )
|
80 |
+
{
|
81 |
+
that.marker.setPosition( event.latLng );
|
82 |
+
that.updateCoordinate( event.latLng );
|
83 |
+
} );
|
84 |
+
google.maps.event.addListener( this.marker, 'drag', function ( event )
|
85 |
+
{
|
86 |
+
that.updateCoordinate( event.latLng );
|
87 |
+
} );
|
88 |
+
|
89 |
+
this.$findButton.on( 'click', function ()
|
90 |
+
{
|
91 |
+
that.geocodeAddress();
|
92 |
+
return false;
|
93 |
+
} );
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Add a custom event that allows other scripts to refresh the maps when needed
|
97 |
+
* For example: when maps is in tabs or hidden div (this is known issue of Google Maps)
|
98 |
+
*
|
99 |
+
* @see https://developers.google.com/maps/documentation/javascript/reference
|
100 |
+
* ('resize' Event)
|
101 |
+
*/
|
102 |
+
$( window ).on( 'rwmb_map_refresh', function()
|
103 |
+
{
|
104 |
+
that.refreshMap();
|
105 |
+
} );
|
106 |
+
|
107 |
+
//Refresh on meta box hide and show
|
108 |
+
$( document ).on( 'postbox-toggled', function() {
|
109 |
+
that.refreshMap();
|
110 |
+
} );
|
111 |
+
},
|
112 |
+
|
113 |
+
refreshMap: function()
|
114 |
+
{
|
115 |
+
var zoom = this.map.getZoom(),
|
116 |
+
center = this.map.getCenter();
|
117 |
+
|
118 |
+
if ( this.map )
|
119 |
+
{
|
120 |
+
google.maps.event.trigger( this.map, 'resize' );
|
121 |
+
this.map.setZoom( zoom );
|
122 |
+
this.map.setCenter( center );
|
123 |
+
}
|
124 |
+
},
|
125 |
+
|
126 |
+
// Autocomplete address
|
127 |
+
autocomplete : function ()
|
128 |
+
{
|
129 |
+
var that = this;
|
130 |
+
|
131 |
+
// No address field or more than 1 address fields, ignore
|
132 |
+
if ( !this.addressField || this.addressField.split( ',' ).length > 1 )
|
133 |
+
{
|
134 |
+
return;
|
135 |
+
}
|
136 |
+
|
137 |
+
$( '#' + this.addressField ).autocomplete( {
|
138 |
+
source: function ( request, response )
|
139 |
+
{
|
140 |
+
that.geocoder.geocode( {
|
141 |
+
'address': request.term
|
142 |
+
}, function ( results )
|
143 |
+
{
|
144 |
+
response( $.map( results, function ( item )
|
145 |
+
{
|
146 |
+
return {
|
147 |
+
label : item.formatted_address,
|
148 |
+
value : item.formatted_address,
|
149 |
+
latitude : item.geometry.location.lat(),
|
150 |
+
longitude: item.geometry.location.lng()
|
151 |
+
};
|
152 |
+
} ) );
|
153 |
+
} );
|
154 |
+
},
|
155 |
+
select: function ( event, ui )
|
156 |
+
{
|
157 |
+
var latLng = new google.maps.LatLng( ui.item.latitude, ui.item.longitude );
|
158 |
+
|
159 |
+
that.map.setCenter( latLng );
|
160 |
+
that.marker.setPosition( latLng );
|
161 |
+
that.updateCoordinate( latLng );
|
162 |
+
}
|
163 |
+
} );
|
164 |
+
},
|
165 |
+
|
166 |
+
// Update coordinate to input field
|
167 |
+
updateCoordinate : function ( latLng )
|
168 |
+
{
|
169 |
+
this.$coordinate.val( latLng.lat() + ',' + latLng.lng() );
|
170 |
+
},
|
171 |
+
|
172 |
+
// Find coordinates by address
|
173 |
+
// Find coordinates by address
|
174 |
+
geocodeAddress : function ()
|
175 |
+
{
|
176 |
+
var address,
|
177 |
+
addressList = [],
|
178 |
+
fieldList = this.addressField.split( ',' ),
|
179 |
+
loop,
|
180 |
+
that = this;
|
181 |
+
|
182 |
+
for ( loop = 0; loop < fieldList.length; loop++ )
|
183 |
+
{
|
184 |
+
addressList[loop] = jQuery( '#' + fieldList[loop] ).val();
|
185 |
+
}
|
186 |
+
|
187 |
+
address = addressList.join( ',' ).replace( /\n/g, ',' ).replace( /,,/g, ',' );
|
188 |
+
|
189 |
+
if ( address )
|
190 |
+
{
|
191 |
+
this.geocoder.geocode( { 'address': address }, function ( results, status )
|
192 |
+
{
|
193 |
+
if ( status === google.maps.GeocoderStatus.OK )
|
194 |
+
{
|
195 |
+
that.map.setCenter( results[0].geometry.location );
|
196 |
+
that.marker.setPosition( results[0].geometry.location );
|
197 |
+
that.updateCoordinate( results[0].geometry.location );
|
198 |
+
}
|
199 |
+
} );
|
200 |
+
}
|
201 |
+
}
|
202 |
+
};
|
203 |
+
|
204 |
+
$( function ()
|
205 |
+
{
|
206 |
+
$( '.mashsb-rwmb-map-field' ).each( function ()
|
207 |
+
{
|
208 |
+
var field = new MapField( $( this ) );
|
209 |
+
field.init();
|
210 |
+
|
211 |
+
$( this ).data( 'mapController', field );
|
212 |
+
|
213 |
+
} );
|
214 |
+
|
215 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', function ()
|
216 |
+
{
|
217 |
+
$( '.mashsb-rwmb-map-field' ).each( function ()
|
218 |
+
{
|
219 |
+
var field = new MapField( $( this ) );
|
220 |
+
field.init();
|
221 |
+
|
222 |
+
$( this ).data( 'mapController', field );
|
223 |
+
} );
|
224 |
+
} );
|
225 |
+
} );
|
226 |
+
|
227 |
+
})( jQuery );
|
includes/admin/meta-box/js/media.js
ADDED
@@ -0,0 +1,451 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
window.rwmb = window.rwmb || {};
|
2 |
+
|
3 |
+
jQuery(function ($)
|
4 |
+
{
|
5 |
+
'use strict';
|
6 |
+
|
7 |
+
var views = rwmb.views = rwmb.views || {},
|
8 |
+
MediaField, MediaList, MediaItem, MediaButton, MediaStatus;
|
9 |
+
rwmb.test = 'spoon';
|
10 |
+
|
11 |
+
MediaList = views.MediaList = Backbone.View.extend({
|
12 |
+
tagName: 'ul',
|
13 |
+
className: 'mashsb-rwmb-media-list',
|
14 |
+
addItemView: function (item)
|
15 |
+
{
|
16 |
+
if (!this.itemViews[item.cid])
|
17 |
+
{
|
18 |
+
this.itemViews[item.cid] = new this.itemView({
|
19 |
+
model: item,
|
20 |
+
collection: this.collection,
|
21 |
+
props: this.props
|
22 |
+
});
|
23 |
+
}
|
24 |
+
this.$el.append(this.itemViews[item.cid].el);
|
25 |
+
},
|
26 |
+
render: function ()
|
27 |
+
{
|
28 |
+
this.$el.empty();
|
29 |
+
this.collection.each(this.addItemView);
|
30 |
+
|
31 |
+
},
|
32 |
+
initialize: function (options)
|
33 |
+
{
|
34 |
+
var that = this;
|
35 |
+
this.itemViews = {};
|
36 |
+
this.props = options.props;
|
37 |
+
this.itemView = options.itemView || MediaItem;
|
38 |
+
|
39 |
+
this.listenTo(this.collection, 'add', this.addItemView);
|
40 |
+
|
41 |
+
this.listenTo(this.collection, 'remove', function (item, collection)
|
42 |
+
{
|
43 |
+
if (this.itemViews[item.cid])
|
44 |
+
{
|
45 |
+
this.itemViews[item.cid].remove();
|
46 |
+
delete this.itemViews[item.cid];
|
47 |
+
}
|
48 |
+
});
|
49 |
+
|
50 |
+
//Sort media using sortable
|
51 |
+
this.initSort();
|
52 |
+
|
53 |
+
this.render();
|
54 |
+
},
|
55 |
+
initSort: function ()
|
56 |
+
{
|
57 |
+
this.$el.sortable({delay: 150});
|
58 |
+
}
|
59 |
+
});
|
60 |
+
|
61 |
+
MediaField = views.MediaField = Backbone.View.extend({
|
62 |
+
initialize: function (options)
|
63 |
+
{
|
64 |
+
var that = this;
|
65 |
+
this.$input = $(options.input);
|
66 |
+
this.values = this.$input.val().split(',');
|
67 |
+
this.props = new Backbone.Model(this.$el.data());
|
68 |
+
this.props.set('fieldName', this.$input.attr('name'));
|
69 |
+
|
70 |
+
//Create collection
|
71 |
+
this.collection = new wp.media.model.Attachments();
|
72 |
+
|
73 |
+
//Create views
|
74 |
+
this.createList();
|
75 |
+
this.createAddButton()
|
76 |
+
this.createStatus();
|
77 |
+
|
78 |
+
|
79 |
+
//Render
|
80 |
+
this.render();
|
81 |
+
|
82 |
+
//Limit max files
|
83 |
+
this.listenTo(this.collection, 'add', function (item, collection)
|
84 |
+
{
|
85 |
+
var maxFiles = this.props.get('maxFiles');
|
86 |
+
if (maxFiles > 0 && this.collection.length > maxFiles)
|
87 |
+
{
|
88 |
+
this.collection.pop();
|
89 |
+
}
|
90 |
+
//Reset some styles
|
91 |
+
if (this.collection.length === 1) {
|
92 |
+
mashsb_reset_new(this);
|
93 |
+
}
|
94 |
+
});
|
95 |
+
|
96 |
+
|
97 |
+
//Load initial media
|
98 |
+
if (!_.isEmpty(this.values))
|
99 |
+
{
|
100 |
+
this.collection.props.set({
|
101 |
+
query: true,
|
102 |
+
include: this.values,
|
103 |
+
orderby: 'post__in',
|
104 |
+
order: 'ASC',
|
105 |
+
type: this.props.get('mimeType'),
|
106 |
+
perPage: this.props.get('maxFiles') || -1
|
107 |
+
});
|
108 |
+
this.collection.more();
|
109 |
+
|
110 |
+
//Reset some styles after initial loading images
|
111 |
+
if (this.collection.length === 1) {
|
112 |
+
mashsb_reset_new(this);
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
//Listen for destroy event on input
|
117 |
+
this.$input
|
118 |
+
.on('remove', function () {
|
119 |
+
if (that.props.get('forceDelete'))
|
120 |
+
{
|
121 |
+
_.each(_.clone(that.collection.models), function (model)
|
122 |
+
{
|
123 |
+
model.destroy();
|
124 |
+
});
|
125 |
+
}
|
126 |
+
})
|
127 |
+
},
|
128 |
+
createList: function ()
|
129 |
+
{
|
130 |
+
this.list = new MediaList({collection: this.collection, props: this.props});
|
131 |
+
},
|
132 |
+
createAddButton: function ()
|
133 |
+
{
|
134 |
+
this.addButton = new MediaButton({collection: this.collection, props: this.props});
|
135 |
+
},
|
136 |
+
createStatus: function ()
|
137 |
+
{
|
138 |
+
this.status = new MediaStatus({collection: this.collection, props: this.props});
|
139 |
+
},
|
140 |
+
render: function ()
|
141 |
+
{
|
142 |
+
//Empty then add parts
|
143 |
+
this.$el
|
144 |
+
.empty()
|
145 |
+
.append(
|
146 |
+
this.list.el,
|
147 |
+
this.addButton.el,
|
148 |
+
this.status.el
|
149 |
+
);
|
150 |
+
|
151 |
+
}
|
152 |
+
});
|
153 |
+
|
154 |
+
MediaStatus = views.MediaStatus = Backbone.View.extend({
|
155 |
+
tagName: 'span',
|
156 |
+
className: 'mashsb-rwmb-media-status',
|
157 |
+
template: wp.template('mashsb-rwmb-media-status'),
|
158 |
+
initialize: function (options)
|
159 |
+
{
|
160 |
+
this.props = options.props;
|
161 |
+
this.listenTo(this.collection, 'add remove reset', this.render);
|
162 |
+
this.render();
|
163 |
+
},
|
164 |
+
render: function ()
|
165 |
+
{
|
166 |
+
var data = {
|
167 |
+
items: this.collection.length,
|
168 |
+
maxFiles: this.props.get('maxFiles')
|
169 |
+
};
|
170 |
+
this.$el.html(this.template(data));
|
171 |
+
|
172 |
+
}
|
173 |
+
});
|
174 |
+
|
175 |
+
MediaButton = views.MediaButton = Backbone.View.extend({
|
176 |
+
className: 'mashsb-rwmb-add-media button',
|
177 |
+
tagName: 'a',
|
178 |
+
events: {
|
179 |
+
click: function ()
|
180 |
+
{
|
181 |
+
var models = this.collection.models;
|
182 |
+
|
183 |
+
// Destroy the previous collection frame.
|
184 |
+
if (this._frame)
|
185 |
+
{
|
186 |
+
//this.stopListening( this._frame );
|
187 |
+
this._frame.dispose();
|
188 |
+
}
|
189 |
+
|
190 |
+
this._frame = wp.media({
|
191 |
+
className: 'media-frame mashsb-rwmb-media-frame',
|
192 |
+
multiple: true,
|
193 |
+
title: 'Select Media',
|
194 |
+
editing: true,
|
195 |
+
library: {
|
196 |
+
type: this.props.get('mimeType')
|
197 |
+
}
|
198 |
+
});
|
199 |
+
|
200 |
+
this._frame.on('select', function ()
|
201 |
+
{
|
202 |
+
var selection = this._frame.state().get('selection');
|
203 |
+
this.collection.add(selection.models);
|
204 |
+
mashsb_reset_remove(this);
|
205 |
+
}, this);
|
206 |
+
|
207 |
+
this._frame.open();
|
208 |
+
}
|
209 |
+
},
|
210 |
+
render: function ()
|
211 |
+
{
|
212 |
+
this.$el.text(i18nRwmbMedia.add);
|
213 |
+
return this;
|
214 |
+
},
|
215 |
+
initialize: function (options)
|
216 |
+
{
|
217 |
+
this.props = options.props;
|
218 |
+
this.listenTo(this.collection, 'add remove reset', function ()
|
219 |
+
{
|
220 |
+
var maxFiles = this.props.get('maxFiles');
|
221 |
+
|
222 |
+
if (maxFiles > 0)
|
223 |
+
{
|
224 |
+
this.$el.toggle(this.collection.length < maxFiles);
|
225 |
+
}
|
226 |
+
});
|
227 |
+
|
228 |
+
this.render();
|
229 |
+
}
|
230 |
+
});
|
231 |
+
|
232 |
+
MediaItem = views.MediaItem = Backbone.View.extend({
|
233 |
+
tagName: 'li',
|
234 |
+
className: 'mashsb-rwmb-media-item',
|
235 |
+
template: wp.template('mashsb-rwmb-media-item'),
|
236 |
+
initialize: function (options)
|
237 |
+
{
|
238 |
+
this.props = options.props;
|
239 |
+
this.render();
|
240 |
+
this.listenTo(this.model, 'destroy', function (model)
|
241 |
+
{
|
242 |
+
this.collection.remove(this.model);
|
243 |
+
})
|
244 |
+
.listenTo(this.model, 'change', function ()
|
245 |
+
{
|
246 |
+
this.render();
|
247 |
+
});
|
248 |
+
},
|
249 |
+
events: {
|
250 |
+
'click .mashsb-rwmb-remove-media': function (e)
|
251 |
+
{
|
252 |
+
this.collection.remove(this.model);
|
253 |
+
if (this.props.get('forceDelete'))
|
254 |
+
{
|
255 |
+
this.model.destroy();
|
256 |
+
}
|
257 |
+
mashsb_reset_remove(this);
|
258 |
+
return false;
|
259 |
+
}
|
260 |
+
},
|
261 |
+
render: function ()
|
262 |
+
{
|
263 |
+
var attrs = _.clone(this.model.attributes);
|
264 |
+
attrs.fieldName = this.props.get('fieldName');
|
265 |
+
this.$el.html(this.template(attrs));
|
266 |
+
return this;
|
267 |
+
}
|
268 |
+
});
|
269 |
+
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Initialize media fields
|
273 |
+
* @return void
|
274 |
+
*/
|
275 |
+
function initMediaField()
|
276 |
+
{
|
277 |
+
new MediaField({input: this, el: $(this).siblings('div.mashsb-rwmb-media-view')});
|
278 |
+
}
|
279 |
+
|
280 |
+
|
281 |
+
$(':input.mashsb-rwmb-file_advanced').each(initMediaField);
|
282 |
+
$('.mashsb-rwmb-input')
|
283 |
+
.on('clone', ':input.mashsb-rwmb-file_advanced', initMediaField);
|
284 |
+
});
|
285 |
+
|
286 |
+
|
287 |
+
function mashsb_reset_remove(elem) {
|
288 |
+
console.log(elem);
|
289 |
+
jQuery(elem.el).prev().css({'height': '100%'});
|
290 |
+
jQuery(elem.el).prev().css({'background-image': 'none'});
|
291 |
+
jQuery(elem.el).prev().css({'background-color': '#fff'});
|
292 |
+
}
|
293 |
+
function mashsb_reset_new(elem) {
|
294 |
+
selector = jQuery(elem.el).children('ul');
|
295 |
+
|
296 |
+
selector.css({'height': '100%'});
|
297 |
+
jQuery(elem.el.firstChild).css({'background-image': 'none'});
|
298 |
+
jQuery(elem.el.firstChild).css({'background-color': '#fff'});
|
299 |
+
}
|
300 |
+
|
301 |
+
/**
|
302 |
+
* Remaining og:title characters
|
303 |
+
*
|
304 |
+
* @returns jQuery
|
305 |
+
*/
|
306 |
+
function mashsb_remaining_og_title() {
|
307 |
+
var og_title = jQuery('#mashsb_meta .mashsb-og-title textarea').val();
|
308 |
+
var remaining = 95 - og_title.length;
|
309 |
+
if (og_title.length > 0 && remaining >= 0) {
|
310 |
+
jQuery('#mashsb_meta .mashsb-og-title .mashsb_counter').removeClass('mashsb_exceeded');
|
311 |
+
} else if (og_title.length > 0 && remaining < 0) {
|
312 |
+
jQuery('#mashsb_meta .mashsb-og-title .mashsb_counter').addClass('mashsb_exceeded');
|
313 |
+
} else {
|
314 |
+
jQuery('#mashsb_meta .mashsb-og-title .mashsb_counter').removeClass('mashsb_exceeded');
|
315 |
+
}
|
316 |
+
jQuery('#mashsb_meta .mashsb-og-title .mashsb_remaining').html(remaining);
|
317 |
+
}
|
318 |
+
/**
|
319 |
+
* Remaining og:description characters
|
320 |
+
*
|
321 |
+
* @returns jQuery
|
322 |
+
*/
|
323 |
+
function mashsb_remaining_og_desc() {
|
324 |
+
var og_desc = jQuery('#mashsb_meta .mashsb-og-desc textarea').val();
|
325 |
+
var remaining = 297 - og_desc.length;
|
326 |
+
if (og_desc.length > 0 && remaining >= 0) {
|
327 |
+
jQuery('#mashsb_meta .mashsb-og-desc .mashsb_counter').removeClass('mashsb_exceeded');
|
328 |
+
} else if (og_desc.length > 0 && remaining < 0) {
|
329 |
+
jQuery('#mashsb_meta .mashsb-og-desc .mashsb_counter').addClass('mashsb_exceeded');
|
330 |
+
} else {
|
331 |
+
jQuery('#mashsb_meta .mashsb-og-desc .mashsb_counter').removeClass('mashsb_exceeded');
|
332 |
+
}
|
333 |
+
jQuery('#mashsb_meta .mashsb-og-desc .mashsb_remaining').html(remaining);
|
334 |
+
}
|
335 |
+
|
336 |
+
/**
|
337 |
+
* Return the length of tweet
|
338 |
+
* included a 23 character shortened url
|
339 |
+
*
|
340 |
+
* @param string input
|
341 |
+
* @returns int
|
342 |
+
*/
|
343 |
+
function mashsb_get_tweet_length(input) {
|
344 |
+
var url = input.replace(/\(?(?:(http|https|ftp):\/\/)?(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\W\s]{2,4}|localhost(?=\/)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?/gi, '.......................');
|
345 |
+
return url.length;
|
346 |
+
}
|
347 |
+
|
348 |
+
jQuery(function ($) {
|
349 |
+
|
350 |
+
/**
|
351 |
+
* Remaining twitter characters
|
352 |
+
*
|
353 |
+
* @returns jQuery
|
354 |
+
*/
|
355 |
+
function mashsb_remaining_twitter() {
|
356 |
+
var tweet = $('#mashsb_meta .mashsb-custom-tweet textarea').val();
|
357 |
+
var handle = $('#mashsb_twitter_handle').val();
|
358 |
+
var shortened_post_url = 23; // Twitter is shortening all urls to 23 characters
|
359 |
+
|
360 |
+
if (handle !== 'undefined' && handle.length > 0) {
|
361 |
+
var remaining = 140 - mashsb_get_tweet_length(tweet) - handle.length - shortened_post_url;
|
362 |
+
} else {
|
363 |
+
var remaining = 140 - mashsb_get_tweet_length(tweet) - shortened_post_url;
|
364 |
+
}
|
365 |
+
if (tweet.length > 0 && remaining >= 0) {
|
366 |
+
$('#mashsb_meta .mashsb-custom-tweet .mashsb_counter').removeClass('mashsb_exceeded');
|
367 |
+
}
|
368 |
+
if (tweet.length > 0 && remaining < 0) {
|
369 |
+
$('#mashsb_meta .mashsb-custom-tweet .mashsb_counter').addClass('mashsb_exceeded');
|
370 |
+
} else {
|
371 |
+
$('#mashsb_meta .mashsb-custom-tweet .mashsb_counter').removeClass('mashsb_exceeded');
|
372 |
+
}
|
373 |
+
$('#mashsb_meta .mashsb-custom-tweet .mashsb_remaining').html(remaining);
|
374 |
+
}
|
375 |
+
|
376 |
+
|
377 |
+
if ($('#mashsb_meta.postbox').length) {
|
378 |
+
|
379 |
+
// counter Social Media Title
|
380 |
+
$('#mashsb_meta #mashsb_og_title').after('<div class="mashsb_counter"><span class="mashsb_remaining">60</span> Characters Remaining</div>');
|
381 |
+
|
382 |
+
// counter Social Media Description
|
383 |
+
$('#mashsb_meta #mashsb_og_description').after('<div class="mashsb_counter"><span class="mashsb_remaining">150</span> Characters Remaining</div>');
|
384 |
+
|
385 |
+
// counter Twitter Box
|
386 |
+
$('#mashsb_meta #mashsb_custom_tweet').after('<div class="mashsb_counter"><span class="mashsb_remaining">118</span> Characters Remaining</div>');
|
387 |
+
|
388 |
+
|
389 |
+
mashsb_remaining_og_title();
|
390 |
+
$('#mashsb_meta .mashsb-og-title textarea').on('input', function () {
|
391 |
+
mashsb_remaining_og_title();
|
392 |
+
});
|
393 |
+
|
394 |
+
mashsb_remaining_og_desc();
|
395 |
+
$('#mashsb_meta .mashsb-og-desc textarea').on('input', function () {
|
396 |
+
mashsb_remaining_og_desc();
|
397 |
+
});
|
398 |
+
|
399 |
+
mashsb_remaining_twitter();
|
400 |
+
$('#mashsb_custom_tweet').on('input', function () {
|
401 |
+
mashsb_remaining_twitter();
|
402 |
+
});
|
403 |
+
|
404 |
+
|
405 |
+
var og_image_width = $('#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-og-image .mashsb-rwmb-input').width();
|
406 |
+
var og_image_height = og_image_width * (1 / 1.91);
|
407 |
+
|
408 |
+
var pinterest_width = $('#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-pinterest-image .mashsb-rwmb-input').width();
|
409 |
+
var pinterest_height = pinterest_width * (3 / 2);
|
410 |
+
|
411 |
+
$('#mashsb_meta').prepend('<style>#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-og-image .mashsb-rwmb-input ul{height:' + og_image_height + 'px;}</style>');
|
412 |
+
$('#mashsb_meta').prepend('<style>#mashsb_meta .mashsb-rwmb-field.mashsb-rwmb-image_advanced-wrapper.mashsb-pinterest-image .mashsb-rwmb-input ul{height:' + pinterest_height + 'px;}</style>');
|
413 |
+
|
414 |
+
}
|
415 |
+
|
416 |
+
|
417 |
+
// show / hide helper description
|
418 |
+
$('.mashsb-helper').click(function (e) {
|
419 |
+
e.preventDefault();
|
420 |
+
var icon = $(this),
|
421 |
+
bubble = $(this).next();
|
422 |
+
|
423 |
+
// Close any that are already open
|
424 |
+
$('.mashsb-message').not(bubble).hide();
|
425 |
+
|
426 |
+
var position = icon.position();
|
427 |
+
if (bubble.hasClass('bottom')) {
|
428 |
+
bubble.css({
|
429 |
+
'left': (position.left - bubble.width() / 2) + 'px',
|
430 |
+
'top': (position.top + icon.height() + 9) + 'px'
|
431 |
+
});
|
432 |
+
} else {
|
433 |
+
bubble.css({
|
434 |
+
'left': (position.left + icon.width() + 9) + 'px',
|
435 |
+
'top': (position.top + icon.height() / 2 - 18) + 'px'
|
436 |
+
});
|
437 |
+
}
|
438 |
+
|
439 |
+
bubble.toggle();
|
440 |
+
e.stopPropagation();
|
441 |
+
});
|
442 |
+
|
443 |
+
$('body').click(function () {
|
444 |
+
$('.mashsb-message').hide();
|
445 |
+
});
|
446 |
+
|
447 |
+
$('.mashsb-message').click(function (e) {
|
448 |
+
e.stopPropagation();
|
449 |
+
});
|
450 |
+
|
451 |
+
}(jQuery));
|
includes/admin/meta-box/js/oembed.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
$( '.mashsb-rwmb-oembed-wrapper .spinner' ).hide();
|
6 |
+
|
7 |
+
$( 'body' ).on( 'click', '.mashsb-rwmb-oembed-wrapper .show-embed', function() {
|
8 |
+
var $this = $( this ),
|
9 |
+
$spinner = $this.siblings( '.spinner' ),
|
10 |
+
data = {
|
11 |
+
action: 'rwmb_get_embed',
|
12 |
+
url: $this.siblings( 'input' ).val()
|
13 |
+
};
|
14 |
+
|
15 |
+
$spinner.show();
|
16 |
+
$.post( ajaxurl, data, function( r )
|
17 |
+
{
|
18 |
+
$spinner.hide();
|
19 |
+
$this.siblings( '.embed-code' ).html( r.data );
|
20 |
+
}, 'json' );
|
21 |
+
|
22 |
+
return false;
|
23 |
+
} );
|
24 |
+
} );
|
includes/admin/meta-box/js/range.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Update color picker element
|
7 |
+
* Used for static & dynamic added elements (when clone)
|
8 |
+
*/
|
9 |
+
function update()
|
10 |
+
{
|
11 |
+
var $this = $( this ),
|
12 |
+
$output = $this.siblings( '.mashsb-rwmb-output' );
|
13 |
+
|
14 |
+
$this.on( 'input propertychange change', function( e )
|
15 |
+
{
|
16 |
+
$output.html( $this.val() );
|
17 |
+
} );
|
18 |
+
|
19 |
+
}
|
20 |
+
|
21 |
+
$( ':input.mashsb-rwmb-range' ).each( update );
|
22 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', 'input.mashsb-rwmb-range', update );
|
23 |
+
} );
|
includes/admin/meta-box/js/select-advanced.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Turn select field into beautiful dropdown with select2 library
|
7 |
+
* This function is called when document ready and when clone button is clicked (to update the new cloned field)
|
8 |
+
*
|
9 |
+
* @return void
|
10 |
+
*/
|
11 |
+
function update()
|
12 |
+
{
|
13 |
+
var $this = $( this ),
|
14 |
+
options = $this.data( 'options' );
|
15 |
+
$this.siblings( '.select2-container' ).remove();
|
16 |
+
$this.show().select2( options );
|
17 |
+
|
18 |
+
rwmbSelect.bindEvents( $this );
|
19 |
+
}
|
20 |
+
|
21 |
+
$( ':input.mashsb-rwmb-select_advanced' ).each( update );
|
22 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', ':input.mashsb-rwmb-select_advanced', update );
|
23 |
+
} );
|
includes/admin/meta-box/js/select-tree.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
function update()
|
6 |
+
{
|
7 |
+
var $this = $( this ),
|
8 |
+
val = $this.val(),
|
9 |
+
$selected = $this.siblings( "[data-parent-id='" + val + "']" ),
|
10 |
+
$notSelected = $this.parent().find( '.mashsb-rwmb-select-tree' ).not( $selected );
|
11 |
+
|
12 |
+
$selected.removeClass( 'hidden' );
|
13 |
+
$notSelected
|
14 |
+
.addClass( 'hidden' )
|
15 |
+
.find( 'select' )
|
16 |
+
.prop( 'selectedIndex', 0 );
|
17 |
+
}
|
18 |
+
|
19 |
+
$( '.mashsb-rwmb-input' )
|
20 |
+
.on( 'change', '.mashsb-rwmb-select-tree select', update )
|
21 |
+
.on( 'clone', '.mashsb-rwmb-select-tree select', update );
|
22 |
+
} );
|
includes/admin/meta-box/js/select.js
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ )
|
2 |
+
{
|
3 |
+
'use strict';
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Object stores all necessary methods for select All/None actions
|
7 |
+
* Assign to global variable so we can access to this object from select advanced field
|
8 |
+
*/
|
9 |
+
var select = window.rwmbSelect = {
|
10 |
+
/**
|
11 |
+
* Select all/none for select tag
|
12 |
+
*
|
13 |
+
* @param $input jQuery selector for input wrapper
|
14 |
+
*
|
15 |
+
* @return void
|
16 |
+
*/
|
17 |
+
selectAllNone: function ( $input )
|
18 |
+
{
|
19 |
+
var $element = $input.find( 'select' );
|
20 |
+
|
21 |
+
$input.on( 'click', '.mashsb-rwmb-select-all-none a', function ( e )
|
22 |
+
{
|
23 |
+
e.preventDefault();
|
24 |
+
if ( 'all' == $( this ).data( 'type' ) )
|
25 |
+
{
|
26 |
+
var selected = [];
|
27 |
+
$element.find( 'option' ).each( function ( i, e )
|
28 |
+
{
|
29 |
+
var $value = $( e ).attr( 'value' );
|
30 |
+
|
31 |
+
if ( $value != '' )
|
32 |
+
{
|
33 |
+
selected.push( $value );
|
34 |
+
}
|
35 |
+
} );
|
36 |
+
$element.val( selected ).trigger( 'change' );
|
37 |
+
}
|
38 |
+
else
|
39 |
+
{
|
40 |
+
$element.val( '' );
|
41 |
+
}
|
42 |
+
} );
|
43 |
+
},
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Add event listener for select all/none links when click
|
47 |
+
*
|
48 |
+
* @param $el jQuery element
|
49 |
+
*
|
50 |
+
* @return void
|
51 |
+
*/
|
52 |
+
bindEvents: function ( $el )
|
53 |
+
{
|
54 |
+
var $input = $el.closest( '.mashsb-rwmb-input' ),
|
55 |
+
$clone = $input.find( '.mashsb-rwmb-clone' );
|
56 |
+
|
57 |
+
if ( $clone.length )
|
58 |
+
{
|
59 |
+
$clone.each( function ()
|
60 |
+
{
|
61 |
+
select.selectAllNone( $( this ) );
|
62 |
+
} );
|
63 |
+
}
|
64 |
+
else
|
65 |
+
{
|
66 |
+
select.selectAllNone( $input );
|
67 |
+
}
|
68 |
+
}
|
69 |
+
};
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Update select field when clicking clone button
|
73 |
+
*
|
74 |
+
* @return void
|
75 |
+
*/
|
76 |
+
function update()
|
77 |
+
{
|
78 |
+
select.bindEvents( $( this ) );
|
79 |
+
}
|
80 |
+
|
81 |
+
// Run for select field
|
82 |
+
$( ':input.mashsb-rwmb-select' ).each( update );
|
83 |
+
$( '.mashsb-rwmb-input' ).on( 'clone', ':input.mashsb-rwmb-select', update );
|
84 |
+
} );
|
includes/admin/meta-box/js/select2/i18n/ar.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="الرجاء حذف "+t+" عناصر";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="الرجاء إضافة "+t+" عناصر";return n},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){var t="تستطيع إختيار "+e.maximum+" بنود فقط";return t},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/az.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/bg.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/ca.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/cs.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/da.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/de.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/en.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/es.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/et.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/eu.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/fa.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها میتوانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجهای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/fi.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/fr.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/gl.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/he.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/hi.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/hr.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/hu.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/id.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/is.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/it.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/ja.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/ko.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/lt.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%100>9&&e%100<21||e%10===0?e%10>1?n:r:t}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"ių","ius","į"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"ių","ius","į"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ų","us","ą"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/lv.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/mk.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/ms.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/nb.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/nl.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/pl.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/pt-BR.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/pt.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/ro.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/ru.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/sk.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/sr-Cyrl.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/sr.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/sv.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/th.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/tr.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/uk.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/vi.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/zh-CN.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/i18n/zh-TW.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();
|
includes/admin/meta-box/js/select2/select2.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.slice(0,n.length-1).concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=v.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),n.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(a);else if("exports"===k)u[n]=p.exports(a),s=!0;else if("module"===k)h=u[n]=p.module(a);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(a+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[a],u):void 0,a&&(h&&h.exports!==b&&h.exports!==q[a]?q[a]=h.exports:l===b&&s||(q[a]=l))}else a&&(q[a]=d)},a=c=n=function(a,c,d,e,f){if("string"==typeof a)return p[a]?p[a](c):j(o(a,c).f);if(!a.splice){if(s=a,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(b,a,c,d):setTimeout(function(){m(b,a,c,d)},4),n},n.config=function(a){return n(a)},a._defined=q,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){var e=b[d];"function"==typeof e&&"constructor"!==d&&c.push(d)}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){var a=Array.prototype.unshift;return a.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice;this.listeners=this.listeners||{},a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;d>c;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return e!==f||"hidden"!==f&&"visible"!==f?"scroll"===e||"scroll"===f?!0:d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth:!1},c.escapeMarkup=function(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&d.setClasses()}),b.on("unselect",function(){b.isOpen()&&d.setClasses()}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||(c.which==b.DELETE||c.which==b.BACKSPACE)&&this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">×</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple"))return a.selected=!1,
|
2 |
+
c(a.element).is("option")?(a.element.selected=!1,void this.$element.trigger("change")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(b=c.data(a[0],"data"),null!=b)return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("matcher");return c(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("data-select2-tag",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){var c=(this._lastTag,this.$element.find("option[data-select2-tag]"));c.each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(a,b,c){function d(a){e.trigger("select",{data:a})}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();if(!(a.length<1)){var b=a.data("data");null!=b.element&&b.element.selected||null==b.element&&b.selected||this.trigger("select",{data:b})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="Please enter "+b+" or more characters";return c},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"en"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$eleme
|