| ID | 
Date | 
Author | 
Author Email | 
Category | 
Subject | 
Status | 
Last Revision | 
 
| 
  38  
 | 
Fri Sep  9 12:08:26 2011 | 
Andreas Luedeke | andreas.luedeke@psi.ch | Script | create incremental daily backups of logbooks for Unix/Linux | Beta |   |  A very simple backup utility for elog logbooks.
If you want to recover your logbook from corrupted entries, an incremental backup comes in handy:
you can just replace the corrupted files with the previous versions.
Below is a very simple wrapper to create backups of the logbook into some local directory (/logbooks_backup in
the example script). The second wrapper lists the files in a given ".tar" archive.
You would run the backup from a cron job with the line:
1 0 * * * /usr/local/elog/elog_backup_daily
This will create daily backups of modified logbook and config files and a weekly backup of the password file
/usr/local/elog/passwd.txt (if you wonder why: our passwd.txt file has more than 1 MByte and of course it
changes with every login).
elog_backup_daily (copy to /usr/local/elog) script to create tar file and remove tar files older than 90 days
exclude-logbooks  (copy to /usr/local/elog) list of files to be excluded in backup (thumbnails, etc.) 
elog_backup_listfiles (copy to /usr/local/bin) shows content of a given tar file (omits directories in list)  |  
| Attachment 1: elog_backup_daily
 |  
#!/bin/sh
# source file directory
srcd=/usr/local/elog/
# backup all files newer than 25 hours
date=$(date -d "-25hours" "+%Y%m%d %H:%M")
# backup file directory
tard=/logbooks_backup
# backup tar file name
tarf=$tard/$(date +%Y%m%d_%a.tar)
# do not backup files that match patterns in this file
excf=/usr/local/elog/exclude-logbooks
# create backup
cd $srcd
tar --ignore-case -X $excf --newer "$date" -cf $tarf . logbooks/*
# copy passwd.txt
if [ "$(date +%u)" -eq 1 ]
then
	passwd=$tard/passwd_$(date +%Y%m%d_%a.txt)
	cp $srcd/passwd.txt $passwd
	gzip -9 $passwd
fi
# delete all backups older than 90 days
find $tard -mtime +90 -name "*_???.tar"           -exec rm -f {} +
find $tard -mtime +90 -name "passwd_*_???.txt.gz" -exec rm -f {} +
 |  
| Attachment 2: exclude-logbooks
 |  
*.png.png
*.gif.png
*.jpg.png
*.pdf.png
oldLogbooks/*
logbooks/elog.log
passwd.txt
ssl/*
logbooks/Backup/*
logbooks/old/*
 
 |  
| Attachment 3: elog_backup_listfiles
 |  
tar -tf $1|grep -v "^.*/$"
 
 |  
| 
  37  
 | 
Tue Aug 23 19:45:16 2011 | 
Stuart Wilkins | swilkins@bnl.gov | Script | ELOG Mail Parser | Alpha |   |   Hi! 
I have attached a small script which can process an e-mail and submit this e-mail as a log entry. This is alpha at the moment but if you have suggestions or find bugs please let me know.  
The easiest way to process this is to use the ".forward" file in unix. If this file contains the line: 
| "/usr/bin/python /home/tardis/elogmail/process.py --log /home/tardis/elogmail/mail.log -r -u http://localhost:8080/TARDIS -a Category=email -a Type=Log" 
This will pipe the incoming mail to the e-log running on the localhost with the experiment TARDIS. Attributes can be set using the "-a" switch like in the elog command line utility. To get help with all the options please run the script with the command: 
python process.py -h 
which will give help. 
Any questions, please don't hesitate to contact me, and I will do my best to help. 
Thanks again to Stefan for a great application. 
Best wishes, 
Stuart 
   |  
| Attachment 1: process.py.gz
 |  
| Attachment 2: forward.gz
 |  
| 
  36  
 | 
Tue Aug 23 12:07:51 2011 | 
Stefan Ritt | stefan.ritt@psi.ch | Script | Re: JavaScript list auto-refresh | Stable | Tue Jul 12 12:36:16 2005 by Emiliano Gabrielli |  
 | Emiliano Gabrielli wrote: |  Here is a simple piece of JS code to accomplish a smart page reload. 
We don't reload if in some kind of editing mode. 
 
You can put the code everywhere you like in the elog html page, my suggestion is to put it in Bottom Text (or Top Text): 
 
;auto-refresh
Bottom text = [I]<script language="JavaScript">if (null==window.location.href.match('/[0-9]+$|.*(cmd|select)=.*') ) { window.setTimeout("location.reload();", 2*60*1000); now=new Date(); document.write('<br/>Last reload at '+now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDate()+', '+( ((h=now.getHours())<10) ? '0'+h :h)+':'+( ((m=now.getMinutes())<10) ? '0'+m :m)+':'+( ((s=now.getSeconds())<10) ? '0'+s :s)) }</script>[/I]
 
 
the timer is a product of # of minutes, #of seconds and milliseconds... 2 minutes in the above example   
 
 
 | Revision Tue Jul 12 12:36:16 2005 wrote: |   
modified regular expression in order to not activate the auto-refresh in the signle entry view 
 |   
 |  
  
 
Starting with SVN revision 2422, there is a new config option  
 
refresh = <seconds>  
 
which lets you do the same thing. |  
| 
  35  
 | 
