From c9261e668a5252ebd6ba5703db57cbbfc82429d8 Mon Sep 17 00:00:00 2001 From: Elliot Condon Date: Tue, 28 Jun 2016 11:24:57 +0200 Subject: [PATCH] 5.3.9.2 --- acf.php | 9 +- admin/field-group.php | 216 +- admin/field-groups.php | 6 +- admin/settings-tools.php | 175 +- admin/update-network.php | 242 ++ admin/update.php | 215 +- admin/views/update-network.php | 17 +- api/api-field.php | 52 +- api/api-helpers.php | 427 ++- api/api-template.php | 57 +- api/api-value.php | 2 + assets/css/acf-global.css | 39 +- assets/css/acf-input.css | 22 +- .../datepicker/images/animated-overlay.gif | Bin 1738 -> 0 bytes .../images/ui-bg_flat_0_2EA2CC_40x100.png | Bin 206 -> 0 bytes .../images/ui-bg_flat_0_E14D43_40x100.png | Bin 206 -> 0 bytes .../images/ui-bg_flat_0_F0F0F0_40x100.png | Bin 230 -> 0 bytes .../images/ui-bg_flat_0_F9F9F9_40x100.png | Bin 230 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 212 -> 0 bytes .../images/ui-bg_flat_0_ffffff_40x100.png | Bin 208 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 208 -> 0 bytes .../ui-bg_highlight-soft_0_ffffff_1x100.png | Bin 203 -> 203 bytes .../images/ui-icons_222222_256x240.png | Bin 6922 -> 0 bytes .../images/ui-icons_2EA2CC_256x240.png | Bin 4549 -> 0 bytes .../images/ui-icons_444444_256x240.png | Bin 6992 -> 6992 bytes .../images/ui-icons_454545_256x240.png | Bin 6992 -> 0 bytes .../images/ui-icons_DDDDDD_256x240.png | Bin 6923 -> 6923 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6299 -> 6299 bytes .../jquery-ui-1.10.4.custom.min.css | 7 - ...ery-ui-1.10.4.custom.css => jquery-ui.css} | 78 +- assets/inc/datepicker/jquery-ui.min.css | 7 + assets/inc/select2/CONTRIBUTING.md | 107 - assets/inc/select2/LICENSE | 18 - assets/inc/select2/README.md | 114 - assets/inc/select2/bower.json | 8 - assets/inc/select2/component.json | 66 - assets/inc/select2/composer.json | 29 - assets/inc/select2/package.json | 20 - assets/inc/select2/release.sh | 79 - assets/inc/select2/select2-bootstrap.css | 87 - assets/inc/select2/select2.jquery.json | 36 - assets/inc/select2/select2_locale_ar.js | 19 - assets/inc/select2/select2_locale_az.js | 20 - assets/inc/select2/select2_locale_bg.js | 20 - assets/inc/select2/select2_locale_ca.js | 19 - assets/inc/select2/select2_locale_cs.js | 51 - assets/inc/select2/select2_locale_da.js | 19 - assets/inc/select2/select2_locale_de.js | 18 - assets/inc/select2/select2_locale_el.js | 19 - .../inc/select2/select2_locale_en.js.template | 20 - assets/inc/select2/select2_locale_es.js | 19 - assets/inc/select2/select2_locale_et.js | 19 - assets/inc/select2/select2_locale_eu.js | 45 - assets/inc/select2/select2_locale_fa.js | 21 - assets/inc/select2/select2_locale_fi.js | 30 - assets/inc/select2/select2_locale_fr.js | 18 - assets/inc/select2/select2_locale_gl.js | 45 - assets/inc/select2/select2_locale_he.js | 19 - assets/inc/select2/select2_locale_hr.js | 24 - assets/inc/select2/select2_locale_hu.js | 17 - assets/inc/select2/select2_locale_id.js | 19 - assets/inc/select2/select2_locale_is.js | 17 - assets/inc/select2/select2_locale_it.js | 17 - assets/inc/select2/select2_locale_ja.js | 17 - assets/inc/select2/select2_locale_ka.js | 19 - assets/inc/select2/select2_locale_ko.js | 19 - assets/inc/select2/select2_locale_lt.js | 26 - assets/inc/select2/select2_locale_lv.js | 19 - assets/inc/select2/select2_locale_mk.js | 19 - assets/inc/select2/select2_locale_ms.js | 19 - assets/inc/select2/select2_locale_nb.js | 22 - assets/inc/select2/select2_locale_nl.js | 17 - assets/inc/select2/select2_locale_pl.js | 54 - assets/inc/select2/select2_locale_pt-BR.js | 18 - assets/inc/select2/select2_locale_pt-PT.js | 17 - assets/inc/select2/select2_locale_ro.js | 17 - assets/inc/select2/select2_locale_rs.js | 19 - assets/inc/select2/select2_locale_ru.js | 23 - assets/inc/select2/select2_locale_sk.js | 50 - assets/inc/select2/select2_locale_sv.js | 19 - assets/inc/select2/select2_locale_th.js | 19 - assets/inc/select2/select2_locale_tr.js | 19 - assets/inc/select2/select2_locale_ug-CN.js | 16 - assets/inc/select2/select2_locale_uk.js | 25 - assets/inc/select2/select2_locale_vi.js | 20 - assets/inc/select2/select2_locale_zh-CN.js | 16 - assets/inc/select2/select2_locale_zh-TW.js | 16 - .../timepicker/jquery-ui-timepicker-addon.css | 30 + .../timepicker/jquery-ui-timepicker-addon.js | 2291 +++++++++++++++ .../jquery-ui-timepicker-addon.min.css | 5 + .../jquery-ui-timepicker-addon.min.js | 5 + assets/js/acf-field-group.js | 118 + assets/js/acf-field-group.min.js | 2 +- assets/js/acf-input.js | 660 ++++- assets/js/acf-input.min.js | 6 +- core/compatibility.php | 52 + core/input.php | 33 +- core/json.php | 11 +- core/local.php | 23 + core/loop.php | 1 + core/updates.php | 384 +++ core/wpml.php | 65 +- fields/date_picker.php | 80 +- fields/date_time_picker.php | 310 ++ fields/page_link.php | 18 +- fields/post_object.php | 102 +- fields/relationship.php | 149 +- fields/select.php | 167 +- fields/taxonomy.php | 50 +- fields/time_picker.php | 182 ++ forms/post.php | 8 +- lang/acf-ar.mo | Bin 0 -> 52835 bytes lang/acf-ar.po | 2600 +++++++++++++++++ lang/acf-de_DE.mo | Bin 46716 -> 49548 bytes lang/acf-de_DE.po | 929 +++--- lang/acf-de_DE_formal.mo | Bin 46824 -> 49728 bytes lang/acf-de_DE_formal.po | 930 +++--- lang/acf-fr_FR.mo | Bin 46351 -> 49409 bytes lang/acf-fr_FR.po | 955 +++--- lang/acf-it_IT.mo | Bin 45233 -> 47725 bytes lang/acf-it_IT.po | 713 +++-- lang/acf-pl_PL.mo | Bin 45218 -> 45672 bytes lang/acf-pl_PL.po | 338 +-- lang/acf-pt_BR.mo | Bin 45962 -> 49055 bytes lang/acf-pt_BR.po | 2128 +++++--------- lang/acf-pt_PT.mo | Bin 46036 -> 48541 bytes lang/acf-pt_PT.po | 738 +++-- lang/acf-ru_RU.mo | Bin 48183 -> 58047 bytes lang/acf-ru_RU.po | 1454 ++++----- lang/acf-sv_SE.mo | Bin 42118 -> 44645 bytes lang/acf-sv_SE.po | 1537 +++++----- lang/acf.pot | 543 ++-- pro/admin/settings-updates.php | 80 +- pro/admin/views/settings-updates.php | 8 +- pro/api/api-pro.php | 8 +- pro/assets/css/acf-pro-input.css | 92 +- pro/assets/js/acf-pro-input.js | 6 +- pro/assets/js/acf-pro-input.min.js | 2 +- pro/core/updates.php | 202 +- pro/fields/repeater.php | 4 +- readme.txt | 29 + 141 files changed, 13779 insertions(+), 7444 deletions(-) create mode 100644 admin/update-network.php delete mode 100644 assets/inc/datepicker/images/animated-overlay.gif delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_0_2EA2CC_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_0_E14D43_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_0_F0F0F0_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_0_F9F9F9_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_0_ffffff_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 assets/inc/datepicker/images/ui-icons_222222_256x240.png delete mode 100644 assets/inc/datepicker/images/ui-icons_2EA2CC_256x240.png delete mode 100644 assets/inc/datepicker/images/ui-icons_454545_256x240.png delete mode 100644 assets/inc/datepicker/jquery-ui-1.10.4.custom.min.css rename assets/inc/datepicker/{jquery-ui-1.10.4.custom.css => jquery-ui.css} (88%) create mode 100644 assets/inc/datepicker/jquery-ui.min.css delete mode 100644 assets/inc/select2/CONTRIBUTING.md delete mode 100644 assets/inc/select2/LICENSE delete mode 100644 assets/inc/select2/README.md delete mode 100644 assets/inc/select2/bower.json delete mode 100644 assets/inc/select2/component.json delete mode 100644 assets/inc/select2/composer.json delete mode 100644 assets/inc/select2/package.json delete mode 100644 assets/inc/select2/release.sh delete mode 100644 assets/inc/select2/select2-bootstrap.css delete mode 100644 assets/inc/select2/select2.jquery.json delete mode 100644 assets/inc/select2/select2_locale_ar.js delete mode 100644 assets/inc/select2/select2_locale_az.js delete mode 100644 assets/inc/select2/select2_locale_bg.js delete mode 100644 assets/inc/select2/select2_locale_ca.js delete mode 100644 assets/inc/select2/select2_locale_cs.js delete mode 100644 assets/inc/select2/select2_locale_da.js delete mode 100644 assets/inc/select2/select2_locale_de.js delete mode 100644 assets/inc/select2/select2_locale_el.js delete mode 100644 assets/inc/select2/select2_locale_en.js.template delete mode 100644 assets/inc/select2/select2_locale_es.js delete mode 100644 assets/inc/select2/select2_locale_et.js delete mode 100644 assets/inc/select2/select2_locale_eu.js delete mode 100644 assets/inc/select2/select2_locale_fa.js delete mode 100644 assets/inc/select2/select2_locale_fi.js delete mode 100644 assets/inc/select2/select2_locale_fr.js delete mode 100644 assets/inc/select2/select2_locale_gl.js delete mode 100644 assets/inc/select2/select2_locale_he.js delete mode 100644 assets/inc/select2/select2_locale_hr.js delete mode 100644 assets/inc/select2/select2_locale_hu.js delete mode 100644 assets/inc/select2/select2_locale_id.js delete mode 100644 assets/inc/select2/select2_locale_is.js delete mode 100644 assets/inc/select2/select2_locale_it.js delete mode 100644 assets/inc/select2/select2_locale_ja.js delete mode 100644 assets/inc/select2/select2_locale_ka.js delete mode 100644 assets/inc/select2/select2_locale_ko.js delete mode 100644 assets/inc/select2/select2_locale_lt.js delete mode 100644 assets/inc/select2/select2_locale_lv.js delete mode 100644 assets/inc/select2/select2_locale_mk.js delete mode 100644 assets/inc/select2/select2_locale_ms.js delete mode 100644 assets/inc/select2/select2_locale_nb.js delete mode 100644 assets/inc/select2/select2_locale_nl.js delete mode 100644 assets/inc/select2/select2_locale_pl.js delete mode 100644 assets/inc/select2/select2_locale_pt-BR.js delete mode 100644 assets/inc/select2/select2_locale_pt-PT.js delete mode 100644 assets/inc/select2/select2_locale_ro.js delete mode 100644 assets/inc/select2/select2_locale_rs.js delete mode 100644 assets/inc/select2/select2_locale_ru.js delete mode 100644 assets/inc/select2/select2_locale_sk.js delete mode 100644 assets/inc/select2/select2_locale_sv.js delete mode 100644 assets/inc/select2/select2_locale_th.js delete mode 100644 assets/inc/select2/select2_locale_tr.js delete mode 100644 assets/inc/select2/select2_locale_ug-CN.js delete mode 100644 assets/inc/select2/select2_locale_uk.js delete mode 100644 assets/inc/select2/select2_locale_vi.js delete mode 100644 assets/inc/select2/select2_locale_zh-CN.js delete mode 100644 assets/inc/select2/select2_locale_zh-TW.js create mode 100644 assets/inc/timepicker/jquery-ui-timepicker-addon.css create mode 100644 assets/inc/timepicker/jquery-ui-timepicker-addon.js create mode 100644 assets/inc/timepicker/jquery-ui-timepicker-addon.min.css create mode 100644 assets/inc/timepicker/jquery-ui-timepicker-addon.min.js create mode 100644 core/updates.php create mode 100644 fields/date_time_picker.php create mode 100644 fields/time_picker.php create mode 100644 lang/acf-ar.mo create mode 100644 lang/acf-ar.po diff --git a/acf.php b/acf.php index 148919b..7b2cbf9 100644 --- a/acf.php +++ b/acf.php @@ -3,7 +3,7 @@ Plugin Name: Advanced Custom Fields PRO Plugin URI: https://www.advancedcustomfields.com/ Description: Customise WordPress with powerful, professional and intuitive fields -Version: 5.3.8.1 +Version: 5.3.9.2 Author: Elliot Condon Author URI: http://www.elliotcondon.com/ Copyright: Elliot Condon @@ -58,7 +58,7 @@ class acf { // basic 'name' => __('Advanced Custom Fields', 'acf'), - 'version' => '5.3.8.1', + 'version' => '5.3.9.2', // urls 'basename' => plugin_basename( __FILE__ ), @@ -107,6 +107,7 @@ class acf { acf_include('core/revisions.php'); acf_include('core/compatibility.php'); acf_include('core/third_party.php'); + acf_include('core/updates.php'); // forms @@ -125,6 +126,7 @@ class acf { acf_include('admin/field-group.php'); acf_include('admin/field-groups.php'); acf_include('admin/update.php'); + acf_include('admin/update-network.php'); acf_include('admin/settings-tools.php'); //acf_include('admin/settings-addons.php'); acf_include('admin/settings-info.php'); @@ -219,6 +221,8 @@ class acf { acf_include('fields/user.php'); acf_include('fields/google-map.php'); acf_include('fields/date_picker.php'); + acf_include('fields/date_time_picker.php'); + acf_include('fields/time_picker.php'); acf_include('fields/color_picker.php'); acf_include('fields/message.php'); acf_include('fields/tab.php'); @@ -368,7 +372,6 @@ class acf { // vars $version = acf_get_setting('version'); - $lang = get_locale(); $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; diff --git a/admin/field-group.php b/admin/field-group.php index 44bb966..10476b0 100644 --- a/admin/field-group.php +++ b/admin/field-group.php @@ -99,21 +99,27 @@ class acf_admin_field_group { function current_screen() { // validate screen - if( !acf_is_screen('acf-field-group') ) { - - return; - - } + if( !acf_is_screen('acf-field-group') ) return; // disable JSON to avoid conflicts between DB and JSON acf_disable_local(); + // enqueue scripts + acf_enqueue_scripts(); + + // actions - add_action('admin_enqueue_scripts', array($this,'admin_enqueue_scripts'), 20); - add_action('admin_head', array($this,'admin_head'), 20); - add_action('admin_footer', array($this,'admin_footer'), 20); + add_action('acf/input/admin_enqueue_scripts', array($this, 'admin_enqueue_scripts')); + add_action('acf/input/admin_head', array($this, 'admin_head')); + add_action('acf/input/form_data', array($this, 'form_data')); + add_action('acf/input/admin_footer', array($this, 'admin_footer')); + add_action('acf/input/admin_footer_js', array($this, 'admin_footer_js')); + + + // filters + add_filter('acf/input/admin_l10n', array($this, 'admin_l10n')); } @@ -187,12 +193,112 @@ class acf_admin_field_group { add_filter('screen_settings', array($this, 'screen_settings'), 10, 1); - // action for 3rd party customisation + // 3rd party hook do_action('acf/field_group/admin_head'); } + /* + * edit_form_after_title + * + * This action will allow ACF to render metaboxes after the title + * + * @type action + * @date 17/08/13 + * + * @param n/a + * @return n/a + */ + + function edit_form_after_title() { + + // globals + global $post; + + + // render post data + acf_form_data(array( + 'post_id' => $post->post_id, + 'nonce' => 'field_group', + 'ajax' => 0 + )); + + } + + + /* + * form_data + * + * This function will add extra HTML to the acf form data element + * + * @type function + * @date 31/05/2016 + * @since 5.3.8 + * + * @param n/a + * @return n/a + */ + + function form_data( $args ) { + + // add extra inputs + ?> + + __("Move to trash. Are you sure?",'acf'), + 'checked' => __("checked",'acf'), + 'no_fields' => __("No toggle fields available",'acf'), + 'title_is_required' => __("Field group title is required",'acf'), + 'copy' => __("copy",'acf'), + 'or' => __("or",'acf'), + 'fields' => __("Fields",'acf'), + 'parent_fields' => __("Parent fields",'acf'), + 'sibling_fields' => __("Sibling fields",'acf'), + 'move_field' => __("Move Custom Field",'acf'), + 'move_field_warning' => __("This field cannot be moved until its changes have been saved",'acf'), + 'null' => __("Null",'acf'), + 'unload' => __('The changes you made will be lost if you navigate away from this page','acf'), + 'field_name_start' => __('The string "field_" may not be used at the start of a field name','acf'), + )); + + + // 3rd party hook + $l10n = apply_filters('acf/field_group/admin_l10n', $l10n); + + + // return + return $l10n; + + } + + + /* * admin_footer * @@ -208,56 +314,29 @@ class acf_admin_field_group { function admin_footer() { - // global - global $post; - - - // vars - $l10n = apply_filters('acf/field_group/admin_l10n', array( - 'move_to_trash' => __("Move to trash. Are you sure?",'acf'), - 'checked' => __("checked",'acf'), - 'no_fields' => __("No toggle fields available",'acf'), - 'title_is_required' => __("Field group title is required",'acf'), - 'copy' => __("copy",'acf'), - 'or' => __("or",'acf'), - 'fields' => __("Fields",'acf'), - 'parent_fields' => __("Parent fields",'acf'), - 'sibling_fields' => __("Sibling fields",'acf'), - 'move_field' => __("Move Custom Field",'acf'), - 'move_field_warning' => __("This field cannot be moved until its changes have been saved",'acf'), - 'null' => __("Null",'acf'), - 'unload' => __('The changes you made will be lost if you navigate away from this page','acf'), - 'field_name_start' => __('The string "field_" may not be used at the start of a field name','acf'), - )); - - $o = array( - 'post_id' => $post->ID, - 'nonce' => wp_create_nonce( 'acf_nonce' ), - 'admin_url' => admin_url(), - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - 'validation' => 0, - ); - - - ?> - - - - -
- - - -
- __('Description', 'acf'), 'acf-fg-status' => '', 'acf-fg-count' => __('Fields', 'acf'), - ); } @@ -709,6 +708,11 @@ class acf_admin_field_groups { var status = $('.acf-icon.-dot-3').first().attr('title'); $('td.column-acf-fg-status').attr('data-colname', status); + + // no field groups found + $('#the-list tr.no-items td').attr('colspan', 4); + + })(jQuery); ' . $field_group['title'] . ''; + + // import + $field_group = acf_import_field_group( $field_group ); + + + // append message + $imported[] = array( + 'ID' => $field_group['ID'], + 'title' => $field_group['title'], + 'updated' => $id ? 1 : 0 + ); } // messages - if( !empty($added) ) { + if( !empty($imported) ) { - $message = __('Success. Import tool added %s field groups: %s', 'acf'); - $message = sprintf( $message, count($added), implode(', ', $added) ); + // vars + $links = array(); + $count = count($imported); + $message = sprintf(_n( 'Imported 1 field group', 'Imported %s field groups', $count, 'acf' ), $count) . '.'; + + // populate links + foreach( $imported as $import ) { + + $links[] = '' . $import['title'] . ''; + + } + + + // append links + $message .= ' ' . implode(', ', $links); + + + // add notice acf_add_admin_notice( $message ); } - - if( !empty($ignored) ) { - - $message = __('Warning. Import tool detected %s field groups already exist and have been ignored: %s', 'acf'); - $message = sprintf( $message, count($ignored), implode(', ', $ignored) ); - - acf_add_admin_notice( $message, 'error' ); - - } - } diff --git a/admin/update-network.php b/admin/update-network.php new file mode 100644 index 0000000..0b704af --- /dev/null +++ b/admin/update-network.php @@ -0,0 +1,242 @@ + __("Review sites & upgrade", 'acf'), + 'button_url' => network_admin_url('index.php?page=acf-upgrade'), + 'confirm' => false + ); + + + // load view + acf_get_view('update-notice', $view); + + } + + + /* + * network_html + * + * This function will render the HTML for the network upgrade page + * + * @type function + * @date 19/02/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function network_html() { + + // vars + $plugin_version = acf_get_setting('version'); + + + // loop through sites and find updates + $sites = wp_get_sites(); + + if( $sites ) { + + foreach( $sites as $i => $site ) { + + // switch blog + switch_to_blog( $site['blog_id'] ); + + + // extra info + $site['name'] = get_bloginfo('name'); + $site['url'] = home_url(); + + + // get site updates + $site['updates'] = acf_get_updates(); + + + // get site version + $site['acf_version'] = get_option('acf_version'); + + + // no value equals new instal + if( !$site['acf_version'] ) { + + $site['acf_version'] = $plugin_version; + + } + + + // update + $sites[ $i ] = $site; + + + // restore + restore_current_blog(); + + } + + } + + + // view + $view = array( + 'sites' => $sites, + 'plugin_version' => $plugin_version + ); + + + // load view + acf_get_view('update-network', $view); + + } + +} + +// initialize +new acf_admin_update_network(); + +endif; + +?> diff --git a/admin/update.php b/admin/update.php index b656c33..36d8d2f 100644 --- a/admin/update.php +++ b/admin/update.php @@ -30,7 +30,6 @@ class acf_admin_update { // actions add_action('admin_menu', array($this,'admin_menu'), 20); - add_action('network_admin_menu', array($this,'network_admin_menu'), 20); // ajax @@ -39,218 +38,6 @@ class acf_admin_update { } - /* - * network_admin_menu - * - * This function will chck for available updates and add actions if needed - * - * @type function - * @date 2/04/2015 - * @since 5.1.5 - * - * @param n/a - * @return n/a - */ - - function network_admin_menu() { - - // bail early if no show_admin - if( !acf_get_setting('show_admin') ) { - - return; - - } - - - // vars - $prompt = false; - - - // loop through sites and find updates - $sites = wp_get_sites(); - - if( $sites ) { - - foreach( $sites as $site ) { - - // switch blog - switch_to_blog( $site['blog_id'] ); - - - // get site updates - $updates = acf_get_updates(); - - - // restore - restore_current_blog(); - - - if( $updates ) { - - $prompt = true; - break; - - } - - } - - } - - - // bail if no prompt - if( !$prompt ) { - - return; - - } - - - // actions - add_action('network_admin_notices', array($this, 'network_admin_notices'), 1); - - - // add page - $page = add_submenu_page('update-core.php', __('Upgrade ACF','acf'), __('Upgrade ACF','acf'), acf_get_setting('capability'),'acf-upgrade', array($this,'network_html')); - - - // actions - add_action('load-' . $page, array($this,'network_load')); - - - } - - - /* - * load - * - * This function will look at the $_POST data and run any functions if needed - * - * @type function - * @date 7/01/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function network_load() { - - // hide upgrade - remove_action('network_admin_notices', array($this, 'network_admin_notices'), 1); - - - // load acf scripts - acf_enqueue_scripts(); - - } - - - - /* - * network_admin_notices - * - * This function will render the update notice - * - * @type function - * @date 2/04/2015 - * @since 5.1.5 - * - * @param n/a - * @return n/a - */ - - function network_admin_notices() { - - // view - $view = array( - 'button_text' => __("Review sites & upgrade", 'acf'), - 'button_url' => network_admin_url('update-core.php?page=acf-upgrade'), - 'confirm' => false - ); - - - // load view - acf_get_view('update-notice', $view); - - } - - - /* - * network_html - * - * This function will render the HTML for the network upgrade page - * - * @type function - * @date 19/02/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function network_html() { - - // vars - $plugin_version = acf_get_setting('version'); - - - // loop through sites and find updates - $sites = wp_get_sites(); - - if( $sites ) { - - foreach( $sites as $i => $site ) { - - // switch blog - switch_to_blog( $site['blog_id'] ); - - - // extra info - $site['name'] = get_bloginfo('name'); - $site['url'] = home_url(); - - - // get site updates - $site['updates'] = acf_get_updates(); - - - // get site version - $site['acf_version'] = get_option('acf_version'); - - - // no value equals new instal - if( !$site['acf_version'] ) { - - $site['acf_version'] = $plugin_version; - - } - - - // update - $sites[ $i ] = $site; - - - // restore - restore_current_blog(); - - } - - } - - - // view - $view = array( - 'sites' => $sites, - 'plugin_version' => $plugin_version - ); - - - // load view - acf_get_view('update-network', $view); - - } - - /* * admin_menu * @@ -314,7 +101,7 @@ class acf_admin_update { // add page - $page = add_submenu_page('edit.php?post_type=acf-field-group', __('Upgrade','acf'), __('Upgrade','acf'), acf_get_setting('capability'),'acf-upgrade', array($this,'html') ); + $page = add_submenu_page('edit.php?post_type=acf-field-group', __('Upgrade Database','acf'), __('Upgrade Database','acf'), acf_get_setting('capability'), 'acf-upgrade', array($this,'html') ); // actions diff --git a/admin/views/update-network.php b/admin/views/update-network.php index 4b0451d..d4d5fd7 100644 --- a/admin/views/update-network.php +++ b/admin/views/update-network.php @@ -1,5 +1,10 @@ @@ -7,15 +12,15 @@ extract($args);

-

+

-

+

- + @@ -23,7 +28,7 @@ extract($args); - + @@ -57,7 +62,7 @@ extract($args);
-

+

. .

@@ -66,7 +71,7 @@ extract($args); /* hide show */ .show-on-complete { display: none; - } + } diff --git a/api/api-field.php b/api/api-field.php index 060ace1..59b0931 100644 --- a/api/api-field.php +++ b/api/api-field.php @@ -1739,22 +1739,22 @@ function acf_prepare_fields_for_import( $fields = false ) { $field = acf_prepare_field_for_import( $fields[ $i ] ); - // $field may be an array of multiple fields (including sub fields) - if( !isset($field['key']) ) { + // ensure $field is an array of fields + // this allows for multiepl sub fields to be returned + if( !isset($field[0]) ) { - $extra = $field; - - $field = array_shift($extra); - $fields = array_merge($fields, $extra); + $field = array( $field ); } - // prepare - $fields[ $i ] = $field; + + // merge in $field (1 or more fields) + array_splice($fields, $i, 1, $field); // $i - $i++; + $i++; + } @@ -1899,4 +1899,38 @@ function acf_get_sub_field( $selector, $field ) { } +/* +* acf_get_field_ancestors +* +* This function will return an array of all ancestor fields +* +* @type function +* @date 22/06/2016 +* @since 5.3.8 +* +* @param $field (array) +* @return (array) +*/ + +function acf_get_field_ancestors( $field ) { + + // get field + $ancestors = array(); + + + // loop + while( $field && acf_is_field_key($field['parent']) ) { + + $ancestors[] = $field['parent']; + $field = acf_get_field($field['parent']); + + } + + + // return + return $ancestors; + +} + + ?> diff --git a/api/api-helpers.php b/api/api-helpers.php index eff1750..1d50174 100644 --- a/api/api-helpers.php +++ b/api/api-helpers.php @@ -1739,14 +1739,17 @@ function _acf_orderby_post_type( $ordeby, $wp_query ) { } -function acf_get_post_title( $post = 0 ) { +function acf_get_post_title( $post = 0, $is_search = false ) { - // load post if given an ID - if( is_numeric($post) ) { - - $post = get_post($post); - - } + // vars + $post = get_post($post); + $title = ''; + $prepend = ''; + $append = ''; + + + // bail early if no post + if( !$post ) return ''; // title @@ -1762,11 +1765,20 @@ function acf_get_post_title( $post = 0 ) { // ancestors - if( $post->post_type != 'attachment' ) { + if( $post->post_type !== 'attachment' ) { + // get ancestors $ancestors = get_ancestors( $post->ID, $post->post_type ); + $parent_id = acf_maybe_get( $ancestors, 0 ); + $prepend = str_repeat('- ', count($ancestors)); - $title = str_repeat('- ', count($ancestors)) . $title; + + // add parent + if( $is_search && $parent_id ) { + + $append .= ' (Parent page: ' . get_the_title( $parent_id ) . ')'; + + } } @@ -1774,17 +1786,92 @@ function acf_get_post_title( $post = 0 ) { // status if( get_post_status( $post->ID ) != "publish" ) { - $title .= ' (' . get_post_status( $post->ID ) . ')'; + $append .= ' (' . get_post_status( $post->ID ) . ')'; } + // merge + $title = $prepend . $title . $append; + + // return return $title; } +/* +function acf_get_post_title( $post = 0, $is_search = false ) { + + // vars + $post = get_post($post); + $title = ''; + $prepend = ''; + $append = ''; + + + // bail early if no post + if( !$post ) return ''; + + + // title + $title = get_the_title( $post->ID ); + + + // empty + if( $title === '' ) { + + $title = __('(no title)', 'acf'); + + } + + + // ancestors + if( $post->post_type !== 'attachment' ) { + + // get ancestors + $ancestors = get_ancestors( $post->ID, $post->post_type ); + $parent_id = acf_maybe_get( $ancestors, 0 ); + + + // add parent + if( $is_search && !empty($ancestors) ) { + + foreach( $ancestors as $post_id ) { + + $prepend = get_the_title( $post_id ) . ' / ' . $prepend; + + } + + } else { + + $prepend = str_repeat('- ', count($ancestors)); + + } + + } + + + // status + if( get_post_status( $post->ID ) != "publish" ) { + + $append .= ' (' . get_post_status( $post->ID ) . ')'; + + } + + + // merge + $title = $prepend . $title . $append; + + + // return + return $title; + +} +*/ + + function acf_order_by_search( $array, $search ) { // vars @@ -2445,18 +2532,69 @@ function acf_decode_choices( $string = '', $array_keys = false ) { } - /* -* acf_convert_date_to_php +* acf_str_replace * -* This fucntion converts a date format string from JS to PHP +* This function will replace an array of strings much like str_replace +* The difference is the extra logic to avoid replacing a string that has alread been replaced +* This is very useful for replacing date characters as they overlap with eachother * * @type function -* @date 20/06/2014 -* @since 5.0.0 +* @date 21/06/2016 +* @since 5.3.8 * -* @param $date (string) -* @return $date (string) +* @param $post_id (int) +* @return $post_id (int) +*/ + +function acf_str_replace( $string, $search_replace ) { + + // vars + $ignore = array(); + + + // remove potential empty search to avoid PHP error + unset($search_replace['']); + + + // loop over conversions + foreach( $search_replace as $search => $replace ) { + + // ignore this search, it was a previous replace + if( in_array($search, $ignore) ) continue; + + + // bail early if subsctring not found + if( strpos($string, $search) === false ) continue; + + + // replace + $string = str_replace($search, $replace, $string); + + + // append to ignore + $ignore[] = $replace; + + } + + + // return + return $string; + +} + + +/* +* date & time formats +* +* These settings contain an association of format strings from PHP => JS +* +* @type function +* @date 21/06/2016 +* @since 5.3.8 +* +* @param n/a +* @return n/a */ acf_update_setting('php_to_js_date_formats', array( @@ -2482,41 +2620,45 @@ acf_update_setting('php_to_js_date_formats', array( 'd' => 'dd', // Numeric, with leading zeros 01–31 'j' => 'd', // Numeric, without leading zeros 1–31 'S' => '', // The English suffix for the day of the month st, nd or th in the 1st, 2nd or 15th. - + )); -function acf_convert_date_to_php( $date ) { +acf_update_setting('php_to_js_time_formats', array( + + 'a' => 'tt', // Lowercase Ante meridiem and Post meridiem am or pm + 'A' => 'TT', // Uppercase Ante meridiem and Post meridiem AM or PM + 'h' => 'hh', // 12-hour format of an hour with leading zeros 01 through 12 + 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 + 'H' => 'HH', // 24-hour format of an hour with leading zeros 00 through 23 + 'G' => 'H', // 24-hour format of an hour without leading zeros 0 through 23 + 'i' => 'mm', // Minutes with leading zeros 00 to 59 + 's' => 'ss', // Seconds, with leading zeros 00 through 59 + +)); + + +/* +* acf_convert_date_to_php +* +* This fucntion converts a date format string from JS to PHP +* +* @type function +* @date 20/06/2014 +* @since 5.0.0 +* +* @param $date (string) +* @return (string) +*/ + +function acf_convert_date_to_php( $date = '' ) { // vars - $ignore = array(); - - - // conversion $php_to_js = acf_get_setting('php_to_js_date_formats'); - - - // loop over conversions - foreach( $php_to_js as $replace => $search ) { + $js_to_php = array_flip($php_to_js); - // ignore this replace? - if( in_array($search, $ignore) ) { - - continue; - - } - - - // replace - $date = str_replace($search, $replace, $date); - - - // append to ignore - $ignore[] = $replace; - } - // return - return $date; + return acf_str_replace( $date, $js_to_php ); } @@ -2529,42 +2671,69 @@ function acf_convert_date_to_php( $date ) { * @date 20/06/2014 * @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $date (string) +* @return (string) */ -function acf_convert_date_to_js( $date ) { +function acf_convert_date_to_js( $date = '' ) { // vars - $ignore = array(); - - - // conversion $php_to_js = acf_get_setting('php_to_js_date_formats'); - - - // loop over conversions - foreach( $php_to_js as $search => $replace ) { - // ignore this replace? - if( in_array($search, $ignore) ) { - - continue; - - } - - - // replace - $date = str_replace($search, $replace, $date); - - - // append to ignore - $ignore[] = $replace; - } - // return - return $date; + return acf_str_replace( $date, $php_to_js ); + +} + + +/* +* acf_convert_time_to_php +* +* This fucntion converts a time format string from JS to PHP +* +* @type function +* @date 20/06/2014 +* @since 5.0.0 +* +* @param $time (string) +* @return (string) +*/ + +function acf_convert_time_to_php( $time = '' ) { + + // vars + $php_to_js = acf_get_setting('php_to_js_time_formats'); + $js_to_php = array_flip($php_to_js); + + + // return + return acf_str_replace( $time, $js_to_php ); + +} + + +/* +* acf_convert_time_to_js +* +* This fucntion converts a date format string from PHP to JS +* +* @type function +* @date 20/06/2014 +* @since 5.0.0 +* +* @param $time (string) +* @return (string) +*/ + +function acf_convert_time_to_js( $time = '' ) { + + // vars + $php_to_js = acf_get_setting('php_to_js_time_formats'); + + + // return + return acf_str_replace( $time, $php_to_js ); } @@ -2674,14 +2843,10 @@ function acf_get_user_setting( $name = '', $default = false ) { * @return $post_id (int) */ -function acf_in_array( $value, $array ) { +function acf_in_array( $value = '', $array = false ) { // bail early if not array - if( !is_array($array) ) { - - return false; - - } + if( !is_array($array) ) return false; // find value in array @@ -3971,18 +4136,116 @@ function acf_get_post_thumbnail( $post = null, $size = 'thumbnail' ) { /* -* Hacks +* acf_get_browser * -* description +* This functino will return the browser string for major browsers * * @type function * @date 17/01/2014 * @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param n/a +* @return (string) */ +function acf_get_browser() { + + // vars + $agent = $_SERVER['HTTP_USER_AGENT']; + + + // browsers + $browsers = array( + 'Firefox' => 'firefox', + 'Trident' => 'msie', + 'MSIE' => 'msie', + 'Edge' => 'edge', + 'Chrome' => 'chrome', + 'Safari' => 'safari', + ); + + + // loop + foreach( $browsers as $k => $v ) { + + if( strpos($agent, $k) !== false ) return $v; + + } + + + // return + return ''; + +} + + +/* +* acf_is_ajax +* +* This function will reutrn true if performing a wp ajax call +* +* @type function +* @date 7/06/2016 +* @since 5.3.8 +* +* @param n/a +* @return (boolean) +*/ + +function acf_is_ajax() { + + return ( defined('DOING_AJAX') && DOING_AJAX ); + +} + + + + +/* +* acf_format_date +* +* This function will accept a date value and return it in a formatted string +* +* @type function +* @date 16/06/2016 +* @since 5.3.8 +* +* @param $value (string) +* @return $format (string) +*/ + +function acf_format_date( $value, $format ) { + + // bail early if no value + if( empty($value) ) return $value; + + + // attempt strtotime for standard date value + $unixtimestamp = strtotime($value); + + + // allow for timestamp value + if( !$unixtimestamp && is_numeric($value) ) { + + $unixtimestamp = $value; + + } + + + // bail early if timestamp error + if( !$unixtimestamp ) return $value; + + + // translate + $value = date_i18n($format, $unixtimestamp); + + + // return + return $value; + +} + + add_filter("acf/settings/slug", '_acf_settings_slug'); function _acf_settings_slug( $v ) { diff --git a/api/api-template.php b/api/api-template.php index 2fa6347..a5bcb3f 100644 --- a/api/api-template.php +++ b/api/api-template.php @@ -361,7 +361,16 @@ function get_field_objects( $post_id = false, $format_value = true, $load_value function have_rows( $selector, $post_id = false ) { + // reference + $_post_id = $post_id; + + + // filter post_id + $post_id = acf_get_valid_post_id( $post_id ); + + // vars + $key = "selector={$selector}/post_id={$post_id}"; $active_loop = acf_get_loop('active'); $previous_loop = acf_get_loop('previous'); $new_parent_loop = false; @@ -371,21 +380,14 @@ function have_rows( $selector, $post_id = false ) { $change = false; - // reference - $_post_id = $post_id; - - - // filter post_id - $post_id = acf_get_valid_post_id( $post_id ); - - - // empty? + // no active loops if( !$active_loop ) { // create a new loop $new_parent_loop = true; - } else { + // loop has changed + } elseif( $active_loop['key'] != $key ) { // detect change if( $post_id != $active_loop['post_id'] ) { @@ -396,19 +398,19 @@ function have_rows( $selector, $post_id = false ) { $change = 'selector'; + } else { + + // key has changed due to a technicallity, however, the post_id and selector are the same + } // attempt to find sub field - if( $change ) { + $sub_field = acf_get_sub_field($selector, $active_loop['field']); - $sub_field = acf_get_sub_field($selector, $active_loop['field']); + if( $sub_field ) { - if( $sub_field ) { - - $sub_exists = isset( $active_loop['value'][ $active_loop['i'] ][ $sub_field['key'] ] ); - - } + $sub_exists = isset( $active_loop['value'][ $active_loop['i'] ][ $sub_field['key'] ] ); } @@ -459,6 +461,11 @@ function have_rows( $selector, $post_id = false ) { } } + + // loop is the same + } else { + + // do nothing } @@ -479,6 +486,7 @@ function have_rows( $selector, $post_id = false ) { 'field' => $field, 'i' => -1, 'post_id' => $post_id, + 'key' => $key )); // add child loop @@ -486,6 +494,7 @@ function have_rows( $selector, $post_id = false ) { // vars $value = $active_loop['value'][ $active_loop['i'] ][ $sub_field['key'] ]; + $post_id = $active_loop['post_id']; // add loop @@ -496,6 +505,7 @@ function have_rows( $selector, $post_id = false ) { 'field' => $sub_field, 'i' => -1, 'post_id' => $post_id, + 'key' => $key )); } @@ -566,7 +576,12 @@ function get_row( $format = false ) { // get value - $value = $loop['value'][ $loop['i'] ]; + $value = acf_maybe_get( $loop['value'], $loop['i'] ); + + + // bail early if no current value + // possible if get_row_layout() is called before the_row() + if( !$value ) return false; // format @@ -602,6 +617,12 @@ function get_row_index() { } +function the_row_index() { + + echo get_row_index(); + +} + /* * get_row_sub_field diff --git a/api/api-value.php b/api/api-value.php index a0d4223..15ab665 100644 --- a/api/api-value.php +++ b/api/api-value.php @@ -430,6 +430,7 @@ function acf_update_value( $value = null, $post_id = 0, $field ) { // clear cache wp_cache_delete( "load_value/post_id={$post_id}/name={$field['name']}", 'acf' ); + wp_cache_delete( "format_value/post_id={$post_id}/name={$field['name']}", 'acf' ); // return @@ -471,6 +472,7 @@ function acf_delete_value( $post_id = 0, $field ) { // clear cache wp_cache_delete( "load_value/post_id={$post_id}/name={$field['name']}", 'acf' ); + wp_cache_delete( "format_value/post_id={$post_id}/name={$field['name']}", 'acf' ); // return diff --git a/assets/css/acf-global.css b/assets/css/acf-global.css index 493d058..d40350f 100644 --- a/assets/css/acf-global.css +++ b/assets/css/acf-global.css @@ -704,7 +704,6 @@ a.acf-icon.-cancel.grey:hover { * *---------------------------------------------------------------------------------------------*/ /* Menu */ -#adminmenu a[href="edit.php?post_type=acf-field-group&page=acf-upgrade"], #adminmenu a[href="edit.php?post_type=acf-field-group&page=acf-settings-info"] { display: none; } @@ -734,9 +733,6 @@ a.acf-icon.-cancel.grey:hover { #acf-field-group-wrap .tablenav.bottom { display: block; } -#acf-field-group-wrap .wp-list-table { - border-radius: 0; -} #acf-field-group-wrap .acf-description { font-weight: normal; font-size: 13px; @@ -1082,6 +1078,41 @@ html[dir="rtl"] #acf-popup .title .acf-icon { } /*-------------------------------------------------------------------------------------------- * +* Plugins +* +*--------------------------------------------------------------------------------------------*/ +.acf-plugin-upgrade-notice { + font-weight: normal; + color: #fff; + background: #d54d21; + padding: 1em; + margin: 9px 0; +} +.acf-plugin-upgrade-notice:before { + content: "\f348"; + display: inline-block; + font: 400 18px/1 dashicons; + speak: none; + margin: 0 8px 0 -2px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: top; +} +.acf-plugin-upgrade-notice h4 { + display: none; +} +.acf-plugin-upgrade-notice ul, +.acf-plugin-upgrade-notice li { + display: inline; + color: inherit; + list-style: none; +} +.acf-plugin-upgrade-notice li:after { + content: '. '; + display: inline; +} +/*-------------------------------------------------------------------------------------------- +* * RTL * *--------------------------------------------------------------------------------------------*/ diff --git a/assets/css/acf-input.css b/assets/css/acf-input.css index 259297e..00835e1 100644 --- a/assets/css/acf-input.css +++ b/assets/css/acf-input.css @@ -343,11 +343,10 @@ html[dir="rtl"] .acf-c0 { -moz-box-sizing: border-box; box-sizing: border-box; font-size: 14px; - line-height: 15px; + line-height: 1.4; } .acf-field textarea { resize: vertical; - line-height: 1.4em; } /*--------------------------------------------------------------------------------------------- * @@ -1407,6 +1406,23 @@ html[dir="rtl"] .acf-file-uploader .file-info ul { .acf-ui-datepicker .ui-datepicker { z-index: 999999999 !important; } +.acf-ui-datepicker .ui-datepicker .ui-widget-header a { + cursor: pointer; + transition: none; +} +/* fix highlight state overriding hover / active */ +.acf-ui-datepicker .ui-state-highlight.ui-state-hover { + border: 1px solid #98b7e8 !important; + background: #98b7e8 !important; + font-weight: normal !important; + color: #ffffff !important; +} +.acf-ui-datepicker .ui-state-highlight.ui-state-active { + border: 1px solid #3875d7 !important; + background: #3875d7 !important; + font-weight: normal !important; + color: #ffffff !important; +} /*--------------------------------------------------------------------------------------------- * * Taxonomy @@ -1766,7 +1782,7 @@ html[dir="rtl"] .acf-taxonomy-field[data-type="select"] .acf-icon { .acf-media-modal.-edit .media-frame-content { top: 56px; } -body.acf-wp-4 .acf-media-modal.-edit .media-frame-content { +body.major-4 .acf-media-modal.-edit .media-frame-content { top: 50px; } .acf-media-modal.-edit .media-frame-title { diff --git a/assets/inc/datepicker/images/animated-overlay.gif b/assets/inc/datepicker/images/animated-overlay.gif deleted file mode 100644 index d441f75ebfbdf26a265dfccd670120d25c0a341c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcmZ|OX;ji_6b5ixNYt8>l?gOuO)6lU%W(mxn(`>1S(XO;u`D+P%xqBvMr|w-Vyr1s z7R|Cn0b8|Hu<=Zmv1mFqh9Fj!NuZfKB2MP$e75`XJ@>=!y!Ux9xR3x;EW!q1^V>X| znVFuRUN`NqJ2)ybXh%e__h!!pv(M|S3+?9F%(K}zyE40MGyhWF5-IDgL&=%2-9`Nk z!1@8uk4t%_{(K~>N;sK&dzJbwJ=$kYTlL=$%#0Pfh>U{%i@~wWbvYsD_K-D`&+u1( z#Ma`>%q<^UhzGvi(hyE`zCD{-=2|zL5>wnB=DE!U?(CZG%q4@lDnCq_%&3DCla#(X zmBhDD+RN$aMWWHm?ig*>1Onn6~r?Ma~N2JKAxN>H%UtRyRqS)6Um!-Tz%-r=& zQmTb^JFIe3W^-kAm`}`2P|niMh>RYyd)S^f(dbrx965?rzbhP|XeP}o&&DSZ4|oYQ z)I{f!SfycYw?3=9W;o-B%U5xs(pP267X~9-7L|4WzaYexC0GtG8wWygm63rF{llCEraxzkc=IxvFQ-y37=_;e5 zJLq^gsSO0Ayz?a>E_?{dmUc+t#qv$)XN8$<<}rQ#)lsiw+pmL&J>~+hgpo>i$m+;l zZIa_ZRIfSeT$~v5d`EBV&*k`apPgjv&B|+d`Q!nyu{L4rs%ZfoF0*Kq8I%ByOcFpL zK=>wzofZo<+0GZLCnWM3oQ^pb(gRSf02;~cEn@LJ>~XB9IkEX{$N#Z`m%>S!U{uPx zloI%bLdo$Adxlh(Uv^yX7s5G&C zLwNRG>~T?G{kzupp8EcyLGPoPf)@&9Wqfw_l&uU-6cexk%5;uQg%wb=0k_733{i#& z1a2p)gV3S2+QG1-K9tZ}E~I<(P0r2aFFY-c{o?TUOz3Xjod#TLE2A_c?*T7t z=1>~%YW450{Qqno4t`}gvLnuMrcu8+#xEBoY%2_+Mb#Z6S38+r*M4O`-+!zl(@m`D zQsi|GA2l3gEy}LFe<#Hv8?$_L#u8E|3-bP$*La*E>B{X!Sy4i6?TKam!49aXCAW4S*P_O^H4^*DpiA40o}Uqw~Eo&veh1`|8i zD2$x+>_b^bXE4N;AW=5>iYak2%!JAh0j1*k1{p#iRCjbB7!cSws~U{1IA@acLII$t z$>X#A+^s6iJ5~DFG!xa?>z{=lxtdi1rzbM-(nqAu3D8h-&64xo6|E!p?pK0xT;qoK z`6%+SpBk+~M?nO}>2mTw!A{yZ6O>Z@kwSd4;8aWU5z!P~tQl?u==^+R`{OmOS}oZh zOXQ3{6kuz?Is^n^L7;9ieB9C+8B{>t+pDrlq4xGDDn#T#3T5$l1g`FTQkU;b-981j zNm{zC`$wn7etklM#qHI4=3m5gwa6DNS{?Z!vSObi_od{4eUo=_S2BKNpkSdiqe(k9WtkeM79;2-%CFbb)aB=&H1?i1}uwFzoZQ(38Kn1zBP ORn*B%u*Wk|4g3!*Rv{Mv diff --git a/assets/inc/datepicker/images/ui-bg_flat_0_2EA2CC_40x100.png b/assets/inc/datepicker/images/ui-bg_flat_0_2EA2CC_40x100.png deleted file mode 100644 index 5c4f8581714a9402fbbefd1bfeb3b5bf56b8aa09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F$P6UUt$JVyq?iMILR|G0otf>$b^yrbEbxdd z2GSm2>~=ES4#?p5ba4#PIG>y#!MeEN7Xt%R1OsEKSz9?!O0~o_q9i4;B-JXpC>2OC z7#SFv=o%R58kmF_npqi|SQ(k?8dz8v7(Cx=x)Mc0ZhlH;S|x4`(;oDS0yQvry85}S Ib4q9e07jEDEdT%j diff --git a/assets/inc/datepicker/images/ui-bg_flat_0_E14D43_40x100.png b/assets/inc/datepicker/images/ui-bg_flat_0_E14D43_40x100.png deleted file mode 100644 index a5392d364581dbc4e02522cf5c3790b65bb9ecbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F$P6UUt$JVyq?iMILR=sEIxme_rVr$D7I;J! z18EO1b~~AE2W0Sjx;TbtoKH@WU|rnsi-CbDf`PHrtgRdcptHiBgO6`?TKn)C@u6{1- HoD!M<91AlU diff --git a/assets/inc/datepicker/images/ui-bg_flat_0_F0F0F0_40x100.png b/assets/inc/datepicker/images/ui-bg_flat_0_F0F0F0_40x100.png deleted file mode 100644 index aea29d7fa92b270498e51b985410f64766e41d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F0VEhM^6M@GQcOwS?k)`f+xyS#2l6-zJR*yM zv=OH0Rb0<(zkxxC^=lia^oFVj1fX%PybJ zGq?lPqgvt`QIe8al4_M)lnSI6j0_A-bPbGj4NO7|&8$GkT-U(D%D^D^_@i`#6K79ZH diff --git a/assets/inc/datepicker/images/ui-bg_flat_0_F9F9F9_40x100.png b/assets/inc/datepicker/images/ui-bg_flat_0_F9F9F9_40x100.png deleted file mode 100644 index 923e79d527811efd9362f5444646d59a5f34a558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F0VEhM^6M@GQcOwS?k)`f+xyS#2l6-zJR*yM zv86AiR0Xxy`%1a(O9I>1w(ax%+s}un;7=< z9tY}CEpd$~Nl7e8wMs5Z1yT$~28JfO21dFDCLxAqR)(flCg!>Z7FGrZ=LEt9P&DM` ar(~v8;?}U=_x&261_n=8KbLh*2~7YV=|21b diff --git a/assets/inc/datepicker/images/ui-bg_flat_0_aaaaaa_40x100.png b/assets/inc/datepicker/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index cd62886ba283e672e726b44e88c1ec460d572142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F1SA+{?>A)!QcOwS?k)_>#w|r1Kptm-M`SUO z_5fqIli7AahM1>|V~EA+ zRdP`(kYX@0Ff`FMFan|wLklZYQ!7IQT>}d%1B0lag*qr2a`RI%(<*Um&|Y$K0#E~k Mr>mdKI;Vst0E-qgq5uE@ diff --git a/assets/inc/datepicker/images/ui-bg_flat_0_ffffff_40x100.png b/assets/inc/datepicker/images/ui-bg_flat_0_ffffff_40x100.png deleted file mode 100644 index 9be5c0a868259b0b33962f6b7ca81d66deb9987f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQcOwS?k)_Bce{j_0C}7R9+AaB z+5?Q;PG;Ky8A6^ejv*T7lYj6t@hpC#;TbB#aBAWwna#KLs)4eqC9V-ADTyViR>?)F zK#IZ0z|ch3z)07?IK;@v%D~LZz);t~!pgwFNoc<|iiX_$l+3hB+!~Di*{1_FFnGH9 KxvX?)F zK#IZ0z|ch3zzB#!3@xloO|1+KbPX)53=E=v7V4mA$jwj5OsmALL3_!`2|x`Dp00i_ I>zopr0Nv6wh5!Hn diff --git a/assets/inc/datepicker/images/ui-bg_highlight-soft_0_ffffff_1x100.png b/assets/inc/datepicker/images/ui-bg_highlight-soft_0_ffffff_1x100.png index 7f3be3982decb05a91a7edb72ae041074bdf2d17..0a9472dc11230a8332a27fb3a583ce6146df48ca 100644 GIT binary patch delta 75 zcmX@jc$#rSiIkbHfvK*sVTggLm4StoshPHcft7*5JBzN!iGAW~*k$LZ8a-tI0#8>z Jmvv4FO#lG&6eR!v delta 75 zcmX@jc$#rSiIj=1fsw9(Nr<7Dm7$T9k(sW6g_VJU&lSI@iGAW~*kx@yzdd6B0#8>z Jmvv4FO#u486lnke diff --git a/assets/inc/datepicker/images/ui-icons_222222_256x240.png b/assets/inc/datepicker/images/ui-icons_222222_256x240.png deleted file mode 100644 index c1cb1170c8b3795835b8831ab81fa9ae63b606b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6922 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 QJ~;stWz}Trq%1=J3#jBGg8%>k diff --git a/assets/inc/datepicker/images/ui-icons_2EA2CC_256x240.png b/assets/inc/datepicker/images/ui-icons_2EA2CC_256x240.png deleted file mode 100644 index 51a43e7fe77802925150c054d137a9f4cbed0dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 E0LW((hX4Qo delta 69 zcmca$cEN1J6)7oWT>~Rs1H%vlQ!8U*D?g3lP15D62~DOVOya$Szg)@ E0KMH3ivR!s diff --git a/assets/inc/datepicker/images/ui-icons_454545_256x240.png b/assets/inc/datepicker/images/ui-icons_454545_256x240.png deleted file mode 100644 index b6db1acdd433be80a472b045018f25c7f2cf7e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6992 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 XN@iLmgOPzDb`6eSE{adSC1nTzABz}t delta 87 zcmeA+>o(iaFXe5lYha{nU>IUxYGrI}WoV#lU}0ropqX%B5(5K+YKdz^NlIc#s#R`& XN@iLmgOPzDb`24>6?&6zNf`nF6LlAO diff --git a/assets/inc/datepicker/images/ui-icons_ffffff_256x240.png b/assets/inc/datepicker/images/ui-icons_ffffff_256x240.png index 4f624bb2b193750f1a5b36c8c307168c6681a861..4d66f596e5967a460a37526e2130a55711eeca3c 100644 GIT binary patch delta 87 zcmbPjINNZ8yo9%@u7R= 1.7.1" - } -} diff --git a/assets/inc/select2/component.json b/assets/inc/select2/component.json deleted file mode 100644 index 8bd3c02..0000000 --- a/assets/inc/select2/component.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "select2", - "repo": "ivaynberg/select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "version": "3.5.2", - "demo": "http://ivaynberg.github.io/select2/", - "keywords": [ - "jquery" - ], - "main": "select2.js", - "styles": [ - "select2.css", - "select2-bootstrap.css" - ], - "scripts": [ - "select2.js", - "select2_locale_ar.js", - "select2_locale_bg.js", - "select2_locale_ca.js", - "select2_locale_cs.js", - "select2_locale_da.js", - "select2_locale_de.js", - "select2_locale_el.js", - "select2_locale_es.js", - "select2_locale_et.js", - "select2_locale_eu.js", - "select2_locale_fa.js", - "select2_locale_fi.js", - "select2_locale_fr.js", - "select2_locale_gl.js", - "select2_locale_he.js", - "select2_locale_hr.js", - "select2_locale_hu.js", - "select2_locale_id.js", - "select2_locale_is.js", - "select2_locale_it.js", - "select2_locale_ja.js", - "select2_locale_ka.js", - "select2_locale_ko.js", - "select2_locale_lt.js", - "select2_locale_lv.js", - "select2_locale_mk.js", - "select2_locale_ms.js", - "select2_locale_nl.js", - "select2_locale_no.js", - "select2_locale_pl.js", - "select2_locale_pt-BR.js", - "select2_locale_pt-PT.js", - "select2_locale_ro.js", - "select2_locale_ru.js", - "select2_locale_sk.js", - "select2_locale_sv.js", - "select2_locale_th.js", - "select2_locale_tr.js", - "select2_locale_uk.js", - "select2_locale_vi.js", - "select2_locale_zh-CN.js", - "select2_locale_zh-TW.js" - ], - "images": [ - "select2-spinner.gif", - "select2.png", - "select2x2.png" - ], - "license": "MIT" -} diff --git a/assets/inc/select2/composer.json b/assets/inc/select2/composer.json deleted file mode 100644 index cd2d26a..0000000 --- a/assets/inc/select2/composer.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": - "ivaynberg/select2", - "description": "Select2 is a jQuery based replacement for select boxes.", - "version": "3.5.2", - "type": "component", - "homepage": "http://ivaynberg.github.io/select2/", - "license": "Apache-2.0", - "require": { - "robloach/component-installer": "*", - "components/jquery": ">=1.7.1" - }, - "extra": { - "component": { - "scripts": [ - "select2.js" - ], - "files": [ - "select2.js", - "select2_locale_*.js", - "select2.css", - "select2-bootstrap.css", - "select2-spinner.gif", - "select2.png", - "select2x2.png" - ] - } - } -} diff --git a/assets/inc/select2/package.json b/assets/inc/select2/package.json deleted file mode 100644 index 709cb1c..0000000 --- a/assets/inc/select2/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name" : "Select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "homepage": "http://ivaynberg.github.io/select2", - "author": "Igor Vaynberg", - "repository": {"type": "git", "url": "git://github.com/ivaynberg/select2.git"}, - "main": "select2.js", - "version": "3.5.2", - "jspm": { - "main": "select2", - "files": ["select2.js", "select2.png", "select2.css", "select2-spinner.gif"], - "shim": { - "select2": { - "imports": ["jquery", "./select2.css!"], - "exports": "$" - } - }, - "buildConfig": { "uglify": true } - } -} diff --git a/assets/inc/select2/release.sh b/assets/inc/select2/release.sh deleted file mode 100644 index 3b63f96..0000000 --- a/assets/inc/select2/release.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -set -e - -echo -n "Enter the version for this release: " - -read ver - -if [ ! $ver ]; then - echo "Invalid version." - exit -fi - -name="select2" -js="$name.js" -mini="$name.min.js" -css="$name.css" -release="$name-$ver" -tag="$ver" -branch="build-$ver" -curbranch=`git branch | grep "*" | sed "s/* //"` -timestamp=$(date) -tokens="s/@@ver@@/$ver/g;s/\@@timestamp@@/$timestamp/g" -remote="origin" - -echo "Pulling from origin" - -git pull - -echo "Updating Version Identifiers" - -sed -E -e "s/\"version\": \"([0-9\.]+)\",/\"version\": \"$ver\",/g" -i -- bower.json select2.jquery.json component.json composer.json package.json - -git add bower.json -git add select2.jquery.json -git add component.json -git add composer.json -git add package.json - -git commit -m "modified version identifiers in descriptors for release $ver" -git push - -git branch "$branch" -git checkout "$branch" - -echo "Tokenizing..." - -find . -name "$js" | xargs -I{} sed -e "$tokens" -i -- {} -find . -name "$css" | xargs -I{} sed -e "$tokens" -i -- {} - -sed -e "s/latest/$ver/g" -i -- bower.json - -git add "$js" -git add "$css" - -echo "Minifying..." - -echo "/*" > "$mini" -cat LICENSE | sed "$tokens" >> "$mini" -echo "*/" >> "$mini" - -curl -s \ - --data-urlencode "js_code@$js" \ - http://marijnhaverbeke.nl/uglifyjs \ - >> "$mini" - -git add "$mini" - -git commit -m "release $ver" - -echo "Tagging..." -git tag -a "$tag" -m "tagged version $ver" -git push "$remote" --tags - -echo "Cleaning Up..." - -git checkout "$curbranch" -git branch -D "$branch" - -echo "Done" diff --git a/assets/inc/select2/select2-bootstrap.css b/assets/inc/select2/select2-bootstrap.css deleted file mode 100644 index 3b83f0a..0000000 --- a/assets/inc/select2/select2-bootstrap.css +++ /dev/null @@ -1,87 +0,0 @@ -.form-control .select2-choice { - border: 0; - border-radius: 2px; -} - -.form-control .select2-choice .select2-arrow { - border-radius: 0 2px 2px 0; -} - -.form-control.select2-container { - height: auto !important; - padding: 0; -} - -.form-control.select2-container.select2-dropdown-open { - border-color: #5897FB; - border-radius: 3px 3px 0 0; -} - -.form-control .select2-container.select2-dropdown-open .select2-choices { - border-radius: 3px 3px 0 0; -} - -.form-control.select2-container .select2-choices { - border: 0 !important; - border-radius: 3px; -} - -.control-group.warning .select2-container .select2-choice, -.control-group.warning .select2-container .select2-choices, -.control-group.warning .select2-container-active .select2-choice, -.control-group.warning .select2-container-active .select2-choices, -.control-group.warning .select2-dropdown-open.select2-drop-above .select2-choice, -.control-group.warning .select2-dropdown-open.select2-drop-above .select2-choices, -.control-group.warning .select2-container-multi.select2-container-active .select2-choices { - border: 1px solid #C09853 !important; -} - -.control-group.warning .select2-container .select2-choice div { - border-left: 1px solid #C09853 !important; - background: #FCF8E3 !important; -} - -.control-group.error .select2-container .select2-choice, -.control-group.error .select2-container .select2-choices, -.control-group.error .select2-container-active .select2-choice, -.control-group.error .select2-container-active .select2-choices, -.control-group.error .select2-dropdown-open.select2-drop-above .select2-choice, -.control-group.error .select2-dropdown-open.select2-drop-above .select2-choices, -.control-group.error .select2-container-multi.select2-container-active .select2-choices { - border: 1px solid #B94A48 !important; -} - -.control-group.error .select2-container .select2-choice div { - border-left: 1px solid #B94A48 !important; - background: #F2DEDE !important; -} - -.control-group.info .select2-container .select2-choice, -.control-group.info .select2-container .select2-choices, -.control-group.info .select2-container-active .select2-choice, -.control-group.info .select2-container-active .select2-choices, -.control-group.info .select2-dropdown-open.select2-drop-above .select2-choice, -.control-group.info .select2-dropdown-open.select2-drop-above .select2-choices, -.control-group.info .select2-container-multi.select2-container-active .select2-choices { - border: 1px solid #3A87AD !important; -} - -.control-group.info .select2-container .select2-choice div { - border-left: 1px solid #3A87AD !important; - background: #D9EDF7 !important; -} - -.control-group.success .select2-container .select2-choice, -.control-group.success .select2-container .select2-choices, -.control-group.success .select2-container-active .select2-choice, -.control-group.success .select2-container-active .select2-choices, -.control-group.success .select2-dropdown-open.select2-drop-above .select2-choice, -.control-group.success .select2-dropdown-open.select2-drop-above .select2-choices, -.control-group.success .select2-container-multi.select2-container-active .select2-choices { - border: 1px solid #468847 !important; -} - -.control-group.success .select2-container .select2-choice div { - border-left: 1px solid #468847 !important; - background: #DFF0D8 !important; -} diff --git a/assets/inc/select2/select2.jquery.json b/assets/inc/select2/select2.jquery.json deleted file mode 100644 index b005d8a..0000000 --- a/assets/inc/select2/select2.jquery.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "select2", - "title": "Select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "keywords": [ - "select", - "autocomplete", - "typeahead", - "dropdown", - "multiselect", - "tag", - "tagging" - ], - "version": "3.5.2", - "author": { - "name": "Igor Vaynberg", - "url": "https://github.com/ivaynberg" - }, - "licenses": [ - { - "type": "Apache", - "url": "http://www.apache.org/licenses/LICENSE-2.0" - }, - { - "type": "GPL v2", - "url": "http://www.gnu.org/licenses/gpl-2.0.html" - } - ], - "bugs": "https://github.com/ivaynberg/select2/issues", - "homepage": "http://ivaynberg.github.com/select2", - "docs": "http://ivaynberg.github.com/select2/", - "download": "https://github.com/ivaynberg/select2/tags", - "dependencies": { - "jquery": ">=1.7.1" - } -} diff --git a/assets/inc/select2/select2_locale_ar.js b/assets/inc/select2/select2_locale_ar.js deleted file mode 100644 index e991b72..0000000 --- a/assets/inc/select2/select2_locale_ar.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Arabic translation. - * - * Author: Adel KEDJOUR - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ar'] = { - formatNoMatches: function () { return "لم يتم العثور على مطابقات"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; if (n == 1){ return "الرجاء إدخال حرف واحد على الأكثر"; } return n == 2 ? "الرجاء إدخال حرفين على الأكثر" : "الرجاء إدخال " + n + " على الأكثر"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; if (n == 1){ return "الرجاء إدخال حرف واحد على الأقل"; } return n == 2 ? "الرجاء إدخال حرفين على الأقل" : "الرجاء إدخال " + n + " على الأقل "; }, - formatSelectionTooBig: function (limit) { if (limit == 1){ return "يمكنك أن تختار إختيار واحد فقط"; } return limit == 2 ? "يمكنك أن تختار إختيارين فقط" : "يمكنك أن تختار " + limit + " إختيارات فقط"; }, - formatLoadMore: function (pageNumber) { return "تحميل المزيد من النتائج…"; }, - formatSearching: function () { return "البحث…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ar']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_az.js b/assets/inc/select2/select2_locale_az.js deleted file mode 100644 index 19fd95b..0000000 --- a/assets/inc/select2/select2_locale_az.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Select2 Azerbaijani translation. - * - * Author: Farhad Safarov - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['az'] = { - formatMatches: function (matches) { return matches + " nəticə mövcuddur, hərəkət etdirmək üçün yuxarı və aşağı düymələrindən istifadə edin."; }, - formatNoMatches: function () { return "Nəticə tapılmadı"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return n + " simvol daxil edin"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return n + " simvol silin"; }, - formatSelectionTooBig: function (limit) { return "Sadəcə " + limit + " element seçə bilərsiniz"; }, - formatLoadMore: function (pageNumber) { return "Daha çox nəticə yüklənir…"; }, - formatSearching: function () { return "Axtarılır…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['az']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_bg.js b/assets/inc/select2/select2_locale_bg.js deleted file mode 100644 index 3283d0a..0000000 --- a/assets/inc/select2/select2_locale_bg.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Select2 Bulgarian translation. - * - * @author Lubomir Vikev - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['bg'] = { - formatNoMatches: function () { return "Няма намерени съвпадения"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Моля въведете още " + n + " символ" + (n > 1 ? "а" : ""); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Моля въведете с " + n + " по-малко символ" + (n > 1 ? "а" : ""); }, - formatSelectionTooBig: function (limit) { return "Можете да направите до " + limit + (limit > 1 ? " избора" : " избор"); }, - formatLoadMore: function (pageNumber) { return "Зареждат се още…"; }, - formatSearching: function () { return "Търсене…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['bg']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ca.js b/assets/inc/select2/select2_locale_ca.js deleted file mode 100644 index dbea39e..0000000 --- a/assets/inc/select2/select2_locale_ca.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Catalan translation. - * - * Author: David Planella - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ca'] = { - formatNoMatches: function () { return "No s'ha trobat cap coincidència"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduïu " + n + " caràcter" + (n == 1 ? "" : "s") + " més"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Introduïu " + n + " caràcter" + (n == 1? "" : "s") + "menys"; }, - formatSelectionTooBig: function (limit) { return "Només podeu seleccionar " + limit + " element" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "S'estan carregant més resultats…"; }, - formatSearching: function () { return "S'està cercant…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ca']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_cs.js b/assets/inc/select2/select2_locale_cs.js deleted file mode 100644 index ef12185..0000000 --- a/assets/inc/select2/select2_locale_cs.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Select2 Czech translation. - * - * Author: Michal Marek - * Author - sklonovani: David Vallner - */ -(function ($) { - "use strict"; - // use text for the numbers 2 through 4 - var smallNumbers = { - 2: function(masc) { return (masc ? "dva" : "dvě"); }, - 3: function() { return "tři"; }, - 4: function() { return "čtyři"; } - } - $.fn.select2.locales['cs'] = { - formatNoMatches: function () { return "Nenalezeny žádné položky"; }, - formatInputTooShort: function (input, min) { - var n = min - input.length; - if (n == 1) { - return "Prosím zadejte ještě jeden znak"; - } else if (n <= 4) { - return "Prosím zadejte ještě další "+smallNumbers[n](true)+" znaky"; - } else { - return "Prosím zadejte ještě dalších "+n+" znaků"; - } - }, - formatInputTooLong: function (input, max) { - var n = input.length - max; - if (n == 1) { - return "Prosím zadejte o jeden znak méně"; - } else if (n <= 4) { - return "Prosím zadejte o "+smallNumbers[n](true)+" znaky méně"; - } else { - return "Prosím zadejte o "+n+" znaků méně"; - } - }, - formatSelectionTooBig: function (limit) { - if (limit == 1) { - return "Můžete zvolit jen jednu položku"; - } else if (limit <= 4) { - return "Můžete zvolit maximálně "+smallNumbers[limit](false)+" položky"; - } else { - return "Můžete zvolit maximálně "+limit+" položek"; - } - }, - formatLoadMore: function (pageNumber) { return "Načítají se další výsledky…"; }, - formatSearching: function () { return "Vyhledávání…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['cs']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_da.js b/assets/inc/select2/select2_locale_da.js deleted file mode 100644 index 702238b..0000000 --- a/assets/inc/select2/select2_locale_da.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Danish translation. - * - * Author: Anders Jenbo - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['da'] = { - formatNoMatches: function () { return "Ingen resultater fundet"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Angiv venligst " + n + " tegn mere"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Angiv venligst " + n + " tegn mindre"; }, - formatSelectionTooBig: function (limit) { return "Du kan kun vælge " + limit + " emne" + (limit === 1 ? "" : "r"); }, - formatLoadMore: function (pageNumber) { return "Indlæser flere resultater…"; }, - formatSearching: function () { return "Søger…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['da']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_de.js b/assets/inc/select2/select2_locale_de.js deleted file mode 100644 index 49ae986..0000000 --- a/assets/inc/select2/select2_locale_de.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Select2 German translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['de'] = { - formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; }, - formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; }, - formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse…"; }, - formatSearching: function () { return "Suche…"; }, - formatMatches: function (matches) { return matches + " Ergebnis " + (matches > 1 ? "se" : "") + " verfügbar, zum Navigieren die Hoch-/Runter-Pfeiltasten verwenden."; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['de']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_el.js b/assets/inc/select2/select2_locale_el.js deleted file mode 100644 index d52b9f1..0000000 --- a/assets/inc/select2/select2_locale_el.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Greek translation. - * - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['el'] = { - formatNoMatches: function () { return "Δεν βρέθηκαν αποτελέσματα"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Παρακαλούμε εισάγετε " + n + " περισσότερο" + (n > 1 ? "υς" : "") + " χαρακτήρ" + (n > 1 ? "ες" : "α"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Παρακαλούμε διαγράψτε " + n + " χαρακτήρ" + (n > 1 ? "ες" : "α"); }, - formatSelectionTooBig: function (limit) { return "Μπορείτε να επιλέξετε μόνο " + limit + " αντικείμεν" + (limit > 1 ? "α" : "ο"); }, - formatLoadMore: function (pageNumber) { return "Φόρτωση περισσότερων…"; }, - formatSearching: function () { return "Αναζήτηση…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['el']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_en.js.template b/assets/inc/select2/select2_locale_en.js.template deleted file mode 100644 index f758b11..0000000 --- a/assets/inc/select2/select2_locale_en.js.template +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Select2 translation. - * - * Author: Your Name - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['en'] = { - formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, - formatNoMatches: function () { return "No matches found"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, - formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Loading more results…"; }, - formatSearching: function () { return "Searching…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_es.js b/assets/inc/select2/select2_locale_es.js deleted file mode 100644 index 92a1986..0000000 --- a/assets/inc/select2/select2_locale_es.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Spanish translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['es'] = { - formatMatches: function (matches) { if (matches === 1) { return "Un resultado disponible, presione enter para seleccionarlo."; } return matches + " resultados disponibles, use las teclas de dirección para navegar."; }, - formatNoMatches: function () { return "No se encontraron resultados"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "ácter" : "acteres"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "ácter" : "acteres"); }, - formatSelectionTooBig: function (limit) { return "Sólo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Cargando más resultados…"; }, - formatSearching: function () { return "Buscando…"; }, - formatAjaxError: function() { return "La carga falló"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['es']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_et.js b/assets/inc/select2/select2_locale_et.js deleted file mode 100644 index 4d69f55..0000000 --- a/assets/inc/select2/select2_locale_et.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Estonian translation. - * - * Author: Kuldar Kalvik - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['et'] = { - formatNoMatches: function () { return "Tulemused puuduvad"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Sisesta " + n + " täht" + (n == 1 ? "" : "e") + " rohkem"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Sisesta " + n + " täht" + (n == 1? "" : "e") + " vähem"; }, - formatSelectionTooBig: function (limit) { return "Saad vaid " + limit + " tulemus" + (limit == 1 ? "e" : "t") + " valida"; }, - formatLoadMore: function (pageNumber) { return "Laen tulemusi.."; }, - formatSearching: function () { return "Otsin.."; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['et']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_eu.js b/assets/inc/select2/select2_locale_eu.js deleted file mode 100644 index 67ae8d0..0000000 --- a/assets/inc/select2/select2_locale_eu.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Select2 Basque translation. - * - * Author: Julen Ruiz Aizpuru - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['eu'] = { - formatNoMatches: function () { - return "Ez da bat datorrenik aurkitu"; - }, - formatInputTooShort: function (input, min) { - var n = min - input.length; - if (n === 1) { - return "Idatzi karaktere bat gehiago"; - } else { - return "Idatzi " + n + " karaktere gehiago"; - } - }, - formatInputTooLong: function (input, max) { - var n = input.length - max; - if (n === 1) { - return "Idatzi karaktere bat gutxiago"; - } else { - return "Idatzi " + n + " karaktere gutxiago"; - } - }, - formatSelectionTooBig: function (limit) { - if (limit === 1 ) { - return "Elementu bakarra hauta dezakezu"; - } else { - return limit + " elementu hauta ditzakezu soilik"; - } - }, - formatLoadMore: function (pageNumber) { - return "Emaitza gehiago kargatzen…"; - }, - formatSearching: function () { - return "Bilatzen…"; - } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['eu']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_fa.js b/assets/inc/select2/select2_locale_fa.js deleted file mode 100644 index b3ffd8b..0000000 --- a/assets/inc/select2/select2_locale_fa.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Select2 Persian translation. - * - * Author: Ali Choopan - * Author: Ebrahim Byagowi - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['fa'] = { - formatMatches: function (matches) { return matches + " نتیجه موجود است، کلیدهای جهت بالا و پایین را برای گشتن استفاده کنید."; }, - formatNoMatches: function () { return "نتیجه‌ای یافت نشد."; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "لطفاً " + n + " نویسه بیشتر وارد نمایید"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "لطفاً " + n + " نویسه را حذف کنید."; }, - formatSelectionTooBig: function (limit) { return "شما فقط می‌توانید " + limit + " مورد را انتخاب کنید"; }, - formatLoadMore: function (pageNumber) { return "در حال بارگیری موارد بیشتر…"; }, - formatSearching: function () { return "در حال جستجو…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['fa']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_fi.js b/assets/inc/select2/select2_locale_fi.js deleted file mode 100644 index 6487fbd..0000000 --- a/assets/inc/select2/select2_locale_fi.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Select2 Finnish translation - */ -(function ($) { - "use strict"; - $.fn.select2.locales['fi'] = { - formatNoMatches: function () { - return "Ei tuloksia"; - }, - formatInputTooShort: function (input, min) { - var n = min - input.length; - return "Ole hyvä ja anna " + n + " merkkiä lisää"; - }, - formatInputTooLong: function (input, max) { - var n = input.length - max; - return "Ole hyvä ja anna " + n + " merkkiä vähemmän"; - }, - formatSelectionTooBig: function (limit) { - return "Voit valita ainoastaan " + limit + " kpl"; - }, - formatLoadMore: function (pageNumber) { - return "Ladataan lisää tuloksia…"; - }, - formatSearching: function () { - return "Etsitään…"; - } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['fi']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_fr.js b/assets/inc/select2/select2_locale_fr.js deleted file mode 100644 index d5485d6..0000000 --- a/assets/inc/select2/select2_locale_fr.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Select2 French translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['fr'] = { - formatMatches: function (matches) { return matches + " résultats sont disponibles, utilisez les flèches haut et bas pour naviguer."; }, - formatNoMatches: function () { return "Aucun résultat trouvé"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Saisissez " + n + " caractère" + (n == 1? "" : "s") + " supplémentaire" + (n == 1? "" : "s") ; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Supprimez " + n + " caractère" + (n == 1? "" : "s"); }, - formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires…"; }, - formatSearching: function () { return "Recherche en cours…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['fr']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_gl.js b/assets/inc/select2/select2_locale_gl.js deleted file mode 100644 index 9335167..0000000 --- a/assets/inc/select2/select2_locale_gl.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Select2 Galician translation - * - * Author: Leandro Regueiro - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['gl'] = { - formatNoMatches: function () { - return "Non se atoparon resultados"; - }, - formatInputTooShort: function (input, min) { - var n = min - input.length; - if (n === 1) { - return "Engada un carácter"; - } else { - return "Engada " + n + " caracteres"; - } - }, - formatInputTooLong: function (input, max) { - var n = input.length - max; - if (n === 1) { - return "Elimine un carácter"; - } else { - return "Elimine " + n + " caracteres"; - } - }, - formatSelectionTooBig: function (limit) { - if (limit === 1 ) { - return "Só pode seleccionar un elemento"; - } else { - return "Só pode seleccionar " + limit + " elementos"; - } - }, - formatLoadMore: function (pageNumber) { - return "Cargando máis resultados…"; - }, - formatSearching: function () { - return "Buscando…"; - } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['gl']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_he.js b/assets/inc/select2/select2_locale_he.js deleted file mode 100644 index 789dcdc..0000000 --- a/assets/inc/select2/select2_locale_he.js +++ /dev/null @@ -1,19 +0,0 @@ -/** -* Select2 Hebrew translation. -* -* Author: Yakir Sitbon -*/ -(function ($) { - "use strict"; - - $.fn.select2.locales['he'] = { - formatNoMatches: function () { return "לא נמצאו התאמות"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "נא להזין עוד " + n + " תווים נוספים"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "נא להזין פחות " + n + " תווים"; }, - formatSelectionTooBig: function (limit) { return "ניתן לבחור " + limit + " פריטים"; }, - formatLoadMore: function (pageNumber) { return "טוען תוצאות נוספות…"; }, - formatSearching: function () { return "מחפש…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['he']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_hr.js b/assets/inc/select2/select2_locale_hr.js deleted file mode 100644 index ce8051c..0000000 --- a/assets/inc/select2/select2_locale_hr.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Select2 Croatian translation. - * - * @author Edi Modrić - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['hr'] = { - formatNoMatches: function () { return "Nema rezultata"; }, - formatInputTooShort: function (input, min) { return "Unesite još" + character(min - input.length); }, - formatInputTooLong: function (input, max) { return "Unesite" + character(input.length - max) + " manje"; }, - formatSelectionTooBig: function (limit) { return "Maksimalan broj odabranih stavki je " + limit; }, - formatLoadMore: function (pageNumber) { return "Učitavanje rezultata…"; }, - formatSearching: function () { return "Pretraga…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['hr']); - - function character (n) { - return " " + n + " znak" + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "a" : "" : "ova"); - } -})(jQuery); diff --git a/assets/inc/select2/select2_locale_hu.js b/assets/inc/select2/select2_locale_hu.js deleted file mode 100644 index f431f24..0000000 --- a/assets/inc/select2/select2_locale_hu.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Hungarian translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['hu'] = { - formatNoMatches: function () { return "Nincs találat."; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " karakterrel több, mint kellene."; }, - formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; }, - formatLoadMore: function (pageNumber) { return "Töltés…"; }, - formatSearching: function () { return "Keresés…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['hu']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_id.js b/assets/inc/select2/select2_locale_id.js deleted file mode 100644 index e9c1fd9..0000000 --- a/assets/inc/select2/select2_locale_id.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Indonesian translation. - * - * Author: Ibrahim Yusuf - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['id'] = { - formatNoMatches: function () { return "Tidak ada data yang sesuai"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Masukkan " + n + " huruf lagi" + (n == 1 ? "" : "s"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Hapus " + n + " huruf" + (n == 1 ? "" : "s"); }, - formatSelectionTooBig: function (limit) { return "Anda hanya dapat memilih " + limit + " pilihan" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Mengambil data…"; }, - formatSearching: function () { return "Mencari…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['id']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_is.js b/assets/inc/select2/select2_locale_is.js deleted file mode 100644 index 273f33d..0000000 --- a/assets/inc/select2/select2_locale_is.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Icelandic translation. - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['is'] = { - formatNoMatches: function () { return "Ekkert fannst"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Vinsamlegast skrifið " + n + " staf" + (n > 1 ? "i" : "") + " í viðbót"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Vinsamlegast styttið texta um " + n + " staf" + (n > 1 ? "i" : ""); }, - formatSelectionTooBig: function (limit) { return "Þú getur aðeins valið " + limit + " atriði"; }, - formatLoadMore: function (pageNumber) { return "Sæki fleiri niðurstöður…"; }, - formatSearching: function () { return "Leita…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['is']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_it.js b/assets/inc/select2/select2_locale_it.js deleted file mode 100644 index 7dc5194..0000000 --- a/assets/inc/select2/select2_locale_it.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Italian translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['it'] = { - formatNoMatches: function () { return "Nessuna corrispondenza trovata"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; }, - formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); }, - formatLoadMore: function (pageNumber) { return "Caricamento in corso…"; }, - formatSearching: function () { return "Ricerca…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['it']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ja.js b/assets/inc/select2/select2_locale_ja.js deleted file mode 100644 index 7dbd8d7..0000000 --- a/assets/inc/select2/select2_locale_ja.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Japanese translation. - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ja'] = { - formatNoMatches: function () { return "該当なし"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "後" + n + "文字入れてください"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "検索文字列が" + n + "文字長すぎます"; }, - formatSelectionTooBig: function (limit) { return "最多で" + limit + "項目までしか選択できません"; }, - formatLoadMore: function (pageNumber) { return "読込中・・・"; }, - formatSearching: function () { return "検索中・・・"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ja']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ka.js b/assets/inc/select2/select2_locale_ka.js deleted file mode 100644 index 6cbe1d8..0000000 --- a/assets/inc/select2/select2_locale_ka.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Georgian (Kartuli) translation. - * - * Author: Dimitri Kurashvili dimakura@gmail.com - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ka'] = { - formatNoMatches: function () { return "ვერ მოიძებნა"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "გთხოვთ შეიყვანოთ კიდევ " + n + " სიმბოლო"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "გთხოვთ წაშალოთ " + n + " სიმბოლო"; }, - formatSelectionTooBig: function (limit) { return "თქვენ შეგიძლიათ მხოლოდ " + limit + " ჩანაწერის მონიშვნა"; }, - formatLoadMore: function (pageNumber) { return "შედეგის ჩატვირთვა…"; }, - formatSearching: function () { return "ძებნა…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ka']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ko.js b/assets/inc/select2/select2_locale_ko.js deleted file mode 100644 index bf036e0..0000000 --- a/assets/inc/select2/select2_locale_ko.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Korean translation. - * - * @author Swen Mun - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ko'] = { - formatNoMatches: function () { return "결과 없음"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "너무 짧습니다. "+n+"글자 더 입력해주세요."; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "너무 깁니다. "+n+"글자 지워주세요."; }, - formatSelectionTooBig: function (limit) { return "최대 "+limit+"개까지만 선택하실 수 있습니다."; }, - formatLoadMore: function (pageNumber) { return "불러오는 중…"; }, - formatSearching: function () { return "검색 중…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ko']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_lt.js b/assets/inc/select2/select2_locale_lt.js deleted file mode 100644 index 7d7040f..0000000 --- a/assets/inc/select2/select2_locale_lt.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Select2 Lithuanian translation. - * - * @author CRONUS Karmalakas - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['lt'] = { - formatNoMatches: function () { return "Atitikmenų nerasta"; }, - formatInputTooShort: function (input, min) { return "Įrašykite dar" + character(min - input.length); }, - formatInputTooLong: function (input, max) { return "Pašalinkite" + character(input.length - max); }, - formatSelectionTooBig: function (limit) { - return "Jūs galite pasirinkti tik " + limit + " element" + ((limit%100 > 9 && limit%100 < 21) || limit%10 == 0 ? "ų" : limit%10 > 1 ? "us" : "ą"); - }, - formatLoadMore: function (pageNumber) { return "Kraunama daugiau rezultatų…"; }, - formatSearching: function () { return "Ieškoma…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['lt']); - - function character (n) { - return " " + n + " simbol" + ((n%100 > 9 && n%100 < 21) || n%10 == 0 ? "ių" : n%10 > 1 ? "ius" : "į"); - } -})(jQuery); diff --git a/assets/inc/select2/select2_locale_lv.js b/assets/inc/select2/select2_locale_lv.js deleted file mode 100644 index 4afc5b4..0000000 --- a/assets/inc/select2/select2_locale_lv.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Latvian translation. - * - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['lv'] = { - formatNoMatches: function () { return "Sakritību nav"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Lūdzu ievadiet vēl " + n + " simbol" + (n == 11 ? "us" : n%10 == 1 ? "u" : "us"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Lūdzu ievadiet par " + n + " simbol" + (n == 11 ? "iem" : n%10 == 1 ? "u" : "iem") + " mazāk"; }, - formatSelectionTooBig: function (limit) { return "Jūs varat izvēlēties ne vairāk kā " + limit + " element" + (limit == 11 ? "us" : limit%10 == 1 ? "u" : "us"); }, - formatLoadMore: function (pageNumber) { return "Datu ielāde…"; }, - formatSearching: function () { return "Meklēšana…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['lv']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_mk.js b/assets/inc/select2/select2_locale_mk.js deleted file mode 100644 index 5eaef8b..0000000 --- a/assets/inc/select2/select2_locale_mk.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Macedonian translation. - * - * Author: Marko Aleksic - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['mk'] = { - formatNoMatches: function () { return "Нема пронајдено совпаѓања"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Ве молиме внесете уште " + n + " карактер" + (n == 1 ? "" : "и"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Ве молиме внесете " + n + " помалку карактер" + (n == 1? "" : "и"); }, - formatSelectionTooBig: function (limit) { return "Можете да изберете само " + limit + " ставк" + (limit == 1 ? "а" : "и"); }, - formatLoadMore: function (pageNumber) { return "Вчитување резултати…"; }, - formatSearching: function () { return "Пребарување…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['mk']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ms.js b/assets/inc/select2/select2_locale_ms.js deleted file mode 100644 index 46588d6..0000000 --- a/assets/inc/select2/select2_locale_ms.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Malay translation. - * - * Author: Kepoweran - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ms'] = { - formatNoMatches: function () { return "Tiada padanan yang ditemui"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Sila masukkan " + n + " aksara lagi"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Sila hapuskan " + n + " aksara"; }, - formatSelectionTooBig: function (limit) { return "Anda hanya boleh memilih " + limit + " pilihan"; }, - formatLoadMore: function (pageNumber) { return "Sedang memuatkan keputusan…"; }, - formatSearching: function () { return "Mencari…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ms']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_nb.js b/assets/inc/select2/select2_locale_nb.js deleted file mode 100644 index cb5dfae..0000000 --- a/assets/inc/select2/select2_locale_nb.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Select2 Norwegian Bokmål translation. - * - * Author: Torgeir Veimo - * Author: Bjørn Johansen - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['nb'] = { - formatMatches: function (matches) { if (matches === 1) { return "Ett resultat er tilgjengelig, trykk enter for å velge det."; } return matches + " resultater er tilgjengelig. Bruk piltastene opp og ned for å navigere."; }, - formatNoMatches: function () { return "Ingen treff"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Vennligst skriv inn " + n + (n>1 ? " flere tegn" : " tegn til"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Vennligst fjern " + n + " tegn"; }, - formatSelectionTooBig: function (limit) { return "Du kan velge maks " + limit + " elementer"; }, - formatLoadMore: function (pageNumber) { return "Laster flere resultater …"; }, - formatSearching: function () { return "Søker …"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['no']); -})(jQuery); - diff --git a/assets/inc/select2/select2_locale_nl.js b/assets/inc/select2/select2_locale_nl.js deleted file mode 100644 index 985741e..0000000 --- a/assets/inc/select2/select2_locale_nl.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Dutch translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['nl'] = { - formatNoMatches: function () { return "Geen resultaten gevonden"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul nog " + n + " karakter" + (n == 1? "" : "s") + " in"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Haal " + n + " karakter" + (n == 1? "" : "s") + " weg"; }, - formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; }, - formatLoadMore: function (pageNumber) { return "Meer resultaten laden…"; }, - formatSearching: function () { return "Zoeken…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['nl']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_pl.js b/assets/inc/select2/select2_locale_pl.js deleted file mode 100644 index 87c2619..0000000 --- a/assets/inc/select2/select2_locale_pl.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Select2 Polish translation. - * - * @author Jan Kondratowicz - * @author Uriy Efremochkin - * @author Michał Połtyn - * @author Damian Zajkowski - */ -(function($) { - "use strict"; - - $.fn.select2.locales['pl'] = { - formatNoMatches: function() { - return "Brak wyników"; - }, - formatInputTooShort: function(input, min) { - return "Wpisz co najmniej" + character(min - input.length, "znak", "i"); - }, - formatInputTooLong: function(input, max) { - return "Wpisana fraza jest za długa o" + character(input.length - max, "znak", "i"); - }, - formatSelectionTooBig: function(limit) { - return "Możesz zaznaczyć najwyżej" + character(limit, "element", "y"); - }, - formatLoadMore: function(pageNumber) { - return "Ładowanie wyników…"; - }, - formatSearching: function() { - return "Szukanie…"; - } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['pl']); - - function character(n, word, pluralSuffix) { - //Liczba pojedyncza - brak suffiksu - //jeden znak - //jeden element - var suffix = ''; - if (n > 1 && n < 5) { - //Liczaba mnoga ilość od 2 do 4 - własny suffiks - //Dwa znaki, trzy znaki, cztery znaki. - //Dwa elementy, trzy elementy, cztery elementy - suffix = pluralSuffix; - } else if (n == 0 || n >= 5) { - //Ilość 0 suffiks ów - //Liczaba mnoga w ilości 5 i więcej - suffiks ów (nie poprawny dla wszystkich wyrazów, np. 100 wiadomości) - //Zero znaków, Pięć znaków, sześć znaków, siedem znaków, osiem znaków. - //Zero elementów Pięć elementów, sześć elementów, siedem elementów, osiem elementów. - suffix = 'ów'; - } - return " " + n + " " + word + suffix; - } -})(jQuery); diff --git a/assets/inc/select2/select2_locale_pt-BR.js b/assets/inc/select2/select2_locale_pt-BR.js deleted file mode 100644 index 51b037d..0000000 --- a/assets/inc/select2/select2_locale_pt-BR.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Select2 Brazilian Portuguese translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['pt-BR'] = { - formatNoMatches: function () { return "Nenhum resultado encontrado"; }, - formatAjaxError: function () { return "Erro na busca"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Digite " + (min == 1 ? "" : "mais") + " " + n + " caracter" + (n == 1? "" : "es"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caracter" + (n == 1? "" : "es"); }, - formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Carregando mais resultados…"; }, - formatSearching: function () { return "Buscando…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['pt-BR']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_pt-PT.js b/assets/inc/select2/select2_locale_pt-PT.js deleted file mode 100644 index ae55a4f..0000000 --- a/assets/inc/select2/select2_locale_pt-PT.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Portuguese (Portugal) translation - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['pt-PT'] = { - formatNoMatches: function () { return "Nenhum resultado encontrado"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, - formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "A carregar mais resultados…"; }, - formatSearching: function () { return "A pesquisar…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['pt-PT']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ro.js b/assets/inc/select2/select2_locale_ro.js deleted file mode 100644 index 21b0cf1..0000000 --- a/assets/inc/select2/select2_locale_ro.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Select2 Romanian translation. - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ro'] = { - formatNoMatches: function () { return "Nu a fost găsit nimic"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); }, - formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); }, - formatLoadMore: function (pageNumber) { return "Se încarcă…"; }, - formatSearching: function () { return "Căutare…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ro']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_rs.js b/assets/inc/select2/select2_locale_rs.js deleted file mode 100644 index 72c1638..0000000 --- a/assets/inc/select2/select2_locale_rs.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Serbian translation. - * - * @author Limon Monte - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['rs'] = { - formatNoMatches: function () { return "Ništa nije pronađeno"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Ukucajte bar još " + n + " simbol" + (n % 10 == 1 && n % 100 != 11 ? "" : "a"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Obrišite " + n + " simbol" + (n % 10 == 1 && n % 100 != 11 ? "" : "a"); }, - formatSelectionTooBig: function (limit) { return "Možete izabrati samo " + limit + " stavk" + (limit % 10 == 1 && limit % 100 != 11 ? "u" : (limit % 10 >= 2 && limit % 10 <= 4 && (limit % 100 < 12 || limit % 100 > 14)? "e" : "i")); }, - formatLoadMore: function (pageNumber) { return "Preuzimanje još rezultata…"; }, - formatSearching: function () { return "Pretraga…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['rs']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ru.js b/assets/inc/select2/select2_locale_ru.js deleted file mode 100644 index 2a6c770..0000000 --- a/assets/inc/select2/select2_locale_ru.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Select2 Russian translation. - * - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['ru'] = { - formatNoMatches: function () { return "Совпадений не найдено"; }, - formatInputTooShort: function (input, min) { return "Пожалуйста, введите еще хотя бы" + character(min - input.length); }, - formatInputTooLong: function (input, max) { return "Пожалуйста, введите на" + character(input.length - max) + " меньше"; }, - formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit%10 == 1 && limit%100 != 11 ? "а" : "ов"); }, - formatLoadMore: function (pageNumber) { return "Загрузка данных…"; }, - formatSearching: function () { return "Поиск…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ru']); - - function character (n) { - return " " + n + " символ" + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 20) ? n%10 > 1 ? "a" : "" : "ов"); - } -})(jQuery); diff --git a/assets/inc/select2/select2_locale_sk.js b/assets/inc/select2/select2_locale_sk.js deleted file mode 100644 index 027530c..0000000 --- a/assets/inc/select2/select2_locale_sk.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Select2 Slovak translation. - * - * Author: David Vallner - */ -(function ($) { - "use strict"; - // use text for the numbers 2 through 4 - var smallNumbers = { - 2: function(masc) { return (masc ? "dva" : "dve"); }, - 3: function() { return "tri"; }, - 4: function() { return "štyri"; } - }; - $.fn.select2.locales['sk'] = { - formatNoMatches: function () { return "Nenašli sa žiadne položky"; }, - formatInputTooShort: function (input, min) { - var n = min - input.length; - if (n == 1) { - return "Prosím, zadajte ešte jeden znak"; - } else if (n <= 4) { - return "Prosím, zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky"; - } else { - return "Prosím, zadajte ešte ďalších "+n+" znakov"; - } - }, - formatInputTooLong: function (input, max) { - var n = input.length - max; - if (n == 1) { - return "Prosím, zadajte o jeden znak menej"; - } else if (n >= 2 && n <= 4) { - return "Prosím, zadajte o "+smallNumbers[n](true)+" znaky menej"; - } else { - return "Prosím, zadajte o "+n+" znakov menej"; - } - }, - formatSelectionTooBig: function (limit) { - if (limit == 1) { - return "Môžete zvoliť len jednu položku"; - } else if (limit >= 2 && limit <= 4) { - return "Môžete zvoliť najviac "+smallNumbers[limit](false)+" položky"; - } else { - return "Môžete zvoliť najviac "+limit+" položiek"; - } - }, - formatLoadMore: function (pageNumber) { return "Načítavajú sa ďalšie výsledky…"; }, - formatSearching: function () { return "Vyhľadávanie…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['sk']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_sv.js b/assets/inc/select2/select2_locale_sv.js deleted file mode 100644 index 96f8c0a..0000000 --- a/assets/inc/select2/select2_locale_sv.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Swedish translation. - * - * Author: Jens Rantil - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['sv'] = { - formatNoMatches: function () { return "Inga träffar"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; }, - formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; }, - formatLoadMore: function (pageNumber) { return "Laddar fler resultat…"; }, - formatSearching: function () { return "Söker…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['sv']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_th.js b/assets/inc/select2/select2_locale_th.js deleted file mode 100644 index 7f3e6ef..0000000 --- a/assets/inc/select2/select2_locale_th.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Thai translation. - * - * Author: Atsawin Chaowanakritsanakul - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['th'] = { - formatNoMatches: function () { return "ไม่พบข้อมูล"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "โปรดพิมพ์เพิ่มอีก " + n + " ตัวอักษร"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "โปรดลบออก " + n + " ตัวอักษร"; }, - formatSelectionTooBig: function (limit) { return "คุณสามารถเลือกได้ไม่เกิน " + limit + " รายการ"; }, - formatLoadMore: function (pageNumber) { return "กำลังค้นข้อมูลเพิ่ม…"; }, - formatSearching: function () { return "กำลังค้นข้อมูล…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['th']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_tr.js b/assets/inc/select2/select2_locale_tr.js deleted file mode 100644 index 1dda95c..0000000 --- a/assets/inc/select2/select2_locale_tr.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Select2 Turkish translation. - * - * Author: Salim KAYABAŞI - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['tr'] = { - formatNoMatches: function () { return "Sonuç bulunamadı"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; }, - formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; }, - formatLoadMore: function (pageNumber) { return "Daha fazla…"; }, - formatSearching: function () { return "Aranıyor…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['tr']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_ug-CN.js b/assets/inc/select2/select2_locale_ug-CN.js deleted file mode 100644 index 579588a..0000000 --- a/assets/inc/select2/select2_locale_ug-CN.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Select2 Uyghur translation - */ -(function ($) { - "use strict"; - $.fn.select2.locales['ug-CN'] = { - formatNoMatches: function () { return "ماس كېلىدىغان ئۇچۇر تېپىلمىدى"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "يەنە " + n + " ھەرپ كىرگۈزۈڭ";}, - formatInputTooLong: function (input, max) { var n = input.length - max; return "" + n + "ھەرپ ئۆچۈرۈڭ";}, - formatSelectionTooBig: function (limit) { return "ئەڭ كۆپ بولغاندا" + limit + " تال ئۇچۇر تاللىيالايسىز"; }, - formatLoadMore: function (pageNumber) { return "ئۇچۇرلار ئوقۇلىۋاتىدۇ…"; }, - formatSearching: function () { return "ئىزدەۋاتىدۇ…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['ug-CN']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_uk.js b/assets/inc/select2/select2_locale_uk.js deleted file mode 100644 index b5bd0e0..0000000 --- a/assets/inc/select2/select2_locale_uk.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Select2 Ukrainian translation. - * - * @author bigmihail - * @author Uriy Efremochkin - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['uk'] = { - formatMatches: function (matches) { return character(matches, "результат") + " знайдено, використовуйте клавіші зі стрілками вверх та вниз для навігації."; }, - formatNoMatches: function () { return "Нічого не знайдено"; }, - formatInputTooShort: function (input, min) { return "Введіть буль ласка ще " + character(min - input.length, "символ"); }, - formatInputTooLong: function (input, max) { return "Введіть буль ласка на " + character(input.length - max, "символ") + " менше"; }, - formatSelectionTooBig: function (limit) { return "Ви можете вибрати лише " + character(limit, "елемент"); }, - formatLoadMore: function (pageNumber) { return "Завантаження даних…"; }, - formatSearching: function () { return "Пошук…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['uk']); - - function character (n, word) { - return n + " " + word + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "и" : "" : "ів"); - } -})(jQuery); diff --git a/assets/inc/select2/select2_locale_vi.js b/assets/inc/select2/select2_locale_vi.js deleted file mode 100644 index cc67065..0000000 --- a/assets/inc/select2/select2_locale_vi.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Select2 Vietnamese translation. - * - * Author: Long Nguyen - */ -(function ($) { - "use strict"; - - $.fn.select2.locales['vi'] = { - formatNoMatches: function () { return "Không tìm thấy kết quả"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Vui lòng nhập nhiều hơn " + n + " ký tự" + (n == 1 ? "" : "s"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Vui lòng nhập ít hơn " + n + " ký tự" + (n == 1? "" : "s"); }, - formatSelectionTooBig: function (limit) { return "Chỉ có thể chọn được " + limit + " tùy chọn" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Đang lấy thêm kết quả…"; }, - formatSearching: function () { return "Đang tìm…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['vi']); -})(jQuery); - diff --git a/assets/inc/select2/select2_locale_zh-CN.js b/assets/inc/select2/select2_locale_zh-CN.js deleted file mode 100644 index e988dac..0000000 --- a/assets/inc/select2/select2_locale_zh-CN.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Select2 Chinese translation - */ -(function ($) { - "use strict"; - $.fn.select2.locales['zh-CN'] = { - formatNoMatches: function () { return "没有找到匹配项"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";}, - formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";}, - formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; }, - formatLoadMore: function (pageNumber) { return "加载结果中…"; }, - formatSearching: function () { return "搜索中…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['zh-CN']); -})(jQuery); diff --git a/assets/inc/select2/select2_locale_zh-TW.js b/assets/inc/select2/select2_locale_zh-TW.js deleted file mode 100644 index 85dbd5a..0000000 --- a/assets/inc/select2/select2_locale_zh-TW.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Select2 Traditional Chinese translation - */ -(function ($) { - "use strict"; - $.fn.select2.locales['zh-TW'] = { - formatNoMatches: function () { return "沒有找到相符的項目"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "請再輸入" + n + "個字元";}, - formatInputTooLong: function (input, max) { var n = input.length - max; return "請刪掉" + n + "個字元";}, - formatSelectionTooBig: function (limit) { return "你只能選擇最多" + limit + "項"; }, - formatLoadMore: function (pageNumber) { return "載入中…"; }, - formatSearching: function () { return "搜尋中…"; } - }; - - $.extend($.fn.select2.defaults, $.fn.select2.locales['zh-TW']); -})(jQuery); diff --git a/assets/inc/timepicker/jquery-ui-timepicker-addon.css b/assets/inc/timepicker/jquery-ui-timepicker-addon.css new file mode 100644 index 0000000..02f77ba --- /dev/null +++ b/assets/inc/timepicker/jquery-ui-timepicker-addon.css @@ -0,0 +1,30 @@ +.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: none; border: none; margin: 0; padding: 0; } +.ui-timepicker-div .ui_tpicker_unit_hide{ display: none; } + +.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input { background: none; color: inherit; border: none; outline: none; border-bottom: solid 1px #555; width: 95%; } +.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus { border-bottom-color: #aaa; } + +.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; } + +/* Shortened version style */ +.ui-timepicker-div.ui-timepicker-oneLine { padding-right: 2px; } +.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time, +.ui-timepicker-div.ui-timepicker-oneLine dt { display: none; } +.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label { display: block; padding-top: 2px; } +.ui-timepicker-div.ui-timepicker-oneLine dl { text-align: right; } +.ui-timepicker-div.ui-timepicker-oneLine dl dd, +.ui-timepicker-div.ui-timepicker-oneLine dl dd > div { display:inline-block; margin:0; } +.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before, +.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before { content:':'; display:inline-block; } +.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before, +.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content:'.'; display:inline-block; } +.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide, +.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{ display: none; } diff --git a/assets/inc/timepicker/jquery-ui-timepicker-addon.js b/assets/inc/timepicker/jquery-ui-timepicker-addon.js new file mode 100644 index 0000000..d37bc02 --- /dev/null +++ b/assets/inc/timepicker/jquery-ui-timepicker-addon.js @@ -0,0 +1,2291 @@ +/*! jQuery Timepicker Addon - v1.6.3 - 2016-04-20 +* http://trentrichardson.com/examples/timepicker +* Copyright (c) 2016 Trent Richardson; Licensed MIT */ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery', 'jquery-ui'], factory); + } else { + factory(jQuery); + } +}(function ($) { + + /* + * Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum call stack size exceeded" + */ + $.ui.timepicker = $.ui.timepicker || {}; + if ($.ui.timepicker.version) { + return; + } + + /* + * Extend jQueryUI, get it started with our version number + */ + $.extend($.ui, { + timepicker: { + version: "1.6.3" + } + }); + + /* + * Timepicker manager. + * Use the singleton instance of this class, $.timepicker, to interact with the time picker. + * Settings for (groups of) time pickers are maintained in an instance object, + * allowing multiple different settings on the same page. + */ + var Timepicker = function () { + this.regional = []; // Available regional settings, indexed by language code + this.regional[''] = { // Default regional settings + 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: false + }; + this._defaults = { // Global defaults for all the datetime picker instances + showButtonPanel: true, + timeOnly: false, + timeOnlyShowDate: false, + showHour: null, + showMinute: null, + showSecond: null, + showMillisec: null, + showMicrosec: null, + showTimezone: null, + showTime: true, + 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: true, + separator: ' ', + altFieldTimeOnly: true, + altTimeFormat: null, + altSeparator: null, + altTimeSuffix: null, + altRedirectFocus: true, + pickerTimeFormat: null, + pickerTimeSuffix: null, + showTimepicker: true, + timezoneList: null, + addSliderAccess: false, + sliderAccessArgs: null, + controlType: 'slider', + oneLine: false, + defaultValue: null, + parse: 'strict', + afterInject: null + }; + $.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, + + /* + * Override the default settings for all instances of the time picker. + * @param {Object} settings object - the new settings to use as defaults (anonymous object) + * @return {Object} the manager object + */ + setDefaults: function (settings) { + extendRemove(this._defaults, settings || {}); + return this; + }, + + /* + * Create a new Timepicker instance + */ + _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 (input, dp_inst) { + if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) { + return tp_inst._defaults.evnts.beforeShow.call($input[0], input, dp_inst, tp_inst); + } + }, + onChangeMonthYear: function (year, month, dp_inst) { + // Update the time as well : this prevents the time from disappearing from the $input field. + // tp_inst._updateDateTime(dp_inst); + if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) { + tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst); + } + }, + onClose: function (dateText, dp_inst) { + if (tp_inst.timeDefined === true && $input.val() !== '') { + tp_inst._updateDateTime(dp_inst); + } + if ($.isFunction(tp_inst._defaults.evnts.onClose)) { + tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst); + } + } + }; + for (i in overrides) { + if (overrides.hasOwnProperty(i)) { + fns[i] = opts[i] || this._defaults[i] || null; + } + } + + tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, opts, overrides, { + evnts: fns, + timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker'); + }); + tp_inst.amNames = $.map(tp_inst._defaults.amNames, function (val) { + return val.toUpperCase(); + }); + tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function (val) { + return val.toUpperCase(); + }); + + // detect which units are supported + tp_inst.support = detectSupport( + tp_inst._defaults.timeFormat + + (tp_inst._defaults.pickerTimeFormat ? tp_inst._defaults.pickerTimeFormat : '') + + (tp_inst._defaults.altTimeFormat ? tp_inst._defaults.altTimeFormat : '')); + + // controlType is string - key to our this._controls + if (typeof(tp_inst._defaults.controlType) === 'string') { + if (tp_inst._defaults.controlType === 'slider' && typeof($.ui.slider) === 'undefined') { + tp_inst._defaults.controlType = 'select'; + } + tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType]; + } + // controlType is an object and must implement create, options, value methods + else { + tp_inst.control = tp_inst._defaults.controlType; + } + + // prep the timezone options + 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]; + if (tp_inst._defaults.timezoneList !== null) { + timezoneList = tp_inst._defaults.timezoneList; + } + var tzl = timezoneList.length, tzi = 0, tzv = null; + if (tzl > 0 && typeof timezoneList[0] !== 'object') { + for (; tzi < tzl; tzi++) { + tzv = timezoneList[tzi]; + timezoneList[tzi] = { value: tzv, label: $.timepicker.timezoneOffsetString(tzv, tp_inst.support.iso8601) }; + } + } + tp_inst._defaults.timezoneList = timezoneList; + + // set the default units + tp_inst.timezone = tp_inst._defaults.timezone !== null ? $.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone) : + ((new Date()).getTimezoneOffset() * -1); + 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; + + if (tp_inst._defaults.altField) { + tp_inst.$altInput = $(tp_inst._defaults.altField); + if (tp_inst._defaults.altRedirectFocus === true) { + tp_inst.$altInput.css({ + cursor: 'pointer' + }).focus(function () { + $input.trigger("focus"); + }); + } + } + + if (tp_inst._defaults.minDate === 0 || tp_inst._defaults.minDateTime === 0) { + tp_inst._defaults.minDate = new Date(); + } + if (tp_inst._defaults.maxDate === 0 || tp_inst._defaults.maxDateTime === 0) { + tp_inst._defaults.maxDate = new Date(); + } + + // datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime.. + if (tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) { + tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime()); + } + if (tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date) { + tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime()); + } + if (tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date) { + tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime()); + } + if (tp_inst._defaults.maxDateTime !== undefined && 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(); + }); + + return tp_inst; + }, + + /* + * add our sliders to the calendar + */ + _addTimePicker: function (dp_inst) { + var currDT = $.trim((this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val()); + + this.timeDefined = this._parseTime(currDT); + this._limitMinMaxDateTime(dp_inst, false); + this._injectTimePicker(); + this._afterInject(); + }, + + /* + * parse the time string from input value or _setTime + */ + _parseTime: function (timeString, withDate) { + if (!this.inst) { + this.inst = $.datepicker._getInst(this.$input[0]); + } + + if (withDate || !this._defaults.timeOnly) { + var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat'); + try { + var parseRes = parseDateTimeInternal(dp_dateFormat, this._defaults.timeFormat, timeString, $.datepicker._getFormatConfig(this.inst), this._defaults); + if (!parseRes.timeObj) { + return false; + } + $.extend(this, parseRes.timeObj); + } catch (err) { + $.timepicker.log("Error parsing the date/time string: " + err + + "\ndate/time string = " + timeString + + "\ntimeFormat = " + this._defaults.timeFormat + + "\ndateFormat = " + dp_dateFormat); + return false; + } + return true; + } else { + var timeObj = $.datepicker.parseTime(this._defaults.timeFormat, timeString, this._defaults); + if (!timeObj) { + return false; + } + $.extend(this, timeObj); + return true; + } + }, + + /* + * Handle callback option after injecting timepicker + */ + _afterInject: function() { + var o = this.inst.settings; + if ($.isFunction(o.afterInject)) { + o.afterInject.call(this); + } + }, + + /* + * generate and inject html for timepicker into ui datepicker + */ + _injectTimePicker: function () { + var $dp = this.inst.dpDiv, + o = this.inst.settings, + tp_inst = this, + litem = '', + uitem = '', + show = null, + max = {}, + gridSize = {}, + size = null, + i = 0, + l = 0; + + // Prevent displaying twice + if ($dp.find("div.ui-timepicker-div").length === 0 && o.showTimepicker) { + var noDisplay = ' ui_tpicker_unit_hide', + html = '
' + '
' + o.timeText + '
' + + '
'; + + // Create the markup + for (i = 0, l = this.units.length; i < l; i++) { + litem = this.units[i]; + uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1); + show = o['show' + uitem] !== null ? o['show' + uitem] : this.support[litem]; + + // Added by Peter Medeiros: + // - Figure out what the hour/minute/second max should be based on the step values. + // - Example: if stepMinute is 15, then minMax is 45. + max[litem] = parseInt((o[litem + 'Max'] - ((o[litem + 'Max'] - o[litem + 'Min']) % o['step' + uitem])), 10); + gridSize[litem] = 0; + + html += '
' + o[litem + 'Text'] + '
' + + '
'; + + if (show && o[litem + 'Grid'] > 0) { + html += '
'; + + if (litem === 'hour') { + for (var h = o[litem + 'Min']; h <= max[litem]; h += parseInt(o[litem + 'Grid'], 10)) { + gridSize[litem]++; + var tmph = $.datepicker.formatTime(this.support.ampm ? 'hht' : 'HH', {hour: h}, o); + html += ''; + } + } + else { + for (var m = o[litem + 'Min']; m <= max[litem]; m += parseInt(o[litem + 'Grid'], 10)) { + gridSize[litem]++; + html += ''; + } + } + + html += '
' + tmph + '' + ((m < 10) ? '0' : '') + m + '
'; + } + html += '
'; + } + + // Timezone + var showTz = o.showTimezone !== null ? o.showTimezone : this.support.timezone; + html += '
' + o.timezoneText + '
'; + html += '
'; + + // Create the elements from string + html += '
'; + var $tp = $(html); + + // if we only want time picker... + if (o.timeOnly === true) { + $tp.prepend('
' + '
' + o.timeOnlyTitle + '
' + '
'); + $dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide(); + } + + // add sliders, adjust grids, add events + for (i = 0, l = tp_inst.units.length; i < l; i++) { + litem = tp_inst.units[i]; + uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1); + show = o['show' + uitem] !== null ? o['show' + uitem] : this.support[litem]; + + // add the slider + tp_inst[litem + '_slider'] = tp_inst.control.create(tp_inst, $tp.find('.ui_tpicker_' + litem + '_slider'), litem, tp_inst[litem], o[litem + 'Min'], max[litem], o['step' + uitem]); + + // adjust the grid and add click event + if (show && o[litem + 'Grid'] > 0) { + size = 100 * gridSize[litem] * o[litem + 'Grid'] / (max[litem] - o[litem + 'Min']); + $tp.find('.ui_tpicker_' + litem + ' table').css({ + width: size + "%", + marginLeft: o.isRTL ? '0' : ((size / (-2 * gridSize[litem])) + "%"), + marginRight: o.isRTL ? ((size / (-2 * gridSize[litem])) + "%") : '0', + borderCollapse: 'collapse' + }).find("td").click(function (e) { + var $t = $(this), + h = $t.html(), + n = parseInt(h.replace(/[^0-9]/g), 10), + ap = h.replace(/[^apm]/ig), + f = $t.data('for'); // loses scope, so we use data-for + + if (f === 'hour') { + if (ap.indexOf('p') !== -1 && n < 12) { + n += 12; + } + else { + if (ap.indexOf('a') !== -1 && n === 12) { + n = 0; + } + } + } + + tp_inst.control.value(tp_inst, tp_inst[f + '_slider'], litem, n); + + tp_inst._onTimeChange(); + tp_inst._onSelectHandler(); + }).css({ + cursor: 'pointer', + width: (100 / gridSize[litem]) + '%', + textAlign: 'center', + overflow: 'hidden' + }); + } // end if grid > 0 + } // end for loop + + // Add timezone options + this.timezone_select = $tp.find('.ui_tpicker_timezone').append('').find("select"); + $.fn.append.apply(this.timezone_select, + $.map(o.timezoneList, function (val, idx) { + return $("