├── .github └── workflows │ └── publish-to-redaxo.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── assets └── css │ └── styles.css ├── boot.php ├── help.php ├── lang └── de_de.lang ├── package.yml ├── pages ├── index.php ├── info.changelog.php ├── info.info.php └── info.lizenz.php └── plugins ├── bootstrap-datetimepicker ├── LESS.md ├── SCSS.md ├── assets │ └── bootstrap-datetimepicker │ │ ├── LICENSE │ │ ├── README.md │ │ ├── css │ │ ├── bootstrap-datetimepicker-standalone.css │ │ ├── bootstrap-datetimepicker.css │ │ └── bootstrap-datetimepicker.min.css │ │ ├── js │ │ ├── bootstrap-datetimepicker.min.js │ │ └── moment-with-locales.js │ │ └── rex_bootstrap-datetimepicker.js ├── boot.php ├── help.php ├── lang │ └── de_de.lang ├── lib │ └── yform │ │ └── value │ │ └── datepicker.php ├── package.yml ├── pages │ ├── bootstrap-datetimepicker_less.php │ ├── bootstrap-datetimepicker_license.php │ ├── bootstrap-datetimepicker_readme.php │ ├── bootstrap-datetimepicker_scss.php │ └── index.php └── ytemplates │ └── bootstrap │ └── value.datepicker.tpl.php ├── jquery-minicolors ├── assets │ └── jquery-minicolors │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ └── FUNDING.yml │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── component.json │ │ ├── composer.json │ │ ├── gulpfile.js │ │ ├── index.html │ │ ├── jquery-minicolors.js │ │ ├── jquery.minicolors.css │ │ ├── jquery.minicolors.js │ │ ├── jquery.minicolors.min.js │ │ ├── jquery.minicolors.png │ │ ├── package.json │ │ └── without-bootstrap.html ├── boot.php ├── help.php ├── install.php ├── lang │ └── de_de.lang ├── package.yml └── pages │ ├── index.php │ ├── jquery-minicolors_license.php │ └── jquery-minicolors_readme.php └── selectize ├── assets ├── rex_selectize.js └── selectize │ ├── .browserslistrc │ ├── .editorconfig │ ├── .github │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── dependabot.yml │ └── workflows │ │ ├── UpdateContributors.yml │ │ ├── codeql-analysis.yml │ │ ├── node.js.yml │ │ └── stale.yml │ ├── .gitignore │ ├── CHANGELOG.md │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── CONTRIBUTORS.md │ ├── Gruntfile.js │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── SECURITY.md │ ├── dist │ ├── css │ │ ├── selectize.bootstrap2.css │ │ ├── selectize.bootstrap3.css │ │ ├── selectize.bootstrap4.css │ │ ├── selectize.bootstrap5.css │ │ ├── selectize.css │ │ ├── selectize.default.css │ │ └── selectize.legacy.css │ ├── js │ │ ├── selectize.js │ │ ├── selectize.min.js │ │ └── standalone │ │ │ ├── selectize.js │ │ │ └── selectize.min.js │ ├── less │ │ ├── plugins │ │ │ ├── drag_drop.less │ │ │ ├── dropdown_header.less │ │ │ ├── optgroup_columns.less │ │ │ └── remove_button.less │ │ ├── selectize.bootstrap2.less │ │ ├── selectize.bootstrap3.less │ │ ├── selectize.default.less │ │ ├── selectize.legacy.less │ │ └── selectize.less │ └── scss │ │ ├── plugins │ │ ├── drag_drop.scss │ │ ├── dropdown_header.scss │ │ ├── optgroup_columns.scss │ │ └── remove_button.scss │ │ ├── selectize.bootstrap3.scss │ │ ├── selectize.bootstrap4.scss │ │ ├── selectize.bootstrap5.scss │ │ ├── selectize.default.scss │ │ └── selectize.scss │ ├── docs │ ├── api.md │ ├── events.md │ ├── plugins.md │ ├── selectize-logo.png │ ├── selectize-wordmark.png │ └── usage.md │ ├── examples │ ├── api.html │ ├── basic.html │ ├── cities.html │ ├── confirm.html │ ├── contacts.html │ ├── create-filter.html │ ├── css │ │ ├── normalize.css │ │ └── stylesheet.css │ ├── customization.html │ ├── dynamic.html │ ├── events.html │ ├── github.html │ ├── images │ │ ├── bg.png │ │ ├── check@2x.png │ │ ├── repo-forked.png │ │ ├── repo-source.png │ │ └── spinner.gif │ ├── js │ │ ├── es5.js │ │ ├── index.js │ │ ├── jquery.min.js │ │ └── jqueryui.js │ ├── lock.html │ ├── movies.html │ ├── optgroups.html │ ├── performance.html │ ├── plugins.html │ ├── required.html │ └── rtl.html │ ├── index.d.ts │ ├── karma.conf.js │ ├── selectize.jquery.json │ ├── src │ ├── .wrapper.js │ ├── constants.js │ ├── contrib │ │ ├── highlight.js │ │ └── microevent.js │ ├── defaults.js │ ├── less │ │ ├── .wrapper.css │ │ ├── selectize.bootstrap2.less │ │ ├── selectize.bootstrap3.less │ │ ├── selectize.default.less │ │ ├── selectize.legacy.less │ │ └── selectize.less │ ├── plugins │ │ ├── auto_position │ │ │ └── plugin.js │ │ ├── auto_select_on_type │ │ │ └── plugin.js │ │ ├── autofill_disable │ │ │ └── plugin.js │ │ ├── drag_drop │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── dropdown_header │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── optgroup_columns │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── remove_button │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── restore_on_backspace │ │ │ └── plugin.js │ │ ├── select_on_focus │ │ │ └── plugin.js │ │ └── tag_limit │ │ │ └── plugin.js │ ├── scss │ │ ├── selectize.bootstrap3.scss │ │ ├── selectize.bootstrap4.scss │ │ ├── selectize.bootstrap5.scss │ │ ├── selectize.default.scss │ │ └── selectize.scss │ ├── selectize.jquery.js │ ├── selectize.js │ └── utils.js │ └── test │ ├── api.js │ ├── events.js │ ├── events_dom.js │ ├── interaction.js │ ├── setup.js │ ├── support │ ├── base.js │ └── syn.js │ └── xss.js ├── boot.php ├── help.php ├── lang └── de_de.lang ├── package.yml └── pages ├── index.php ├── selectize_changelog.php ├── selectize_license.php └── selectize_readme.php /.github/workflows/publish-to-redaxo.yml: -------------------------------------------------------------------------------- 1 | name: Publish release 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | redaxo_publish: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - uses: FriendsOfREDAXO/installer-action@v1 14 | with: 15 | myredaxo-username: ${{ secrets.MYREDAXO_USERNAME }} 16 | myredaxo-api-key: ${{ secrets.MYREDAXO_API_KEY }} 17 | description: ${{ github.event.release.body }} 18 | 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | plugins/.DS_Store 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ### UI Tools 2 | 3 | #### 14.03.2019 - v1.0.0 4 | imglist entfernt, wird in mform fortgeführt 5 | 6 | #### 17.12.2018 - v0.4.1 7 | 8 | - minicolors for customizer fixed 9 | - img imgListWidget support for selectMediaListArray('selectedmedia[]') added 10 | - added imgListWidget helper class for rex_form element 11 | ``` 12 | $field = imglist::addImglistField($rex_form, 'media'); 13 | $field->setLabel('Image'); 14 | $field->setTooltip(true); 15 | ``` 16 | 17 | #### 17.12.2018 - v0.4.0 18 | 19 | - add imgListWidget 20 | 21 | #### 25.10.2018 - v0.3.0 22 | 23 | - scss compiling caused performance problems, so deleted @skerbis 24 | - includeCurrentPageSubPath @christophboecker 25 | 26 | #### 29.09.2017 - v0.2.5 Add help files 27 | 28 | - add general, datetimepicker, minicolors, selectize help files 29 | 30 | #### 28.09.2017 - v0.2.4 Add jquery-minicolors support for System Customizer Color Field 31 | 32 | - standard is on, set to color format `hex` for backwards compatibility - fixes #2 33 | 34 | #### 27.08.2017 - v0.2.3 Make Plugin jquery-minicolors functional 35 | 36 | - added classes .minicolors for direct usage in modules 37 | 38 | #### 27.08.2017 - v0.2.2 Make Plugin selectize functional 39 | 40 | - added classes .selectize for direct usage in modules 41 | 42 | #### 26.08.2017 - v0.2.1 Make Plugin bootstrap-datetimepicker functional 43 | 44 | - added classes .datetimepicker, .datepicker, .timepicker for direct usage in modules 45 | 46 | #### 25.08.2017 - v0.2.0 Plugin bootstrap-datetimepicker added 47 | 48 | - added vendor plugin bootstrap-datetimepicker 49 | 50 | #### 25.08.2017 - v0.1.5 Refactoring 51 | 52 | - refactored repository from be_utilities to ui_tools 53 | 54 | #### 22.08.2017 - v0.1.0 Initial commit 55 | 56 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Friends Of REDAXO 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## UI Tools für REDAXO 5 2 | 3 | Ziel des Addons ist es, einige Vendoren und nützliche Erweiterungen für REDAXO 5.x installieren zu können. Damit ist es sehr einfach möglich ein benötigtes Werkzeug für das Backend (und Frontend) zur Verfügung zu stellen. 4 | 5 | ## PlugIns für das Backend 6 | 7 | Diese PlugIns erweitern das Backend um nachfolgende Skripte 8 | 9 | - Minicolors 10 | - DateTimePicker 11 | - Selectize 12 | 13 | Die Verwendung in yForm ist über die **individuellen Attribute** möglich. 14 | Weitere Informationen finden sich in der Dokumentation des jeweiligen Plugin. 15 | 16 | z.B. Minicolors: `{"class":"minicolors"}` 17 | 18 | ___ 19 | * Changelog -> [CHANGELOG.md](CHANGELOG.md) 20 | * Lizenz -> [LICENSE.md](LICENSE.md) 21 | 22 | 23 | --- 24 | 25 | ### Autor 26 | 27 | **Friends Of REDAXO** 28 | 29 | * http://www.redaxo.org 30 | * https://github.com/FriendsOfREDAXO 31 | 32 | **Projekt-Lead** 33 | 34 | [Tim Filler](https://github.com/elricco) 35 | 36 | ___ 37 | ### Credits 38 | 39 | - [jQuery-minicolors](https://github.com/claviska/jquery-minicolors) 40 | - [selectize](https://github.com/selectize/selectize.js/) 41 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | #ui_tools{border:1px solid transparent} 2 | -------------------------------------------------------------------------------- /boot.php: -------------------------------------------------------------------------------- 1 | setProperty('author', 'Friends Of REDAXO'); 4 | 5 | if (rex::isBackend() && rex::getUser()) { 6 | rex_perm::register('ui_tools[]'); 7 | rex_view::addCssFile($this->getAssetsUrl('css/styles.css')); 8 | } 9 | 10 | -------------------------------------------------------------------------------- /help.php: -------------------------------------------------------------------------------- 1 | 12 |
16 | Dieses AddOn bindet dient als Container zur Einbindung verschiedener Vendoren.
17 | Momentan verfügbar:
18 |
15 | Dieses Plugin bindet den Bootstrap Datetimepicker (https://github.com/Eonasdan/bootstrap-datetimepicker) ein. 16 |
17 | 18 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/lang/de_de.lang: -------------------------------------------------------------------------------- 1 | bootstrap-datetimepicker_menu_entry = Date/Time Picker 2 | bootstrap-datetimepicker_info = Info 3 | bootstrap-datetimepicker_config_title = Einstellungen Bootstrap 3 Date/Time Picker 4 | bootstrap-datetimepicker_readme = Info 5 | bootstrap-datetimepicker_license = Lizenz 6 | bootstrap-datetimepicker_less = LESS 7 | bootstrap-datetimepicker_scss = SCSS 8 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/lib/yform/value/datepicker.php: -------------------------------------------------------------------------------- 1 | www.yakamara.de 8 | */ 9 | 10 | class rex_yform_value_datepicker extends rex_yform_value_abstract 11 | { 12 | public function enterObject() 13 | { 14 | $this->setValue((string) $this->getValue()); 15 | 16 | if ('' == $this->getValue() && !$this->params['send']) { 17 | $this->setValue($this->getElement('default')); 18 | } 19 | 20 | if ($this->needsOutput() && $this->isViewable()) { 21 | $templateParams = []; 22 | $templateParams['prepend'] = $this->getElement('prepend'); 23 | $templateParams['append'] = $this->getElement('append'); 24 | if (!$this->isEditable()) { 25 | $attributes = empty($this->getElement('attributes')) ? [] : json_decode($this->getElement('attributes'), true); 26 | $attributes['readonly'] = 'readonly'; 27 | $this->setElement('attributes', json_encode($attributes)); 28 | $this->params['form_output'][$this->getId()] = $this->parse(['value.text-view.tpl.php', 'value.view.tpl.php', 'value.text.tpl.php'], $templateParams); 29 | } else { 30 | $this->params['form_output'][$this->getId()] = $this->parse('value.text.tpl.php', $templateParams); 31 | } 32 | } 33 | 34 | $this->params['value_pool']['email'][$this->getName()] = $this->getValue(); 35 | 36 | if ($this->saveInDb()) { 37 | $this->params['value_pool']['sql'][$this->getName()] = $this->getValue(); 38 | } 39 | } 40 | 41 | public function getDescription(): string 42 | { 43 | return 'text|name|label|defaultwert|[no_db]|[attributes]|[notice]|[prepend]|[append]'; 44 | } 45 | 46 | public function getDefinitions(): array 47 | { 48 | return [ 49 | 'type' => 'value', 50 | 'name' => 'datepicker', 51 | 'values' => [ 52 | 'name' => ['type' => 'name', 'label' => rex_i18n::msg('yform_values_defaults_name')], 53 | 'label' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_label')], 54 | 'default' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_text_default')], 55 | 'current_date' => ['type' => 'boolean', 'label' => rex_i18n::msg('yform_values_date_current_date')], 56 | 'attributes' => ['type' => 'choice', 'label' => 'Class', 'choices' => ['{"class":"datepicker"}' => 'datepicker', '{"class":"datetimepicker"}' => 'datetimepicker' , '{"data-yform-tools-datetimepicker":"YYYY-MM-DD HH:ii"}' => 'data-yform-tools-datetimepicker', '{"data-yform-tools-datepicker":"YYYY-MM-DD"}' => 'data-yform-tools-datepicker' ], 'default' => 'select'], 57 | 'notice' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_notice')], 58 | // 'prepend' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_prepend')], 59 | // 'append' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_append')], // >> class="glyphicon glyphicon-calendar" ?? 60 | ], 61 | 'description' => rex_i18n::msg('yform_values_datepicker_description'), // 'Datepicker', // 62 | 'db_type' => ['varchar(191)'], 63 | 'famous' => true, 64 | 'hooks' => [ 65 | 'preDefault' => static function (rex_yform_manager_field $field) { 66 | return $field->getElement('default'); 67 | }, 68 | ], 69 | ]; 70 | } 71 | 72 | public static function getSearchField($params) 73 | { 74 | $params['searchForm']->setValueField('text', ['name' => $params['field']->getName(), 'label' => $params['field']->getLabel(), 'notice' => rex_i18n::msg('yform_search_defaults_wildcard_notice')]); 75 | } 76 | 77 | public static function getSearchFilter($params) 78 | { 79 | $value = trim($params['value']); 80 | /** @var rex_yform_manager_query $query */ 81 | $query = $params['query']; 82 | $field = $query->getTableAlias() . '.' . $params['field']->getName(); 83 | 84 | if ('(empty)' == $value) { 85 | return $query->whereNested(static function (rex_yform_manager_query $query) use ($field) { 86 | $query 87 | ->where($field, '') 88 | ->where($field, null) 89 | ; 90 | }, 'OR'); 91 | } 92 | if ('!(empty)' == $value) { 93 | return $query->whereNested(static function (rex_yform_manager_query $query) use ($field) { 94 | $query 95 | ->where($field, '', '<>') 96 | ->where($field, null, '<>') 97 | ; 98 | }, 'OR'); 99 | } 100 | 101 | $pos = strpos($value, '*'); 102 | if (false !== $pos) { 103 | $value = str_replace('%', '\%', $value); 104 | $value = str_replace('*', '%', $value); 105 | return $query->where($field, $value, 'LIKE'); 106 | } 107 | return $query->where($field, $value); 108 | } 109 | 110 | public static function getListValue($params) 111 | { 112 | $value = $params['subject']; 113 | $length = mb_strlen($value); 114 | $title = $value; 115 | if ($length > 40) { 116 | $value = mb_substr($value, 0, 20).' ... '.mb_substr($value, -20); 117 | } 118 | return ''.rex_escape($value).''; 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/package.yml: -------------------------------------------------------------------------------- 1 | package: ui_tools/bootstrap-datetimepicker 2 | version: '4.17.47' 3 | author: 'Friends Of REDAXO' 4 | supportpage: github.com/FriendsOfREDAXO 5 | 6 | page: 7 | title: 'translate:bootstrap-datetimepicker_menu_entry' 8 | perm: admin[] 9 | subpages: 10 | index: { title: 'translate:bootstrap-datetimepicker_config_title', perm: admin} 11 | bootstrap-datetimepicker_readme: { title: 'translate:bootstrap-datetimepicker_readme', perm: admin} 12 | bootstrap-datetimepicker_license: { title: 'translate:bootstrap-datetimepicker_license', perm: admin} 13 | bootstrap-datetimepicker_scss: { title: 'translate:bootstrap-datetimepicker_scss', perm: admin} 14 | bootstrap-datetimepicker_less: { title: 'translate:bootstrap-datetimepicker_less', perm: admin} 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_less.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_less')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_license.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_license')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_readme.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file); 8 | 9 | 10 | $fragment = new rex_fragment(); 11 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_readme')); 12 | $fragment->setVar('body', $content, false); 13 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_scss.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_scss')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/index.php: -------------------------------------------------------------------------------- 1 |8 | .datetimepicker auf einem Input fügt einen Date und Time Picker hinzu. 9 |
10 |11 | .datepicker auf einem Input fügt einen Date Picker hinzu. 12 |
13 |14 | .timepicker auf einem Input fügt einen Time Picker hinzu. 15 |
16 | '; 17 | 18 | $fragment = new rex_fragment(); 19 | $fragment->setVar('title', rex_i18n::rawMsg('bootstrap-datetimepicker_config_title'), false); 20 | $fragment->setVar('body', $body, false); 21 | $title = $fragment->parse('core/page/section.php'); 22 | 23 | echo $title; -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/ytemplates/bootstrap/value.datepicker.tpl.php: -------------------------------------------------------------------------------- 1 | getValue(); 12 | } 13 | 14 | $notice = []; 15 | if ('' != $this->getElement('notice')) { 16 | $notice[] = rex_i18n::translate($this->getElement('notice'), false); 17 | } 18 | if (isset($this->params['warning_messages'][$this->getId()]) && !$this->params['hide_field_warning_messages']) { 19 | $notice[] = '' . rex_i18n::translate($this->params['warning_messages'][$this->getId()]) . ''; // var_dump(); 20 | } 21 | if (count($notice) > 0) { 22 | $notice = '' . implode('
', $notice) . '
15 | Dieses Plugin bindet die jQuery minicolors (https://github.com/claviska/jquery-minicolors) ein. 16 |
17 | 18 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/install.php: -------------------------------------------------------------------------------- 1 | hasConfig()) { 4 | $this->setConfig('for-customizer', 1); 5 | } 6 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/lang/de_de.lang: -------------------------------------------------------------------------------- 1 | jquery-minicolors_menu_entry = jQuery minicolors 2 | jquery-minicolors_info = Info 3 | jquery-minicolors_config_title = Einstellungen 4 | jquery-minicolors_readme = Info 5 | jquery-minicolors_license = Lizenz 6 | jquery-minicolors_for-customizer_check = Für Customizer aktivieren? 7 | jquery-minicolors_for-customizer_info = Aktiviert den Colorpicker für das Customizer Farbfeld 8 | jquery-minicolors_update = Einstellungen aktualisieren 9 | jquery-minicolors_config_updated = Speichern erfolgreich! 10 | jquery-minicolors_config_updated_failed = Nicht gespeichert! 11 | jquery-minicolors_features = Funktionen 12 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/package.yml: -------------------------------------------------------------------------------- 1 | package: ui_tools/jquery-minicolors 2 | version: '2.4.0' 3 | author: 'Friends Of REDAXO' 4 | supportpage: github.com/FriendsOfREDAXO 5 | 6 | page: 7 | title: 'translate:jquery-minicolors_menu_entry' 8 | perm: admin[] 9 | subpages: 10 | index: { title: 'translate:jquery-minicolors_config_title', perm: admin} 11 | jquery-minicolors_readme: { title: 'translate:jquery-minicolors_readme', perm: admin} 12 | jquery-minicolors_license: { title: 'translate:jquery-minicolors_license', perm: admin} 13 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/pages/index.php: -------------------------------------------------------------------------------- 1 | setConfig($tempConfig)) { 29 | $success = rex_i18n::msg('jquery-minicolors_config_updated'); 30 | } else { 31 | $error[] = rex_i18n::msg('jquery-minicolors_config_update_failed'); 32 | } 33 | } 34 | 35 | // load config 36 | 37 | $config = rex_plugin::get('ui_tools', 'jquery-minicolors')->getConfig(); 38 | 39 | 40 | // messages 41 | 42 | if (!empty($error)) { 43 | echo rex_view::error(implode('
112 | .minicolors auf einem Input fügt einen Color Picker hinzu. In YForm ein Text-Eingabefeld wählen und über JSON-Attribute die Klassen {"class":"minicolors form-control"}
mitgeben.
113 |
Event | 21 |Params | 22 |Description | 23 |
---|---|---|
"initialize" |
26 | 27 | | Invoked once the control is completely initialized. | 28 |
"change" |
31 | value |
32 | Invoked when the value of the control changes. | 33 |
"focus" |
36 | 37 | | Invoked when the control gains focus. | 38 |
"blur" |
41 | 42 | | Invoked when the control loses focus. | 43 |
"item_add" |
46 | value , $item |
47 | Invoked when an item is selected. | 48 |
"item_remove" |
51 | value , $item |
52 | Invoked when an item is deselected. | 53 |
"clear" |
56 | 57 | | Invoked when the control is manually cleared via the clear() method. | 58 |
"option_add" |
61 | value , data |
62 | Invoked when a new option is added to the available options list. | 63 |
"option_remove" |
66 | value |
67 | Invoked when an option is removed from the available options. | 68 |
"option_clear" |
71 | 72 | | Invoked when all options are removed from the control. | 73 |
"optgroup_add" |
76 | id , data |
77 | Invoked when a new option is added to the available options list. | 78 |
"optgroup_remove" |
81 | id |
82 | Invoked when an option group is removed. | 83 |
"optgroup_clear" |
86 | 87 | | Invoked when all option groups are removed. | 88 |
"dropdown_open" |
91 | $dropdown |
92 | Invoked when the dropdown opens. | 93 |
"dropdown_close" |
96 | $dropdown |
97 | Invoked when the dropdown closes. | 98 |
"type" |
101 | str |
102 | Invoked when the user types while filtering options. | 103 |
"load" |
106 | data |
107 | Invoked when new options have been loaded and added to the control (via the load option or load API method). |
108 |
"destroy" |
111 | 112 | | Invoked right before the control is destroyed. | 113 |
Examples of how to interact with the control programmatically.
25 |Examples of how to filter created results.
25 |Render items on your own & apply unique CSS styles.
41 |TODO: explain how to bind events.
79 |The options are created straight from an array.
25 |Check out the console for more details about each event.
25 |This demo shows how to integrate third-party data and override the scoring method.
101 |').addClass('js').text(code); 34 | $pre.insertAfter(this); 35 | } 36 | }); 37 | 38 | // show current input values 39 | $('select.selectized,input.selectized', $wrapper).each(function() { 40 | var $container = $('').addClass('value').html('Current Value: '); 41 | var $value = $('').appendTo($container); 42 | var $input = $(this); 43 | var update = function(e) { $value.text(JSON.stringify($input.val())); } 44 | 45 | $(this).on('change', update); 46 | update(); 47 | 48 | $container.insertAfter($input); 49 | }); 50 | }); 51 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/lock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |21 |65 | 66 | 67 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/movies.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |Selectize.js
22 |23 |64 |Locking
24 |Selectize controls can be locked to prevent user interaction.
25 |26 | 27 | 32 |33 |34 | 35 | 40 |41 |42 | 43 | 48 |49 |50 | 51 | 56 |57 | 63 |Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 103 | 104 | 105 |106 |163 | 164 | 165 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/performance.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |Selectize.js
107 |108 |162 |Loading from API
109 |This demo shows how to integrate third-party data, loaded asynchronously.
110 |111 | 112 | 113 |114 | 161 |Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |21 |58 | 59 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/required.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |Selectize.js
22 |23 |57 |Performance
24 |This shows how it performs with 25,000 items.
25 |26 | 27 | 28 |29 | 56 |Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |21 |53 | 54 | 55 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/rtl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |Selectize.js
22 | 23 |24 |51 | 52 |Required Element
25 |26 | 40 |41 | 50 |Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |21 |55 | 56 | 57 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | // workaround for https://github.com/karma-runner/karma-sauce-launcher/issues/40 3 | var saucelabsBatchID = Number(process.env.SAUCELABS_BATCH) - 1; 4 | var saucelabsConcurrency = 4; 5 | var saucelabsBrowsers = [ 6 | // mobile 7 | {platform: 'OS X 10.10', browserName: 'iPhone', version: '8.1'}, 8 | //{platform: 'OS X 10.10 ', browserName: 'iPhone', version: '6.0'}, 9 | {platform: 'OS X 10.10', browserName: 'iPad', version: '8.1'}, 10 | //{platform: 'OS X 10.10', browserName: 'iPad', version: '6.0'}, 11 | {platform: 'Linux', browserName: 'android', version: '4.4'}, 12 | {platform: 'Linux', browserName: 'android', version: '4.3'}, 13 | // desktop (safari) 14 | {platform: 'OS X 10.8', browserName: 'safari', version: 6}, 15 | {platform: 'OS X 10.9', browserName: 'safari', version: 7}, 16 | {platform: 'OS X 10.10', browserName: 'safari', version: 8}, 17 | // desktop (chrome) 18 | {platform: 'OS X 10.10', browserName: 'chrome', version: 39}, 19 | {platform: 'OS X 10.10', browserName: 'chrome', version: 38}, 20 | {platform: 'OS X 10.10', browserName: 'chrome', version: 37}, 21 | {platform: 'Windows 7', browserName: 'chrome', version: 39}, 22 | {platform: 'Windows 7', browserName: 'chrome', version: 38}, 23 | {platform: 'Windows 7', browserName: 'chrome', version: 37}, 24 | // desktop (firefox) 25 | {platform: 'Windows 7', browserName: 'firefox', version: 35}, 26 | {platform: 'Windows 8', browserName: 'firefox', version: 35}, 27 | {platform: 'OS X 10.10', browserName: 'firefox', version: 34}, 28 | {platform: 'OS X 10.10', browserName: 'firefox', version: 33}, 29 | {platform: 'OS X 10.10', browserName: 'firefox', version: 32}, 30 | // desktop (internet explorer) 31 | {platform: 'Windows 8', browserName: 'iexplore', version: 10}, 32 | {platform: 'Windows 8.1', browserName: 'iexplore', version: 11}, 33 | {platform: 'Windows 7', browserName: 'iexplore', version: 9} 34 | ]; 35 | 36 | if (process.env.TARGET === 'saucelabs') { 37 | saucelabsBrowsers = saucelabsBrowsers.slice(saucelabsBatchID * saucelabsConcurrency, saucelabsBatchID * saucelabsConcurrency + saucelabsConcurrency); 38 | if (!saucelabsBrowsers.length) process.exit(0); 39 | } 40 | 41 | var customLaunchers = {}; 42 | saucelabsBrowsers.forEach(function(browser, i) { 43 | browser.base = 'SauceLabs'; 44 | customLaunchers['SL_' + i] = browser; 45 | }); 46 | 47 | var targets = { 48 | 'saucelabs': Object.keys(customLaunchers), 49 | 'phantomjs': ['PhantomJS'] 50 | }; 51 | 52 | var browsers = targets[process.env.TARGET || 'phantomjs']; 53 | if (process.env.BROWSERS) { 54 | browsers = process.env.BROWSERS.split(','); 55 | } 56 | 57 | config.set({ 58 | frameworks: ['mocha', 'chai'], 59 | files: [ 60 | 'dist/css/selectize.default.css', 61 | 'node_modules/jquery/dist/jquery.js', 62 | 'node_modules/microplugin/src/microplugin.js', 63 | 'node_modules/sifter/sifter.js', 64 | 'test/support/*.js', 65 | 'src/contrib/*.js', 66 | 'src/constants.js', 67 | 'src/utils.js', 68 | 'src/selectize.js', 69 | 'src/defaults.js', 70 | 'src/selectize.jquery.js', 71 | 'test/*.js' 72 | ], 73 | preprocessors: { 74 | 'src/*.js': ['coverage'] 75 | }, 76 | customLaunchers: customLaunchers, 77 | port: 8888, 78 | colors: true, 79 | captureTimeout: 0, 80 | logLevel: config.LOG_INFO, 81 | browsers: browsers, 82 | browserDisconnectTolerance: 2, 83 | browserDisconnectTimeout: 10000, 84 | browserNoActivityTimeout: 120000, 85 | singleRun: true 86 | }); 87 | }; 88 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/selectize.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "selectize", 3 | "version": "0.13.3", 4 | "title": "Selectize.js", 5 | "author": { 6 | "name": "Brian Reavis", 7 | "email": "brian@thirdroute.com", 8 | "url": "http://thirdroute.com" 9 | }, 10 | "keywords": ["select", "ui", "form", "input", "control", "autocomplete", "tagging", "tag"], 11 | "description": "Selectize is a jQuery-based customSelectize.js
22 | 23 |24 |36 | 37 |Right-to-left Support (RTL)
25 |26 | 27 | 28 |29 | 35 |38 |53 | 54 |Right-to-left Support (RTL) – Single
39 |40 | 41 | 48 |49 | 52 |