Tue May 24 22:43:38 2011 | 
JacekK | doctor99@poczta.onet.pl | Script | Javascript verification of simple attributes with regexp | Beta | Tue May 24 22:46:38 2011 by JacekK |  Hi, 
I added possibility for a new verification of required fields in generated Javascript "function chkform()". To do this I added new logbook option "ValidPattern", in which you can set regular expression for an attribute, for example 
ValidPattern HexDigits=[0-9a-fA-F]+ 
If there is a pattern set for required field, then in chkform() function is generated additional verification, if value of the field matches validation regexp. 
Changes I made should not decrease performance of elogd. Let me know please if you can add it to regular version. 
  
Jacek  |  
| Attachment 1: JScriptREVerify.patch
 |  
Index: elogd.c
===================================================================
--- elogd.c	(revision 2414)
+++ elogd.c	(working copy)
@@ -74,6 +74,8 @@
 char attr_list[MAX_N_ATTR][NAME_LENGTH];
 char attr_options[MAX_N_ATTR][MAX_N_LIST][NAME_LENGTH];
 int attr_flags[MAX_N_ATTR];
+/** Validation pattern for attribute, to test if it contains expected value */
+char attr_valid_pattern[MAX_N_ATTR][NAME_LENGTH];
 
 char attr_list_default[][NAME_LENGTH] = { "Author", "Type", "Category", "Subject", "" };
 
@@ -7033,7 +7035,7 @@
 
 int scan_attributes(char *logbook)
 /* scan configuration file for attributes and fill attr_list, attr_options
- and attr_flags arrays */
+ and attr_flags and attr_valid_pattern arrays */
 {
    char list[10000], str[NAME_LENGTH], str2[NAME_LENGTH], type[NAME_LENGTH],
        tmp_list[MAX_N_ATTR][NAME_LENGTH];
@@ -7062,11 +7064,20 @@
          }
       }
 
-      /* get options lists for attributes */
+      /* get options lists and validation patterns for attributes */
       memset(attr_options, 0, sizeof(attr_options));
+      memset(attr_valid_pattern, 0, sizeof(attr_valid_pattern));
       for (i = 0; i < n; i++) {
          n_options = 0;
 
+         sprintf(str, "ValidPattern %s", attr_list[i]);
+         if (getcfg(logbook, str, list, sizeof(list)))
+         {
+            strncpy(attr_valid_pattern[i], list, sizeof(attr_valid_pattern[i])-1);
+            attr_valid_pattern[i][sizeof(attr_valid_pattern[i])-1] = 0;
+            attr_flags[i] |= AF_HAS_VALID_PATT;
+         }
+
          sprintf(str, "Options %s", attr_list[i]);
          if (getcfg(logbook, str, list, sizeof(list)))
             n_options = strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
@@ -9650,6 +9661,17 @@
             rsprintf("    document.form1.%s.focus();\n", ua);
             rsprintf("    return false;\n");
             rsprintf("  }\n");
+            if (attr_flags[i] & AF_HAS_VALID_PATT) 
+            {
+              sprintf(str, loc("var validPatt=new RegExp(\"%s\");"), attr_valid_pattern[i]);
+              rsprintf("  %s\n", str);
+              rsprintf("  if (!validPatt.test(document.form1.%s.value)) {\n", ua);
+              sprintf(str, loc("Invalid value for attribute '%s'"), attr_list[i]);
+              rsprintf("    alert(\"%s\");\n", str);
+              rsprintf("    document.form1.%s.focus();\n", ua);
+              rsprintf("    return false;\n");
+              rsprintf("  }\n");
+            }
          }
       }
 
Index: elogd.h
===================================================================
--- elogd.h	(revision 2414)
+++ elogd.h	(working copy)
@@ -192,6 +192,7 @@
 #define AF_MUSERLIST         (1<<13)
 #define AF_USEREMAIL         (1<<14)
 #define AF_MUSEREMAIL        (1<<15)
+#define AF_HAS_VALID_PATT    (1<<16)
 
 /* attribute format flags */
 #define AFF_SAME_LINE              1
 |  
| 
  34  
 | 
Fri Feb  4 10:26:38 2011 | 
Stefan Ritt | stefan.ritt@psi.ch | Other | Re: Building elog on OpenBSD | Stable |   |  
 
    
        
            | T. Ribbrock wrote: | 
         
        
            | 
             Two things are required to get elog (tested with 2.8.1) to compile on OpenBSD (tested on OpenBSD 4.8): 
            Step 1 - Patch Makefile: 
            
--- Makefile~ Mon Jan 24 21:38:09 2011
+++ Makefile Mon Jan 24 21:42:57 2011
@@ -50,6 +50,10 @@
 RM = /usr/bin/rm -f
 endif
+ifeq ($(OSTYPE),OpenBSD)
+LIBS += -lcrypto
+endif
+
 ifeq ($(OSTYPE),Darwin)
 OSTYPE=darwin
 endif
 
            Step 2 - Use "gmake" instead of the standard "make" to build. 
              
             | 
         
    
 
Thanks, I added your patch to the distribution.   |  
| 
  33  
 | 
