- link widgets uses now ajax to search

- new sub-type to search and select an entry of a selectable or given app
- more to come
This commit is contained in:
Ralf Becker 2006-09-29 19:55:00 +00:00
parent 2d2a18959f
commit f68c173c30
8 changed files with 237 additions and 70 deletions

View File

@ -25,6 +25,8 @@
* - link-string: comma-separated list of link-titles with a link to its view method, value is like get_links()
* or array with keys to_app and to_id (widget calls then get_links itself)
* - link-add: Add a new entry of the select app, which is already linked to a given entry
* - link-entry: Allow to select an entry of a selectable or in options specified app
* - link-apps: Select an app registerd in the link system, options: '' or 'add'
*
*<code>
* $content[$name] = array(
@ -52,8 +54,9 @@
* @var array exported methods of this class
*/
var $public_functions = array(
'pre_process' => True,
'post_process' => True
'pre_process' => True,
'post_process' => True,
'ajax_search' => True,
);
/**
* @var array availible extensions and there names for the editor
@ -63,14 +66,18 @@
'link-to' => 'LinkTo',
'link-list' => 'LinkList',
'link-string' => 'LinkString',
'link-add' => 'LinkEntry',
'link-add' => 'LinkAdd',
'link-entry' => 'LinkEntry',
'link-apps' => 'LinkApps',
);
/**
* @var boolean $debug switches debug-messages on and off
*/
var $debug = False;
/**
* @var object $link reference to the link class
* reference to the link class
*
* @var bolink
*/
var $link;
@ -79,7 +86,7 @@
*
* @param string $ui '' for html
*/
function link_widget($ui)
function link_widget($ui='')
{
if (!is_object($GLOBALS['egw']->link))
{
@ -103,7 +110,7 @@
*/
function pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
{
$type = $cell['type'];
$extension_data['type'] = $type = $cell['type'];
$help = $cell['help'] ? ($value['help'] ? $value['help'] : $cell['help']) : lang('view this linked entry in its application');
if (($type == 'link-to' || $type == 'link-add') && ($cell['readonly'] || $readonlys))
@ -113,7 +120,7 @@
$cell = $tmpl->empty_cell();
return;
}
if (!is_array($value) && $type != 'link-string' && $type != 'link')
if (!is_array($value) && in_array($type,array('link-to','link-list','link-add')))
{
$value = array(
'to_id' => $value,
@ -126,7 +133,7 @@
echo "<p>start: $cell[type][$name]::pre_process: value ="; _debug_array($value);
echo "extension_data[$cell[type]][$name] ="; _debug_array($extension_data);
}
switch ($type = $cell['type'])
switch ($cell['type'])
{
case 'link':
$cell['readonly'] = True; // set it readonly to NOT call our post_process function
@ -223,6 +230,13 @@
break;
case 'link-to':
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
if ($value['search_label'] && $extension_data['search_label'] != $value['search_label']) $value['search_label'] = lang($value['search_label']);
$extension_data = $value;
$tpl =& new etemplate('etemplate.link_widget.to');
if ($value['link_label']) $tpl->set_cell_attribute('create','label',$value['link_label']);
if ($value['search_label']) $tpl->set_cell_attribute('search','label',$value['search_label']);
/* old request code
$value['msg'] = '';
if ($value['button'] == 'search' && count($ids = $this->link->query($value['app'],$value['query'])))
{
@ -258,7 +272,7 @@
}
$tpl->set_cell_attribute('comment','onchange',"set_style_by_class('*','hide_comment','display',this.checked ? 'block' : 'none');");
unset($value['comment']);
}
}*/
break;
case 'link-list':
@ -309,6 +323,63 @@
}
}
break;
case 'link-entry':
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
$tpl =& new etemplate('etemplate.link_widget.entry');
if ($value) // show pre-selected entry in select-box and not the search
{
// add selected-entry plus "new search" to the selectbox-options
if (($app = $cell['size']))
{
$id = $value;
}
else
{
list($app,$id) = explode(':',$value);
}
if ($id && ($title = $this->link->title($app,$id)))
{
$selectbox =& $tpl->get_widget_by_name('id');
$selectbox['sel_options'] = array(
$id => $title,
'' => lang('new search').' ...',
);
// remove link_hide class from select-box-line
$span =& $tpl->get_cell_attribute('select_line','span');
$span = str_replace('link_hide','',$span);
// add link_hide class to search_line
$span =& $tpl->get_cell_attribute('search_line','span');
$span .= ' link_hide';
unset($span);
}
}
if (($extension_data['app'] = $cell['size'])) // no app-selection, using app given in $cell['size']
{
$tpl->disable_cells('app');
$onchange =& $tpl->get_cell_attribute('search','onclick');
$onchange = str_replace("document.getElementById(form::name('app')).value",'\''.$cell['size'].'\'',$onchange);
unset($onchange);
}
$value = array(
'app' => $cell['size'],
'no_app_sel' => !!$cell['size'],
'id' => $value,
);
break;
case 'link-apps':
$apps = $this->link->app_list($cell['size']);
if (!$apps) // cant do an add without apps or already created entry
{
$cell = $tmpl->empty_cell();
return;
}
asort($apps); // sort them alphabetic
$cell['sel_options'] = $apps;
$cell['no_lang'] = True; // already translated
$cell['type'] = 'select';
return true;
}
$cell['size'] = $cell['name'];
$cell['type'] = 'template';
@ -345,6 +416,16 @@
{
//echo "<p>link_widget::post_process('$name',value=".print_r($value,true).",ext=".print_r($extension_data,true).",$loop,,value_in=".print_r($value_in,true)."</p>\n";
switch($extension_data['type'])
{
case 'link-entry':
$value = $extension_data['app'] ? $value_in['id'] : $value['app'].':'.$value_in['id'];
return !!$value_in['id'];
case 'link-apps':
$value = $value_in;
return !!$value;
}
$buttons = array('search','create','new','upload','attach');
while (!$button && list(,$bname) = each($buttons))
{
@ -374,7 +455,7 @@
{
$link_id = $this->link->link($value['to_app'],$value['to_id'],
$value['app'],$value['id'],$value['remark']);
$value['remark'] = '';
$value['remark'] = $value['query'] = '';
if (isset($value['primary']) && !$value['anz_links'] )
{
@ -405,6 +486,7 @@
{
$value['primary'] = $link_id;
}
unset($value['comment']);
unset($value['file']);
}
else
@ -437,4 +519,46 @@
}
return True;
}
/**
* ajax callback to search in $app for $pattern, result is displayed in $id
*
* @param string $app app-name to search
* @param string $pattern search-pattern
* @param string $id_res id of selectbox to show the result
* @param string $id_hide id(s) of the search-box/-line to hide after a successful search
* @param string $id_show id(s) of the select-box/-line to show after a successful search
* @param string $id_input id of the search input-field
*/
function ajax_search($app,$pattern,$id_res,$id_hide,$id_show,$id_input)
{
$response = new xajaxResponse();
//$args = func_get_args(); $response->addAlert("link_widget::ajax_search('".implode("','",$args)."')");
if (!($found = $this->link->query($app,$pattern == lang('Search') ? '' : $pattern))) // ignore the blur-text
{
$response->addAlert(lang('Nothing found - try again !!!'));
$response->addScript("document.getElementById('$id_input').select();");
}
else
{
$script = "var select = document.getElementById('$id_res');\nselect.options.length=0;\n";
foreach($found as $id => $title)
{
$script .= "select.options[select.options.length] = new Option('".addslashes($title)."','$id');\n";
}
$script .= "select.options[select.options.length] = new Option('".addslashes(lang('New search').' ...')."','');\n";
foreach(explode(',',$id_show) as $id)
{
$script .= "document.getElementById('$id').style.display='inline';\n";
}
foreach(explode(',',$id_hide) as $id)
{
$script .= "document.getElementById('$id').style.display='none';\n";
}
//$response->addAlert($script);
$response->addScript($script);
}
return $response->getXML();
}
}

View File

@ -2,7 +2,7 @@
/**
* eGroupWare - eTemplates for Application etemplate
* http://www.egroupware.org
* generated by soetemplate::dump4setup() 2006-09-25 18:00
* generated by soetemplate::dump4setup() 2006-09-29 23:54
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
@ -117,12 +117,17 @@ $templ_data[] = array('name' => 'etemplate.integer','template' => '','lang' => '
$templ_data[] = array('name' => 'etemplate.link_widget.add','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"name";s:3:"app";s:4:"help";s:43:"Add a new entry of the selected application";s:5:"label";s:7:"Add new";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:4:"help";s:43:"Add a new entry of the selected application";s:7:"onclick";s:64:"eval(this.form.elements[form::name(\'app\')].value); return false;";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '.redItalic { font-style: italic; color: red; }
.hide_comment { display: none; }','modified' => '1131618647',);
$templ_data[] = array('name' => 'etemplate.link_widget.add','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"name";s:3:"app";s:4:"help";s:43:"Add a new entry of the selected application";s:5:"label";s:7:"Add new";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:4:"help";s:43:"Add a new entry of the selected application";s:7:"onclick";s:64:"eval(this.form.elements[form::name(\'app\')].value); return false;";}}}s:4:"rows";i:1;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1159565080',);
$templ_data[] = array('name' => 'etemplate.link_widget.add-test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"link-add";s:4:"name";s:3:"add";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1131620509',);
$templ_data[] = array('name' => 'etemplate.link_widget.attach','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:6:"row_on";s:2:"c2";s:7:"row_off";}i:1;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"File";}s:1:"B";a:4:{s:4:"type";s:5:"label";s:4:"span";s:11:",like_input";s:7:"no_lang";s:1:"1";s:4:"name";s:10:"file[path]";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Attach";s:4:"name";s:6:"attach";s:4:"help";s:29:"click here to attach the file";}s:1:"D";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:3:"new";s:4:"help";s:36:"start a new search, cancel this link";}}i:2;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Comment";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:5:"50,50";s:4:"span";s:3:"all";s:4:"name";s:6:"remark";s:4:"help";s:28:"optional note about the Link";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:2;s:4:"cols";i:4;}}','size' => '','style' => '.like_input { background: white; border: medium groove black; padding-left: 3px; padding-right: 3px; }','modified' => '1035118591',);
$templ_data[] = array('name' => 'etemplate.link_widget.create','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:6:"row_on";s:2:"c2";s:7:"row_off";}i:1;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:3:"app";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:2:"id";s:4:"help";s:28:"Select an entry to link with";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Link";s:4:"name";s:6:"create";s:4:"help";s:29:"click here to create the Link";}s:1:"D";a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"New search";s:4:"name";s:3:"new";s:4:"help";s:36:"start a new search, cancel this link";}}i:2;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Comment";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:5:"50,50";s:4:"span";s:3:"all";s:4:"name";s:6:"remark";s:4:"help";s:28:"optional note about the Link";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:2;s:4:"cols";i:4;}}','size' => '','style' => '','modified' => '1035043515',);
$templ_data[] = array('name' => 'etemplate.link_widget.entry','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:3:"box";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:1:"2";i:1;a:7:{s:4:"type";s:3:"box";s:4:"size";s:6:"3,,0,0";i:1;a:3:{s:4:"type";s:9:"link-apps";s:4:"name";s:3:"app";s:4:"help";s:28:"Select application to search";}i:2;a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"query";s:4:"blur";s:6:"Search";}s:4:"span";s:11:",box_inline";s:4:"name";s:11:"search_line";i:3;a:5:{s:4:"type";s:6:"button";s:4:"name";s:6:"search";s:5:"label";s:1:">";s:4:"help";s:30:"Click here to start the search";s:7:"onclick";s:256:"xajax_doXMLHTTP(\'etemplate.link_widget.ajax_search\',document.getElementById(form::name(\'app\')).value,document.getElementById(form::name(\'query\')).value,form::name(\'id\'),form::name(\'search_line\'),form::name(\'select_line\'),form::name(\'query\')); return false;";}}i:2;a:5:{s:4:"type";s:3:"box";s:4:"size";s:1:"1";s:4:"span";s:22:",link_select link_hide";i:1;a:4:{s:4:"type";s:6:"select";s:4:"name";s:2:"id";s:8:"onchange";s:167:"if (!this.value) { document.getElementById(form::name(\'search_line\')).style.display=\'inline\'; document.getElementById(form::name(\'select_line\')).style.display=\'none\';}";s:7:"no_lang";s:1:"1";}s:4:"name";s:11:"select_line";}}}','size' => '','style' => '.link_hide { display: none; }
','modified' => '1159544478',);
$templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','lang' => '','group' => '0','version' => '0.9.15.003','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:1:"D";s:10:",!@primary";s:2:"c1";s:3:"nmr";}i:1;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:5:"2,0,0";i:1;a:5:{s:4:"type";s:5:"label";s:4:"size";s:14:",@${row}[view]";s:7:"no_lang";s:1:"1";s:4:"name";s:13:"${row}[title]";s:4:"help";s:41:"view this linked entry in its application";}i:2;a:4:{s:4:"type";s:5:"label";s:4:"span";s:15:",note_following";s:7:"no_lang";s:1:"1";s:4:"name";s:14:"${row}[remark]";}}s:1:"C";a:5:{s:4:"type";s:6:"button";s:4:"size";s:10:"delete.png";s:5:"label";s:6:"Unlink";s:4:"name";s:26:"unlink[$row_cont[link_id]]";s:4:"help";s:39:"Remove this link (not the entry itself)";}s:1:"D";a:4:{s:4:"type";s:5:"radio";s:4:"size";s:18:"$row_cont[link_id]";s:4:"name";s:7:"primary";s:4:"help";s:45:"Select a primary contact, to show in the list";}}}s:4:"rows";i:1;s:4:"cols";i:4;s:4:"size";s:12:",,,whiteback";}}','size' => ',,,whiteback','style' => '.whiteback { background: white; }
.note_following { font-style: italic; padding-left: 5px; }','modified' => '1035126186',);
@ -131,9 +136,20 @@ $templ_data[] = array('name' => 'etemplate.link_widget.list','template' => '','l
$templ_data[] = array('name' => 'etemplate.link_widget.search','template' => '','lang' => '','group' => '0','version' => '1.0.0.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:5:{s:2:"c1";s:6:"row_on";s:2:"c3";s:7:"row_off";s:2:"h3";s:10:",@no_files";s:2:"c2";s:6:"row_on";s:2:"h2";s:6:",!@msg";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:5:"label";s:6:"Search";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"app";s:4:"help";s:26:"Select an App to search in";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"25";s:4:"name";s:5:"query";s:4:"help";s:22:"Enter a search pattern";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:6:"search";s:4:"help";s:30:"Click here to start the search";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"attach file";}s:1:"B";a:3:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Upload";s:4:"name";s:6:"upload";s:4:"help";s:29:"Click here to upload the file";}}}s:4:"rows";i:3;s:4:"cols";i:3;}}','size' => '','style' => '.error_msg { font-style: italic; color: red; }','modified' => '1113223869',);
$templ_data[] = array('name' => 'etemplate.link_widget.search','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:2:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:5:{s:2:"c1";s:6:"row_on";s:2:"c3";s:7:"row_off";s:2:"h3";s:10:",@no_files";s:2:"c2";s:6:"row_on";s:2:"h2";s:6:",!@msg";}i:1;a:4:{s:1:"A";a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"app";s:4:"help";s:26:"Select an App to search in";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"32";s:4:"name";s:5:"query";s:4:"help";s:22:"Enter a search pattern";s:8:"tabindex";i:99;}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:6:"search";s:4:"help";s:30:"Click here to start the search";s:4:"span";s:3:"all";s:8:"tabindex";i:100;}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:2;a:4:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:3;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Attach file";}s:1:"B";a:4:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";s:4:"size";s:2:"12";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Attach";s:4:"name";s:6:"attach";s:4:"help";s:29:"Click here to attach the file";}s:1:"D";a:3:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"comment";s:4:"help";s:28:"optional note about the Link";}}}s:4:"rows";i:3;s:4:"cols";i:4;}i:1;a:6:{s:4:"type";s:4:"text";s:4:"name";s:6:"remark";s:4:"size";s:5:"50,50";s:4:"span";s:13:",hide_comment";s:5:"label";s:7:"Comment";s:4:"help";s:28:"optional note about the Link";}}','size' => '','style' => '.redItalic { font-style: italic; color: red; }
$templ_data[] = array('name' => 'etemplate.link_widget.search','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:2:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:5:{s:2:"c1";s:6:"row_on";s:2:"c3";s:7:"row_off";s:2:"h3";s:10:",@no_files";s:2:"c2";s:6:"row_on";s:2:"h2";s:6:",!@msg";}i:1;a:4:{s:1:"A";a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"app";s:4:"help";s:26:"Select an App to search in";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:2:"32";s:4:"name";s:5:"query";s:4:"help";s:22:"Enter a search pattern";s:8:"tabindex";i:99;}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Search";s:4:"name";s:6:"search";s:4:"help";s:30:"Click here to start the search";s:4:"span";s:3:"all";s:8:"tabindex";i:100;}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:2;a:4:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:3;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Attach file";}s:1:"B";a:4:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";s:4:"size";s:2:"12";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Attach";s:4:"name";s:6:"attach";s:4:"help";s:29:"Click here to attach the file";}s:1:"D";a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"comment";s:4:"help";s:28:"optional note about the Link";s:8:"onchange";s:81:"set_style_by_class(\'*\',\'hide_comment\',\'display\',this.checked ? \'block\' : \'none\');";}}}s:4:"rows";i:3;s:4:"cols";i:4;}i:1;a:6:{s:4:"type";s:4:"text";s:4:"name";s:6:"remark";s:4:"size";s:5:"50,50";s:4:"span";s:13:",hide_comment";s:5:"label";s:7:"Comment";s:4:"help";s:28:"optional note about the Link";}}','size' => '','style' => '.redItalic { font-style: italic; color: red; }
.hide_comment { display: none; }','modified' => '1131608831',);
$templ_data[] = array('name' => 'etemplate.link_widget.to','template' => '','lang' => '','group' => '0','version' => '1.3.000','data' => 'a:1:{i:0;a:7:{s:4:"type";s:3:"box";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:1:"2";i:1;a:6:{s:4:"type";s:3:"box";s:4:"size";s:6:"3,,0,0";i:1;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:4:"type";s:9:"link-apps";s:4:"name";s:3:"app";s:4:"help";s:28:"Select application to search";s:5:"label";s:13:"@search_label";}i:2;a:2:{s:4:"type";s:4:"text";s:4:"name";s:5:"query";}i:3;a:5:{s:4:"type";s:6:"button";s:4:"name";s:5:"query";s:5:"label";s:1:">";s:4:"help";s:6:"Search";s:7:"onclick";s:256:"xajax_doXMLHTTP(\'etemplate.link_widget.ajax_search\',document.getElementById(form::name(\'app\')).value,document.getElementById(form::name(\'query\')).value,form::name(\'id\'),form::name(\'search_line\'),form::name(\'select_line\'),form::name(\'query\')); return false;";}}i:2;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:10:",@no_files";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";s:4:"size";s:2:"12";s:5:"label";s:11:"attach file";}s:1:"B";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Attach";s:4:"name";s:6:"attach";s:4:"help";s:29:"Click here to attach the file";}s:1:"C";a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"comment";s:4:"help";s:28:"optional note about the Link";s:8:"onchange";s:88:"document.getElementById(form::name(\'remark\')).style.display=this.checked?\'block\':\'none\';";}}}s:4:"rows";i:1;s:4:"cols";i:3;}s:4:"name";s:11:"search_line";i:3;a:6:{s:4:"type";s:4:"text";s:4:"name";s:6:"remark";s:4:"size";s:5:"50,50";s:4:"span";s:13:",hide_comment";s:4:"help";s:28:"optional note about the Link";s:4:"blur";s:7:"Comment";}}i:2;a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:4:"span";s:22:",link_select link_hide";i:1;a:4:{s:4:"type";s:6:"select";s:4:"name";s:2:"id";s:8:"onchange";s:167:"if (!this.value) { document.getElementById(form::name(\'search_line\')).style.display=\'inline\'; document.getElementById(form::name(\'select_line\')).style.display=\'none\';}";s:7:"no_lang";s:1:"1";}s:4:"name";s:11:"select_line";i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Link";s:4:"name";s:6:"create";s:4:"help";s:29:"click here to create the Link";}i:3;a:6:{s:4:"type";s:4:"text";s:4:"size";s:5:"50,50";s:4:"name";s:6:"remark";s:4:"help";s:28:"optional note about the Link";s:4:"blur";s:7:"comment";s:4:"span";s:13:",link_comment";}}}}','size' => '','style' => '.link_select select { }
.link_comment { display: block; }
.link_hide { display: none; }
.redItalic { font-style: italic; color: red; }
.hide_comment input { display: none; }','modified' => '1159559249',);
$templ_data[] = array('name' => 'etemplate.link_widget.to','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:8:{s:4:"type";s:3:"box";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:1:"3";i:1;a:5:{s:4:"type";s:3:"box";s:4:"size";s:6:"2,,0,0";i:1;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:4:"type";s:9:"link-apps";s:4:"name";s:3:"app";s:4:"help";s:28:"Select application to search";s:5:"label";s:13:"@search_label";}i:2;a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"query";s:4:"blur";s:6:"Search";}i:3;a:5:{s:4:"type";s:6:"button";s:4:"name";s:5:"query";s:5:"label";s:1:">";s:4:"help";s:30:"Click here to start the search";s:7:"onclick";s:281:"xajax_doXMLHTTP(\'etemplate.link_widget.ajax_search\',document.getElementById(form::name(\'app\')).value,document.getElementById(form::name(\'query\')).value,form::name(\'id\'),form::name(\'search_line\'),form::name(\'remark\')+\',\'+form::name(\'select_line\'),form::name(\'query\')); return false;";}}i:2;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:10:",@no_files";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";s:4:"help";s:69:"Enter filename to upload and attach, use [Browse...] to search for it";s:4:"size";s:2:"12";s:5:"label";s:11:"attach file";}s:1:"B";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Attach";s:4:"name";s:6:"attach";s:4:"help";s:29:"Click here to attach the file";}s:1:"C";a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"comment";s:4:"help";s:28:"optional note about the Link";s:8:"onchange";s:88:"document.getElementById(form::name(\'remark\')).style.display=this.checked?\'block\':\'none\';";}}}s:4:"rows";i:1;s:4:"cols";i:3;}s:4:"name";s:11:"search_line";}i:2;a:6:{s:4:"type";s:3:"box";s:4:"size";s:1:"2";s:4:"span";s:22:",link_select link_hide";i:1;a:4:{s:4:"type";s:6:"select";s:4:"name";s:2:"id";s:8:"onchange";s:227:"if (!this.value) { document.getElementById(form::name(\'search_line\')).style.display=\'inline\'; document.getElementById(form::name(\'remark\')).style.display=document.getElementById(form::name(\'select_line\')).style.display=\'none\';}";s:7:"no_lang";s:1:"1";}s:4:"name";s:11:"select_line";i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Link";s:4:"name";s:6:"create";s:4:"help";s:29:"click here to create the Link";}}i:3;a:6:{s:4:"type";s:4:"text";s:4:"name";s:6:"remark";s:4:"size";s:5:"50,50";s:4:"span";s:13:",hide_comment";s:4:"help";s:28:"optional note about the Link";s:4:"blur";s:7:"Comment";}}}','size' => '','style' => '.link_select { white-space: nowrap; }
.link_hide { display: none; }
.hide_comment input { display: none; width: 99%; }
','modified' => '1159565799',);
$templ_data[] = array('name' => 'etemplate.nextm*','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1155977979',);
$templ_data[] = array('name' => 'etemplate.nextmatch_widget','template' => '','lang' => '','group' => '0','version' => '0.9.15.008','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:1:"A";s:3:"40%";s:1:"C";s:3:"40%";s:2:"h4";s:13:",!@bottom_too";}i:1;a:3:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:12:"@header_left";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:6:"center";i:1;a:4:{s:4:"type";s:5:"label";s:5:"label";s:7:"showing";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"range";}i:2;a:4:{s:4:"type";s:5:"label";s:5:"label";s:2:"of";s:7:"no_lang";s:1:"1";s:4:"name";s:5:"total";}}s:1:"C";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:13:"@header_right";}}i:2;a:3:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:8:"onchange";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:4:"rows";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:9:"@template";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:5:{s:4:"type";s:8:"template";s:4:"size";s:6:"bottom";s:4:"span";s:3:"all";s:5:"align";s:6:"center";s:4:"name";s:33:"etemplate.nextmatch_widget.nm_row";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:3;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '.activ_sortcolumn { color: red; font-weight: bold; }

View File

@ -1,5 +1,5 @@
/* $Id$ */
.redItalic { color: red; font-style: italic; }
.gray { color: gray; }
.clickWidgetToEdit { cursor: pointer; }
.clickWidgetToEdit { cursor: pointer; display: inline; }
.clickWidgetToEdit:hover { background-color: pink; }

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<template id="etemplate.link_widget.add" template="" lang="" group="0" version="1.3.001">
<grid>
<columns>
<column/>
<column/>
</columns>
<rows>
<row>
<menulist>
<menupopup id="app" statustext="Add a new entry of the selected application" label="Add new" no_lang="1"/>
</menulist>
<button label="Add" id="add" statustext="Add a new entry of the selected application" onclick="eval(this.form.elements[form::name('app')].value); return false;"/>
</row>
</rows>
</grid>
</template>
</overlay>

View File

@ -1,26 +0,0 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<grid id="etemplate.link_widget.create" template="" lang="" group="" version="0.9.15.001">
<columns>
<column/>
<column/>
<column/>
<column/>
</columns>
<rows>
<row class="row_on">
<description id="app"/>
<menulist>
<menupopup no_lang="1" id="id" statustext="Select an entry to link with"/>
</menulist>
<button label="Link" id="create" statustext="click here to create the Link"/>
<button label="New search" id="new" statustext="start a new search, cancel this link"/>
</row>
<row class="row_off">
<description value="Comment"/>
<textbox size="50" maxlength="50" span="all" id="remark" statustext="optional note about the Link"/>
</row>
</rows>
</grid>
</overlay>

View File

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<template id="etemplate.link_widget.entry" template="" lang="" group="0" version="1.3.001">
<box rows="1" cols="1">
<box options="0,0" class="box_inline" id="search_line">
<link-apps id="app" statustext="Select application to search"/>
<textbox id="query" blur="Search"/>
<button id="search" label="&gt;" statustext="Click here to start the search" onclick="xajax_doXMLHTTP('etemplate.link_widget.ajax_search',document.getElementById(form::name('app')).value,document.getElementById(form::name('query')).value,form::name('id'),form::name('search_line'),form::name('select_line'),form::name('query')); return false;"/>
</box>
<box class="link_select link_hide" id="select_line">
<menulist>
<menupopup id="id" onchange="if (!this.value) { document.getElementById(form::name('search_line')).style.display='inline'; document.getElementById(form::name('select_line')).style.display='none';}" no_lang="1"/>
</menulist>
</box>
</box>
<styles>
.link_hide { display: none; }
</styles>
</template>
</overlay>

View File

@ -1,31 +0,0 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<grid id="etemplate.link_widget.search" template="" lang="" group="" version="0.9.15.003">
<columns>
<column/>
<column/>
<column/>
<column/>
</columns>
<rows>
<row class="row_on">
<menulist>
<menupopup label="Search" no_lang="1" id="app" statustext="Select an App to search in"/>
</menulist>
<textbox size="25" id="query" statustext="Enter a search pattern"/>
<button label="Search" id="search" statustext="Click here to start the search"/>
<description class="error_msg" value="Nothing found - try again !!!" id="msg"/>
</row>
<row class="row_off">
<description value="attach file"/>
<file id="file" statustext="Enter filename to upload and attach, use [Browse...] to search for it"/>
<button label="Upload" id="upload" statustext="Click here to upload the file"/>
<description/>
</row>
</rows>
<styles>
.error_msg { font-style: italic; color: red; }
</styles>
</grid>
</overlay>

View File

@ -0,0 +1,42 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<template id="etemplate.link_widget.to" template="" lang="" group="0" version="1.3.001">
<box rows="1" cols="1">
<box options="0,0" id="search_line">
<hbox>
<link-apps id="app" statustext="Select application to search" label="@search_label"/>
<textbox id="query" blur="Search"/>
<button id="query" label="&gt;" statustext="Click here to start the search" onclick="xajax_doXMLHTTP('etemplate.link_widget.ajax_search',document.getElementById(form::name('app')).value,document.getElementById(form::name('query')).value,form::name('id'),form::name('search_line'),form::name('remark')+','+form::name('select_line'),form::name('query')); return false;"/>
</hbox>
<grid>
<columns>
<column/>
<column/>
<column/>
</columns>
<rows>
<row disabled="@no_files">
<file id="file" statustext="Enter filename to upload and attach, use [Browse...] to search for it" options="12" label="attach file"/>
<button label="Attach" id="attach" statustext="Click here to attach the file"/>
<checkbox id="comment" statustext="optional note about the Link" onchange="document.getElementById(form::name('remark')).style.display=this.checked?'block':'none';"/>
</row>
</rows>
</grid>
</box>
<box class="link_select link_hide" id="select_line">
<menulist>
<menupopup id="id" onchange="if (!this.value) { document.getElementById(form::name('search_line')).style.display='inline'; document.getElementById(form::name('remark')).style.display=document.getElementById(form::name('select_line')).style.display='none';}" no_lang="1"/>
</menulist>
<button label="Link" id="create" statustext="click here to create the Link"/>
</box>
<textbox id="remark" size="50" maxlength="50" class="hide_comment" statustext="optional note about the Link" blur="Comment"/>
</box>
<styles>
.link_select { white-space: nowrap; }
.link_hide { display: none; }
.hide_comment input { display: none; width: 99%; }
</styles>
</template>
</overlay>