From 92e3a83be195fcd354705e1d038be3504b45885d Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Thu, 3 May 2012 18:06:27 +0000 Subject: [PATCH 001/298] changed order of run call, to get infolog and timesheet list working again --- etemplate/inc/class.etemplate_widget_nextmatch.inc.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/etemplate/inc/class.etemplate_widget_nextmatch.inc.php b/etemplate/inc/class.etemplate_widget_nextmatch.inc.php index f7d58d9d5b..6bbad6f2a3 100644 --- a/etemplate/inc/class.etemplate_widget_nextmatch.inc.php +++ b/etemplate/inc/class.etemplate_widget_nextmatch.inc.php @@ -92,11 +92,12 @@ class etemplate_widget_nextmatch extends etemplate_widget * Sending a first chunk of rows * * @param string $cname + * @param array $expand values for keys 'c', 'row', 'c_', 'row_', 'cont' */ - public function beforeSendToClient($cname) + public function beforeSendToClient($cname, array $expand) { $attrs = $this->attrs; - $form_name = self::form_name($cname, $this->id); + $form_name = self::form_name($cname, $this->id, $expand); $value =& self::get_array(self::$request->content, $form_name, true); $value['start'] = 0; @@ -731,8 +732,8 @@ class etemplate_widget_nextmatch extends etemplate_widget // Need this check or the headers will get involved too if($this->type == 'nextmatch') { - if ($this->id) $cname = self::form_name($cname, $this->id, $params[1]); parent::run($method_name, $params, $respect_disabled); + if ($this->id) $cname = self::form_name($cname, $this->id, $params[1]); if ($this->attrs['template']) { From 019bfb1c93afd1513d0ebd02a38ad13ef446693d Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Mon, 7 May 2012 15:53:28 +0000 Subject: [PATCH 002/298] Changes to file merge - Remove accidentally committed debug - Make URL into web-accessable URL - Add clickable link placeholder - Format custom field date/times according to user preference - Add rel_path placeholder, includes path+name relative to current directory --- .../inc/class.filemanager_merge.inc.php | 50 +++++++++++++++---- filemanager/inc/class.filemanager_ui.inc.php | 6 +-- 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/filemanager/inc/class.filemanager_merge.inc.php b/filemanager/inc/class.filemanager_merge.inc.php index 1500803c50..55f9b0aa3a 100644 --- a/filemanager/inc/class.filemanager_merge.inc.php +++ b/filemanager/inc/class.filemanager_merge.inc.php @@ -36,13 +36,22 @@ class filemanager_merge extends bo_merge */ protected $bo = null; + /** + * Current directory - affects how files are named + */ + protected $dir = ''; + /** * Constructor * */ - function __construct() + function __construct($_dir = '') { parent::__construct(); + if($_dir) + { + $this->dir = $_dir; + } } /** @@ -79,6 +88,7 @@ class filemanager_merge extends bo_merge $file['name'] = egw_vfs::basename($id); $file['dir'] = egw_vfs::decodePath(egw_vfs::dirname($id)); $file['path'] = $id; + $file['rel_path'] = str_replace($this->dir.'/', '', $id); $file['hsize'] = egw_vfs::hsize($file['size']); $file['mime'] = egw_vfs::mime_content_type($id); $file['gid'] *= -1; // our widgets use negative gid's @@ -92,17 +102,28 @@ class filemanager_merge extends bo_merge } $extra = egw_vfs::getExtraInfo($id); - // Convert to human friendly values + // Custom fields if($content && strpos($content, '#') !== 0) { + // Expand link-to custom fields $this->cf_link_to_expand($file, $content, $info); - } + + foreach(config::get_customfields('filemanager') as $name => $field) + { + // Set any missing custom fields, or the marker will stay + if(!$file['#'.$name]) + { + $file['#'.$name] = ''; + continue; + } - // Set any missing custom fields, or the marker will stay - foreach(config::get_customfields('filemanager') as $name => $field) - { - if(!$file['#'.$name]) $file['#'.$name] = ''; - } + // Format date cfs per user preferences + if($field['type'] == 'date' || $field['type'] == 'date-time') + { + $file['#'.$name] = egw_time::to($file['#'.$name]); + } + } + } // Links /* Not applicable to filemanager @@ -114,6 +135,15 @@ class filemanager_merge extends bo_merge $file["links/{$app}"] = $this->get_links('filemanager',$id, $app); } */ + $link = egw_link::mime_open($file['url'], $file['mime']); + // Prepend site + if ($link{0} == '/') + { + $link = ($_SERVER['HTTPS'] || $GLOBALS['egw_info']['server']['enforce_ssl'] ? 'https://' : 'http://'). + ($GLOBALS['egw_info']['server']['hostname'] ? $GLOBALS['egw_info']['server']['hostname'] : $_SERVER['HTTP_HOST']).$link; + } + $file['link'] = html::a_href(html::htmlspecialchars($file['name']), $link); + $file['url'] = $link; // Add markers foreach($file as $key => &$value) @@ -140,8 +170,10 @@ class filemanager_merge extends bo_merge $n = 0; $fields = array( 'name' => 'name', - 'path' => 'path', + 'path' => 'Absolute path', + 'rel_path' => 'Path relative to current directory', 'url' => 'url', + 'link' => 'Clickable link to file', 'comment' => 'comment', 'mtime' => 'modified', 'ctime' => 'created', diff --git a/filemanager/inc/class.filemanager_ui.inc.php b/filemanager/inc/class.filemanager_ui.inc.php index e9910afece..2a47a2c15c 100644 --- a/filemanager/inc/class.filemanager_ui.inc.php +++ b/filemanager/inc/class.filemanager_ui.inc.php @@ -737,7 +737,7 @@ function force_download(_action, _senders) return $ret." egw_vfs::symlink('$to','$path')"; case 'document': if (!$settings) $settings = $GLOBALS['egw_info']['user']['preferences']['filemanager']['default_document']; - $document_merge = new filemanager_merge(); + $document_merge = new filemanager_merge(egw_vfs::decodePath($dir)); $msg = $document_merge->download($settings, $selected, '', $GLOBALS['egw_info']['user']['preferences']['filemanager']['document_dir']); $failed = count($selected); return false; @@ -1244,12 +1244,8 @@ function force_download(_action, _senders) 'align' => 'right', )); } -echo 'HERE'; -_debug_array($path); -_debug_array($content); if (($extra_tabs = egw_vfs::getExtraInfo($path,$content))) { -_debug_array($extra_tabs); $tabs =& $tpl->get_widget_by_name('tabs=general|perms|eacl|preview|custom'); foreach(isset($extra_tabs[0]) ? $extra_tabs : array($extra_tabs) as $extra_tab) { From 1049474cd983c04def3b228e449fc72dc7c6ee29 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Mon, 7 May 2012 17:40:59 +0000 Subject: [PATCH 003/298] Get customfield-type working again --- etemplate/js/et2_core_arrayMgr.js | 6 +++--- etemplate/js/et2_widget_selectbox.js | 10 +++++++++- etemplate/js/etemplate2.js | 3 +++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/etemplate/js/et2_core_arrayMgr.js b/etemplate/js/et2_core_arrayMgr.js index c7b29c16b0..7c442f1274 100644 --- a/etemplate/js/et2_core_arrayMgr.js +++ b/etemplate/js/et2_core_arrayMgr.js @@ -40,14 +40,14 @@ var et2_arrayMgr = Class.extend({ } // Expand sub-arrays that have been shmushed together, so further perspectives work - // Shmushed keys look like: ${row}[info_cat] + // Shmushed keys look like: ${row}[info_cat] // Expanded: ${row}: Object{info_cat: ..value} if (this.splitIds) { // For each index, we need a key: {..} sub array for(var key in _data) { // Split up indexes - var indexes = key.split('['); + var indexes = key.replace('[','[').split('['); // Put data in the proper place if(indexes.length > 1) @@ -55,7 +55,7 @@ var et2_arrayMgr = Class.extend({ var value = _data[key]; var target = _data; for(var i = 0; i < indexes.length; i++) { - indexes[i] = indexes[i].replace(']',''); + indexes[i] = indexes[i].replace(']','').replace(']',''); if(typeof target[indexes[i]] == "undefined") { target[indexes[i]] = i == indexes.length-1 ? value : {}; } diff --git a/etemplate/js/et2_widget_selectbox.js b/etemplate/js/et2_widget_selectbox.js index bbd4463762..cb89ec16dd 100644 --- a/etemplate/js/et2_widget_selectbox.js +++ b/etemplate/js/et2_widget_selectbox.js @@ -124,8 +124,16 @@ var et2_selectbox = et2_inputWidget.extend({ content_options = this.getArrayMgr("sel_options").getRoot().getEntry(name_parts[name_parts.length-1]); } + // Try in correct namespace (inside a grid or something) + if(!content_options || content_options.length == 0) + { + content_options = this.getArrayMgr("sel_options").getEntry(name_parts[name_parts.length-1]); + } + // Maybe in a row, and options got stuck in ${row} instead of top level - if((!content_options || content_options.length == 0) && this.getArrayMgr("sel_options").perspectiveData.row) + if((!content_options || content_options.length == 0) && ( + // perspectiveData.row in nm, data["${row}"] in an auto-repeat grid + this.getArrayMgr("sel_options").perspectiveData.row || this.getArrayMgr("sel_options").data["${row}"])) { var row_id = this.id.replace(/[0-9]+/,'${row}'); content_options = this.getArrayMgr("sel_options").getEntry(row_id); diff --git a/etemplate/js/etemplate2.js b/etemplate/js/etemplate2.js index 611465e634..8f3eac1816 100644 --- a/etemplate/js/etemplate2.js +++ b/etemplate/js/etemplate2.js @@ -162,6 +162,9 @@ etemplate2.prototype._createArrayManagers = function(_data) */ etemplate2.prototype.load = function(_name, _url, _data) { + + egw().debug("info", "Loaded data", _data); + // Appname should be first part of the template name var split = _name.split('.'); var appname = split[0]; From 679073abcf4a17efb24ff7ef3b38df0723750a09 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Mon, 7 May 2012 18:43:38 +0000 Subject: [PATCH 004/298] Default nm header to left aligned --- etemplate/js/et2_dataview.js | 1 + 1 file changed, 1 insertion(+) diff --git a/etemplate/js/et2_dataview.js b/etemplate/js/et2_dataview.js index 97bbb40d8c..0cc8f3a91c 100644 --- a/etemplate/js/et2_dataview.js +++ b/etemplate/js/et2_dataview.js @@ -374,6 +374,7 @@ var et2_dataview = Class.extend({ var column = $j(document.createElement("th")) .addClass(col.tdClass) + .attr("align", "left") .append(cont) .appendTo(this.headTr); From 94cd19a50c82d1fa204eb03f69211d247f83ffd4 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Mon, 7 May 2012 21:09:31 +0000 Subject: [PATCH 005/298] If openoffice template specifies pagerepeat, use it --- etemplate/inc/class.bo_merge.inc.php | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/etemplate/inc/class.bo_merge.inc.php b/etemplate/inc/class.bo_merge.inc.php index eb2b365b29..b7a3019ed6 100644 --- a/etemplate/inc/class.bo_merge.inc.php +++ b/etemplate/inc/class.bo_merge.inc.php @@ -659,15 +659,23 @@ abstract class bo_merge } if ($mimetype == 'application/vnd.oasis.opendocument.text' && count($ids) > 1) { - //for odt files we have to split the content and add a style for page break to the style area - list($contentstart,$contentrepeat,$contentend) = preg_split('/office:body>/',$content,-1, PREG_SPLIT_NO_EMPTY); //get differt parts of document, seperatet by Pagerepeat - $contentstart = substr($contentstart,0,strlen($contentstart)-1); //remove "<" - $contentrepeat = substr($contentrepeat,0,strlen($contentrepeat)-2); //remove "/',$content,-1, PREG_SPLIT_NO_EMPTY); //get differt parts of document style sheets - $contentstart = $stylestart.''; - $contentstart .= ''; - $contentend = ''; + if(strpos($content, '$$pagerepeat') === false) + { + //for odt files we have to split the content and add a style for page break to the style area + list($contentstart,$contentrepeat,$contentend) = preg_split('/office:body>/',$content,-1, PREG_SPLIT_NO_EMPTY); //get differt parts of document, seperatet by Pagerepeat + $contentstart = substr($contentstart,0,strlen($contentstart)-1); //remove "<" + $contentrepeat = substr($contentrepeat,0,strlen($contentrepeat)-2); //remove "/',$content,-1, PREG_SPLIT_NO_EMPTY); //get differt parts of document style sheets + $contentstart = $stylestart.''; + $contentstart .= ''; + $contentend = ''; + } + else + { + // Template specifies where to repeat + list($contentstart,$contentrepeat,$contentend) = preg_split('/\$\$pagerepeat\$\$/',$content,-1, PREG_SPLIT_NO_EMPTY); //get different parts of document, seperated by pagerepeat + } } if ($mimetype == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' && count($ids) > 1) { @@ -1380,7 +1388,6 @@ abstract class bo_merge //error_log(__METHOD__."() !this->merge() err=$err"); return $err; } - // Apply HTML formatting to target document, if possible // check if we can use the XSL extension, to not give a fatal error and rendering whole merge-print non-functional if (class_exists(XSLTProcessor) && class_exists(DOMDocument) && $this->parse_html_styles) From dd913e89abd1ffe1d93448f70970b38b0665f6b5 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Mon, 7 May 2012 22:09:54 +0000 Subject: [PATCH 006/298] Get empty_text option working for ro select-account --- etemplate/js/et2_widget_selectAccount.js | 41 ++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/etemplate/js/et2_widget_selectAccount.js b/etemplate/js/et2_widget_selectAccount.js index 404035737d..5092b2c8e2 100644 --- a/etemplate/js/et2_widget_selectAccount.js +++ b/etemplate/js/et2_widget_selectAccount.js @@ -26,6 +26,17 @@ */ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], { + attributes: { + "empty_label": { + "name": "Empty label", + "type": "string", + "default": "", + "description": "Textual label for first row, eg: 'All' or 'None'. ID will be ''" + }, + }, + + legacyOptions: ["empty_label"], + init: function(_parent, options) { /** Resolve some circular dependency problems here @@ -39,6 +50,15 @@ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], { this._super.apply(this, arguments); + // Legacy options could have row count or empty label in first slot + if(typeof this.options.empty_label == "string") + { + if(isNaN(this.options.empty_label)) + { + this.options.empty_label = this.egw().lang(this.options.empty_label); + } + } + this.options.application = 'home-accounts'; // Don't make it look like a link though @@ -50,6 +70,27 @@ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], { // Don't make it look like a link though jQuery('li',this.list).removeClass("et2_link et2_link_string"); + + // Empty label from selectbox + if(this.options.empty_label) + { + if(!_value) + { + this.list.append("
  • "+this.options.empty_label+"
  • "); + } + else + { + // An array with 0 / empty in it? + for(var i = 0; i < _value.length; i++) + { + if(!_value[i] || !parseInt(_value[i])) + { + this.list.append("
  • "+this.options.empty_label+"
  • "); + return; + } + } + } + } } }); et2_register_widget(et2_selectAccount_ro, ["select-account_ro"]); From 06729148dde1e88b1b6e84fe379c8e1eee55d42f Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 8 May 2012 08:50:19 +0000 Subject: [PATCH 007/298] * Addressbook: skip letter of deleted type, when creating new contact types, as it gives SQL error --- admin/inc/class.customfields.inc.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/admin/inc/class.customfields.inc.php b/admin/inc/class.customfields.inc.php index fe26fc8dd9..d57fbff932 100644 --- a/admin/inc/class.customfields.inc.php +++ b/admin/inc/class.customfields.inc.php @@ -348,7 +348,10 @@ class customfields // search free type character for($i=97;$i<=122;$i++) { - if(!$this->content_types[chr($i)]) + if (!$this->content_types[chr($i)] && + // skip letter of deleted type for addressbook content-types, as it gives SQL error + // content-type are lowercase, addressbook_so::DELETED_TYPE === 'D', but DB is case-insensitive + ($this->appname !== 'addressbook' || chr($i) !== strtolower(addressbook_so::DELETED_TYPE))) { $new_type = chr($i); break; From c939232feeef6133c82473e9ed8201551ba11db9 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 8 May 2012 09:43:22 +0000 Subject: [PATCH 008/298] * InfoLog: fixed subs view to display only selected custom-fields of parent --- infolog/inc/class.infolog_ui.inc.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/infolog/inc/class.infolog_ui.inc.php b/infolog/inc/class.infolog_ui.inc.php index 3520be7ebe..f732622843 100644 --- a/infolog/inc/class.infolog_ui.inc.php +++ b/infolog/inc/class.infolog_ui.inc.php @@ -378,7 +378,7 @@ class infolog_ui { $query['action_id'] = array_shift($query['action_id']); // display single parent as app_header } - + // Check to see if we need to remove description $et = new ReflectionClass('etemplate'); $remove = !($et->isSubclassOf(new ReflectionClass('etemplate_widget'))); @@ -403,6 +403,22 @@ class infolog_ui { $main = $this->get_info($main, $readonlys); $main['class'] .= 'th '; + // if only certain custom-fields are to be displayed, we need to unset the not displayed ones manually + // as read() always read them all, while search() only reads the selected ones + if ($query['custom_fields']) + { + foreach($columselection as $col) + { + if ($col[0] == '#') + { + foreach($main as $n => $v) + { + if ($n[0] == '#' && !in_array($n, $columselection)) unset($main[$n]); + } + break; + } + } + } array_splice($rows, $id, 0, array($main)); unset($parents[$parent_index]); } From 34edd70a5f291c35c1352f52937ed937e54a6d17 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 8 May 2012 09:58:45 +0000 Subject: [PATCH 009/298] * InfoLog: explicitly name tabs in infolog.edit, to get disabeling of tabs working, even if template added custom ones --- infolog/inc/class.infolog_ui.inc.php | 13 ++++++------- infolog/setup/etemplates.inc.php | 4 ++-- infolog/templates/default/edit.xet | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/infolog/inc/class.infolog_ui.inc.php b/infolog/inc/class.infolog_ui.inc.php index f732622843..27d874d4cc 100644 --- a/infolog/inc/class.infolog_ui.inc.php +++ b/infolog/inc/class.infolog_ui.inc.php @@ -1531,7 +1531,6 @@ else */ function edit($content = null,$action = '',$action_id=0,$type='',$referer='') { - $tabs = 'description|links|delegation|project|customfields|history'; if (($submit = is_array($content))) { //echo "infolog_ui::edit: content="; _debug_array($content); @@ -1594,7 +1593,7 @@ else { $content['info_link_id'] = 0; // as field has to be int } - $active_tab = $content[$tabs]; + $active_tab = $content['tabs']; if (!($info_id = $this->bo->write($content, true, true, true, $content['no_notifications']))) { $content['msg'] = $info_id !== 0 || !$content['info_id'] ? lang('Error: saving the entry') : @@ -1614,7 +1613,7 @@ else $content['msg'] = lang('InfoLog entry saved'); $content['js'] = "opener.egw_refresh('".str_replace("'","\\'",$content['msg'])."','infolog',$info_id,'$operation');"; } - $content[$tabs] = $active_tab; + $content['tabs'] = $active_tab; if ((int) $content['pm_id'] != (int) $content['old_pm_id']) { //echo "

    pm_id changed: $content[old_pm_id] -> $content[pm_id]

    \n"; @@ -1951,13 +1950,13 @@ else } else { - $readonlys[$tabs]['customfields'] = true; + $readonlys['tabs']['customfields'] = true; } if (!isset($GLOBALS['egw_info']['user']['apps']['projectmanager'])) { - $readonlys[$tabs]['project'] = true; // disable the project tab + $readonlys['tabs']['project'] = true; // disable the project tab } - $readonlys[$tabs]['delegation'] = $GLOBALS['egw_info']['user']['preferences']['common']['account_selection'] == 'none' && + $readonlys['tabs']['delegation'] = $GLOBALS['egw_info']['user']['preferences']['common']['account_selection'] == 'none' && !isset($GLOBALS['egw_info']['user']['apps']['admin']); $content['duration_format'] = $this->duration_format; @@ -2004,7 +2003,7 @@ else } else { - $readonlys[$tabs]['history'] = true; + $readonlys['tabs']['history'] = true; } $sel_options = array( 'info_type' => $types, diff --git a/infolog/setup/etemplates.inc.php b/infolog/setup/etemplates.inc.php index 27ef79e3a5..ac2abc54eb 100644 --- a/infolog/setup/etemplates.inc.php +++ b/infolog/setup/etemplates.inc.php @@ -2,7 +2,7 @@ /** * EGroupware - eTemplates for Application infolog * http://www.egroupware.org - * generated by soetemplate::dump4setup() 2012-04-16 13:48 + * generated by soetemplate::dump4setup() 2012-05-08 11:54 * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package infolog @@ -23,7 +23,7 @@ $templ_data[] = array('name' => 'infolog.customfields.status','template' => '',' $templ_data[] = array('name' => 'infolog.delete','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:3:{s:2:"h3";s:2:"30";s:2:"h4";s:2:"50";s:2:"c3";s:7:",bottom";}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}i:2;a:1:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:4:"main";s:5:"align";s:6:"center";s:4:"name";s:27:"infolog.index.rows-noheader";}}i:3;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:11:",headertext";s:5:"label";s:45:"Are you shure you want to delete this entry ?";s:5:"align";s:6:"center";}}i:4;a:1:{s:1:"A";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:12:"Yes - Delete";s:4:"name";s:6:"delete";s:4:"help";s:75:"Sub-entries become subs of the parent or main entries, if there\'s no parent";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:34:"Yes - Delete including sub-entries";s:4:"name";s:11:"delete_subs";s:4:"help";s:44:"Delete this entry and all listed sub-entries";}s:5:"align";s:6:"center";i:3;a:4:{s:4:"type";s:6:"button";s:5:"label";s:11:"No - Cancel";s:4:"name";s:6:"cancel";s:4:"help";s:22:"Abort without deleting";}}}i:5;a:1:{s:1:"A";a:4:{s:4:"type";s:9:"nextmatch";s:4:"size";s:20:"infolog.index.rows,1";s:4:"span";s:3:"all";s:4:"name";s:2:"nm";}}}s:4:"rows";i:5;s:4:"cols";i:1;s:4:"size";s:12:"100%,,0,,0,0";}}','size' => '100%,,0,,0,0','style' => '','modified' => '1131742953',); -$templ_data[] = array('name' => 'infolog.edit','template' => '','lang' => '','group' => '0','version' => '1.9.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:13:{i:0;a:18:{s:1:"A";s:3:"103";s:1:"B";s:3:"315";s:1:"C";s:2:"90";s:2:"c3";s:3:"row";s:2:"c4";s:3:"row";s:2:"c8";s:6:"row_on";s:2:"c9";s:3:"row";s:2:"c7";s:2:"th";s:2:"c6";s:4:",top";s:2:"c5";s:3:"row";s:2:"c2";s:2:"th";s:2:"h6";s:3:"250";s:2:"h7";s:2:",1";s:2:"h2";s:2:"28";s:2:"h1";s:6:",!@msg";s:3:"c11";s:3:"row";s:3:"h11";s:13:",!@info_owner";s:3:"c10";s:3:"row";}i:1;a:4:{s:1:"A";a:5:{s:4:"type";s:4:"html";s:4:"span";s:13:"all,redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";}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:2;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";s:4:"size";s:12:",,,info_type";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:3:"all";s:4:"size";s:6:"2,,0,0";i:1;a:5:{s:4:"type";s:6:"select";s:4:"name";s:9:"info_type";s:8:"onchange";i:1;s:4:"help";s:46:"Type of the log-entry: Note, Phonecall or ToDo";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:3:"int";s:4:"name";s:11:"info_number";s:4:"span";s:7:",infoId";s:8:"readonly";s:1:"1";}}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:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Contact";s:4:"size";s:12:",,,info_from";}s:1:"B";a:38:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:12:"info_contact";s:4:"span";s:7:",noWrap";}i:2;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:16:"info_custom_from";s:8:"onchange";s:91:"document.getElementById(form::name(\'info_from\')).style.display=this.checked?\'block\':\'none\';";s:4:"help";s:31:"Check to specify custom contact";}}i:2;a:6:{s:4:"type";s:4:"text";s:4:"size";s:6:"36,255";s:4:"name";s:9:"info_from";s:4:"help";s:80:"Custom contact-information, leave emtpy to use information from most recent link";s:4:"blur";s:11:"@blur_title";s:4:"span";s:21:",$cont[hide_from_css]";}i:3;a:1:{s:4:"type";s:5:"label";}i:4;a:1:{s:4:"type";s:5:"label";}i:5;a:1:{s:4:"type";s:5:"label";}i:6;a:1:{s:4:"type";s:5:"label";}i:7;a:1:{s:4:"type";s:5:"label";}i:8;a:1:{s:4:"type";s:5:"label";}i:9;a:1:{s:4:"type";s:5:"label";}i:10;a:1:{s:4:"type";s:5:"label";}i:11;a:1:{s:4:"type";s:5:"label";}i:12;a:1:{s:4:"type";s:5:"label";}i:13;a:1:{s:4:"type";s:5:"label";}i:14;a:1:{s:4:"type";s:5:"label";}i:15;a:1:{s:4:"type";s:5:"label";}i:16;a:1:{s:4:"type";s:5:"label";}i:17;a:1:{s:4:"type";s:5:"label";}i:18;a:1:{s:4:"type";s:5:"label";}i:19;a:1:{s:4:"type";s:5:"label";}i:20;a:1:{s:4:"type";s:5:"label";}i:21;a:1:{s:4:"type";s:5:"label";}i:22;a:1:{s:4:"type";s:5:"label";}i:23;a:1:{s:4:"type";s:5:"label";}i:24;a:1:{s:4:"type";s:5:"label";}i:25;a:1:{s:4:"type";s:5:"label";}i:26;a:1:{s:4:"type";s:5:"label";}i:27;a:1:{s:4:"type";s:5:"label";}i:28;a:1:{s:4:"type";s:5:"label";}i:29;a:1:{s:4:"type";s:5:"label";}i:30;a:1:{s:4:"type";s:5:"label";}i:31;a:1:{s:4:"type";s:5:"label";}i:32;a:1:{s:4:"type";s:5:"label";}i:33;a:1:{s:4:"type";s:5:"label";}i:34;a:1:{s:4:"type";s:5:"label";}i:35;a:1:{s:4:"type";s:5:"label";}i:36;a:1:{s:4:"type";s:5:"label";}}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"size";s:12:",,,info_addr";s:5:"label";s:11:"Phone/Email";}s:1:"D";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"30,255";s:4:"name";s:9:"info_addr";s:4:"help";s:76:"Custom contact-address, leave empty to use information from most recent link";s:4:"span";s:15:",inputFullWidth";}}i:4;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Category";s:4:"size";s:11:",,,info_cat";}s:1:"B";a:4:{s:4:"type";s:10:"select-cat";s:4:"size";s:4:"None";s:4:"name";s:8:"info_cat";s:4:"help";s:32:"select a category for this entry";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Parent";}i:2;a:5:{s:4:"type";s:10:"link-entry";s:4:"size";s:7:"infolog";s:4:"name";s:14:"info_id_parent";s:5:"align";s:5:"right";s:4:"span";s:20:",noWrap searchParent";}s:4:"span";s:3:"all";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:5;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subject";s:4:"size";s:15:",,,info_subject";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"span";s:3:"all";s:4:"name";s:12:"info_subject";s:4:"help";s:29:"a short subject for the entry";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:6;a:4:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:64:"Description|Links|Delegation|Projectmanager|Customfields|History";s:4:"name";s:57:"description|links|delegation|project|customfields|history";s:4:"help";s:133:"longer textual description|Links of this entry|responsible user, priority|Project settings: price, times|Custom fields|Change history";}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:7;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:21:"Dates, Status, Access";}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:8;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Startdate";s:4:"size";s:17:",,,info_startdate";}s:1:"B";a:4:{s:4:"type";s:9:"date-time";s:4:"size";s:2:",2";s:4:"name";s:14:"info_startdate";s:4:"help";s:115:"when should the ToDo or Phonecall be started, it shows up from that date in the filter open or own open (startpage)";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Enddate";s:4:"size";s:15:",,,info_enddate";}s:1:"D";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"info_enddate";s:4:"help";s:49:"til when should the ToDo or Phonecall be finished";}}i:9;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";s:4:"size";s:14:",,,info_status";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:4:"name";s:11:"info_status";s:4:"help";s:12:"@status_help";s:8:"onchange";s:112:"status_changed(this.id, form::name(\'info_status\'), form::name(\'info_percent\'), form::name(\'info_datecompleted\'))";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Completed";s:4:"size";s:15:",,,info_percent";}s:1:"D";a:4:{s:4:"type";s:14:"select-percent";s:4:"name";s:12:"info_percent";s:4:"help";s:17:"Percent completed";s:8:"onchange";s:112:"status_changed(this.id, form::name(\'info_status\'), form::name(\'info_percent\'), form::name(\'info_datecompleted\'))";}}i:10;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:21:",,,info_datecompleted";s:5:"label";s:14:"Date completed";}s:1:"B";a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:18:"info_datecompleted";s:4:"help";s:84:"Date completed (leave it empty to have it automatic set if status is done or billed)";s:8:"onchange";s:112:"status_changed(this.id, form::name(\'info_status\'), form::name(\'info_percent\'), form::name(\'info_datecompleted\'))";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Private";s:4:"size";s:14:",,,info_access";}s:1:"D";a:4:{s:4:"type";s:8:"checkbox";s:4:"size";s:14:"private,public";s:4:"name";s:11:"info_access";s:4:"help";s:87:"should this entry only be visible to you and people you grant privat access via the ACL";}}i:11;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:10:"info_owner";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"info_created";s:8:"readonly";s:1:"1";}}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:13:"Last modified";}s:1:"D";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:5:"2,0,0";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"info_modifier";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:17:"info_datemodified";s:8:"readonly";s:1:"1";}}}i:12;a:4:{s:1:"A";a:8:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:16:"Saves this entry";}s:4:"span";s:1:"2";i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"Apply the changes";}i:3;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:14:"button[cancel]";s:4:"help";s:31:"leave without saveing the entry";s:7:"onclick";s:15:"window.close();";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"name";s:6:"action";s:4:"help";s:39:"Execute a further action for this entry";s:4:"size";s:10:"Actions...";s:8:"onchange";s:34:"this.form.submit(); this.value=\'\';";}i:5;a:2:{s:4:"type";s:4:"html";s:4:"name";s:2:"js";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:8:"checkbox";s:5:"label";s:30:"Do not notify of these changes";s:4:"name";s:16:"no_notifications";s:4:"span";s:1:"2";}i:2;a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:5:"align";s:5:"right";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"delete this entry";s:7:"onclick";s:60:"return $cont[info_anz_subs] || confirm(\'Delete this entry\');";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:12;s:4:"cols";i:4;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '.hideFrom input, input.hideFrom { display: none; } +$templ_data[] = array('name' => 'infolog.edit','template' => '','lang' => '','group' => '0','version' => '1.9.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:13:{i:0;a:18:{s:1:"A";s:3:"103";s:1:"B";s:3:"315";s:1:"C";s:2:"90";s:2:"c3";s:3:"row";s:2:"c4";s:3:"row";s:2:"c8";s:6:"row_on";s:2:"c9";s:3:"row";s:2:"c7";s:2:"th";s:2:"c6";s:4:",top";s:2:"c5";s:3:"row";s:2:"c2";s:2:"th";s:2:"h6";s:3:"250";s:2:"h7";s:2:",1";s:2:"h2";s:2:"28";s:2:"h1";s:6:",!@msg";s:3:"c11";s:3:"row";s:3:"h11";s:13:",!@info_owner";s:3:"c10";s:3:"row";}i:1;a:4:{s:1:"A";a:5:{s:4:"type";s:4:"html";s:4:"span";s:13:"all,redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";}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:2;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";s:4:"size";s:12:",,,info_type";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:3:"all";s:4:"size";s:6:"2,,0,0";i:1;a:5:{s:4:"type";s:6:"select";s:4:"name";s:9:"info_type";s:8:"onchange";i:1;s:4:"help";s:46:"Type of the log-entry: Note, Phonecall or ToDo";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:3:"int";s:4:"name";s:11:"info_number";s:4:"span";s:7:",infoId";s:8:"readonly";s:1:"1";}}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:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Contact";s:4:"size";s:12:",,,info_from";}s:1:"B";a:38:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:12:"info_contact";s:4:"span";s:7:",noWrap";}i:2;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:16:"info_custom_from";s:8:"onchange";s:91:"document.getElementById(form::name(\'info_from\')).style.display=this.checked?\'block\':\'none\';";s:4:"help";s:31:"Check to specify custom contact";}}i:2;a:6:{s:4:"type";s:4:"text";s:4:"size";s:6:"36,255";s:4:"name";s:9:"info_from";s:4:"help";s:80:"Custom contact-information, leave emtpy to use information from most recent link";s:4:"blur";s:11:"@blur_title";s:4:"span";s:21:",$cont[hide_from_css]";}i:3;a:1:{s:4:"type";s:5:"label";}i:4;a:1:{s:4:"type";s:5:"label";}i:5;a:1:{s:4:"type";s:5:"label";}i:6;a:1:{s:4:"type";s:5:"label";}i:7;a:1:{s:4:"type";s:5:"label";}i:8;a:1:{s:4:"type";s:5:"label";}i:9;a:1:{s:4:"type";s:5:"label";}i:10;a:1:{s:4:"type";s:5:"label";}i:11;a:1:{s:4:"type";s:5:"label";}i:12;a:1:{s:4:"type";s:5:"label";}i:13;a:1:{s:4:"type";s:5:"label";}i:14;a:1:{s:4:"type";s:5:"label";}i:15;a:1:{s:4:"type";s:5:"label";}i:16;a:1:{s:4:"type";s:5:"label";}i:17;a:1:{s:4:"type";s:5:"label";}i:18;a:1:{s:4:"type";s:5:"label";}i:19;a:1:{s:4:"type";s:5:"label";}i:20;a:1:{s:4:"type";s:5:"label";}i:21;a:1:{s:4:"type";s:5:"label";}i:22;a:1:{s:4:"type";s:5:"label";}i:23;a:1:{s:4:"type";s:5:"label";}i:24;a:1:{s:4:"type";s:5:"label";}i:25;a:1:{s:4:"type";s:5:"label";}i:26;a:1:{s:4:"type";s:5:"label";}i:27;a:1:{s:4:"type";s:5:"label";}i:28;a:1:{s:4:"type";s:5:"label";}i:29;a:1:{s:4:"type";s:5:"label";}i:30;a:1:{s:4:"type";s:5:"label";}i:31;a:1:{s:4:"type";s:5:"label";}i:32;a:1:{s:4:"type";s:5:"label";}i:33;a:1:{s:4:"type";s:5:"label";}i:34;a:1:{s:4:"type";s:5:"label";}i:35;a:1:{s:4:"type";s:5:"label";}i:36;a:1:{s:4:"type";s:5:"label";}}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"size";s:12:",,,info_addr";s:5:"label";s:11:"Phone/Email";}s:1:"D";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"30,255";s:4:"name";s:9:"info_addr";s:4:"help";s:76:"Custom contact-address, leave empty to use information from most recent link";s:4:"span";s:15:",inputFullWidth";}}i:4;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Category";s:4:"size";s:11:",,,info_cat";}s:1:"B";a:4:{s:4:"type";s:10:"select-cat";s:4:"size";s:4:"None";s:4:"name";s:8:"info_cat";s:4:"help";s:32:"select a category for this entry";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Parent";}i:2;a:5:{s:4:"type";s:10:"link-entry";s:4:"size";s:7:"infolog";s:4:"name";s:14:"info_id_parent";s:5:"align";s:5:"right";s:4:"span";s:20:",noWrap searchParent";}s:4:"span";s:3:"all";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:5;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subject";s:4:"size";s:15:",,,info_subject";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"span";s:3:"all";s:4:"name";s:12:"info_subject";s:4:"help";s:29:"a short subject for the entry";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:6;a:4:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:64:"Description|Links|Delegation|Projectmanager|Customfields|History";s:4:"name";s:62:"tabs=description|links|delegation|project|customfields|history";s:4:"help";s:133:"longer textual description|Links of this entry|responsible user, priority|Project settings: price, times|Custom fields|Change history";}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:7;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:21:"Dates, Status, Access";}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:8;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Startdate";s:4:"size";s:17:",,,info_startdate";}s:1:"B";a:4:{s:4:"type";s:9:"date-time";s:4:"size";s:2:",2";s:4:"name";s:14:"info_startdate";s:4:"help";s:115:"when should the ToDo or Phonecall be started, it shows up from that date in the filter open or own open (startpage)";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Enddate";s:4:"size";s:15:",,,info_enddate";}s:1:"D";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"info_enddate";s:4:"help";s:49:"til when should the ToDo or Phonecall be finished";}}i:9;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";s:4:"size";s:14:",,,info_status";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:4:"name";s:11:"info_status";s:4:"help";s:12:"@status_help";s:8:"onchange";s:112:"status_changed(this.id, form::name(\'info_status\'), form::name(\'info_percent\'), form::name(\'info_datecompleted\'))";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Completed";s:4:"size";s:15:",,,info_percent";}s:1:"D";a:4:{s:4:"type";s:14:"select-percent";s:4:"name";s:12:"info_percent";s:4:"help";s:17:"Percent completed";s:8:"onchange";s:112:"status_changed(this.id, form::name(\'info_status\'), form::name(\'info_percent\'), form::name(\'info_datecompleted\'))";}}i:10;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:21:",,,info_datecompleted";s:5:"label";s:14:"Date completed";}s:1:"B";a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:18:"info_datecompleted";s:4:"help";s:84:"Date completed (leave it empty to have it automatic set if status is done or billed)";s:8:"onchange";s:112:"status_changed(this.id, form::name(\'info_status\'), form::name(\'info_percent\'), form::name(\'info_datecompleted\'))";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Private";s:4:"size";s:14:",,,info_access";}s:1:"D";a:4:{s:4:"type";s:8:"checkbox";s:4:"size";s:14:"private,public";s:4:"name";s:11:"info_access";s:4:"help";s:87:"should this entry only be visible to you and people you grant privat access via the ACL";}}i:11;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:10:"info_owner";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"info_created";s:8:"readonly";s:1:"1";}}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:13:"Last modified";}s:1:"D";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:5:"2,0,0";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"info_modifier";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:17:"info_datemodified";s:8:"readonly";s:1:"1";}}}i:12;a:4:{s:1:"A";a:8:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:16:"Saves this entry";}s:4:"span";s:1:"2";i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"Apply the changes";}i:3;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:14:"button[cancel]";s:4:"help";s:31:"leave without saveing the entry";s:7:"onclick";s:15:"window.close();";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"name";s:6:"action";s:4:"help";s:39:"Execute a further action for this entry";s:4:"size";s:10:"Actions...";s:8:"onchange";s:34:"this.form.submit(); this.value=\'\';";}i:5;a:2:{s:4:"type";s:4:"html";s:4:"name";s:2:"js";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:8:"checkbox";s:5:"label";s:30:"Do not notify of these changes";s:4:"name";s:16:"no_notifications";s:4:"span";s:1:"2";}i:2;a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:5:"align";s:5:"right";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"delete this entry";s:7:"onclick";s:60:"return $cont[info_anz_subs] || confirm(\'Delete this entry\');";}}s:1:"D";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:12;s:4:"cols";i:4;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '.hideFrom input, input.hideFrom { display: none; } .hiddenRow { display: none; } diff --git a/infolog/templates/default/edit.xet b/infolog/templates/default/edit.xet index d827f3b97a..d960c0edfa 100644 --- a/infolog/templates/default/edit.xet +++ b/infolog/templates/default/edit.xet @@ -160,7 +160,7 @@ -