Thu Feb  3 23:51:16 2011 | 
T. Ribbrock | emgaron+elog@ribbrock.org | Other | Building elog on OpenBSD | Stable |   |  Two things are required to get elog (tested with 2.8.1) to compile on OpenBSD (tested on OpenBSD 4.8): 
Step 1 - Patch Makefile: 
--- Makefile~ Mon Jan 24 21:38:09 2011
+++ Makefile Mon Jan 24 21:42:57 2011
@@ -50,6 +50,10 @@
 RM = /usr/bin/rm -f
 endif
+ifeq ($(OSTYPE),OpenBSD)
+LIBS += -lcrypto
+endif
+
 ifeq ($(OSTYPE),Darwin)
 OSTYPE=darwin
 endif
 
Step 2 - Use "gmake" instead of the standard "make" to build. 
   |  
| 
  39  
 | 
Fri Sep 17 06:19:39 2010 | 
Stefan Ritt | stefan.ritt@psi.ch | Script | Custom input forms implementation | Stable | Thu Jul  2 20:55:55 2015 by Stefan Ritt |  Dear ELOG users, 
starting with SVN revision 2328, custom input forms are implemented. This allows application specific formats for check lists etc. In our specific case we had to implement a shift check list, which was quite long. Furthermore the check list should be optimized for an iPad, which we take in the field and record various checks and readings (in our case some gas pressure gauges at the PSI particle accelerator). Since the standard ELOG interface was too inflexible, a completely hand-written form was needed. The form can be activated by the new configuration options Custom New Form, Custom Edit Form and Custom Display Form, one for a new entry, an entry to edit and and entry to display. In our case we used the same form for all three cases. This is how the shift check list looks under the Safari Browser on a PC: 
  
And here is how it looks on the iPad: 
  
Each section can be collapsed and expanded (blue arrows at the left), and various internal checks are made before the check list can be submitted. 
Implementing such forms is however more something for the advanced user, since you have to hand-write HTML with CSS and JavaScript code. It can then however be a powerful method for check lists. Please find in the attachments the elogd.cfg configuration for that logbook and the shiftcheck.html source code file. It is a bit complicated since the page is a static page, elogd just serves it from the file. This requires all the dynamic functions to be implemented inside the HTML file with JavaScript. To display an entry for example, the JavaScript loads the raw data with the "?cmd=Download" command and the populates the form fields. The collapsing and expanding is done by using CSS properties. The integrated style sheet was optimized for the rendering on an iPad. Rather large fonts were chosen so that the items can be checked easily with your finger tips. Various parameters are sent between the browser and the elogd program via hidden fields and cookies. So only something for experts! But if you go through the effort and hand-write the form, it can be very handy. Note that you have to upgrade to SVN revision 2328 for the three new options. 
   |  
| Attachment 2: elogd.cfg
 |  
[global]
Port = 8080
Password file = passwd
[ShiftCheck]
Comment = Shift Check List
Attributes = Author, D, M, Y, Shift, a1, a2, a3, a4, a5, h1, h2, h3, h4, h5, c1, c2, c3, c4, c5, c6, c7, bb1, cr1, cr2, cr3, cr4, cr5, cr6, cr7, cr8, cr9, cr10, cr11, cr12, cr13, cr14, cr15, cr16, cr17, cr18, cr19, cr20, cr21, cr22, cr23, cr24, cr25, cr26, sw1, sw2, sw3, sw4, sw5
Quick filter = Shift, Author
Options Shift = Morning, Evening, Night
Enable attachments = 0
Show text = 0
Custom new form = /home/meg/meg/online/elog/shiftcheck.html
Custom edit form = /home/meg/meg/online/elog/shiftcheck.html
Custom display form = /home/meg/meg/online/elog/shiftcheck.html
List after submit = 1
 
 |  
| Attachment 4: shiftcheck.html
 |  
| Attachment 5: sc_up.png
 |  
 
 |  
| Attachment 6: sc_down.png
 |  
 
 |  
| 
  32  
 | 
Fri Feb 19 14:05:53 2010 | 
Tony Albers | tony.albers@gmail.com | Other | updated eloglang.danish file | Stable |   |  I have updated the file. Everything should be translated now. 
/tony 
  
# 
# Danish translation by Miljan Dedic <mde@HVIDOVRE.DK> 
# 04-06-2004 
# Updated by Tony Albers <tony.albers@gmail.com> 
# 19-02-2010 
# A more recent version may be available at : 
# http://savannah.psi.ch/websvn/listing.php?repname=elog&path=%2Ftrunk%2Fresources%2F 
# 
 
