openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 087a98c2c3d3f6b14b53097be72649a0169a09e3
parent 2e82c09a4af626448eb17d8e871bd4fe86cd754b
Author: dankert <openrat@jandankert.de>
Date:   Tue,  7 Dec 2021 00:16:02 +0100

New: Enter in Search field will open a dialog for the view.

Diffstat:
Mmodules/cms/action/search/SearchEditAction.class.php | 47+++++++++++++++++++++++++++++++++++++++++++----
Mmodules/cms/action/search/SearchResultAction.class.php | 10----------
Mmodules/cms/ui/themes/default/html/views/search/edit.php | 133++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Mmodules/cms/ui/themes/default/html/views/search/edit.tpl.src.xml | 94+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mmodules/cms/ui/themes/default/script/plugin/jquery-plugin-orSearch.js | 32+++++++++++++++++++++-----------
5 files changed, 194 insertions(+), 122 deletions(-)

diff --git a/modules/cms/action/search/SearchEditAction.class.php b/modules/cms/action/search/SearchEditAction.class.php @@ -2,17 +2,56 @@ namespace cms\action\search; use cms\action\Method; use cms\action\SearchAction; +use cms\base\Configuration; use cms\model\User; use util\Session; class SearchEditAction extends SearchAction implements Method { + public function view() { - $user = Session::getUser(); + $searchConfig = Configuration::subset('search')->subset('quicksearch'); + $flag = $searchConfig->subset('flag'); - $this->setTemplateVar( 'users' ,User::listAll() ); - $this->setTemplateVar( 'act_userid',$user->userid ); - } + $initial = ! $this->request->has('repeat'); + + if ( $initial ) { + $searchById = $flag->is('id' ); + $searchByName = $flag->is('name' ); + $searchByFilename = $flag->is('filename' ); + $searchByDesc = $flag->is('description'); + $searchByContent = $flag->is('content' ); + } else { + $searchById = $this->request->has('oid' ); + $searchByName = $this->request->has('name' ); + $searchByFilename = $this->request->has('filename' ); + $searchByDesc = $this->request->has('description'); + $searchByContent = $this->request->has('content' ); + } + + $this->setTemplateVar('oid' ,$searchById ); + $this->setTemplateVar('name' ,$searchByName ); + $this->setTemplateVar('filename' ,$searchByFilename ); + $this->setTemplateVar('description',$searchByDesc ); + $this->setTemplateVar('content' ,$searchByContent ); + + $suchText = $this->request->getText('text'); + $this->setTemplateVar('text',$suchText); + + $searchFlags = 0; + + // Always search for the id without a max length + if ( strlen($suchText) >= $searchConfig->get('maxlength',3 ) ) { + if ($searchById ) $searchFlags |= self::FLAG_ID; + if ($searchByFilename) $searchFlags |= self::FLAG_FILENAME; + if ($searchByName ) $searchFlags |= self::FLAG_NAME; + if ($searchByDesc ) $searchFlags |= self::FLAG_DESCRIPTION; + if ($searchByContent ) $searchFlags |= self::FLAG_VALUE; + + } + + $this->performSearch($suchText, $searchFlags); + } public function post() { diff --git a/modules/cms/action/search/SearchResultAction.class.php b/modules/cms/action/search/SearchResultAction.class.php @@ -7,16 +7,6 @@ class SearchResultAction extends SearchAction implements Method { public function view() { - $suchText = $this->request->getText('text'); - $searchFlags = 0; - - if ( $this->request->has('id' ) ) $searchFlags |= self::FLAG_ID; - if ( $this->request->has('filename' ) ) $searchFlags |= self::FLAG_FILENAME; - if ( $this->request->has('name' ) ) $searchFlags |= self::FLAG_NAME; - if ( $this->request->has('description') ) $searchFlags |= self::FLAG_DESCRIPTION; - if ( $this->request->has('content' ) ) $searchFlags |= self::FLAG_VALUE; - - $this->performSearch($suchText, $searchFlags); /* case 'lastchange_user': diff --git a/modules/cms/ui/themes/default/html/views/search/edit.php b/modules/cms/ui/themes/default/html/views/search/edit.php @@ -1,59 +1,94 @@ <?php /* THIS FILE IS GENERATED from edit.tpl.src.xml - DO NOT CHANGE */ defined('APP_STARTED') || die('Forbidden'); use \template_engine\Output as O; ?> - <form name="<?php echo O::escapeHtml('') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-target="<?php echo O::escapeHtml('view') ?>" action="<?php echo O::escapeHtml('./') ?>" data-method="<?php echo O::escapeHtml('result') ?>" data-action="<?php echo O::escapeHtml('search') ?>" data-id="<?php echo O::escapeHtml(''.@$_id.'') ?>" method="<?php echo O::escapeHtml('GET') ?>" enctype="<?php echo O::escapeHtml('application/x-www-form-urlencoded') ?>" data-async="<?php echo O::escapeHtml('') ?>" data-autosave="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-form or-search') ?>"><?php echo O::escapeHtml('') ?> + <form name="<?php echo O::escapeHtml('') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-target="<?php echo O::escapeHtml('view') ?>" action="<?php echo O::escapeHtml('./') ?>" data-method="<?php echo O::escapeHtml('edit') ?>" data-action="<?php echo O::escapeHtml('search') ?>" data-id="<?php echo O::escapeHtml(''.@$_id.'') ?>" method="<?php echo O::escapeHtml('GET') ?>" enctype="<?php echo O::escapeHtml('application/x-www-form-urlencoded') ?>" data-async="<?php echo O::escapeHtml('') ?>" data-autosave="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-form or-search') ?>"><?php echo O::escapeHtml('') ?> <div class="<?php echo O::escapeHtml('or-form-headline') ?>"><?php echo O::escapeHtml('') ?></div> <div class="<?php echo O::escapeHtml('or-form-content') ?>"><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('token') ?>" value="<?php echo O::escapeHtml(''.@$_token.'') ?>" /><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('action') ?>" value="<?php echo O::escapeHtml('search') ?>" /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('subaction') ?>" value="<?php echo O::escapeHtml('result') ?>" /><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('subaction') ?>" value="<?php echo O::escapeHtml('edit') ?>" /><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('id') ?>" value="<?php echo O::escapeHtml(''.@$_id.'') ?>" /><?php echo O::escapeHtml('') ?> - <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> - <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?></h3> - <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('value').'') ?></span> - </label> - <br /><?php echo O::escapeHtml('') ?> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> - <input name="<?php echo O::escapeHtml('text') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('search').'') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" value="<?php echo O::escapeHtml(''.@$text.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> - </div> + <section class="<?php echo O::escapeHtml('or-group or-collapsible--is-open or-collapsible--is-visible or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?> + <h2 class="<?php echo O::escapeHtml('or-collapsible-title or-group-title or-collapsible-act-switch') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@O::lang('SEARCH').'') ?></span> + </h2> + <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('value').'') ?></h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <input name="<?php echo O::escapeHtml('text') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('search').'') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" value="<?php echo O::escapeHtml(''.@$text.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('repeat') ?>" value="<?php echo O::escapeHtml('1') ?>" /><?php echo O::escapeHtml('') ?> + </div> + </section> </div> </section> - <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> - <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?></h3> - <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('filter').'') ?></span> - </label> - <br /><?php echo O::escapeHtml('') ?> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('id') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(O::config(['search','quicksearch','flag','id'])){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('id').'') ?></span> - </label> - <br /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('name') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(O::config(['search','quicksearch','flag','name'])){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('name').'') ?></span> - </label> - <br /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('filename') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(O::config(['search','quicksearch','flag','filename'])){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('filename').'') ?></span> - </label> - <br /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('description') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(O::config(['search','quicksearch','flag','description'])){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('description').'') ?></span> - </label> - <br /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('content') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(O::config(['search','quicksearch','flag','content'])){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('content').'') ?></span> - </label> + <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?> + <h2 class="<?php echo O::escapeHtml('or-collapsible-title or-group-title or-collapsible-act-switch') ?>"><?php echo O::escapeHtml('') ?> + <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-closed or-collapsible--on-closed') ?>"><?php echo O::escapeHtml('') ?></i> + <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-open or-collapsible--on-open') ?>"><?php echo O::escapeHtml('') ?></i> + <span><?php echo O::escapeHtml(''.@O::lang('OPTIONS').'') ?></span> + </h2> + <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('search_prop').'') ?></h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('oid') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$oid){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('id').'') ?></span> + </label> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('name') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$name){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('name').'') ?></span> + </label> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('filename') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$filename){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('filename').'') ?></span> + </label> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('description') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$description){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('description').'') ?></span> + </label> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('content') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$content){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('content').'') ?></span> + </label> + </div> + </section> + </div> + </section> + <section class="<?php echo O::escapeHtml('or-group or-collapsible--is-open or-collapsible--is-visible or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?> + <h2 class="<?php echo O::escapeHtml('or-collapsible-title or-group-title or-collapsible-act-switch') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@O::lang('search_result').'') ?></span> + </h2> + <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> + <div class="<?php echo O::escapeHtml('or-table-wrapper') ?>"><?php echo O::escapeHtml('') ?> + <div class="<?php echo O::escapeHtml('or-table-filter') ?>"><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('search') ?>" name="<?php echo O::escapeHtml('filter') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('SEARCH_FILTER').'') ?>" class="<?php echo O::escapeHtml('or-input or-table-filter-input') ?>" /><?php echo O::escapeHtml('') ?> + </div> + <div class="<?php echo O::escapeHtml('or-table-area') ?>"><?php echo O::escapeHtml('') ?> + <table class="<?php echo O::escapeHtml('or-table') ?>"><?php echo O::escapeHtml('') ?> + <tr class="<?php echo O::escapeHtml('or-table-header') ?>"><?php echo O::escapeHtml('') ?> + <th><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@O::lang('NAME').'') ?></span> + </th> + <th><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@O::lang('LASTCHANGE').'') ?></span> + </th> + </tr> + <?php foreach((array)@$result as $list_key=>$list_value) { extract($list_value); ?> + <tr class="<?php echo O::escapeHtml('or-data') ?>"><?php echo O::escapeHtml('') ?> + <td class="<?php echo O::escapeHtml('or-act-clickable') ?>"><?php echo O::escapeHtml('') ?> + <a target="<?php echo O::escapeHtml('_self') ?>" data-name="<?php echo O::escapeHtml(''.@$name.'') ?>" name="<?php echo O::escapeHtml(''.@$name.'') ?>" data-type="<?php echo O::escapeHtml('open') ?>" data-action="<?php echo O::escapeHtml(''.@$type.'') ?>" data-method="<?php echo O::escapeHtml('') ?>" data-id="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('[]') ?>" href="<?php echo O::escapeHtml('#/'.@$type.'/'.@$id.'') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?> + <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--action-'.@$type.'') ?>"><?php echo O::escapeHtml('') ?></i> + <span title="<?php echo O::escapeHtml(''.@$desc.'') ?>"><?php echo O::escapeHtml(''.@$name.'') ?></span> + </a> + </td> + <td><?php echo O::escapeHtml('') ?> + <?php include_once( 'modules/template_engine/components/html/component_date/component-date.php'); { component_date($lastchange_date); ?> + <?php } ?> + </td> + </tr> + <?php } ?> + </table> + </div> </div> </div> </section> @@ -65,7 +100,7 @@ </div> <div class="<?php echo O::escapeHtml('or-btn or-btn--control or-btn--primary or-act-form-save') ?>"><?php echo O::escapeHtml('') ?> <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--form-ok') ?>"><?php echo O::escapeHtml('') ?></i> - <span class="<?php echo O::escapeHtml('or-form-btn-label') ?>"><?php echo O::escapeHtml(''.@O::lang('button_ok').'') ?></span> + <span class="<?php echo O::escapeHtml('or-form-btn-label') ?>"><?php echo O::escapeHtml(''.@O::lang('search').'') ?></span> </div> </div> </form> \ No newline at end of file diff --git a/modules/cms/ui/themes/default/html/views/search/edit.tpl.src.xml b/modules/cms/ui/themes/default/html/views/search/edit.tpl.src.xml @@ -1,49 +1,47 @@ -<output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd"> - <form method="GET" subaction="result"> - <fieldset class="line" label=""> - <part class="label"> - <label for="value"> - <text value="${message:value}"/> - </label> - <newline/> - </part> - <part class="value"> - <input name="text" hint="${message:search}"/> - </part> - </fieldset> - <fieldset class="line" label=""> - <part class="label"> - <label for="value"> - <text value="${message:filter}"/> - </label> - <newline/> - </part> - <part class="value"> - <checkbox name="id" default="${config:search/quicksearch/flag/id}"/> - <label for="id"> - <text value="${message:id}"/> - </label> - <newline/> - <checkbox name="name" default="${config:search/quicksearch/flag/name}"/> - <label for="name"> - <text value="${message:name}"/> - </label> - <newline/> - <checkbox name="filename" default="${config:search/quicksearch/flag/filename}"/> - <label for="filename"> - <text value="${message:filename}"/> - </label> - <newline/> - <checkbox name="description" default="${config:search/quicksearch/flag/description}"/> - <label for="description"> - <text value="${message:description}"/> - </label> - <newline/> - <checkbox name="content" default="${config:search/quicksearch/flag/content}"/> - <label for="content"> - <text value="${message:content}"/> - </label> - </part> - </fieldset> - </form> +<output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd"> + <form method="GET" subaction="edit" label="${message:search}"> + <group title="${message:SEARCH}" collapsible="false"> + <fieldset label="${message:value}"> + <input name="text" hint="${message:search}"/> + <hidden name="repeat" default="1"/> + </fieldset> + </group> + + <group title="${message:OPTIONS}" open="false"> + <fieldset label="${message:search_prop}"> + <checkbox label="${message:id}" name="oid"/> + <checkbox label="${message:name}" name="name"/> + <checkbox label="${message:filename}" name="filename"/> + <checkbox label="${message:description}" name="description"/> + <checkbox label="${message:content}" name="content"/> + </fieldset> + </group> + + <group title="${message:search_result}" collapsible="false"> + <table> + <row header="true"> + <column header="true"> + <text value="${message:NAME}"/> + </column> + <column header="true"> + <text value="${message:LASTCHANGE}"/> + </column> + </row> + <list list="${result}" extract="true"> + <row class="data"> + <column class="act-clickable"> + <link type="open" action="${type}" name="${name}" id="${id}"> + <image action="${type}"/> + <text value="${name}" title="${desc}"/> + </link> + </column> + <column> + <date date="${lastchange_date}"/> + </column> + </row> + </list> + </table> + </group> + </form> </output> diff --git a/modules/cms/ui/themes/default/script/plugin/jquery-plugin-orSearch.js b/modules/cms/ui/themes/default/script/plugin/jquery-plugin-orSearch.js @@ -1,5 +1,6 @@ import $ from "../jquery-global.js"; import WorkbenchNavigator from "../openrat/navigator.js"; +import Dialog from "../openrat/dialog.js"; /** * Suche mit Dropdown @@ -18,21 +19,30 @@ export default function( options ) 'method': 'quicksearch', 'resultEntryClass': 'dropdown-entry', }, options); - + + let searchInput = $(this) + let dropdownEl = $( settings.dropdown ); + + let closeSearch = function() { + settings.onSearchInactive(); + + // No search argument. + $(dropdownEl).empty(); // Leeren. + dropdownEl.removeClass('search-result--is-active'); + }; + + $(this).on('keydown',async function(e) { + if ( e.keyCode == 13 ) { // Listen to ENTER + let dialog = new Dialog(); + closeSearch(); + dialog.start('','search','edit',0,{'text':searchInput.val()}); + searchInput.val(''); + } + } ); return $(this).input(async function() { - let searchInput = $(this) let searchArgument = searchInput.val(); - let dropdownEl = $( settings.dropdown ); - - let closeSearch = function() { - settings.onSearchInactive(); - - // No search argument. - $(dropdownEl).empty(); // Leeren. - dropdownEl.removeClass('search-result--is-active'); - }; if ( searchArgument.length ) {