From 2224267a7e834ddbc2605af7ea7a982074354cce Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Thu, 5 Jul 2007 07:48:56 +0000 Subject: [PATCH 01/50] "fixed infinit loop in the select-number widget, if start and end value are identical, also fixing the code with should protect from showing more then 100 items in the selectbox" --- etemplate/inc/class.select_widget.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etemplate/inc/class.select_widget.inc.php b/etemplate/inc/class.select_widget.inc.php index 3fa4a1a805..6b3b597890 100644 --- a/etemplate/inc/class.select_widget.inc.php +++ b/etemplate/inc/class.select_widget.inc.php @@ -383,11 +383,11 @@ $format = '%0'.strlen($type3).'d'; } $type3 = !$type3 ? 1 : intval($type3); // decrement - if (($type < $type2) != ($type3 > 0)) + if (($type <= $type2) != ($type3 > 0)) { $type3 = -$type3; // void infinite loop } - for ($i=0,$n=$type; $n <= $type2 && $i <= 100; $n += $type3) + for ($i=0,$n=$type; $n <= $type2 && $i <= 100; $n += $type3,++$i) { $cell['sel_options'][$n] = sprintf($format,$n); } From c9f3b9f817434b2d78efd6c96fce6ef98d043568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cornelius=20Wei=C3=9F?= Date: Fri, 6 Jul 2007 09:42:23 +0000 Subject: [PATCH 02/50] fix: not working seconds in date^-1 --- importexport/inc/class.import_export_helper_functions.inc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/importexport/inc/class.import_export_helper_functions.inc.php b/importexport/inc/class.import_export_helper_functions.inc.php index 8528c59a63..2933ddaaed 100755 --- a/importexport/inc/class.import_export_helper_functions.inc.php +++ b/importexport/inc/class.import_export_helper_functions.inc.php @@ -25,7 +25,7 @@ class import_export_helper_functions { * The format of the time string is given by the argument $_format * which takes the same parameters as the php date() function. * - * @abstract supportet formatstrings: d,m,y,Y,H,h,i,O,a,A + * @abstract supportet formatstrings: d,m,y,Y,H,h,i,s,O,a,A * If timestring is empty, php strtotime is used. * @param string $_string time string to convert * @param string $_format format of time string e.g.: d.m.Y H:i @@ -44,6 +44,7 @@ class import_export_helper_functions { case 'H': (int)$hour = substr( $_string, $spos, 2 ); $spos += 2; break; case 'h': (int)$hour = substr( $_string, $spos, 2 ); $spos += 2; break; case 'i': (int)$min = substr( $_string, $spos, 2 ); $spos += 2; break; + case 's': (int)$sec = substr( $_string, $spos, 2 ); $spos += 2; break; case 'O': (int)$offset = $year = substr( $_string, $spos, 5 ); $spos += 5; break; case 'a': (int)$hour = $fparam == 'am' ? $hour : $hour + 12; break; case 'A': (int)$hour = $fparam == 'AM' ? $hour : $hour + 12; break; From 4e72c582d79502ada4cc09f19bb936cac2d1da18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cornelius=20Wei=C3=9F?= Date: Fri, 6 Jul 2007 10:50:18 +0000 Subject: [PATCH 03/50] new option "trash_users_records" usefull to stay in sync with external manipulated data --- .../importexport/class.import_events_csv.inc.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/calendar/importexport/class.import_events_csv.inc.php b/calendar/importexport/class.import_events_csv.inc.php index be4161f507..add2d94894 100644 --- a/calendar/importexport/class.import_events_csv.inc.php +++ b/calendar/importexport/class.import_events_csv.inc.php @@ -28,6 +28,7 @@ class import_events_csv implements iface_import_plugin { // with cat(s) from csv OR add the cat from // csv file to exeisting cat(s) of record 'num_header_lines', // int number of header lines + 'trash_users_records', // trashes all events of events owner before import 'field_conversion', // array( $csv_col_num => conversion) 'field_mapping', // array( $csv_col_num => adb_filed) 'conditions', /* => array containing condition arrays: @@ -93,7 +94,7 @@ class import_events_csv implements iface_import_plugin { )); $this->definition = $_definition; - + // user, is admin ? $this->is_admin = isset( $GLOBALS['egw_info']['user']['apps']['admin'] ) && $GLOBALS['egw_info']['user']['apps']['admin']; $this->user = $GLOBALS['egw_info']['user']['account_id']; @@ -119,6 +120,18 @@ class import_events_csv implements iface_import_plugin { $_definition->plugin_options['events_owner'] = isset( $_definition->plugin_options['events_owner'] ) ? $_definition->plugin_options['events_owner'] : $this->user; + // trash_users_records ? + if ( $_definition->plugin_options['trash_users_records'] === true ) { + if ( !$_definition->plugin_options['dry_run'] ) { + $socal = CreateObject( 'calendar.socal' ); + $socal->change_delete_user( $_definition->plugin_options['events_owner'], false ); + unset( $socal ); + } else { + $lid = $GLOBALS['egw']->accounts->id2name( $_definition->plugin_options['events_owner'] ); + echo "Attension: All Events of '$lid' would be deleted!\n"; + } + } + while ( $record = $import_csv->get_record() ) { // don't import empty events From 379236da4e54240833e11a54d35de32dd9174d9a Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sun, 8 Jul 2007 10:14:55 +0000 Subject: [PATCH 04/50] removed background under app-header on printing --- phpgwapi/templates/idots/print.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/phpgwapi/templates/idots/print.css b/phpgwapi/templates/idots/print.css index fcf404bf4e..1e781ae45c 100644 --- a/phpgwapi/templates/idots/print.css +++ b/phpgwapi/templates/idots/print.css @@ -19,6 +19,9 @@ border: none; text-align: left; } +#divAppboxHeader { + background: none; +} /* all tables */ table { From 2d29a56f4e77e50c9f6e517adb46a60ca5681aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Manuel=20G=C3=B3mez=20Senovilla?= Date: Sun, 8 Jul 2007 20:13:04 +0000 Subject: [PATCH 05/50] lang updates --- addressbook/setup/phpgw_sl.lang | 19 +++++++++++++++++++ admin/setup/phpgw_sk.lang | 14 +++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/addressbook/setup/phpgw_sl.lang b/addressbook/setup/phpgw_sl.lang index 10fca19221..b948a636e7 100644 --- a/addressbook/setup/phpgw_sl.lang +++ b/addressbook/setup/phpgw_sl.lang @@ -46,6 +46,7 @@ are you shure you want to delete this contact? addressbook sl Res želite zbrisa are you sure you want to delete this field? addressbook sl Ste prepričani, da želite izbrisati to polje? assistent addressbook sl Pomočnik assistent phone addressbook sl Telefon pomočnika +at the moment the following document-types are supported: addressbook sl Trenutno so podprte sledeče vrste dokumentov: birthday common sl Rojstni dan birthdays common sl Rojstni dnevi blank addressbook sl Prazen @@ -59,6 +60,7 @@ business phone addressbook sl Telefon business state addressbook sl Država business street addressbook sl Naslov business zip code addressbook sl Poštna št. +calendar fields: addressbook sl Polja koledarja: calendar uri addressbook sl URI koledarja can be changed via setup >> configuration admin sl Lahko spremenite preko Nastavitve >> Konfiguracija car phone addressbook sl Telefon v avtu @@ -69,6 +71,8 @@ charset for the csv export addressbook sl Nabor znakov za izvoz CSV charset of file addressbook sl Kodna tabela datoteke check all addressbook sl Preveri vse choose an icon for this contact type admin sl Izberite ikono za to vrsto stika +choose owner of imported data addressbook sl Izberite lastnika uvoženih podatkov +choose seperator and charset addressbook sl Izberite ločilo polj in nabor znakov chosse an etemplate for this contact type admin sl Izberite eTemplate za to vrsto stika city common sl Mesto company common sl Podjetje @@ -79,8 +83,10 @@ contact application admin sl Aaplikacija za stike contact copied addressbook sl Stik kopiran contact deleted addressbook sl Stik izbrisan contact fields to show addressbook sl Polja stika za prikaz +contact fields: addressbook sl Polja stika: contact id addressbook sl ID stika contact modified by %1 at %2 addressbook sl Stik spremenil %1 dne %2 +contact not found! addressbook sl Stik ni bil najden! contact repository admin sl Repozitorij za stike contact saved addressbook sl Stik shranjen contact settings admin sl Nastavitve stikov @@ -117,6 +123,7 @@ distribution list deleted addressbook sl Distribucijske seznam izbrisan distribution lists addressbook sl Distribucijski seznami do you want a private addressbook, which can not be viewed by users, you grant access to your personal addressbook? addressbook sl Ali želite zasebni adresar, ki ni viden uporabnikom, ki jim ne dovolite dostopa? do your really want to delete this contact? addressbook sl Res želite zbrisati ta stik? +document '%1' does not exist or is not readable for you! addressbook sl Dokument '%1' ne obstaja ali pa nimate pravice branja! doesn't matter addressbook sl Ni pomembno domestic addressbook sl Domači don't hide empty columns addressbook sl Ne skrij praznih stolpcev @@ -160,6 +167,7 @@ for read only ldap admin sl Za LDAP samo za branje freebusy uri addressbook sl Freebusy URI full name addressbook sl Polno ime general addressbook sl Splošno +general fields: addressbook sl Splošna polja: geo addressbook sl GEO global categories addressbook sl Globalne kategorije grant addressbook access common sl Dostop do glavnega imenika @@ -178,6 +186,8 @@ home zip code addressbook sl Poštna št. how many contacts should non-admins be able to export (empty = no limit) admin sl Koliko stikov lahko izvozijo ne-administratorji (prazno pomeni brez omejitev) icon addressbook sl Ikona if accounts are already in ldap admin sl Če je račun že v LDAP +if you specify a directory (full vfs path) here, addressbook displays an action for each document. that action allows to download the specified document with the contact data inserted. addressbook sl Če določite mapo (polna pot vfs), bo adresar prikazal dejanje za vsak dokument. To dejanje omogoča prenos določenih dokumentov z vstavljenimi podatki stika. +if you specify a document (full vfs path) here, addressbook displays an extra document icon for each address. that icon allows to download the specified document with the contact data inserted. addressbook sl Če določite dokument (polna pot vfs), bo adresar prikazal dodatno ikono dokumenta za vsak stik. Ta ikona omogoča prenos določenega dokumenta z vstavljenimi podatki stika. import addressbook sl Uvozi import contacts addressbook sl Uvozi stike import csv-file into addressbook addressbook sl Uvozi CSV-polja v imenik @@ -188,8 +198,10 @@ import from outlook addressbook sl Uvoz iz Outlook-a import multiple vcard addressbook sl Uvoz večih VCard import next set addressbook sl Uvozi naslednji niz import_instructions addressbook sl V Netscapu odprite adresar in izberite Export v meniju File. Izvožena datoteka bo v obliki LDIF.