New = Ny 
Edit = Ændr 
Delete = Slet 
Reply = Svar 
Find = Find 
Last day = Sidste Dag 
Last 10 = Sidste 10 
Config = Konfigurer 
Change password = Ændre Password 
Logout = Log Ud 
Help = Hjælp 
Back = Tilbage 
Submit = Send 
First = Første 
Last = Sidste 
Previous = Forrige 
Next = Næste 
Copy to = Kopier til 
Move to = Flyt til 
Save = Gem 
Cancel = Annuller 
Wrong password = Forkert kendeord 
Please login = Log Ind 
Username = Bruger Navn 
Password = Kendeord 
Old password = Gamle kendeord 
New password = Nyt kendeord 
ELOG password = ELOG kendeord 
ELOG change password = Ændre ELOG kendeord  
Please enter password to obtain write access = Skriv kendeord for at opnå skriveadgang 
Please enter password to obtain administration access = Skriv kendeord for at opnå admin adgang 
Several logbooks are defined on this host = Flere logbøger er defineret på denne host 
Please select the one to connect to = Vælg hvilken du vil have adgang til 
Change password for user = Ændr kendeord til bruger 
Logged in as = Du er logget ind som 
Entry date = Dato for indlæg  
with = Med 
This is the last entry = Dette er det sidste indlæg 
This is the first entry = Dette er det første indlæg 
Email sent to = Email sendt til 
Email notification suppressed = Send ikke Email 
please select = Vælg venligst 
Suppress Email notification = Notificér ikke med Email 
Attachment = Vedhæft 
Reply to this = Svar på denne 
In reply to = Som svar på 
Fields marked with = Felter markeret med 
are required = Er påkrævet 
Please check that it exists and elogd has write access = Kontroller venligst om det eksisterer,og om elogd har skriveadgang 
Error: Attribute <b>%s</b> not supplied = Fejl: Attribut <b>%s</b> ikke udfyldt 
Please go back and enter the <b>%s</b> field = Gå tilbage og udfyld <b>%s</b> feltet 
Please use your browser's back button to go back = Brug tilbage knappen på din browser 
ELOG find = ELOG søg 
Find = Find 
Search = Søg 
Reset Form = Nulstil Form 
Summary only = Kun Beskrivelse 
Show attachments = Vis vedhæftede filer 
Printable output = Vis Print 
Sort in reverse order = Sorter i omvendt rækkefølge 
Start date = Start dato 
End date = Slut dato 
Year = År 
Text = Tekst 
Search all logbooks = Søg i alle log bøger 
Last %d days = Sidste %d dage 
Last %d entries = Sidste %d indlæg 
No entries found = Ingen indlæg fundet 
A new entry has been submitted on %s = Et nyt indlæg af %s  
Logbook = Logbog 
Yes = Ja 
No = Nej 
Error deleting message: status = Fejl ved sletning: Status 
Error: Command "<b>%s</b>" not allowed = Fejl: kommando "<b>%s</b>" ikke tilladt 
Cannot open file <b>%s</b> =kan ikke åbne filen  <b>%s</b>  
Cannot write to <b>%s</b> = kan ikke skrive til <b>%s</b> 
No SMTP host defined in [global] section of configuration file = Ingen SMTP host defineret i [global] sektionen af konfigurationsfilen   
Display threads = Vis tråde 
Logbook is empty = Logbog er tom 
Download = Hent 
and all its replies = Og alle Svar 
Message ID = Besked-ID 
Not logged in = Ikke logget ind 
Login = Login 
Page %d of %d = Side %d af %d 
all entries = alle indlæg 
Login name = Brugernavn 
Full name = Fulde navn 
ELOG user config = ELOG bruger Konfig 
ELOG new user = Ny ELOG bruger 
Admin = admin 
Select user = Vælg bruger 
Remove user = Fjern bruger 
New user = Ny bruger 
Retype new password = Gentag det nye kendeord 
New passwords do not match, please retype = kendeord passer ikke, prøv igen 
Retype password = Gentag kendeord 
exists already = Bruger eksisterer allerede  
Register as new user = Opret som ny bruger 
A new ELOG user has been registered on %s = En ny bruger er blevet registreret på %s  
Email = Email 
User "%s" registered on logbook "%s" = Bruger "%s" i Logbog "%s" registreret 
User [%s] has been deleted = Bruger [%s] er blevet slettet 
Hit following URL to activate that account = Tryk på følgende URL for at aktivere bruger konto 
ELOG registration = ELOG Registrering 
Your ELOG account has been activated on host = Din ELOG Konto er aktiveret 
You can access it at = Du kan opnå adgang på 
Are you sure to delete these messages? = Er du sikker på at du vil slette disse beskeder? 
Select = Vælg 
All entries = Alle indlæg 
Day = Dag 
Week = Uge 
Month = Måned 
Show last = Vis Sidste(n) 
Goto page = Gå til 
All = Alle 
Display = Vis 
entries per page = Indlæg per side 
Toggle all = Vis alle 
Selected entries = Vælg Indlæg 
Collapse = Fold Sammen 
Expand = Fold Ud 
Full = Fuld 
Summary = Beskrivelse 
Threaded = Vis som Tråde 
Filters = Filtrer 
Mode = Modus 
Options = Funktioner 
Error: start date after end date = Fejl: Start Dato efter Slut Dato 
and all their replies = Og alle deres svar 
Upload = Overfør til server 
Requested = Rekvirer 
Registration request on logbook "%s" = Anmodning om registrering på logbog "%s" 
A new ELOG user wants to register on "%s" = Ny Bruger Ønsker At Registrere på "%s" logbogen 
Search text also in attributes = Søg også text i attributerne 
Date = Dato 
ID = ID 
Forgot password? = Glemt kendeord? 
Email address <i>"%s"</i> not registered = Email Adresse <i>"%s"</i> ikke registreret 
ELOG password recovery = Gendan ELOG kendeord  
No Email address registered with user name <i>"%s"</i> = Bruger "</i> har ikke registreret mail adresse  
Error sending Email via <i>"%s"</i> = Fejl ved afsendelse af e mail via <i>"%s"</i> 
A new password for user <i>"%s"</i> has been sent to %s = Et nyt kendeord til Bruger <i>"%s"</i> er sendt til  %s  
Forgot = Glemt 
User "%s" registered on host "%s" = Bruger "%s" på host "%s" registreret 
Registration request on host "%s" = Andmodning om registrering på host "%s" 
A new password has been created for you on host %s = Et nyt kendeord er genereret på %s  
Enter your user name or email address = Skriv venligst Bruger navn eller e mail adresse 
Password recovery for ELOG %s = Genskab kendeord for  ELOG %s 
Host = Host 
Your ELOG account has been activated = Din ELOG Konto er aktiveret 
Maximum number of attachments reached = Max antal vedhæftninger nået 
on = Til 
Entry is currently edited by = Indlæg er ved at blive redigeret af  
recipients = Modtagere 
Suppress shell execution = Ignorer kommando shell 
Update = Opdater 
by = Af 
Change %s = rediger %s  
Add new option here = Tilføj ny Funktion  
Expand all = Udvid Alle 
Add %s = Tilføj %s  
User name <i>"%s"</i> not registered = Bruger Navn  <i>"%s"<i> ikke registreret 
Synchronization = Synkronisering 
Error: Value <b>%s</b> not allowed for boolean attributes = Fejl: værdi <b>%s</b> ikke tilladt for bool'ske Attributer 
Error: Attribute option <b>%s</b> not existing = Fejl: Attribut Funktion <b>%s</b> eksisterer ikke 
Last submission = Sidste Indlæg 
Synchronize = Synkroniser 
No mirror server defined in configuration file = ingen mirror-Server defineret i konfigurations filen 
user = Bruger 
Maximum number of replies (%d) exceeded = Max antal svar (%d) overskredet 
Entry can only be edited %1.2lg hours after creation = Indlæg kan kun redigeres %1.2lg timer efter oprettelse 
Display full entries = Vis alt 
No entry selected for deletion = Intet indlæg markeret til sletning 
Cannot read entry from local logbook = Kan ikke læse fra lokal logbog 
Cannot create socket = Kan ikke oprette socket 
Cannot resolve host name "%s" = Host "%s" kan ikke opløses 
Cannot connect to host %s, port %d = Kan ikke forbinde til %s, Port %d  
Cannot receive "%s" = Kan ikke modtage "%s" 
Received wrong entry id "%d" = Modtog forkert ID "%d"  
Entry #%d is locked on remote server = Indlæg #%d er låst på remote server 
Cannot save remote entry locally = Kan ikke gemme remote indlæg lokalt 
local = lokal 
remote = remote 
Please delete %s or %s entry to resolve conflict = Slet venligst indlæg %s eller %s indlæg for at løse problem 
Error sending local entry = Fejl ved afsending af lokalt indlæg 
Local entry submitted = Lokalt indlæg indlagt 
Error deleting remote entry = Fejl ved sleting af remote indlæg 
New entry cannot be written to directory "%s" = Nyt indlæg kan ikke skrives til bibliotek  "%s" 
Entry %s cannot be read from logbook "%s" = Indlæg %s kan ikke læses fra logbog "%s" 
This entry has been deleted = Dette indlæg er slettet 
Entries = Indlæg 
Cannot connect to remote server "%s" = Kan ikke forbinde til remote server  "%s" 
Remote server is not an ELOG server = Remote server er ikke en ELOG server 
Incorrect remote ELOG server version %s = Forkert Version %s fra remote server 
Error accessing remote logbook = Fejl ved adgang til remote server 
Invalid HTTP header = Forkert HTTP header 
No user name supplied to access remote logbook = Intet bruger navn angivet til remote logbog 
Synchronizing logbook %s with server "%s" = Synkroniser %s med server "%s" 
Configuration has been changed locally and remotely = Konfigurationen er ændret lokalt og remote 
Please merge manually to resolve conflict = Sammensmelt manuelt for at løse konflikt 
Logbook "%s" does not exist on remote server = Logbog "%s" eksisterer ikke på remote server 
Entry has been changed locally and remotely = Indlæg er ændret lokalt og remote 
Entry deleted locally = Indlæg slettet lokalt 
Changed local entry ID to %d = lokalt indlæg ID til %d 
Entry deleted remotely = Indlæg slettet remote 
All entries identical = Alle indlæg identiske 
Invalid mirror_id or entry_date = Ugyldigt mirror_id eller indlæg_dato 
Synchronize all logbooks = Synkroniser alle logbøger 
Calendar = Kalender 
Remote entry received = Remote indlæg modtaget 
Pick a date = Vælg dato 
Please select at least one '%s' = Vælg mindst en '%s'  
Please select a '%s' = Vælg en  '%s'  
Please enter month for attribute '%s' = Vælg måned for attribut '%s'  
Please enter day for attribute '%s' = Vælg dag for attribut '%s'  
Please enter year for attribute '%s' = Vælg år for attribut '%s'  
Please enter attribute '%s' = Vælg attribut '%s' 
Entry time = Dato/Tid 
Start = Start 
End = Slut 
From = Fra 
After = Efter 
to = Til 
Before = før  
Previous Year = Forrige år  
Next Year = Næste år 
Please enter numeric value for '%s' = Indsæt numerisk værdi for '%s' 
Error: Attribute <b>%s</b> must be numeric = Felj: Attribut <b>%s</b> skal være en numerisk værdi 
3 Months = 3 måneder 
6 Months = 6 måneder 
Error sending local message = Fejl ved adsendelse af lokalt besked 
Error receiving message = Fejl ved modtagelse af besked 
Are you sure to delete this entry? = Er du sikker på at du vil slette dette indlæg? 
ELOG CSV import = ELOG CSV Import 
Import = Import 
CSV filename = CSV filnavn 
Field separator = Felt Separator 
Edit entry = Rediger Felt 
Delete entry = Slet Felt 
CSV Import = CSV Import 
Derive attributes from CSV file = Hent attributer fra CSV fil 
Comma = Komma 
Semicolon = Semikolon  
Preview import = Forhåndsvis Import 
CSV import preview of %s = CSV import forhåndsvisning af %s 
Too many attributes in CSV file = For mange attributter i CSV fil 
%d entries successfully imported = %d indlæg successfuldt importeret 
No 'Attributes' option present in %s = Ingen 'Attributter' funktioner tilstede i %s 
CSV ("," separated) = CSV ("," separeret) 
CSV (";" separated) = CSV (";" separaret) 
Auto detect = Auto detektion 
Resubmit as new entry = send som nyt indlæg 
# 
#---- please translate following items and then remove this comment ----# 
# 
text = tekst 
Column header '%s' must be present in CSV file = Kolonneoverskrift '%s' skal være tilstede i CSV filen 
Fill text body = Brødteks 
Please re-enter filename = Genindtast venligst filnavnet 
New = Ny 
Last x = Sidste x 
Activate = Aktiver 
Entry has been modified = Indlægget er blevet modificeret 
No attachment file specified = Der er ikke specificeret en fil til vedhæftning 
Submit modified ELOG entry? = Publicer modificeret ELOG indlæg 
Delete this logbook = Slet denne logbog 
Rename this logbook = Omdøb denne logbog 
Create new logbook = Opret ny logbog 
Syntax error in config file = Indtastningsfejl i konfigurationsfilen 
Email notification = Email notifikation 
Are you sure to delete logbook "%s"? = Er du sikker på at du vil slette logbogen ''%s''? 
Logbook "%s" exists already, please choose different name = Logbogen ''%s'' findes allerede, vælg venligst et andet navn 
Rename logbook = Omdøb logbog 
Enter new logbook name = Indtast nyt navn på logbog 
Logbook name = Logbog navn 
Use existing logbook as template = Brug eksisterende logbog som skabelon 
none = ingen 
URL is redirected to: = URL er henvist til 
Remote config should be received = Fjernkonfiguration skulle blive modtaget 
Local entry should be submitted = Lokalt indlæg bør afsendes 
Remote entry should be received = Fjernindlæg bør modtages 
Local entry = Lokalt indlæg 
%s should be deleted = %s bør slettes 
Entry should be deleted locally = Indlæg bør slettes lokalt 
Local entry ID should be changed to %d = Lokalt indlægs ID bør ændres til %d 
Remote entry = Fjernindlæg 
Entry should be deleted remotely = Indlæg bør slettes på fjernlokation 
Click here to delete this entry = Tryk her for at slette dette indlæg 
Maximum number of attribute options exceeded = Maximalt tilladt antal atributmuligheder overskredet 
Please increase MAX_N_LIST in elogd.c and recompile = Forøg venligst  MAX_N_LIST i elogd.c og kompiler igen 
You can "steal" the lock by editing this entry = Du kan ''stjæle'' låsen ved at modoficere dette indlæg 
Several logbooks groups are defined on this host = Der er adskillige logbogsgrupper defineret på dette system 
Please select one to list the logbooks in that group = Vælg venligst en gruppe for at se dens logbøger 
No logbook defined on this server = Der er ikke defineret en logbog på dette system 
Goto ELOG home page = Gå til ELOG's hjemmeside 
Please enter "%s" = Indtast venligst ''%s'' 
Change config file = Ændr konfigurationsfil 
Click here to delete %d entries = Tryk her for at slette %d indlæg 
Please check that it exists and elogd has write access and disk is not full = Kontroller venligst at elogd har skriveadgang og at der er ledig plads på harddisken  
Show = Vis 
Hide =  Skjul 
Hide all = Skjul alle 
Show all = Vis alle 
This logbook requires authentication = Denne logbog behøver opmærksomhed 
Attachment file <b>"%s"</b> empty or not found = Vedhæftet fil <b>''%s''</b> er tom eller kunne ikke findes 
Case sensitive = Forskel på store og små bogstaver 
List = Liste 
Date must be between 1970 and 2037 = Dato skal være mellem 1970 og 2037  
up = op 
down = ned  
stop = stands 
Entry = Indlæg 
name may not contain blanks = Der må ikke være mellemrum i navnet 
regular expressions = regulære udtryk 
Text fields are treated as %s = Teksfelter behandles som %s 
Subscribe to logbooks = Abonnér på logbøger 
enable automatic email notifications = aktiver emailnotifikationer 
Set all = Sæt alle 
Set none = Sæt ingen 
Please enter hour for attribute '%s' = Indtast venligst timetal for attribut '%s' 
Please enter minute for attribute '%s' = Indtast venligst minuttal for attribut '%s' 
Please enter second for attribute '%s' = Indtast venligst sekundtal for attribut '%s' 
No admin user has been defined in configuration file = Der er ikke defineret en administrator i konfigurationsfilen 
Duplicate = Dupliker 
Cannot lookup server name = Servernavn kan ikke slås op 
Cannot connect to server = Der kan ikke forbindes til serveren 
%s wrote = %s skrev 
Quote = Citat 
Insert current time = Indtast nuværende tidspunkt 
Please enter numeric value for year of attribute '%s' = Indtast venligst numerisk værdi for årstal i attributten '%s' 
Preview = Forhåndsvisning 
FONT = FONT 
SIZE = STØRRELSE 
COLOR = FARVE 
smiling = smiler 
happy = lykkelig 
winking = blinker 
big grin = griner 
crying = græder 
cool = kølig 
frowning = vrænger ansigt 
confused = forvirret 
mad = gal 
pleased = glad 
tongue = rækker tunge 
yawn = gaber 
Encoding = Formattering 
User "%s" not found in password file = Brugeren ''%s'' blev ikke fundet i password filen  
Cannot write to file <b>%s</b> = Kan ikke skrive til filen <b>%s</b> 
Really remove user %s? = Er du sikker på at du vil slette brugeren %s? 
Invalid user name "%s" or password for remote logbook = Ugyldigt brugernavn eller kodeord til fjernlogbog 
Hide attachments = Skjul vedhæftninger 
Show only new entries = Vis kun nye indlæg 
Show all entries = Vis alle indlæg 
New entries since = Nye indlæg siden 
An old ELOG entry has been updated = Et gammelt ELOG indlæg er blevet opdateret 
A new ELOG entry has been submitted = Et nyt ELOG indlæg er blevet publiceret 
Cannot open file "%s" = Kan ikke åbne filen ''%s'' 
Invalid user name or password = Ugyldigt brugernavn eller kodeord 
Upload image = Send billede 
Please enter filename or URL = Indtast venligst filnavn eller URL 
Maximum allowed file size is = Den størst tilladte filstørrelse er 
Enter filename or URL = Indtast filnavn eller URL 
Image uploaded successfully = Billedet er korrekt overført 
Image "%s" uploaded successfully = Billedet ''%s'' er korrekt overført 
HelpELCode = HjælpELKode 
Cannot retrieve file from URL "%s" = Filen kan ikke hentes fra URL ''%s'' 
Enter name of hyperlink = Indtast hyperlink navn 
Enter URL of hyperlink = Indtast hyperlink URL adresse 
astonished = forbløffet 
Error in regular expression "%s" = Fejl i regulært udtryk ''%s'' 
File not found at URL "%s" = Filen blev ikke fundet på URL ''%s'' 
Entry size too large for email notification = Indlæggets størrelse er for stort til email-notifikation 
Please specify a valid email address = Specificer venligst en gyldig email adresse 
Cannot send email notification to "%s" = Kan ikke sende email-notifikation til ''%s'' 
Error: Command "<b>%s</b>" is not allowed for user "<b>%s</b>" = Fejl: Kommando ''<b>%s</b>'' er ikke tilladt for bruger ''<b>%s</b>'' 
Shell execution not enabled via -x flag = Kommandofortolkerudførelse er ikke slået til med -x flaget  
Enter heading level (1, 2 or 3) = Indtast overskiftsniveau (1, 2 eller 3) 
User name may not contain blanks = Der må ikke være mellemrum i brugernavnet 
Empty password not allowed = Tomme kodeord er ikke tilladt 
Password may not contain blanks = Kodeord må ikke indeholde mellemrum 
Anonymous = Anonym 
Activation notice has been sent to %s = Notifiakation om aktivering er sendt til %s 
Your request has been forwarded to the administrator = Din forespørgsel er sendt videre til en administrator 
You will be notified by email upon activation of your new account = Du vil få besked i en email når din konto er aktiveret 
Select period = Vælg periode  
Last week = Sidste uge 
Last month = Sidste måned 
Last 3 Months = Sidste 3 måneder 
Last 6 Months = Sidste 6 måneder 
Last Year = Sidste år 
Enter %s = Indtast %s 
Select %s = Vælg %s 
Bold text CTRL+B = Fed tekst CTRL+B  
Italics text CTRL+I = Kursiv tekst CTRL+I 
Underlined text CTRL+U = Understreget tekst CTRL+U 
Centered text = Centreret tekst 
Insert hyperlink = Indsat hyperlink 
Insert email = Indtast email 
Insert image CTRL+M = Indsæt billede CTRL+M 
Insert quote = Indsæt citat 
Insert list CTRL+L = Indsæt liste CTRL+L 
Insert table = Indsæt tabel 
Insert heading CTRL+H = Indsæt overskrift CTRL+H  
Insert code CTRL+O = Indsæt kode CTRL+O 
Hide the smiley bar = Skjul smileymenu 
Show the smiley bar = Vis smileymenu 
Insert current time/date = Indtast nuværende tidspunkt/dato 
Entry is locked on local server and therefore skipped = Indlægget er låst på det lokal system og springes derfor over 
Keep me logged in on this computer = Lad mig blive ved at være logget ind på denne maskine 
for the next %d minutes = i de næste %d minutter 
for the next hour = i den næste time 
for the next %d hours = i de næste %d timer 
for the next %d days = i de næste %d dage 
keep original values = gem oprindelige værdier 
Entry is locked = Indlæg er låst 
Edit anyhow = Ret alligevel 
Submit entry = Publicer indlæg 
Insert image = Indsæt billede 
Insert Date/Time = Indsæt dato/tid 
Insert horizontal line = Indsæt horisontal linje 
Insert anchor point = Indsæt ankerpunkt 
keep original text = behold oprindelig tekst 
unspecified = uspecificeret 
To subscribe to any logbook, click on 'Config' in that logbook = For at abonnere på en logbog, vælg 'konfigurer' i denne logbog  
ELOG XML import = ELOG XML import  
Derive attributes from XML file = Afled attributter fra XML fil 
XML filename = XML filnavn 
Invalid date format = Ugyldigt datoformat 
XML file does not contain %s element = XML filen indeholder ikke elementet %s 
XML import preview of %s = XML import forhåndsvisning af %s 
XML Import = XML Import 
A old entry has been updated on %s = Et gammelt indlæg er blevet opdateret den %s  
This entry has in meantime been locked by %s = Dette indlæg er i mellemtiden bleve låst af %s 
This entry has in meantime been modified by someone else = Dette indlæg er i mellemtiden blevet modificeret af en anden bruger 
First entry, Ctrl-Home = Første indlæg, Ctrl-Home 
Previous entry, Ctrl-PgUp = Foregående indlæg, Ctrl-PgUp 
Next entry, Ctrl-PgDn = Næste indlæg, Ctrl-PgDn 
Last entry, Ctrl-End = Sidste indlæg, Ctrl-End 
ELOG import = ELOG import 
Please choose format to import: = Vælg det format der skal importeres 
Enter text = Indtast tekst 
Show HTML source code = Vis HTML kildekode 
or until I log out = indtil jeg logger ud 
Make smaller = Gør mindre 
Original size = Oprindelig størrelse 
Make larger = Gør større 
Rotate left = Rotér til venstre 
Rotate right = Rotér til højre 
Delete attachment = Slet vedhæftning 
Cannot create thumbnail, please check ImageMagick installation = Kan ikke danne oversigtsbilleder, kontroller at ImageMagick er korrekt installeret 
Please log on by clicking on following link and change your password = Log venligst på ved at trykke på følgende link og ændr dit kodeord 
Attachments = Vedhæftninger 
Error: Content length (%d) larger than maximum content length (%d) = Fejl: Længde af indhold (%d) er større end maksimalt tilladt (%d) 
ELOG error = ELOG fejl 
Only user <b>%s</b> can edit this entry = Kun brugeren <b>%s</b> kan rette i dette indlæg 
Export to = Eksporter til 
Do not ignore first line = Ignorer ikke første linje 
Last %d hours = Sidste %d timer 
Invalid URL = Ugyldig URL 
Attribute "%s" is not allowed in config file = Attributten ''%s'' er ikke tilladt i konfigurationsfilen 
Only user <b>%s</b> can delete this entry = Kun bruger <b>%s</b> kan slette dette indlæg 
File system full, ELOG cannot continue to work = Filsystemet er løbet fuld, ELOG kan ikke fortsætte 
   |  
