├── package.json
├── tweaks
├── General
│ ├── BypassTrash
│ │ ├── BypassTrash.css
│ │ ├── BypassTrash.js
│ │ └── BypassTrash.php
│ ├── FakeFavicon
│ │ └── FakeFavicon.php
│ ├── EnableAllLanguages
│ │ └── EnableAllLanguages.php
│ ├── QuickAdd
│ │ └── QuickAdd.php
│ ├── RemoveVariations
│ │ └── RemoveVariations.php
│ └── QuickWebAuthnLogin
│ │ └── QuickWebAuthnLogin.php
├── Modules
│ ├── UpgradesRefresh
│ │ ├── UpgradesRefresh.js
│ │ └── UpgradesRefresh.php
│ └── CollapseInfo
│ │ └── CollapseInfo.php
├── PageList
│ ├── FullRowHover
│ │ ├── FullRowHover.php
│ │ └── FullRowHover.css
│ ├── AddModalParam
│ │ ├── AddModalParam.php
│ │ └── AddModalParam.js
│ ├── ShowExtraActions
│ │ ├── ShowExtraActions.php
│ │ └── ShowExtraActions.js
│ ├── TemplateLink
│ │ └── TemplateLink.php
│ └── NonSuperuserTrash
│ │ └── NonSuperuserTrash.php
├── Inputfields
│ ├── CheckAllCheckboxes
│ │ ├── CheckAllCheckboxes.php
│ │ ├── CheckAllCheckboxes.js
│ │ └── CheckAllCheckboxes.css
│ ├── AsmSearchBox
│ │ ├── select2
│ │ │ ├── js
│ │ │ │ ├── select2-v4.0.2.patch
│ │ │ │ └── select2.min.js
│ │ │ └── css
│ │ │ │ └── select2.min.css
│ │ ├── AsmSearchBox.php
│ │ ├── AsmSearchBox.css
│ │ └── AsmSearchBox.js
│ ├── CopyFieldNames
│ │ ├── CopyFieldNames.php
│ │ └── CopyFieldNames.js
│ ├── ColumnBreak
│ │ ├── ColumnBreak.css
│ │ ├── ColumnBreak.js
│ │ ├── split.js
│ │ │ └── split.min.js
│ │ └── ColumnBreak.php
│ ├── PageListSelectUnselectRestore
│ │ ├── PageListSelectUnselectRestore.css
│ │ ├── PageListSelectUnselectRestore.js
│ │ └── PageListSelectUnselectRestore.php
│ └── ImageDownload
│ │ └── ImageDownload.php
└── PageEdit
│ ├── PrevNextPage
│ ├── PrevNextPage.css
│ ├── PrevNextPage.js
│ └── PrevNextPage.php
│ └── EditFieldLinks
│ ├── EditFieldLinks.js
│ ├── EditFieldLinks.css
│ └── EditFieldLinks.php
├── README.md
├── .editorconfig
├── RockAdminTweaks.info.php
├── tweak.txt
├── .github
└── workflows
│ └── releases.yml
├── docs
├── assets
│ └── readme.md
└── readme.md
├── CHANGELOG.md
├── classes
└── Tweak.php
└── RockAdminTweaks.module.php
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.13.0"
3 | }
4 |
--------------------------------------------------------------------------------
/tweaks/General/BypassTrash/BypassTrash.css:
--------------------------------------------------------------------------------
1 | a.aos-pagelist-confirm + a.aos-pagelist-confirm {
2 | margin-left: 3px;
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # RockAdminTweaks
2 |
3 | Please read the docs at https://www.baumrock.com/en/processwire/modules/rockadmintweaks/docs/
4 |
--------------------------------------------------------------------------------
/tweaks/Modules/UpgradesRefresh/UpgradesRefresh.js:
--------------------------------------------------------------------------------
1 | document.addEventListener("DOMContentLoaded", function() {
2 | var upgrades_url = ProcessWire.config.urls.admin + 'setup/upgrades/';
3 | $('a[href="' + upgrades_url + '"]').attr('href', upgrades_url + 'refresh');
4 | });
5 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | ; This file is for unifying the coding style for different editors and IDEs.
2 | ; More information at http://editorconfig.org
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 |
7 | [*.{php,inc,module,js,css,less,scss}]
8 | indent_style = space
9 | indent_size = 2
10 | trim_trailing_whitespace = true
11 | insert_final_newline = true
12 |
--------------------------------------------------------------------------------
/tweaks/PageList/FullRowHover/FullRowHover.php:
--------------------------------------------------------------------------------
1 | 'Show pagelist actions on full row hover',
11 | ];
12 | }
13 |
14 | public function ready(): void
15 | {
16 | $this->loadCSS();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/RockAdminTweaks.info.php:
--------------------------------------------------------------------------------
1 | 'RockAdminTweaks',
7 | 'version' => json_decode(file_get_contents(__DIR__ . '/package.json'))->version,
8 | 'summary' => 'Tweaks for the ProcessWire Backend.',
9 | 'autoload' => 'template=admin',
10 | 'singular' => true,
11 | 'icon' => 'magic',
12 | 'requires' => [
13 | 'PHP>=8.1',
14 | ],
15 | ];
16 |
--------------------------------------------------------------------------------
/tweaks/PageList/AddModalParam/AddModalParam.php:
--------------------------------------------------------------------------------
1 | 'Adds &modal=1 to all links in the pagelist when the pagelist is viewed in a modal window',
11 | ];
12 | }
13 |
14 | public function init(): void
15 | {
16 | $this->loadJS();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/tweaks/Modules/UpgradesRefresh/UpgradesRefresh.php:
--------------------------------------------------------------------------------
1 | 'Always refresh when visiting ProcessWireUpgrades',
14 | ];
15 | }
16 |
17 | public function ready(): void
18 | {
19 | $this->loadJS();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/tweaks/PageList/FullRowHover/FullRowHover.css:
--------------------------------------------------------------------------------
1 | html:not(.pListShowActions)
2 | #content
3 | .PageList
4 | .PageListItem:hover
5 | .PageListActions {
6 | display: inline-block;
7 | }
8 | html:not(.pListShowActions)
9 | #content
10 | .PageList
11 | .PageListItemOpen
12 | .PageListActions {
13 | display: none;
14 | }
15 | html:not(.pListShowActions)
16 | #content
17 | .PageList
18 | .PageListItemOpen:hover
19 | .PageListActions {
20 | display: inline-block;
21 | }
22 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/CheckAllCheckboxes/CheckAllCheckboxes.php:
--------------------------------------------------------------------------------
1 | 'Add checkbox to check all checkboxes in a field',
14 | ];
15 | }
16 |
17 | public function ready(): void
18 | {
19 | $this->loadJS();
20 | $this->loadCSS();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/tweaks/PageEdit/PrevNextPage/PrevNextPage.css:
--------------------------------------------------------------------------------
1 | .aos-edit-prev,
2 | .aos-edit-next {
3 | padding: 0 0.3rem;
4 | position: relative;
5 | top: 1px;
6 | }
7 |
8 | .aos-edit-prev:not(:hover),
9 | .aos-edit-next:not(:hover) {
10 | color: #ccc;
11 | }
12 |
13 | .aos-edit-prev i,
14 | .aos-edit-next i {
15 | font-size: 17px !important;
16 | }
17 |
18 | html:not(.AdminThemeDefault) .aos-edit-prev i,
19 | html:not(.AdminThemeDefault) .aos-edit-next i {
20 | font-size: 27px !important;
21 | }
22 |
23 | .aos-edit-prev {
24 | margin-left: 0.6rem;
25 | }
26 |
--------------------------------------------------------------------------------
/tweaks/PageList/ShowExtraActions/ShowExtraActions.php:
--------------------------------------------------------------------------------
1 | 'Shows extra page action items in page tree for SuperUsers',
13 | ];
14 | }
15 |
16 | public function init(): void
17 | {
18 | if (wire()->config->ajax) return;
19 | wire()->addHookAfter(
20 | "ProcessPageList::execute",
21 | function () {
22 | $this->loadJS();
23 | }
24 | );
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/tweaks/General/FakeFavicon/FakeFavicon.php:
--------------------------------------------------------------------------------
1 | 'Adds a fake favicon to the backend to prevent 404 in devtools.',
13 | ];
14 | }
15 |
16 | public function init(): void
17 | {
18 | $this->wire->addHookAfter('AdminTheme::getExtraMarkup', $this, 'addFavicon');
19 | }
20 |
21 | public function addFavicon(HookEvent $event)
22 | {
23 | $parts = $event->return;
24 | $parts['head'] .= '';
25 | $event->return = $parts;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/AsmSearchBox/select2/js/select2-v4.0.2.patch:
--------------------------------------------------------------------------------
1 | diff -Naur old/select2-v4.0.2/dist/js/select2.full.js new/select2-v4.0.2/dist/js/select2.full.js
2 | --- old/select2-v4.0.2/dist/js/select2.full.js 2016-03-08 17:33:38.000000000 -0800
3 | +++ new/select2-v4.0.2/dist/js/select2.full.js 2016-04-26 18:10:26.000000000 -0700
4 | @@ -5122,11 +5122,13 @@
5 | var self = this;
6 |
7 | this.$element.on('change.select2', function () {
8 | + if (self.dataAdapter != null) {
9 | self.dataAdapter.current(function (data) {
10 | self.trigger('selection:update', {
11 | data: data
12 | });
13 | });
14 | + }
15 | });
16 |
17 | this._sync = Utils.bind(this._syncAttributes, this);
18 |
--------------------------------------------------------------------------------
/tweaks/PageList/ShowExtraActions/ShowExtraActions.js:
--------------------------------------------------------------------------------
1 | /* Originally by tpr in the AdminOnSteroids module */
2 | /* Ported to RockAdminTweaks by netcarver */
3 | $(document).on("mouseover", ".PageListItem", function () {
4 | var $extrasToggle = $(this).find(".clickExtras"),
5 | $templateEditAction = $(this).find(
6 | ".PageListActionEdit ~ .PageListActionEdit"
7 | );
8 | if ($extrasToggle.length) {
9 | $extrasToggle.trigger("click").remove();
10 | if ($(this).find(".PageListActionExtras").length) {
11 | $(this).find(".PageListActionExtras").remove();
12 | }
13 | // move template edit link to the end
14 | if ($templateEditAction.length) {
15 | $templateEditAction.parent().append($templateEditAction);
16 | }
17 | }
18 | });
19 |
--------------------------------------------------------------------------------
/tweak.txt:
--------------------------------------------------------------------------------
1 | 'Put your short tweak description here',
11 | // 'help' => 'Optional longer description - opens in a **modal** and supports [markdown](/).',
12 | // 'author' => 'Bernhard Baumrock',
13 | // 'authorUrl' => 'https://processwire.com/talk/profile/2137-bernhard/',
14 | // 'maintainer' => 'If different from author',
15 | // 'maintainerUrl' => 'If different from author',
16 | // 'infoLink' => 'External info link, eg forum thread',
17 | ];
18 | }
19 |
20 | public function init(): void
21 | {
22 | }
23 |
24 | public function ready(): void
25 | {
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/tweaks/Modules/CollapseInfo/CollapseInfo.php:
--------------------------------------------------------------------------------
1 | 'Collapse Module Info section by default',
17 | ];
18 | }
19 |
20 |
21 | public function ready(): void
22 | {
23 | $this->wire->addHookAfter('InputfieldMarkup::render', function (HookEvent $event) {
24 | $field = $event->object;
25 | if ($field->id === 'ModuleInfo') {
26 | $field->collapsed = Inputfield::collapsedYes;
27 | }
28 | });
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/CopyFieldNames/CopyFieldNames.php:
--------------------------------------------------------------------------------
1 | 'Copy field names on shift-click by SuperUsers',
13 | 'infoLink' => 'https://processwire.com/talk/topic/29071--',
14 | ];
15 | }
16 |
17 | public function init(): void
18 | {
19 | // Add custom JS file to $config->scripts FilenameArray
20 | // This adds the custom JS fairly early in the FilenameArray which allows for stopping
21 | // event propagation so clicks on InputfieldHeader do not also expand/collapse InputfieldContent
22 | if (!$this->wire->user->isSuperuser()) return;
23 | wire()->addHookBefore('ProcessController::execute', $this, 'loadJS');
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/.github/workflows/releases.yml:
--------------------------------------------------------------------------------
1 | name: Releases
2 | on:
3 | push:
4 | branches:
5 | - main
6 |
7 | jobs:
8 | changelog:
9 | runs-on: ubuntu-latest
10 |
11 | steps:
12 | - uses: actions/checkout@v4
13 | - name: conventional Changelog Action
14 | id: changelog
15 | uses: TriPSs/conventional-changelog-action@v5.1.0
16 | with:
17 | preset: "conventionalcommits"
18 | github-token: ${{ secrets.github_token }}
19 |
20 | - name: create release
21 | uses: actions/create-release@v1
22 | if: ${{ steps.changelog.outputs.skipped == 'false' }}
23 | env:
24 | GITHUB_TOKEN: ${{ secrets.github_token }}
25 | with:
26 | tag_name: ${{ steps.changelog.outputs.tag }}
27 | release_name: ${{ steps.changelog.outputs.tag }}
28 | body: ${{ steps.changelog.outputs.clean_changelog }}
29 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/CopyFieldNames/CopyFieldNames.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | // Copy a string to the clipboard
3 | function copyToClipboard(string) {
4 | const $temp = $('');
5 | $("body").append($temp);
6 | $temp[0].select();
7 | document.execCommand("copy");
8 | $temp.remove();
9 | }
10 |
11 | // When InputfieldHeader is clicked
12 | $(document).on("click", ".InputfieldHeader", function (event) {
13 | let text = "";
14 | if (!event.shiftKey) return;
15 |
16 | event.preventDefault();
17 | event.stopImmediatePropagation();
18 | text = $(this).attr("for");
19 | if (!text) text = $(this).parent().attr("id");
20 | text = text.replace(/^Inputfield_|wrap_Inputfield_|wrap_/, "").trim();
21 | if (!text) return;
22 |
23 | copyToClipboard(text);
24 | $(this).effect("highlight", {}, 500);
25 | });
26 | });
27 |
--------------------------------------------------------------------------------
/tweaks/General/EnableAllLanguages/EnableAllLanguages.php:
--------------------------------------------------------------------------------
1 | 'Enable all languages after a new page has been added.',
15 | ];
16 | }
17 |
18 | public function init(): void
19 | {
20 | $this->wire->addHookBefore('Pages::added', $this, 'enableLanguages');
21 | }
22 |
23 | /**
24 | * Enable all languages for all created pages
25 | * @param HookEvent $event
26 | * @return void
27 | * @throws WireException
28 | */
29 | protected function enableLanguages(HookEvent $event): void
30 | {
31 | if (!wire()->languages) return;
32 | $p = $event->arguments(0);
33 | foreach (wire()->languages->findNonDefault() as $language) {
34 | $p->setLanguageStatus($language, true);
35 | }
36 | $p->save();
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/docs/assets/readme.md:
--------------------------------------------------------------------------------
1 | # Assets
2 |
3 | Tweaks can load JS and CSS assets. As you might want to load assets based on some conditions we do not automatically load them. But it's only one line of code to do so and it will automatically take care of cache busting:
4 |
5 | ## JS
6 |
7 | ```php
8 | // the tweak CopyFieldNames.php will load
9 | // the js file CopyFieldNames.js
10 | $this->loadJS();
11 | ```
12 |
13 | The only thing you have to define is when to load the script, for example:
14 |
15 | ```php
16 | public function init(): void
17 | {
18 | if (!$this->wire->user->isSuperuser()) return;
19 | wire()->addHookBefore(
20 | 'ProcessController::execute',
21 | function () {
22 | $this->loadJS();
23 | }
24 | );
25 | }
26 |
27 | // or shorter:
28 | public function init(): void
29 | {
30 | if (!$this->wire->user->isSuperuser()) return;
31 | wire()->addHookBefore('ProcessController::execute', $this, 'loadJS');
32 | }
33 | ```
34 |
35 | ## CSS
36 |
37 | For CSS the principle is exactly the same, just use `loadCSS` instead of `loadJS`.
38 |
--------------------------------------------------------------------------------
/tweaks/General/QuickAdd/QuickAdd.php:
--------------------------------------------------------------------------------
1 | 'Skip template selection on page add if only a single template is allowed.',
13 | ];
14 | }
15 |
16 | public function init(): void
17 | {
18 | $this->wire->addHookBefore('ProcessPageAdd::buildForm', $this, 'skipAdd');
19 | }
20 |
21 | public function skipAdd(HookEvent $event)
22 | {
23 | // this prevents the hook to run on ProcessUser
24 | if ($event->process != 'ProcessPageAdd') return;
25 | $templates = $event->process->getAllowedTemplates();
26 | if (count($templates) !== 1) return;
27 | foreach ($templates as $k => $tpl) {
28 | $p = $this->wire->pages->newPage($tpl);
29 | $p->parent = $this->wire->input->get('parent_id', 'int');
30 | $p->addStatus('unpublished');
31 | $p->save();
32 | $this->wire->session->redirect($p->editUrl());
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/docs/readme.md:
--------------------------------------------------------------------------------
1 | # RockAdminTweaks
2 |
3 | RockAdminTweaks is a module for ProcessWire that provides a collection of useful features and hacks, referred to as "tweaks", for the ProcessWire backend. These tweaks can be easily enabled or disabled via checkboxes in the module's configuration page.
4 |
5 |
6 |
7 | ### Features:
8 | - **Easy Customization**: Users can create their own tweaks by simply adding PHP, JS, or CSS files.
9 | - **Modular Design**: Each tweak is self-contained, making it easy to manage and configure.
10 | - **Dynamic Loading**: Tweaks are loaded dynamically based on the user's selections, ensuring that only the necessary resources are used.
11 |
12 | RockAdminTweaks is the successor to the popular ProcessWire module "AdminOnSteroids". While AdminOnSteroids provided a range of enhancements and customizations for the ProcessWire admin panel, RockAdminTweaks builds upon and extends these features with a more modular and dynamic approach. Users familiar with AdminOnSteroids will find RockAdminTweaks to be a familiar experience.
13 |
--------------------------------------------------------------------------------
/tweaks/PageEdit/PrevNextPage/PrevNextPage.js:
--------------------------------------------------------------------------------
1 | document.addEventListener("DOMContentLoaded", function () {
2 | var PrevNextLinks = ProcessWire.config.AOS_prevnextlinks;
3 | if (PrevNextLinks) {
4 | var targetElement = $("h1, li.title span, li.title").first();
5 | if (targetElement.length) {
6 | var icon;
7 | if (PrevNextLinks.prev) {
8 | icon = "fa fa-angle-left";
9 | targetElement.append(
10 | ''
18 | );
19 | }
20 | if (PrevNextLinks.next) {
21 | icon = "fa fa-angle-right";
22 | targetElement.append(
23 | ''
31 | );
32 | }
33 | }
34 | }
35 | });
36 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/AsmSearchBox/AsmSearchBox.php:
--------------------------------------------------------------------------------
1 | 'Add search box to ASM Select dropdowns',
17 | ];
18 | }
19 |
20 | public function ready(): void
21 | {
22 |
23 | $this->wire('config')->scripts->add($this->pathToUrl(__DIR__ . '/select2/js/select2.min.js'));
24 | $this->wire('config')->styles->add($this->pathToUrl(__DIR__ . '/select2/css/select2.min.css'));
25 |
26 | $this->loadJS();
27 | $this->loadCSS();
28 |
29 | $this->addHookAfter('InputfieldAsmSelect::render', $this, 'addAsmSelectBox');
30 |
31 | }
32 |
33 | public function addAsmSelectBox($event)
34 | {
35 | $field = $event->object;
36 |
37 | if ($field->attr('data-no-asm-searchbox') === '1') {
38 | return;
39 | }
40 |
41 | $id = $field->attr('id');
42 |
43 | $script = "";
44 |
45 | $event->return .= $script;
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/ColumnBreak/ColumnBreak.css:
--------------------------------------------------------------------------------
1 | .aos_col_left,
2 | .aos_col_right {
3 | width: 67%;
4 | float: left;
5 | clear: none !important;
6 | margin-top: 0 !important;
7 |
8 | >.InputfieldContent {
9 | background: transparent;
10 | }
11 | }
12 |
13 | .aos_col_right {
14 | width: 33%;
15 | margin-left: -1px !important;
16 | }
17 |
18 | /*hide aos_column_break field*/
19 | #ProcessPageEditContent #wrap_Inputfield_aos_column_break {
20 | height: 0 !important;
21 | overflow: hidden !important;
22 | }
23 |
24 | .aos_no-inputfield-padding > .InputfieldContent {
25 | padding: 0;
26 | }
27 |
28 | /*remove line under wiretabs (uikit)*/
29 | #PageEditTabs.WireTabs.uk-tab::before {
30 | display: none;
31 | }
32 |
33 |
34 | html .Inputfields {
35 | zoom: 1;
36 | }
37 | html .Inputfields:before, html .Inputfields:after {
38 | content: " ";
39 | display: block;
40 | height: 0;
41 | overflow: hidden;
42 | }
43 | html .Inputfields:after {
44 | clear: both;
45 | }
46 | html .gutter {
47 | cursor: ew-resize;
48 | float: left;
49 | min-height: 200px;
50 | position: relative;
51 | z-index: 300;
52 | }
53 | html .gutter:active:before {
54 | content: "";
55 | position: fixed;
56 | left: 0;
57 | top: 0;
58 | bottom: 0;
59 | right: 0;
60 | background: transparent;
61 | }
62 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/CheckAllCheckboxes/CheckAllCheckboxes.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 |
3 | var $checkAllCheckboxes = $('
" . implode("\n", $lines) . "";
250 | $inputfields->add([
251 | 'type' => 'markup',
252 | 'label' => 'RockMigrations Code',
253 | 'value' => $markup,
254 | 'collapsed' => Inputfield::collapsedYes,
255 | 'icon' => 'code',
256 | 'description' => 'If you have multiple environments you can use RockMigrations to enable/disable tweaks identically and automatically across all environments:',
257 | ]);
258 | }
259 | }
260 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/AsmSearchBox/select2/css/select2.min.css:
--------------------------------------------------------------------------------
1 | .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
2 |
--------------------------------------------------------------------------------
/tweaks/Inputfields/AsmSearchBox/select2/js/select2.min.js:
--------------------------------------------------------------------------------
1 | !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,n){return void 0===n&&(n="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(n),n}:e(jQuery)}(function(e){var t=function(){if(e&&e.fn&&e.fn.select2&&e.fn.select2.amd)var t=e.fn.select2.amd;var t;return function(){if(!t||!t.requirejs){t?n=t:t={};var e,n,r;!function(t){function i(e,t){return w.call(e,t)}function o(e,t){var n,r,i,o,s,a,l,c,u,d,p,h,f=t&&t.split("/"),g=_.map,m=g&&g["*"]||{};if(e){for(e=e.split("/"),s=e.length-1,_.nodeIdCompat&&A.test(e[s])&&(e[s]=e[s].replace(A,"")),"."===e[0].charAt(0)&&f&&(h=f.slice(0,f.length-1),e=h.concat(e)),u=0;u