From 6081a5749d1df8d61968c4215329412b10c27257 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sun, 17 Apr 2011 18:53:45 +0000 Subject: [PATCH] timesheet context menus are now complete: - query all is moved into context menu - legacy support only contains button to trigger context menu - moved some common phrases into the API: + Delete this entry + Delete these entries + You need to select some entries first! - support for singular and plural confirmation messages --- etemplate/inc/class.etemplate.inc.php | 2 +- etemplate/inc/class.nextmatch_widget.inc.php | 25 ++++++++------- etemplate/js/nextmatch_action.js | 32 ++++++++++++++++---- phpgwapi/lang/egw_de.lang | 5 +++ phpgwapi/lang/egw_en.lang | 5 +++ timesheet/inc/class.timesheet_ui.inc.php | 21 ++++++++++--- timesheet/lang/egw_de.lang | 10 ++---- timesheet/lang/egw_en.lang | 8 +---- timesheet/setup/etemplates.inc.php | 6 ++-- timesheet/templates/default/index.xet | 5 ++- 10 files changed, 75 insertions(+), 44 deletions(-) diff --git a/etemplate/inc/class.etemplate.inc.php b/etemplate/inc/class.etemplate.inc.php index 75ad752441..957b9424fc 100644 --- a/etemplate/inc/class.etemplate.inc.php +++ b/etemplate/inc/class.etemplate.inc.php @@ -979,9 +979,9 @@ class etemplate extends boetemplate '.$prefix.'actionManager = new egwActionManager(); '.$prefix.'objectManager = new egwActionObjectManager("", '.$prefix.'actionManager); - // Add some dummy actions to the actionManager '.$prefix.'actionManager.updateActions('.str_replace('},',"},\n", json_encode(nextmatch_widget::egw_actions($content['_actions'], $this->name))).'); + '.$prefix.'actionManager.setDefaultExecute("javaScript:nm_action"); var actionLinks = ['.($content['_actions'] ? '"'.implode('","', isset($content['_actions_enabled']) ? $content['_actions_enabled'] : array_keys($content['_actions'])).'"' : '').']; diff --git a/etemplate/inc/class.nextmatch_widget.inc.php b/etemplate/inc/class.nextmatch_widget.inc.php index 768c873fc0..e846d4e252 100644 --- a/etemplate/inc/class.nextmatch_widget.inc.php +++ b/etemplate/inc/class.nextmatch_widget.inc.php @@ -528,13 +528,15 @@ class nextmatch_widget * - string 'onExecute' javascript to run, default 'javascript:nm_action' which runs action specified in nm_action attribute: * - string 'nm_action' * + 'alert' debug action, shows alert with action caption, id and id's of selected rows - * + 'submit' default action, sets nm[action], nm[selected] + * + 'submit' default action, sets nm[action], nm[selected] and nm[select_all] * + 'location' redirects / set location.href to 'url' attribute * + 'popup' opens popup with url given in 'url' attribute * - string 'url' url for location or popup * - string 'target' target for location or popup * - string 'width' for popup * - string 'height' for popup + * - string 'confirm' confirmation message + * - string 'confirm_multiple' confirmation message for multiple selected, defaults to 'confirm' * * That's what we should return looks JSON encoded like * [ @@ -574,13 +576,6 @@ class nextmatch_widget if (!is_array($action)) $action = array('caption' => $action); $action['id'] = $prefix.$id; - // set some defaults - if (!isset($action['type'])) $action['type'] = 'popup'; - if (!isset($action['onExecute'])) - { - $action['onExecute'] = 'javaScript:nm_action'; // defined in etemplate/js/nextmatch_action.js - } - // set default icon, if no other is specified if (!isset($action['icon']) && isset($default_icons[$id])) { @@ -599,12 +594,19 @@ class nextmatch_widget unset($action['icon']); // no need to submit it } // translate labels - if (!$action['no_lang']) $action['caption'] = lang($action['caption']); + if (!$action['no_lang']) + { + $action['caption'] = lang($action['caption']); + if ($action['hint']) $action['hint'] = lang($action['hint']); + } unset($action['no_lang']); - if (isset($action['confirm'])) + foreach(array('confirm','confirm_multiple') as $confirm) { - $action['confirm'] = lang($action['confirm']).(substr($action['confirm'],-1) != '?' ? '?' : ''); + if (isset($action[$confirm])) + { + $action[$confirm] = lang($action[$confirm]).(substr($action[$confirm],-1) != '?' ? '?' : ''); + } } // link or popup action @@ -633,6 +635,7 @@ class nextmatch_widget static $egw_action_supported = array( // attributes supported by egw_action 'id','caption','iconUrl','type','default','onExecute','group', 'enabled','allowOnMultiple','hideOnDisabled','data','children', + 'hint','checkbox','checked','radioGroup', ); // add all not egw_action supported attributes to data $action['data'] = array_merge(array_diff_key($action, array_flip($egw_action_supported)),(array)$action['data']); diff --git a/etemplate/js/nextmatch_action.js b/etemplate/js/nextmatch_action.js index be1b67b015..647d70820c 100644 --- a/etemplate/js/nextmatch_action.js +++ b/etemplate/js/nextmatch_action.js @@ -100,13 +100,18 @@ function nm_action(_action, _senders) ids += (_senders[i].id.indexOf(',') >= 0 ? '"'+_senders[i].id.replace(/"/g,'""')+'"' : _senders[i].id) + ((i < _senders.length - 1) ? "," : ""); } - console.log(_action); - console.log(_senders); + //console.log(_action); console.log(_senders); - // let user confirm the action first - if (typeof _action.data.confirm != 'undefined') + var select_all = document.getElementById('exec[nm][select_all]'); + + // let user confirm the action first (if not select_all set and nm_action == 'submit' --> confirmed later) + if (!(select_all && select_all.value && _action.data.nm_action == 'submit') && + typeof _action.data.confirm != 'undefined') { - if (!confirm(_action.data.confirm)) return; + var confirm_msg = _senders.length > 1 && typeof _action.data.confirm_multiple != 'undefined' ? + _action.data.confirm_multiple : _action.data.confirm; + + if (!confirm(confirm_msg)) return; } var url = '#'; @@ -136,8 +141,12 @@ function nm_action(_action, _senders) break; case 'submit': + // let user confirm select-all + if (select_all && select_all.value) + { + if (!confirm(select_all.value)) return; + } var form = document.getElementsByName("eTemplate")[0]; - document.getElementById('exec[nm][action]').value = _action.id; document.getElementById('exec[nm][selected]').value = ids; if (typeof _action.data.button != 'undefined') @@ -151,3 +160,14 @@ function nm_action(_action, _senders) break; } } + +/** + * Callback for select_all checkbox, use hint to confirm all nm_action='submit' before submitting in nm_action() + * + * @param _action + * @param _senders + */ +function nm_select_all(_action, _senders) +{ + document.getElementById('exec[nm][select_all]').value = _action.checked ? _action.hint : false; +} diff --git a/phpgwapi/lang/egw_de.lang b/phpgwapi/lang/egw_de.lang index e02a582be0..d006d94cc6 100644 --- a/phpgwapi/lang/egw_de.lang +++ b/phpgwapi/lang/egw_de.lang @@ -33,6 +33,7 @@ account is expired common de Benutzerkennung ist abgelaufen accounts common de Benutzerkonten acl common de ACL action common de Aktion +actions common de Befehle active common de Aktiv add common de Hinzufügen add %1 category for common de %1 Kategorie hinzufügen für @@ -195,6 +196,8 @@ default height for the windows common de Vorgabewert für Höhe des Fensters default width for the windows common de Vorgabewert für Breite des Fensters delete common de Löschen delete row common de Zeile löschen +delete these entries common de Diese Einträge löschen +delete this entry common de Diesen Eintrag löschen denmark common de DÄNEMARK description common de Beschreibung detail common de Detail @@ -598,6 +601,7 @@ search or select accounts common de Suchen und auswählen von Benutzern second common de Sekunden section common de Sektion select common de Auswählen +select action common de Befehl auswählen select all %1 %2 for %3 common de Alles auswählen %1 %2 von %3 select category common de Kategorie auswählen select date common de Datum auswählen @@ -779,6 +783,7 @@ you have successfully logged out common de Sie haben sich erfolgreich abgemeldet you need to %1set your timezone preference%2. common de Sie müssen %1Ihre Zeitzone in den Einstellungen setzen%2 you need to add the webserver user '%1' to the group '%2'. common de Sie müssen den Webserver-User '%1' zur Gruppe '%2' hinzufügen. you need to be an egroupware administrator to access this functionality! common de Sie müssen ein EGroupware Administrator sein, um auf diese Funktion zuzugreifen! +you need to select some entries first! common de Sie müssen zuerst einige Datensätze auswählen! you've tried to open the egroupware application: %1, but you have no permission to access this application. common de Sie haben versucht auf die EGroupware Anwendung %1 zuzugreifen, auf die Sie keine Rechte haben. your message could not be sent!
common de Ihre Nachricht konnte nicht gesendet werden!
your message has been sent common de Ihre Nachricht wurde versendet diff --git a/phpgwapi/lang/egw_en.lang b/phpgwapi/lang/egw_en.lang index c4d3f780b3..2848e109d3 100644 --- a/phpgwapi/lang/egw_en.lang +++ b/phpgwapi/lang/egw_en.lang @@ -33,6 +33,7 @@ account is expired common en Account is expired accounts common en Accounts acl common en ACL action common en Action +actions common en Actions active common en Active add common en Add add %1 category for common en Add %1 category for @@ -195,6 +196,8 @@ default height for the windows common en Default height for the windows default width for the windows common en Default width for the windows delete common en Delete delete row common en Delete row +delete these entries common en Delete these entries +delete this entry common en Delete this entry denmark common en DENMARK description common en Description detail common en Detail @@ -599,6 +602,7 @@ search or select accounts common en search or select accounts second common en second section common en Section select common en Select +select action common en Select action select all %1 %2 for %3 common en Select all %1 %2 for %3 select category common en Select Category select date common en Select date @@ -780,6 +784,7 @@ you have successfully logged out common en You have successfully logged out you need to %1set your timezone preference%2. common en You need to %1set your timezone preference%2. you need to add the webserver user '%1' to the group '%2'. common en You need to add the webserver user '%1' to the group '%2'. you need to be an egroupware administrator to access this functionality! common en You need to be an eGroupWare administrator to access this functionality! +you need to select some entries first! common en You need to select some entries first! you've tried to open the egroupware application: %1, but you have no permission to access this application. common en You've tried to open the eGroupWare application: %1, but you have no permission to access this application. your message could not be sent!
common en Your message could not be sent!
your message has been sent common en Your message has been sent diff --git a/timesheet/inc/class.timesheet_ui.inc.php b/timesheet/inc/class.timesheet_ui.inc.php index 5c9624a8ec..e930a1c0c0 100644 --- a/timesheet/inc/class.timesheet_ui.inc.php +++ b/timesheet/inc/class.timesheet_ui.inc.php @@ -778,10 +778,9 @@ class timesheet_ui extends timesheet_bo } if ($content['nm']['action']) { - if ($content['use_all']) $content['nm']['select_all'] = $content['use_all']; // legacy support if (!count($content['nm']['selected']) && !$content['nm']['select_all']) { - $msg = lang('You need to select some timesheets first'); + $msg = lang('You need to select some entries first!'); } else { @@ -798,7 +797,7 @@ class timesheet_ui extends timesheet_bo } $content = array( -// 'nm' => $GLOBALS['egw']->session->appsession('index',TIMESHEET_APP), + 'nm' => $GLOBALS['egw']->session->appsession('index',TIMESHEET_APP), 'msg' => $msg, ); if (!is_array($content['nm'])) @@ -821,10 +820,12 @@ class timesheet_ui extends timesheet_bo 'filter_onchange' => "set_style_by_class('table','custom_hide','visibility',this.value == 'custom' ? 'visible' : 'hidden'); if (this.value != 'custom') this.form.submit();", 'filter2' => (int)$GLOBALS['egw_info']['user']['preferences'][TIMESHEET_APP]['show_details'], 'row_id' => 'ts_id', - 'actions' => $this->get_actions(), + //'actions' => $this->get_actions(), 'default_cols' => '!legacy_actions', // switch legacy actions column and row off by default ); } + $content['nm']['actions'] = $this->get_actions(); + if($_GET['search']) { $content['nm']['search'] = $_GET['search']; @@ -858,6 +859,8 @@ class timesheet_ui extends timesheet_bo /** * Get actions / context menu for index * + * Changes here, require to log out, as $content['nm'] get stored in session! + * * @return array see nextmatch_widget::egw_actions() */ private function get_actions() @@ -884,13 +887,20 @@ class timesheet_ui extends timesheet_bo 'popup' => egw_link::get_registry('timesheet', 'add_popup'), 'group' => $group, ), + 'select_all' => array( + 'caption' => 'Whole query', + 'checkbox' => true, + 'onExecute' => 'javaScript:nm_select_all', // uses hint to confirm all nm_action='submit' + 'hint' => 'Apply the action on the whole query, NOT only the shown timesheets!!!', + 'group' => ++$group, + ), 'cat' => nextmatch_widget::category_action( 'timesheet',++$group,'Change category','cat_' ), 'status' => array( 'icon' => 'apply', 'caption' => 'Modify status', - 'group' => ++$group, + 'group' => $group, 'children' => $this->status_labels, 'prefix' => 'to_status_', 'enabled' => (boolean)$this->status_labels, @@ -908,6 +918,7 @@ class timesheet_ui extends timesheet_bo 'delete' => array( 'caption' => 'Delete', 'confirm' => 'Delete this entry', + 'confirm_multiple' => 'Delete these entries', 'group' => ++$group, ), ); diff --git a/timesheet/lang/egw_de.lang b/timesheet/lang/egw_de.lang index deec9aa4b1..5100032b1c 100644 --- a/timesheet/lang/egw_de.lang +++ b/timesheet/lang/egw_de.lang @@ -4,9 +4,7 @@ 2 month ago timesheet de Vor 2 Monaten 2 years ago timesheet de Vor 2 Jahren 3 years ago timesheet de Vor 3 Jahren -actions timesheet de Aktionen all projects timesheet de Alle Projekte -all status timesheet de Alle Status and its members timesheet de und die Mitglieder applies the changes timesheet de Änderungen durchführen apply the action on the whole query, not only the shown timesheets!!! timesheet de Wendet den Befehl auf die gesamte Abfrage an, NICHT nur die angezeigten Stundenzettel!! @@ -24,10 +22,9 @@ creates a new field timesheet de neues Feld anlegen creating new entry timesheet de neuen Eintrag anlegen 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 deleted timesheet de gelöscht -deletes this field timesheet de Dies Feld löschen +deletes this field timesheet de Dieses Feld löschen determines the order the fields are displayed timesheet de verändert die Reihenfolge der angezeigten Felder directory with documents to insert entries timesheet de Verzeichnis mit Dokumenten zum Einfügen. document '%1' does not exist or is not readable for you! timesheet de Datei '%1' steht nicht zur Verfügung oder ist nicht für Sie zum lesen freigegeben! @@ -107,7 +104,6 @@ saves this entry and add a new one timesheet de Speichert diesen Eintrag und fü select a price timesheet de Preis auswählen select a project timesheet de Projekt auswählen select a status of the timesheet timesheet de einen status auswählen -select action timesheet de Bitte eine Aktion auswählen select infolog timesheet de Infolog auswählen select multiple timeshhets for a further action timesheet de Wählen Sie mehrere Stundenzettel für einen weitere Aktion aus select the predefined status, whan creating a new timesheet preferences de Wählen Sie einen Status als Vorgabe für neu zu erstellende Stundenzettel aus @@ -116,6 +112,7 @@ show a quantity sum (eg. to sum up negative overtime) admin de Zeige eine Mengen start timesheet de Start starttime timesheet de Startzeit starttime has to be before endtime !!! timesheet de Startzeit muss vor der Endzeit liegen !!! +status timesheet de Status status deleted. timesheet de Status gelöscht status of created timesheets timesheet de Status für neue Stundenzettel status updated. timesheet de Status geändert @@ -137,13 +134,10 @@ timesheet openoffice export timesheet de Export des Stundenzettels als Open Off timesheet status-%1 '%2' added. timesheet de Stundenzettel Status %1 '%2' hinzugefügt. timesheet-%1 '%2' updated. timesheet de Stundenzettel Status %1 '%2' geändert timesheet-%1 deleted. timesheet de Stundenzettel %1 gelöscht -tracker timesheet de Verfolgungssystem unitprice timesheet de Preis pro Einheit use this tag for addresslabels. put the content, you want to repeat, between two tags. timesheet de Verwenden Sie diesen Platzhalter für den den Seriendruck. Fügen Sie den Inhalt, der wiederholt werden soll, zwischen zwei Platzhaltern ein. values for selectbox timesheet de Werte der Auswahlbox view this entry timesheet de Diesen Eintrag anzeigen week timesheet de Woche -whole query timesheet de gesamte Abfrage yesterday timesheet de Gestern -you need to select some timesheets first timesheet de Sie müssen zuerst Datensätze auswählen your database is not up to date (%1 vs. %2), please run %3setup%4 to update your database. timesheet de Ihre Datenbank ist NICHT aktuell (%1 statt %2), bitte rufen sie %3setup%4 auf um die Datenbank zu aktualisieren. diff --git a/timesheet/lang/egw_en.lang b/timesheet/lang/egw_en.lang index df242385ed..ad25ea1ccc 100644 --- a/timesheet/lang/egw_en.lang +++ b/timesheet/lang/egw_en.lang @@ -4,9 +4,7 @@ 2 month ago timesheet en 2 month ago 2 years ago timesheet en 2 years ago 3 years ago timesheet en 3 years ago -actions timesheet en Actions all projects timesheet en All projects -all status timesheet en All status and its members timesheet en and its members applies the changes timesheet en applies the changes apply the action on the whole query, not only the shown timesheets!!! timesheet en Apply the action on the whole query, NOT only the shown timesheets!!! @@ -24,7 +22,6 @@ creates a new field timesheet en creates a new field creating new entry timesheet en creating new entry 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 deleted timesheet en deleted deletes this field timesheet en deletes this field @@ -107,7 +104,6 @@ saves this entry and add a new one timesheet en Saves this entry and add a new o select a price timesheet en Select a price select a project timesheet en Select a project select a status of the timesheet timesheet en select a status of the timesheet -select action timesheet en Select action select infolog timesheet en select Infolog select multiple timeshhets for a further action timesheet en Select multiple timeshhets for a further action select the predefined status, whan creating a new timesheet preferences en Select the predefined status, whan creating a new timesheet @@ -116,6 +112,7 @@ show a quantity sum (eg. to sum up negative overtime) admin en Show a quantity s start timesheet en Start starttime timesheet en Starttime starttime has to be before endtime !!! timesheet en Starttime has to be before endtime !!! +status timesheet en Status status deleted. timesheet en Status deleted. status of created timesheets timesheet en Status of created timesheets status updated. timesheet en Status updated. @@ -137,13 +134,10 @@ timesheet openoffice export timesheet en Timesheet OpenOffice export timesheet status-%1 '%2' added. timesheet en Timesheet Status-%1 '%2' added. timesheet-%1 '%2' updated. timesheet en Timesheet-%1 '%2' updated. timesheet-%1 deleted. timesheet en Timesheet-%1 deleted. -tracker timesheet en Tracker unitprice timesheet en Unitprice use this tag for addresslabels. put the content, you want to repeat, between two tags. timesheet en Use this tag for addresslabels. Put the content, you want to repeat, between two tags. values for selectbox timesheet en Values for selectbox view this entry timesheet en View this entry week timesheet en Week -whole query timesheet en whole query yesterday timesheet en Yesterday -you need to select some timesheets first timesheet en You need to select some timesheets first your database is not up to date (%1 vs. %2), please run %3setup%4 to update your database. timesheet en Your database is NOT up to date (%1 vs. %2), please run %3setup%4 to update your database. diff --git a/timesheet/setup/etemplates.inc.php b/timesheet/setup/etemplates.inc.php index 37753ec879..1e987bbbf6 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-04-16 23:37 + * generated by soetemplate::dump4setup() 2011-04-17 20:49 * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package timesheet @@ -39,13 +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: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','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:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;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:141:"if (!egw_objectManager.executeActionImplementation(this, \'popup\')) alert(egw::lang(\'You need to select some entries first!\')); return false;;";}i:2;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: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.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:6:"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 a05642c80a..0aad5baeed 100644 --- a/timesheet/templates/default/index.xet +++ b/timesheet/templates/default/index.xet @@ -67,7 +67,7 @@ - + @@ -130,8 +130,7 @@