| 
  31  
 | 
Tue Dec 15 20:11:27 2009 | 
Michel Bovey | bovey (a) slf ch | Documentation | Sorting dates before and after "Sun Sep  9 > 03:46:39 CEST 2001" | Alpha |   |  BACKGROUNG
ELOG is storage date and time in unix time: seconds after epoch (Thu Jan  1 00:00:00 UTC 1970).
    date -u -d @0
On "Sun Sep  9 03:46:39 CEST 2001" the unix time counter is passing from a presentation of 9 digits to 10 digits.
    date -d @999999999
 
ISSUE
For sorting dates ELOG is using the character representation of the unix time. When ELOG contains dates on both
side of this 9 - 10 digits border sorting get confused.
 
WORKAROUND
in adding a leading 0 (zero) to the internal storage of dates in ELOG files we get over this problem.
On unix based system in can be easily achived with a sed command against the .log files:
    sed -i 's/modification: 9/modification: 09/g' *.log |  
| 
  30  
 | 
Mon Jul 20 14:23:56 2009 | 
Stefan Ritt | stefan.ritt@psi.ch | Script | Doing mathematical calculations with attributes | Stable |   |  Following entry was written by Richard Stamper. I moved it here for persistency: 
On the matter of automatic calculation of fields, it is possible using included javascript but you have to do the work yourself.  For example, we have a log which computes responsivity as the ratio of a photocurrent and optical power.  With log attributes called "Photocurrent", "Optical Power" and "Responsivity" there is a file in the logbooks directory called photomixer_javascript.html containing something like: 
  
<script> 
 
if (document.form1.Photocurrent) { 
  document.form1.Photocurrent.onchange = new Function( 
    "mod();"+ 
    "var power = parseFloat(document.form1.Optical_Power.value);"+ 
    "var current = parseFloat(document.form1.Photocurrent.value);"+ 
    "if (!isNan(power) && !isNan(current) && power != 0.0) {"+ 
    "  document.form1.Responsivity.value = Math.round(current/power*100)/100.0"+ 
    "}" 
    ); 
  document.form1.Optical_Power.onchange = document.form1.Photocurrent.onchange; 
} 
</script> 
 
and the elogd.cfg file includes 
Bottom text = photomixer_javascript.html 
for the relevant log. 
The assignments to the onchange handlers are guarded because this javascript is included on all pages for that log, including the list pages where there is no such field as Photocurrent, (or Optical_Power) and the event handler function is defined dynamically for the same reason. 
   |  
 
 |