V Outlooku izberite mapo Stiki (Contacts), izberite Uvoz/izvoz (Import/Export) v meniju Datoteka (File). Izvožena datoteka bo v obliki CSV. +imports contacts into your addressbook from a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook sl Uvozi stike v vaš adresar iz datoteke CSV. CSV pomeni 'vrednosti, ločene z vejico'. Vendar na zavihku Možnosti lahko izberete drugo ločilo polj. in %1 days (%2) is %3's birthday. addressbook sl V %1 dneh (%2) je rojstni dan %3. income addressbook sl Priliv +insert in document addressbook sl Vstavi v dokument insufficent rights to delete this list! addressbook sl Nimate dovolj pravic za brisanje tega seznama! international addressbook sl Mednarodni label addressbook sl Značilnosti @@ -207,8 +219,10 @@ list all customfields addressbook sl Izpis vseh lastnih polj list already exists! addressbook sl Seznam že obstaja! list created addressbook sl Seznam ustvarjen list creation failed, no rights! addressbook sl Napak pri ustvarjanju seznama - nimate pravic! +load sample file addressbook sl Naloži datoteko s primeri load vcard addressbook sl Naloži VCard locations addressbook sl Lokacije +manage mapping addressbook sl Upravljaj mapiranje mark records as private addressbook sl Označi zapise kot zasebne merge into first or account, deletes all other! addressbook sl Spoji v prvi stik, izbriši ostale! merged addressbook sl Spojeno @@ -225,6 +239,7 @@ move to addressbook: addressbook sl Premakni v adresar: moved addressbook sl Premaknjeno multiple vcard addressbook sl Več VCard zapisov name for the distribution list addressbook sl Ime za distribucijski seznam +name of current user, all other contact fields are valid too addressbook sl Ime trenutnega uporabnika, veljavna so tudi vsa druga polja stika name, address addressbook sl Ime, naslov new contact submitted by %1 at %2 addressbook sl Nov stik je dodal/-a %1 dne %2 no vcard addressbook sl Ni VCard zapisov @@ -246,6 +261,7 @@ phone numbers common sl Telefonske številke photo addressbook sl Slika please enter a name for that field ! addressbook sl Prosim, vpišite ime za to polje! please select only one category addressbook sl Izberite samo eno kategorijo +please update the templatename in your customfields section! addressbook sl Posodobite ime predloge v lastnem izboru polj! postal common sl Poštni pref addressbook sl Privzeto preferred phone addressbook sl Privzeti telefon @@ -260,6 +276,7 @@ record access addressbook sl Dostop do zapisa record owner addressbook sl Lastnik zapisa remove selected contacts from distribution list addressbook sl Odstrani izbrane kontakte iz distribucijskega seznama removed from distribution list addressbook sl Odstranjeno iz distribucijskega seznama +replacements for inserting contacts into documents addressbook sl Zamenjave za vstavljanje stikov v dokumente required fields * addressbook sl Zahtevana polja * role addressbook sl Vloga room addressbook sl Soba @@ -296,6 +313,7 @@ thank you for contacting us. addressbook sl Hvala za vaše sporočilo. that field name has been used already ! addressbook sl To ime polja je že v uporabi! the anonymous user has probably no add rights for this addressbook. addressbook sl Anonimni uporabnik verjetno nima pravic dodajanja v ta adresar. the anonymous user needs add rights for it! addressbook sl Anonimni uporabnik potrebuje pravico dodajanja! +the document can contain placeholder like $$n_fn$$, to be replaced with the contact data (%1full list of placeholder names%2). addressbook sl Dokument lahko vsebuje držalo mesta kot na primer $$n_fn$$, ki se zamenja s podatki stika (%1cel seznam imen držal mesta%2). there was an error saving your data :-( addressbook sl Napaka pri shranjevanju podatkov. this module displays a contactform, that stores direct into the addressbook. addressbook sl Ta modul prikaže obrazec stika, ki se shrani neposredno v adresar. this person's first name was not in the address book. addressbook sl Imena te osebe ni v adresarju. @@ -320,6 +338,7 @@ verification addressbook sl Potrditev view linked infolog entries addressbook sl Poglej povezane vnose InfoDnevnika warning!! ldap is valid only if you are not using contacts for accounts storage! admin sl OPOZORILO!! LDAP je veljaven samo, če ne uporabljate stikov za skladiščenje računov! warning: all contacts found will be deleted! addressbook sl Opozorilo: vsi najdeni stiki bodo zbrisani! +warning: template "%1" not found, using default template instead. addressbook sl Opozorilo: predloga "%1" ni bila najdena. Ušorabljena bo privzeta predloga. what should links to the addressbook display in other applications. empty values will be left out. you need to log in anew, if you change this setting! addressbook sl Kaj naj povezave do adresarja prikaže v drugih aplikacijah. Prazne vrednosti bodo izpuščene. Če spremenite nastavitve, se morate ponovno prijaviti! which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook sl Katero obliko naslova naj Adresar uporabi za države, za katere ne pozna oblike. Če je oblika naslova znana, ta nastavitev nima vpliva. which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook sl Kateri adresar naj se izbere pri dodajanju stika IN nimate pravic dodajanja v trenutni adresar. diff --git a/admin/setup/phpgw_sk.lang b/admin/setup/phpgw_sk.lang index 4789022c51..d6b3da5a73 100644 --- a/admin/setup/phpgw_sk.lang +++ b/admin/setup/phpgw_sk.lang @@ -38,7 +38,7 @@ admin email addresses (comma-separated) to be notified about the blocking (empty admin name admin sk Meno sprvcu administration admin sk Sprva admins admin sk Sprvcovia -advanced options admin sk Pokroil monosti +advanced options admin sk Rozren monosti after how many unsuccessful attempts to login, an account should be blocked (default 3) ? admin sk Po kokch nespench pokusoch o prihlsenie sa m et zablokova (predvolen: 3)? after how many unsuccessful attempts to login, an ip should be blocked (default 3) ? admin sk Po kokch nespench pokusoch o prihlsenie sa m IP zablokova (predvolen: 3)? aliases admin sk Aliasy @@ -242,7 +242,7 @@ interface admin sk Rozhranie ip admin sk IP jobs admin sk lohy kill admin sk Ukoni -kill session admin sk Ukoni sedenie +kill session admin sk Ukoni relciu last %1 logins admin sk Ostatn %1 prihlsenia last %1 logins for %2 admin sk Ostatn %1 prihlsenia pre %2 last login admin sk posledn prihlsenie @@ -256,7 +256,7 @@ leave the group untouched and return back to the list admin sk Necha leaves without saveing admin sk ods bez uloenia length
rows admin sk Dka/
Riadkov list config settings admin sk Zobrazi voby nastaven -list current sessions admin sk Zobrazi aktulne sedenia +list current sessions admin sk Zobrazi aktulne relcie list of current users admin sk zoznam aktulnych pouvateov login history common sk Histria prihlsen login message admin sk Text sprvy prihlsenia @@ -356,7 +356,7 @@ show an asterisk (*) to mark untranslated strings admin sk Pou show current action admin sk Zobrazi aktulnu akciu show error log admin sk Zobrazi zznamy o chybch show phpinfo() admin sk Zobrazi phpinfo() -show session ip address admin sk Zobrazi IP adresu sedenia +show session ip address admin sk Zobrazi IP adresu relcie site admin sk Strnka site configuration common sk Nastavenia strnky soap admin sk SOAP @@ -406,7 +406,7 @@ trust relationship admin sk Vz type '%1' already exists !!! admin sk typ '%1' u existuje !!! type of customfield admin sk Typ vlastnho poa under windows you need to install the asyncservice %1manually%2 or use the fallback mode. fallback means the jobs get only checked after each page-view !!! admin sk Pod windows muste asyncsluby naintalova %1manulne%2 alebo poui fallback reim. Fallback znamen, e lohy s skontrolovan iba po jednotlivch zobrazeniach strnky !!! -use cookies to pass sessionid admin sk Poui cookies na odovzdanie ID sedenia +use cookies to pass sessionid admin sk Poui cookies na odovzdanie ID relcie use pure html compliant code (not fully working yet) admin sk Poui ist HTML kd (zatia nie je plne funkn) use theme admin sk Poui tmu user accounts admin sk Pouvatesk ty @@ -419,7 +419,7 @@ view access log admin sk Zobrazi view account admin sk Zobrazi et view category admin sk Zobrazi kategriu view error log admin sk Zobrazi zznam o chybch -view sessions admin sk Zobrazi sedenia +view sessions admin sk Zobrazi relcie view this user admin sk zobrazi tohto pouvatea view user account admin sk Zobrazi pouvatesk et who would you like to transfer all records owned by the deleted user to? admin sk Na koho by ste chceli prenies VETKY zznamy odstrnenho pouvatea? @@ -442,4 +442,4 @@ you must enter an application title. admin sk Mus you must select a file type admin sk Muste zada typ sboru you must select at least one group member. admin sk Muste zada aspo jednho lena skupiny. you will need to remove the subcategories before you can delete this category admin sk Ne odstrnite tto kategriu, muste odstrni vetky podkategrie! -your session could not be verified. admin sk Vae sedenie nie je platn. +your session could not be verified. admin sk Vaa relcia nie je platn. From 89731da7f7764e9ab87bb80ef2ce4ae6a40d6a18 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 9 Jul 2007 09:00:16 +0000 Subject: [PATCH 06/50] some missing translations from inserting contacts in documents --- addressbook/setup/phpgw_de.lang | 6 ++++++ addressbook/setup/phpgw_en.lang | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/addressbook/setup/phpgw_de.lang b/addressbook/setup/phpgw_de.lang index e4e840dd4a..4e5657f818 100644 --- a/addressbook/setup/phpgw_de.lang +++ b/addressbook/setup/phpgw_de.lang @@ -109,6 +109,7 @@ custom fields addressbook de Benutzerdefinierte Felder debug output in browser addressbook de Debugausgaben in Browser default address format addressbook de Vorgabe fr Format der Adresse default addressbook for adding contacts addressbook de Vorgabe Adressbuch beim Hinzufgen von Kontakten +default document to insert contacts addressbook de Standarddokument zum Einfgen von Kontakten default filter addressbook de Standardfilter delete a single entry by passing the id. addressbook de Lscht einen einzelnen Eintrag durch bergabe seiner ID. delete selected distribution list! addressbook de Lscht die ausgewhlten Verteilerliste! @@ -118,6 +119,7 @@ deleted addressbook de gel deletes the photo addressbook de Lscht das Foto department common de Abteilung departments addressbook de Abteilungen +directory with documents to insert contacts addressbook de Verzeichnis mit Dokumenten zum Einfgen von Kontakten displays a remider for birthdays on the startpage (page you get when you enter egroupware or click on the homepage icon). addressbook de Zeigt auf der Startseite eine Geburtstags Erinnerung an. Die Startseite ist die Seite die Sie sehen, wenn Sie eGroupWare betreten oder auf das Startseiten Icon (Haus) klicken. distribution list deleted addressbook de Verteiler gelscht distribution lists addressbook de Verteilerlisten @@ -130,6 +132,7 @@ don't hide empty columns addressbook de Leere Spalten nicht ausblenden download addressbook de Herunterladen download export file (uncheck to debug output in browser) addressbook de Download Export-Datei (zur Vorschau im Browser Ankreuzfeld frei lassen) download this contact as vcard file addressbook de Diese Adresse als vCard Datei herunterladen +duration addressbook de Dauer edit custom field addressbook de Benutzerdefiniertes Feld bearbeiten edit custom fields admin de Benutzerdefinierte Felder bearbeiten edit extra account-data in the addressbook admin de Zustzliche Benutzerdaten im Adressbuch bearbeiten. @@ -139,6 +142,7 @@ email & internet addressbook de E-Mail & Internet email addresses (comma separated) to send the contact data addressbook de Email Adressen (Komma getrennt) zum Senden der Kontaktdaten empty for all addressbook de leer fr alle enable an extra private addressbook addressbook de Privates Adressbuch einschalten +end addressbook de Ende enter the path to the exported file here addressbook de Bitte geben Sie den Pfad fr die exportierte Datei an error deleting the contact !!! addressbook de Fehler beim Lschen des Kontakts !!! error saving the contact !!! addressbook de Fehler beim Speichern des Kontakts !!! @@ -172,6 +176,7 @@ geo addressbook de GEO global categories addressbook de Globale Kategorien grant addressbook access common de Berechtigungen group %1 addressbook de Gruppe %1 +h addressbook de h hide accounts from addressbook addressbook de Benutzer im Adressbuch ausblenden hides accounts completly from the adressbook. addressbook de Entfernt die Benutzer komplett aus dem Adressbuch. home address addressbook de Privatadresse @@ -339,6 +344,7 @@ view linked infolog entries addressbook de Verkn warning!! ldap is valid only if you are not using contacts for accounts storage! admin de WARNUNG!! LDAP darf nur verwendet werden, wenn sie die Benutzerkonten nicht im Adressbuch speichern! warning: all contacts found will be deleted! addressbook de WARNUNG: Alle gefundenen Kontakte werden gelscht! warning: template "%1" not found, using default template instead. addressbook de WARNUNG: Template "%1" nicht gefunden, das Standard-Template wird stattdessen benutzt. +weekday addressbook de Wochentag what should links to the addressbook display in other applications. empty values will be left out. you need to log in anew, if you change this setting! addressbook de Was sollen Verknpfungen zum Adressbuch in anderen Anwendungen anzeigen. Leere Werte werden ausgelassen. Sie mssen sich neu anmelden, wenn Sie hier eine nderung vornehmen! which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook de Welches Format soll das Adressbuch fr Adressen verwenden deren landesbliches Adressformat unbekannt ist. Wenn das Adressformat eines Landes dem Adressbuch bekannt ist, wird das unabhnig von dieser Einstellung benutzt. which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook de Welches Adressbuch soll ausgewhlt sein beim Hinzufgen von Kontakten, wenn Sie keine Hinzufgen Rechte zum aktuellen Adressbuch haben. diff --git a/addressbook/setup/phpgw_en.lang b/addressbook/setup/phpgw_en.lang index 4aaca7edca..7804ad48ba 100644 --- a/addressbook/setup/phpgw_en.lang +++ b/addressbook/setup/phpgw_en.lang @@ -107,8 +107,10 @@ custom addressbook en Custom custom etemplate for the contactform addressbook en Custom eTemplate for the contactform custom fields addressbook en Custom Fields debug output in browser addressbook en Debug output in browser +default addressbook en default default address format addressbook en Default address format default addressbook for adding contacts addressbook en Default addressbook for adding contacts +default document to insert contacts addressbook en Default document to insert contacts default filter addressbook en Default Filter delete a single entry by passing the id. addressbook en Delete a single entry by passing the id. delete selected distribution list! addressbook en Delete selected distribution list! @@ -118,6 +120,7 @@ deleted addressbook en deleted deletes the photo addressbook en Deletes the photo department common en Department departments addressbook en departments +directory with documents to insert contacts addressbook en Directory with documents to insert contacts displays a remider for birthdays on the startpage (page you get when you enter egroupware or click on the homepage icon). addressbook en Displays a remider for birthdays on the startpage (page you get when you enter eGroupWare or click on the homepage icon). distribution list deleted addressbook en Distribution list deleted distribution lists addressbook en Distribution lists @@ -130,6 +133,7 @@ don't hide empty columns addressbook en Don't hide empty columns download addressbook en Download download export file (uncheck to debug output in browser) addressbook en Download export file (Uncheck to debug output in browser) download this contact as vcard file addressbook en download this contact as vCard file +duration addressbook en Duration edit custom field addressbook en Edit Custom Field edit custom fields admin en Edit Custom Fields edit extra account-data in the addressbook admin en Edit extra account-data in the addressbook @@ -139,6 +143,7 @@ email & internet addressbook en Email & Internet email addresses (comma separated) to send the contact data addressbook en Email addresses (comma separated) to send the contact data empty for all addressbook en empty for all enable an extra private addressbook addressbook en Enable an extra private addressbook +end addressbook en End enter the path to the exported file here addressbook en Enter the path to the exported file here error deleting the contact !!! addressbook en Error deleting the contact !!! error saving the contact !!! addressbook en Error saving the contact !!! @@ -172,6 +177,7 @@ geo addressbook en GEO global categories addressbook en Global Categories grant addressbook access common en Grant Addressbook Access group %1 addressbook en Group %1 +h addressbook en h hide accounts from addressbook addressbook en Hide accounts from addressbook hides accounts completly from the adressbook. addressbook en Hides accounts completly from the adressbook. home address addressbook en Home address @@ -339,6 +345,7 @@ view linked infolog entries addressbook en View linked InfoLog entries warning!! ldap is valid only if you are not using contacts for accounts storage! admin en WARNING!! LDAP is valid only if you are NOT using contacts for accounts storage! warning: all contacts found will be deleted! addressbook en WARNING: All contacts found will be deleted! warning: template "%1" not found, using default template instead. addressbook en WARNING: Template "%1" not found, using default template instead. +weekday addressbook en Weekday what should links to the addressbook display in other applications. empty values will be left out. you need to log in anew, if you change this setting! addressbook en What should links to the addressbook display in other applications. Empty values will be left out. You need to log in anew, if you change this setting! which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook en Which address format should the addressbook use for countries it does not know the address format. If the address format of a country is known, it uses it independent of this setting. which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook en Which addressbook should be selected when adding a contact AND you have no add rights to the current addressbook. From f78d36b4dd37e8f883e3804526a3f67e680467be Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 9 Jul 2007 09:51:41 +0000 Subject: [PATCH 07/50] fixed mixed up category and location --- addressbook/inc/class.addressbook_merge.inc.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addressbook/inc/class.addressbook_merge.inc.php b/addressbook/inc/class.addressbook_merge.inc.php index c13323a849..0fd5ed5db8 100644 --- a/addressbook/inc/class.addressbook_merge.inc.php +++ b/addressbook/inc/class.addressbook_merge.inc.php @@ -293,7 +293,7 @@ class addressbook_merge // extends bo_merge 'title' => lang('Title'), 'description' => lang('Description'), 'participants' => lang('Participants'), - 'category' => lang('Location'), + 'location' => lang('Location'), 'start' => lang('Start').': '.lang('Date').'+'.lang('Time'), 'startday' => lang('Start').': '.lang('Weekday'), 'startdate'=> lang('Start').': '.lang('Date'), @@ -303,11 +303,12 @@ class addressbook_merge // extends bo_merge 'enddate' => lang('End').': '.lang('Date'), 'endtime' => lang('End').': '.lang('Time'), 'duration' => lang('Duration'), - 'owner' => lang('Owner'), + 'category' => lang('Category'), 'priority' => lang('Priority'), 'updated' => lang('Updated'), 'recur_type' => lang('Repetition'), 'access' => lang('Access').': '.lang('public').', '.lang('private'), + 'owner' => lang('Owner'), ) as $name => $label) { if (in_array($name,array('start','end')) && $n&1) // main values, which should be in the first column From db1951fc818ec4dc64f61c52154e96a66d811ef4 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 9 Jul 2007 09:57:21 +0000 Subject: [PATCH 08/50] deutsche sprache, schwere ... --- addressbook/setup/phpgw_de.lang | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addressbook/setup/phpgw_de.lang b/addressbook/setup/phpgw_de.lang index 4e5657f818..501e07ec83 100644 --- a/addressbook/setup/phpgw_de.lang +++ b/addressbook/setup/phpgw_de.lang @@ -191,8 +191,8 @@ home zip code addressbook de PLZ privat how many contacts should non-admins be able to export (empty = no limit) admin de Wieviele Kontakte sollen nicht-Adminstratoren exportieren knnen (leer = keine Begrenzung) icon addressbook de Icon if accounts are already in ldap admin de wenn die Benutzer bereits im LDAP sind -if you specify a directory (full vfs path) here, addressbook displays an action for each document. that action allows to download the specified document with the contact data inserted. addressbook de Wenn Sie hier ein Verzeichnis (kompletter VFS Pfad) angeben, zeigt das Adressbuch einen Befehl fr jedes Dokument darin. Diese Befehler erlauben das angegebene Dokumnet mit Kontaktdaten eingefgt herunterzuladen. -if you specify a document (full vfs path) here, addressbook displays an extra document icon for each address. that icon allows to download the specified document with the contact data inserted. addressbook de Wenn Sie hier ein Dokument (kompletter VFS Pfad) angeben, zeigt das Adressbuch ein extranes Dokument Icon. Diese Icon erlaubt das Dokumnet mit Kontaktdaten eingefgt herunterzuladen. +if you specify a directory (full vfs path) here, addressbook displays an action for each document. that action allows to download the specified document with the contact data inserted. addressbook de Wenn Sie hier ein Verzeichnis (kompletter VFS Pfad) angeben, zeigt das Adressbuch einen Befehl fr jedes Dokument darin. Diese Befehle erlauben das angegebene Dokument mit Kontaktdaten eingefgt herunterzuladen. +if you specify a document (full vfs path) here, addressbook displays an extra document icon for each address. that icon allows to download the specified document with the contact data inserted. addressbook de Wenn Sie hier ein Dokument (kompletter VFS Pfad) angeben, zeigt das Adressbuch ein zustzliches Dokumenten Icon. Diese Icon erlaubt das Dokument mit Kontaktdaten eingefgt herunterzuladen. import addressbook de Import import contacts addressbook de Kontakte importieren import csv-file into addressbook addressbook de Import CSV-Datei ins Adressbuch @@ -346,7 +346,7 @@ warning: all contacts found will be deleted! addressbook de WARNUNG: Alle gefund warning: template "%1" not found, using default template instead. addressbook de WARNUNG: Template "%1" nicht gefunden, das Standard-Template wird stattdessen benutzt. weekday addressbook de Wochentag what should links to the addressbook display in other applications. empty values will be left out. you need to log in anew, if you change this setting! addressbook de Was sollen Verknpfungen zum Adressbuch in anderen Anwendungen anzeigen. Leere Werte werden ausgelassen. Sie mssen sich neu anmelden, wenn Sie hier eine nderung vornehmen! -which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook de Welches Format soll das Adressbuch fr Adressen verwenden deren landesbliches Adressformat unbekannt ist. Wenn das Adressformat eines Landes dem Adressbuch bekannt ist, wird das unabhnig von dieser Einstellung benutzt. +which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook de Welches Format soll das Adressbuch fr Adressen verwenden deren landesbliches Adressformat unbekannt ist. Wenn das Adressformat eines Landes dem Adressbuch bekannt ist, wird das unabhngig von dieser Einstellung benutzt. which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook de Welches Adressbuch soll ausgewhlt sein beim Hinzufgen von Kontakten, wenn Sie keine Hinzufgen Rechte zum aktuellen Adressbuch haben. which charset should be used for the csv export. the system default is the charset of this egroupware installation. addressbook de Welcher Zeichensatz soll fr den CSV Export verwendet werden. Die systemweite Vorgabe ist der Zeichensatz der eGroupWare Installation. which fields should be exported. all means every field stored in the addressbook incl. the custom fields. the business or home address only contains name, company and the selected address. addressbook de Welche Felder sollen exportiert werden. Alle bedeutet jedes Feld das im Adressbuch gespeichert ist einschl. der benutzerdefinierten Felder. Die Geschfts- oder Privatadresse enthlt nur Name, Firma und die ausgewhlte Adresse. From 760eb2af1a3a73d50a7905fc0094807c4ee7a7e4 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 9 Jul 2007 13:29:09 +0000 Subject: [PATCH 09/50] windows seems to use applicaton/msword for rtf-documents, instead of application/rtf, we now list files with both mime type, if the extension is .rtf --- addressbook/inc/class.uicontacts.inc.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addressbook/inc/class.uicontacts.inc.php b/addressbook/inc/class.uicontacts.inc.php index 7dabb6c948..da0a13fe4b 100644 --- a/addressbook/inc/class.uicontacts.inc.php +++ b/addressbook/inc/class.uicontacts.inc.php @@ -1909,7 +1909,9 @@ $readonlys['button[vcard]'] = true; foreach($files as $file) { // return only the mime-types we support - if ($file['mime_type'] != 'application/rtf' && substr($file['mime_type'],0,5) != 'text/') continue; + if (!($file['mime_type'] == 'application/rtf' || + $file['mime_type'] == 'application/msword' && !strcasecmp(substr($file['name'],-4),'.rtf') || + substr($file['mime_type'],0,5) == 'text/')) continue; // As browsers not always return the right mime_type, you could use a negative list instead //if ($file['mime_type'] == 'Directory' || substr($file['mime_type'],0,6) == 'image/') continue; From d676b0879dfb6a4c7e857f7b4be1681afa2464c6 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 10 Jul 2007 07:34:30 +0000 Subject: [PATCH 10/50] added fix to be able to optionally sum up negative times (overtime) in the quantity column, need to be switched on in the timesheet configuration --- timesheet/inc/class.botimesheet.inc.php | 16 ++++++++++++---- timesheet/inc/class.uitimesheet.inc.php | 6 +++--- timesheet/setup/etemplates.inc.php | 6 +++--- timesheet/setup/phpgw_de.lang | 1 + timesheet/setup/phpgw_en.lang | 1 + timesheet/templates/default/config.tpl | 9 +++++++++ timesheet/templates/default/index.xet | 20 +++++++++++++------- 7 files changed, 42 insertions(+), 17 deletions(-) diff --git a/timesheet/inc/class.botimesheet.inc.php b/timesheet/inc/class.botimesheet.inc.php index 388148dbeb..4ffd779c11 100644 --- a/timesheet/inc/class.botimesheet.inc.php +++ b/timesheet/inc/class.botimesheet.inc.php @@ -38,6 +38,12 @@ class botimesheet extends so_sql * @var array */ var $config_data = array(); + /** + * Should we show a quantity sum, makes only sense if we sum up identical units (can be used to sum up negative (over-)time) + * + * @var boolean + */ + var $quantity_sum=false; /** * Timestaps that need to be adjusted to user-time on reading or saving * @@ -109,7 +115,7 @@ class botimesheet extends so_sql var $show_sums; var $customfields=array(); - + function botimesheet() { $this->so_sql(TIMESHEET_APP,'egw_timesheet'); @@ -117,7 +123,7 @@ class botimesheet extends so_sql $this->config =& CreateObject('phpgwapi.config',TIMESHEET_APP); $this->config->read_repository(); $this->config_data =& $this->config->config_data; - //unset($config); + $this->quantity_sum = $this->config_data['quantity_sum'] == 'true'; if (isset($this->config_data['customfields']) && is_array($this->config_data['customfields'])) { @@ -317,7 +323,8 @@ class botimesheet extends so_sql $this->summary = array(); return array(); } - $this->summary = parent::search($criteria,"SUM(ts_duration) AS duration,SUM($total_sql) AS price", + $this->summary = parent::search($criteria,"SUM(ts_duration) AS duration,SUM($total_sql) AS price". + ($this->quantity_sum ? ",SUM(ts_quantity) AS quantity" : ''), '','',$wildcard,$empty,$op,false,$filter,$join); $this->summary = $this->summary[0]; @@ -351,7 +358,8 @@ class botimesheet extends so_sql $union_order[] = 'is_sum_'.$type; $sum_extra_cols[$type]{0} = '1'; // the $type sum - parent::search($criteria,$sum_ts_id[$type].",'','','',MIN(ts_start),SUM(ts_duration) AS ts_duration,0,0,NULL,0,0,0,0,SUM($total_sql) AS ts_total", + parent::search($criteria,$sum_ts_id[$type].",'','','',MIN(ts_start),SUM(ts_duration) AS ts_duration,". + ($this->quantity_sum ? "SUM(ts_quantity) AS ts_quantity" : '0').",0,NULL,0,0,0,0,SUM($total_sql) AS ts_total", 'GROUP BY '.$sum_sql[$type],$sum_extra_cols,$wildcard,$empty,$op,'UNION',$filter,$join,$need_full_no_count); $sum_extra_cols[$type]{0} = '0'; } diff --git a/timesheet/inc/class.uitimesheet.inc.php b/timesheet/inc/class.uitimesheet.inc.php index 0f40b6bb03..c535852af6 100644 --- a/timesheet/inc/class.uitimesheet.inc.php +++ b/timesheet/inc/class.uitimesheet.inc.php @@ -543,7 +543,8 @@ class uitimesheet extends botimesheet $row['ts_title'] = lang('Sum %1:',$row['ts_year']); break; } - $row['ts_start'] = $row['ts_quantity'] = $row['ts_unitprice'] = ''; + $row['ts_start'] = $row['ts_unitprice'] = ''; + if (!$this->quantity_sum) $row['ts_quantity'] = ''; $row['class'] = 'th'; $row['titleClass'] = 'titleSum'; continue; @@ -585,8 +586,7 @@ class uitimesheet extends botimesheet $rows['no_owner_col'] = $query['no_owner_col']; if ($query['filter']) { - $rows['duration'] = $this->summary['duration']; - $rows['price'] = $this->summary['price']; + $rows += $this->summary; } $rows['pm_integration'] = $this->pm_integration; diff --git a/timesheet/setup/etemplates.inc.php b/timesheet/setup/etemplates.inc.php index b353954dff..61d733a820 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() 2007-03-04 12:23 + * generated by soetemplate::dump4setup() 2007-07-10 09:39 * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package timesheet @@ -73,7 +73,7 @@ $templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '', $templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";}i:1;a:1:{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";}}i:2;a:1:{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";}}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:4;a:1:{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:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}}s:4:"rows";i:4;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1142977673',); -$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:3:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";}i:1;a:1:{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";}}i:2;a:1:{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";}}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:4;a:1:{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:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}i:5;a:1:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Export";s:7:"onclick";s:18:"timesheet_export()";s:4:"name";s:6:"export";}}}s:4:"rows";i:5;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1164373176',); +$templ_data[] = array('name' => 'timesheet.index','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:3:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";}i:1;a:1:{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";}}i:2;a:1:{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";}}}i:3;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"name";s:2:"nm";s:4:"size";s:20:"timesheet.index.rows";}}i:4;a:1:{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:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}i:5;a:1:{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:4:"rows";i:5;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1164373176',); $templ_data[] = array('name' => 'timesheet.index.add','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:7:"onclick";s:163:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}}','size' => '','style' => '','modified' => '1158042543',); @@ -83,5 +83,5 @@ $templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' = $templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:6:{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:"C";s:11:",@no_cat_id";}i:1;a:9:{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:4:{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: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:3;s:4:"cols";i:1;s:7:"options";a:2:{i:4;s:1:"1";i:5;s:1:"1";}s:4:"size";s:7:",,,,1,1";}s:1:"C";a:3:{s:4:"type";s:16:"nextmatch-header";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:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Quantity";s:4:"name";s:11:"ts_quantity";}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:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";}}i:2;a:9:{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:1:"3";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:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";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:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.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:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;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:4:"span";s:8:",noPrint";}}}s:4:"rows";i:2;s:4:"cols";i:9;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1134799629',); -$templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:8:{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:",@ts_viewtype";s:1:"F";s:13:",@ts_viewtype";s:1:"E";s:13:",@ts_viewtype";}i:1;a:9:{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:4:{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: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:3;s:4:"cols";i:1;s:7:"options";a:2:{i:4;s:1:"1";i:5;s:1:"1";}s:4:"size";s:7:",,,,1,1";}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:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:8:"Quantity";s:4:"name";s:11:"ts_quantity";}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:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";}}i:2;a:9:{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:1:"3";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:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";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:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.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:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;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:4:"span";s:8:",noPrint";}}}s:4:"rows";i:2;s:4:"cols";i:9;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1164279120',); +$templ_data[] = array('name' => 'timesheet.index.rows','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:8:{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:",@ts_viewtype";s:1:"F";s:13:",@ts_viewtype";s:1:"E";s:13:",@ts_viewtype";}i:1;a:9:{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:4:{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: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:3;s:4:"cols";i:1;s:7:"options";a:2:{i:4;s:1:"1";i:5;s:1:"1";}s:4:"size";s:7:",,,,1,1";}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:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";}}i:2;a:9:{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:1:"3";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:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";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:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.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:186:"window.open(egw::link(\'/index.php\',\'menuaction=timesheet.uitimesheet.edit&ts_id=$row_cont[ts_id]\'),\'_blank\',\'dependent=yes,width=600,height=400,scrollbars=yes,status=yes\'); return false;";}i:3;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:4:"span";s:8:",noPrint";}}}s:4:"rows";i:2;s:4:"cols";i:9;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1164279120',); diff --git a/timesheet/setup/phpgw_de.lang b/timesheet/setup/phpgw_de.lang index 9813694142..8af3788cde 100644 --- a/timesheet/setup/phpgw_de.lang +++ b/timesheet/setup/phpgw_de.lang @@ -37,6 +37,7 @@ saves the changes made timesheet de Speichert die saves this entry and add a new one timesheet de Speichert diesen Eintrag und fgt einen neuen hinzu select a price timesheet de Preis auswhlen select a project timesheet de Projekt auswhlen +show a quantity sum (eg. to sum up negative overtime) admin de Zeige eine Mengensumme (z.B. um negative berstunden zu summieren) start timesheet de Start starttime timesheet de Startzeit starttime has to be before endtime !!! timesheet de Startzeit muss vor der Endzeit liegen !!! diff --git a/timesheet/setup/phpgw_en.lang b/timesheet/setup/phpgw_en.lang index 2e10e56738..8a27b72782 100644 --- a/timesheet/setup/phpgw_en.lang +++ b/timesheet/setup/phpgw_en.lang @@ -37,6 +37,7 @@ saves the changes made timesheet en Saves the changes made saves this entry and add a new one timesheet en Saves this entry and add a new one select a price timesheet en Select a price select a project timesheet en Select a project +show a quantity sum (eg. to sum up negative overtime) admin en Show a quantity sum (eg. to sum up negative overtime) start timesheet en Start starttime timesheet en Starttime starttime has to be before endtime !!! timesheet en Starttime has to be before endtime !!! diff --git a/timesheet/templates/default/config.tpl b/timesheet/templates/default/config.tpl index b4b60d92f7..9e6e7205ff 100644 --- a/timesheet/templates/default/config.tpl +++ b/timesheet/templates/default/config.tpl @@ -28,6 +28,15 @@ + +{lang_Show_a_quantity_sum_(eg._to_sum_up_negative_overtime)}: + + + + diff --git a/timesheet/templates/default/index.xet b/timesheet/templates/default/index.xet index 0c4b126ddf..cd009beebd 100644 --- a/timesheet/templates/default/index.xet +++ b/timesheet/templates/default/index.xet @@ -15,16 +15,16 @@ -