diff --git a/etemplate/inc/class.bo_merge.inc.php b/etemplate/inc/class.bo_merge.inc.php index 5c40df80a1..3a3d8a802f 100644 --- a/etemplate/inc/class.bo_merge.inc.php +++ b/etemplate/inc/class.bo_merge.inc.php @@ -863,7 +863,8 @@ abstract class bo_merge * * @return List of documents, suitable for a selectbox. The key is document_. */ - public static function get_documents($dir) { + public static function get_documents($dir) + { if (!$dir) return array(); $list = array(); @@ -872,7 +873,7 @@ abstract class bo_merge foreach($files as $file) { // return only the mime-types we support - if (!self::is_implemented($file['mime'],substr($file['name'],-4))) continue; + if (!self::is_implemented($file['mime'],'.'.array_pop($parts=explode('.',$file['name'])))) continue; $list['document_'.$file['name']] = /*lang('Insert in document').': '.*/$file['name']; } @@ -880,10 +881,33 @@ abstract class bo_merge return $list; } + /** + * Get insert-in-document action + * + * @param string $dir + * @param int $group see nextmatch_widget::egw_actions + * @param string $caption='Insert in document' + * @return array see nextmatch_widget::egw_actions + */ + public static function document_action($dir, $group=0, $caption='Insert in document') + { + $documents = self::get_documents($dir); + + return array( + 'icon' => 'etemplate/merge', + 'caption' => $caption, + 'children' => $documents, + 'enabled' => (boolean)$documents, + 'hideOnDisabled' => true, + 'group' => $group, + ); + } + /** * Get a list of supported extentions */ - public static function get_file_extensions() { + public static function get_file_extensions() + { return array('txt', 'rtf', 'odt', 'ods', 'docx', 'xml'); } diff --git a/etemplate/inc/class.boetemplate.inc.php b/etemplate/inc/class.boetemplate.inc.php index 6396425221..1ee19089db 100644 --- a/etemplate/inc/class.boetemplate.inc.php +++ b/etemplate/inc/class.boetemplate.inc.php @@ -48,6 +48,7 @@ class boetemplate extends soetemplate 'deck' => 'Deck', // a container of elements where only one is visible, size = # of elem. 'passwd' => 'Password', // a text of type password 'colorpicker' => 'Colorpicker', // input for a color (eg. #123456) + 'hidden'=> 'Hidden input', // a hidden input eg. to submit javascript computed values back ); /** @@ -479,10 +480,10 @@ class boetemplate extends soetemplate return (self::$extensions[$type] || $this->loadExtension($type,$ui)) && ($function == '' || self::$extensions[$type]->public_functions[$function]); } - + /** * Check if we have a widget of type $type - * + * * @param string $type * @return boolean true widget exists, false unknow widget type */ @@ -759,6 +760,7 @@ class boetemplate extends soetemplate * - csv_split('"1,2,3",2,3') === array('1,2,3','2','3') * - csv_split('1,2,3',2) === array('1','2,3') * - csv_split('"1,2,3",2,3',2) === array('1,2,3','2,3') + * - csv_split('"a""b,c",d') === array('a"b,c','d') // to escape enclosures double them! * * @param string $str * @param int $num=null in how many parts to split maximal, parts over this number end up (unseparated) in the last part @@ -783,7 +785,7 @@ class boetemplate extends soetemplate $part .= $delimiter.$parts[++$n]; unset($parts[$n]); } - $part = substr($part,1,-1); + $part = substr(str_replace($enclosure.$enclosure,$enclosure,$part),1,-1); } } $parts = array_values($parts); // renumber the parts (in case we had to concat them) @@ -949,7 +951,7 @@ class boetemplate extends soetemplate // check if new import necessary, currently on every request $msg = self::test_import($name); //if ($msg) echo "

".__METHOD__."($name,$template,$lang,$group,$version) self::test_import($name) returning $msg

\n"; - + if (is_array($name)) { $version = $name['version']; diff --git a/etemplate/inc/class.etemplate.inc.php b/etemplate/inc/class.etemplate.inc.php index 6217b7edea..75ad752441 100644 --- a/etemplate/inc/class.etemplate.inc.php +++ b/etemplate/inc/class.etemplate.inc.php @@ -776,6 +776,8 @@ class etemplate extends boetemplate { $opts = array(); } + $row_id = $content['_row_id']; + $max_cols = $grid['cols']; for ($r = 0; $row = 1+$r /*list($row,$cols) = each($data)*/; ++$r) { @@ -823,6 +825,11 @@ class etemplate extends boetemplate $cl = isset(self::$class_conf[$cl]) ? self::$class_conf[$cl] : $cl; $rows[".$row"] .= html::formatOptions($cl,'class'); $rows[".$row"] .= html::formatOptions($class,',valign'); + // set row-id, if requested + if ($row_id && isset($content[$r][$row_id])) + { + $rows[".$row"] .= ' id="'.htmlspecialchars($content[$r][$row_id]).'"'; + } reset ($cols); $row_data = array(); for ($c = 0; True /*list($col,$cell) = each($cols)*/; ++$c) @@ -967,54 +974,22 @@ class etemplate extends boetemplate $html .= ' '; +'; } /** @@ -1120,7 +1147,6 @@ class timesheet_ui extends timesheet_bo { return lang("Document '%1' does not exist or is not readable for you!",$document); } - require_once(EGW_INCLUDE_ROOT.'/timesheet/inc/class.timesheet_merge.inc.php'); $document_merge = new timesheet_merge(); return $document_merge->download($document,$ids); diff --git a/timesheet/lang/egw_de.lang b/timesheet/lang/egw_de.lang index 354414ff40..deec9aa4b1 100644 --- a/timesheet/lang/egw_de.lang +++ b/timesheet/lang/egw_de.lang @@ -26,7 +26,6 @@ custom fields timesheet de Benutzerdefinierte Felder default document to insert entries timesheet de Standarddokument zum Einfügen von Stundenzetteln delete this entry timesheet de Diesen Eintrag löschen delete this status timesheet de Diesen Status löschen -delete timesheet timesheet de Stundenzettel löschen deleted timesheet de gelöscht deletes this field timesheet de Dies Feld löschen determines the order the fields are displayed timesheet de verändert die Reihenfolge der angezeigten Felder @@ -65,6 +64,7 @@ if you specify a document (full vfs path) here, %1 displays an extra document ic if you specify an export definition, it will be used when you export timesheet de Wählen Sie eine Export Definition für den Export imports entries into the timesheet from a csv file. timesheet de Importiert Einträge für den Stundenzettel aus einer CSV Datei. insert timesheet de einfügen +insert in %1 timesheet de In %1 einfügen insert in document timesheet de In ein Dokument einfügen invalid field: %1 = %2, it needs to be a number. timesheet de Ungültiges Feld: %1 =%2, es muss eine Zahl sein invalid owner id: %1. might be a bad field translation. used %2 instead. timesheet de Ungültiger Benutze ID: %1 könnte eine falsche Feldzuordnung haben. %2 wird stattdessen verwendet. @@ -79,7 +79,7 @@ links timesheet de Verknüpfungen manage mapping timesheet de Verwaltung der Feldzuordnung max length of the input [, length of the inputfield (optional)] timesheet de maximale Länge der Eingabe[,Länge des Eingabefeldes (optional)] modified timesheet de Geändert -modify the status of the timesheet timesheet de Status des Stundenzettels verändern +modify status timesheet de Status ändern name of current user, all other contact fields are valid too timesheet de Name des aktuellen Benutzers, all anderen Kontaktfelder sind weiterhin gültig. new ticket submitted by %1 at %2 timesheet de Neues Ticket erstellt von %1 am %2 new timesheet submitted by %1 at %2 timesheet de Neuer Stundenzettel von %1 am %2 diff --git a/timesheet/lang/egw_en.lang b/timesheet/lang/egw_en.lang index f2c1775cfb..df242385ed 100644 --- a/timesheet/lang/egw_en.lang +++ b/timesheet/lang/egw_en.lang @@ -26,7 +26,6 @@ custom fields timesheet en Custom fields default document to insert entries timesheet en Default document to insert entries delete this entry timesheet en Delete this entry delete this status timesheet en Delete this status -delete timesheet timesheet en Delete Timesheet deleted timesheet en deleted deletes this field timesheet en deletes this field determines the order the fields are displayed timesheet en determines the order the fields are displayed @@ -65,6 +64,7 @@ if you specify a document (full vfs path) here, %1 displays an extra document ic if you specify an export definition, it will be used when you export timesheet en If you specify an export definition, it will be used when you export imports entries into the timesheet from a csv file. timesheet en Imports entries into the timesheet from a CSV File. insert timesheet en insert +insert in %1 timesheet en Insert in %1 insert in document timesheet en Insert in document invalid field: %1 = %2, it needs to be a number. timesheet en Invalid field: %1 = %2, it needs to be a number. invalid owner id: %1. might be a bad field translation. used %2 instead. timesheet en Invalid owner ID: %1. Might be a bad field translation. Used %2 instead. @@ -79,7 +79,7 @@ links timesheet en Links manage mapping timesheet en Manage mapping max length of the input [, length of the inputfield (optional)] timesheet en max length of the input [, length of the inputfield (optional)] modified timesheet en Modified -modify the status of the timesheet timesheet en Modify the Status of the Timesheet +modify status timesheet en Modify status name of current user, all other contact fields are valid too timesheet en Name of current user, all other contact fields are valid too new ticket submitted by %1 at %2 timesheet en New ticket submitted by %1 at %2 new timesheet submitted by %1 at %2 timesheet en New timesheet submitted by %1 at %2 diff --git a/timesheet/setup/etemplates.inc.php b/timesheet/setup/etemplates.inc.php index 73b314c3ca..37753ec879 100644 --- a/timesheet/setup/etemplates.inc.php +++ b/timesheet/setup/etemplates.inc.php @@ -2,7 +2,7 @@ /** * eGroupWare - eTemplates for Application timesheet * http://www.egroupware.org - * generated by soetemplate::dump4setup() 2011-03-29 13:40 + * generated by soetemplate::dump4setup() 2011-04-16 23:37 * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package timesheet @@ -39,37 +39,13 @@ $templ_data[] = array('name' => 'timesheet.editstatus','template' => '','lang' = $templ_data[] = array('name' => 'timesheet.export_csv_selectors','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"radio";s:5:"label";s:7:"Use all";s:4:"size";s:3:"all";s:4:"name";s:9:"selection";}}i:2;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"radio";s:5:"label";s:18:"Use search results";s:4:"name";s:9:"selection";s:4:"size";s:8:"selected";}}}s:4:"rows";i:2;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1295995750',); -$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:4:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";s:2:"h5";s:2:",1";}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"dates";}i:2;a:3:{s:4:"type";s:8:"template";s:4:"name";s:3:"add";s:5:"align";s:5:"right";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:4:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"use_all";s:5:"label";s:11:"whole query";s:8:"onchange";s:128:"if (this.checked==true && !confirm(\'Apply the action on the whole query, NOT only the shown timesheets!!!\')) this.checked=false;";s:4:"help";s:69:"Apply the action on the whole query, NOT only the shown timesheets!!!";}i:2;a:5:{s:4:"type";s:3:"box";s:4:"name";s:9:"cat_popup";s:4:"size";s:1:"1";s:4:"span";s:20:",action_popup prompt";i:1;a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"3";i:1;a:3:{s:4:"type";s:5:"label";s:4:"span";s:13:",promptheader";s:5:"label";s:15:"Change category";}i:2;a:5:{s:4:"type";s:10:"select-cat";s:4:"span";s:21:",action_popup-content";s:4:"name";s:3:"cat";s:4:"size";s:16:"None,,,timesheet";s:5:"label";s:19:"Select new category";}i:3;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:6:"button";s:5:"label";s:5:"Apply";s:4:"name";s:10:"change_cat";}i:2;a:3:{s:4:"type";s:10:"buttononly";s:5:"label";s:6:"Cancel";s:7:"onclick";s:29:"hide_popup(this,\'cat_popup\');";}}}}i:3;a:5:{s:4:"type";s:6:"select";s:8:"onchange";s:16:"do_action(this);";s:4:"size";s:13:"Select action";s:4:"name";s:6:"action";s:4:"help";s:13:"Select action";}i:4;a:8:{s:4:"type";s:6:"button";s:4:"size";s:9:"arrow_ltr";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:70:"toggle_all(this.form,form::name(\'nm[rows][checked][]\')); return false;";s:6:"needed";s:1:"1";s:4:"span";s:14:",checkAllArrow";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Export";s:7:"onclick";s:33:"timesheet_export(); return false;";s:4:"name";s:6:"export";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:5;s:4:"cols";i:2;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '/** - * Add / remove link or category popup used for actions on multiple entries - */ - -.action_popup { - position: fixed; - top: 200px; - left: 450px; - width: 76ex; - z-index: 20000; - display: none; - border-collapse:collapse; - border-spacing:0px -} -.action_popup-content { - display:block; - padding:2ex; - color:#666666; - margin: -2px -1px 0px -2px; -} -.action_popup > table { - width: 100% -} - -','modified' => '1291996935',); +$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:4:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";s:2:"h4";s:34:",!@nm[selectcols]=/legacy_actions/";}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"dates";}i:2;a:3:{s:4:"type";s:8:"template";s:4:"name";s:3:"add";s:5:"align";s:5:"right";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:4:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}s:1:"B";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"use_all";s:5:"label";s:11:"whole query";s:8:"onchange";s:128:"if (this.checked==true && !confirm(\'Apply the action on the whole query, NOT only the shown timesheets!!!\')) this.checked=false;";s:4:"help";s:69:"Apply the action on the whole query, NOT only the shown timesheets!!!";}i:2;a:5:{s:4:"type";s:10:"buttononly";s:4:"name";s:14:"legacy_actions";s:4:"help";s:13:"Select action";s:5:"label";s:13:"Select action";s:7:"onclick";s:143:"if (!egw_objectManager.executeActionImplementation(this, \'popup\')) alert(egw::lang(\'You need to select some timesheets first\')); return false;;";}i:3;a:8:{s:4:"type";s:6:"button";s:4:"size";s:9:"arrow_ltr";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:70:"toggle_all(this.form,form::name(\'nm[rows][checked][]\')); return false;";s:6:"needed";s:1:"1";s:4:"span";s:14:",checkAllArrow";}}}}s:4:"rows";i:4;s:4:"cols";i:2;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1291996935',); $templ_data[] = array('name' => 'timesheet.index.add','template' => '','lang' => '','group' => '0','version' => '1.7.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:10:"buttononly";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}','size' => '','style' => '','modified' => '1158042543',); $templ_data[] = array('name' => 'timesheet.index.dates','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:10:{s:4:"type";s:4:"hbox";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:"4";i:1;a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Start";}i:2;a:2:{s:4:"type";s:4:"date";s:4:"name";s:9:"startdate";}i:3;a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"End";}i:4;a:3:{s:4:"type";s:4:"date";s:4:"name";s:7:"enddate";s:4:"help";s:30:"Leave it empty for a full week";}s:4:"span";s:12:",custom_hide";}}','size' => '','style' => '.custom_hide { visibility: hidden; }','modified' => '1142973260',); -$templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:9:{s:2:"c1";s:2:"th";s:2:"c2";s:16:"$row_cont[class]";s:1:"A";s:3:"15%";s:1:"B";s:3:"50%";s:1:"H";s:14:",@no_owner_col";s:1:"G";s:13:",@no_ts_total";s:1:"F";s:17:",@no_ts_unitprice";s:1:"E";s:16:",@no_ts_quantity";s:1:"I";s:14:",@no_ts_status";}i:1;a:11:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Date";s:4:"name";s:8:"ts_start";}s:1:"B";a:7:{s:4:"type";s:4:"grid";s:7:"no_lang";s:1:"1";s:4:"data";a:5:{i:0;a:2:{s:2:"h1";s:21:",@pm_integration=full";s:2:"h2";s:22:",!@pm_integration=full";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"size";s:12:"All projects";s:4:"name";s:10:"ts_project";s:7:"no_lang";s:1:"1";}}i:2;a:1:{s:1:"A";a:4:{s:4:"type";s:22:"nextmatch-customfilter";s:4:"size";s:34:"projectmanager-select,All projects";s:4:"name";s:5:"pm_id";s:8:"onchange";i:1;}}i:3;a:1:{s:1:"A";a:6:{s:4:"type";s:22:"nextmatch-customfilter";s:4:"size";s:10:"link-entry";i:1;a:5:{s:4:"type";s:10:"link-entry";s:4:"size";s:15:"infolog,infolog";s:4:"name";s:11:"nm[info_id]";s:8:"onchange";i:1;s:4:"blur";s:14:"select Infolog";}i:2;a:2:{s:4:"type";s:6:"button";s:5:"label";s:6:"submit";}s:8:"onchange";i:1;s:4:"name";s:6:"linked";}}i:4;a:1:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:8:"ts_title";}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";s:7:"options";a:2:{i:4;s:1:"0";i:5;s:1:"0";}}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";}s:1:"D";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Duration";s:4:"name";s:11:"ts_duration";}i:2;a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:8:"duration";s:4:"size";s:6:",h,,,1";s:8:"readonly";s:1:"1";}}s:1:"E";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Quantity";s:4:"name";s:11:"ts_quantity";}i:2;a:4:{s:4:"type";s:5:"float";s:4:"name";s:8:"quantity";s:8:"readonly";s:1:"1";s:4:"size";s:4:",,,3";}}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Price";s:4:"name";s:12:"ts_unitprice";}s:1:"G";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Total";s:4:"name";s:8:"ts_total";}i:2;a:4:{s:4:"type";s:5:"float";s:4:"name";s:5:"price";s:8:"readonly";s:1:"1";s:4:"size";s:4:",,,2";}}s:1:"H";a:5:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:8:"ts_owner";s:4:"size";s:4:"User";s:7:"no_lang";s:1:"1";s:4:"span";s:18:",$cont[ownerClass]";}s:1:"I";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:9:"ts_status";s:8:"onchange";i:1;s:4:"size";s:10:"All status";}s:1:"J";a:2:{s:4:"type";s:22:"nextmatch-customfields";s:4:"name";s:12:"customfields";}s:1:"K";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:8:",noPrint";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";s:5:"align";s:5:"right";}i:2;a:7:{s:4:"type";s:6:"button";s:5:"label";s:9:"Check all";s:4:"size";s:5:"check";s:4:"name";s:9:"check_all";s:6:"needed";s:1:"1";s:4:"help";s:9:"Check all";s:7:"onclick";s:60:"toggle_all(this.form,form::name(\'checked[]\')); return false;";}}}i:2;a:11:{s:1:"A";a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[ts_start]";s:8:"readonly";s:1:"1";s:4:"size";s:2:",8";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"3,,0,0";i:1;a:3:{s:4:"type";s:4:"link";s:4:"name";s:15:"${row}[ts_link]";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[ts_title]";s:7:"no_lang";s:1:"1";s:4:"span";s:22:",$row_cont[titleClass]";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:22:"${row}[ts_description]";s:7:"no_lang";s:1:"1";}}s:1:"C";a:4:{s:4:"type";s:10:"select-cat";s:8:"readonly";s:1:"1";s:4:"name";s:14:"${row}[cat_id]";s:4:"span";s:7:",noWrap";}s:1:"D";a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:19:"${row}[ts_duration]";s:8:"readonly";s:1:"1";s:4:"size";s:6:",h,,,1";}s:1:"E";a:5:{s:4:"type";s:5:"float";s:4:"name";s:19:"${row}[ts_quantity]";s:7:"no_lang";s:1:"1";s:4:"size";s:4:",,,3";s:8:"readonly";s:1:"1";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:20:"${row}[ts_unitprice]";}s:1:"G";a:5:{s:4:"type";s:5:"float";s:7:"no_lang";s:1:"1";s:4:"name";s:16:"${row}[ts_total]";s:4:"size";s:4:",,,2";s:8:"readonly";s:1:"1";}s:1:"H";a:4:{s:4:"type";s:14:"select-account";s:4:"name";s:16:"${row}[ts_owner]";s:8:"readonly";s:1:"1";s:4:"span";s:18:",$cont[ownerClass]";}s:1:"I";a:3:{s:4:"type";s:6:"select";s:4:"name";s:17:"${row}[ts_status]";s:8:"readonly";s:1:"1";}s:1:"J";a:3:{s:4:"type";s:17:"customfields-list";s:4:"name";s:4:"$row";s:8:"readonly";s:1:"1";}s:1:"K";a:9:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"View";s:4:"name";s:22:"view[$row_cont[ts_id]]";s:7:"onclick";s:187:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.view&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";s:4:"help";s:15:"View this entry";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:22:"edit[$row_cont[ts_id]]";s:4:"help";s:15:"Edit this entry";s:7:"onclick";s:187:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;a:5:{s:4:"type";s:6:"button";s:4:"name";s:26:"document[$row_cont[ts_id]]";s:4:"size";s:15:"etemplate/merge";s:5:"label";s:18:"Insert in document";s:4:"span";s:8:",image16";}s:4:"span";s:8:",noPrint";i:4;a:6:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"name";s:24:"delete[$row_cont[ts_id]]";s:4:"help";s:17:"Delete this entry";s:7:"onclick";s:36:"return confirm(\'Delete this entry\');";}s:5:"align";s:5:"right";i:5;a:4:{s:4:"type";s:8:"checkbox";s:4:"size";s:16:"$row_cont[ts_id]";s:4:"name";s:9:"checked[]";s:4:"help";s:47:"Select multiple timeshhets for a further action";}}}}s:4:"rows";i:2;s:4:"cols";i:11;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1296843833',); +$templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:9:{s:2:"c1";s:2:"th";s:2:"c2";s:16:"$row_cont[class]";s:1:"A";s:3:"15%";s:1:"B";s:3:"50%";s:1:"H";s:14:",@no_owner_col";s:1:"G";s:13:",@no_ts_total";s:1:"F";s:17:",@no_ts_unitprice";s:1:"E";s:16:",@no_ts_quantity";s:1:"I";s:14:",@no_ts_status";}i:1;a:11:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Date";s:4:"name";s:8:"ts_start";}s:1:"B";a:7:{s:4:"type";s:4:"grid";s:7:"no_lang";s:1:"1";s:4:"data";a:5:{i:0;a:2:{s:2:"h1";s:21:",@pm_integration=full";s:2:"h2";s:22:",!@pm_integration=full";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"size";s:12:"All projects";s:4:"name";s:10:"ts_project";s:7:"no_lang";s:1:"1";}}i:2;a:1:{s:1:"A";a:4:{s:4:"type";s:22:"nextmatch-customfilter";s:4:"size";s:34:"projectmanager-select,All projects";s:4:"name";s:5:"pm_id";s:8:"onchange";i:1;}}i:3;a:1:{s:1:"A";a:6:{s:4:"type";s:22:"nextmatch-customfilter";s:4:"size";s:10:"link-entry";i:1;a:5:{s:4:"type";s:10:"link-entry";s:4:"size";s:15:"infolog,infolog";s:4:"name";s:11:"nm[info_id]";s:8:"onchange";i:1;s:4:"blur";s:14:"select Infolog";}i:2;a:2:{s:4:"type";s:6:"button";s:5:"label";s:6:"submit";}s:8:"onchange";i:1;s:4:"name";s:6:"linked";}}i:4;a:1:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:8:"ts_title";}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";s:7:"options";a:2:{i:4;s:1:"0";i:5;s:1:"0";}}s:1:"C";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";}s:1:"D";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Duration";s:4:"name";s:11:"ts_duration";}i:2;a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:8:"duration";s:4:"size";s:6:",h,,,1";s:8:"readonly";s:1:"1";}}s:1:"E";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Quantity";s:4:"name";s:11:"ts_quantity";}i:2;a:4:{s:4:"type";s:5:"float";s:4:"name";s:8:"quantity";s:8:"readonly";s:1:"1";s:4:"size";s:4:",,,3";}}s:1:"F";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Price";s:4:"name";s:12:"ts_unitprice";}s:1:"G";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Total";s:4:"name";s:8:"ts_total";}i:2;a:4:{s:4:"type";s:5:"float";s:4:"name";s:5:"price";s:8:"readonly";s:1:"1";s:4:"size";s:4:",,,2";}}s:1:"H";a:5:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:8:"ts_owner";s:4:"size";s:4:"User";s:7:"no_lang";s:1:"1";s:4:"span";s:18:",$cont[ownerClass]";}s:1:"I";a:4:{s:4:"type";s:22:"nextmatch-filterheader";s:4:"name";s:9:"ts_status";s:8:"onchange";i:1;s:4:"size";s:10:"All status";}s:1:"J";a:2:{s:4:"type";s:22:"nextmatch-customfields";s:4:"name";s:12:"customfields";}s:1:"K";a:5:{s:4:"type";s:4:"hbox";s:4:"span";s:8:",noPrint";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";s:5:"align";s:5:"right";s:4:"name";s:14:"legacy_actions";}i:2;a:7:{s:4:"type";s:6:"button";s:5:"label";s:9:"Check all";s:4:"size";s:5:"check";s:4:"name";s:9:"check_all";s:6:"needed";s:1:"1";s:4:"help";s:9:"Check all";s:7:"onclick";s:60:"toggle_all(this.form,form::name(\'checked[]\')); return false;";}}}i:2;a:11:{s:1:"A";a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[ts_start]";s:8:"readonly";s:1:"1";s:4:"size";s:2:",8";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"3,,0,0";i:1;a:3:{s:4:"type";s:4:"link";s:4:"name";s:15:"${row}[ts_link]";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[ts_title]";s:7:"no_lang";s:1:"1";s:4:"span";s:22:",$row_cont[titleClass]";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:22:"${row}[ts_description]";s:7:"no_lang";s:1:"1";}}s:1:"C";a:4:{s:4:"type";s:10:"select-cat";s:8:"readonly";s:1:"1";s:4:"name";s:14:"${row}[cat_id]";s:4:"span";s:7:",noWrap";}s:1:"D";a:4:{s:4:"type";s:13:"date-duration";s:4:"name";s:19:"${row}[ts_duration]";s:8:"readonly";s:1:"1";s:4:"size";s:6:",h,,,1";}s:1:"E";a:5:{s:4:"type";s:5:"float";s:4:"name";s:19:"${row}[ts_quantity]";s:7:"no_lang";s:1:"1";s:4:"size";s:4:",,,3";s:8:"readonly";s:1:"1";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:20:"${row}[ts_unitprice]";}s:1:"G";a:5:{s:4:"type";s:5:"float";s:7:"no_lang";s:1:"1";s:4:"name";s:16:"${row}[ts_total]";s:4:"size";s:4:",,,2";s:8:"readonly";s:1:"1";}s:1:"H";a:4:{s:4:"type";s:14:"select-account";s:4:"name";s:16:"${row}[ts_owner]";s:8:"readonly";s:1:"1";s:4:"span";s:18:",$cont[ownerClass]";}s:1:"I";a:3:{s:4:"type";s:6:"select";s:4:"name";s:17:"${row}[ts_status]";s:8:"readonly";s:1:"1";}s:1:"J";a:3:{s:4:"type";s:17:"customfields-list";s:4:"name";s:4:"$row";s:8:"readonly";s:1:"1";}s:1:"K";a:9:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"View";s:4:"name";s:22:"view[$row_cont[ts_id]]";s:7:"onclick";s:187:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.view&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";s:4:"help";s:15:"View this entry";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:22:"edit[$row_cont[ts_id]]";s:4:"help";s:15:"Edit this entry";s:7:"onclick";s:187:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.timesheet_ui.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;a:5:{s:4:"type";s:6:"button";s:4:"name";s:26:"document[$row_cont[ts_id]]";s:4:"size";s:15:"etemplate/merge";s:5:"label";s:18:"Insert in document";s:4:"span";s:8:",image16";}s:4:"span";s:8:",noPrint";i:4;a:6:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"name";s:24:"delete[$row_cont[ts_id]]";s:4:"help";s:17:"Delete this entry";s:7:"onclick";s:36:"return confirm(\'Delete this entry\');";}s:5:"align";s:5:"right";i:5;a:4:{s:4:"type";s:8:"checkbox";s:4:"size";s:16:"$row_cont[ts_id]";s:4:"name";s:9:"checked[]";s:4:"help";s:47:"Select multiple timeshhets for a further action";}}}}s:4:"rows";i:2;s:4:"cols";i:11;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1296843833',); $templ_data[] = array('name' => 'timesheet.wizard_import_options','template' => '','lang' => '','group' => '0','version' => '1.9.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:1:{s:2:"h1";s:10:",!@message";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:11:"all,message";s:4:"name";s:7:"message";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:40:"What should be done with unknown values?";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:16:"translate_status";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Category";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:16:"translate_cat_id";}}}s:4:"rows";i:4;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1301427589',); diff --git a/timesheet/templates/default/index.xet b/timesheet/templates/default/index.xet index 124c182ebc..a05642c80a 100644 --- a/timesheet/templates/default/index.xet +++ b/timesheet/templates/default/index.xet @@ -15,7 +15,7 @@ -