|  Fixing repeating first inline_image in email, posted by rami khrais on Thu Mar  3 12:01:55 2022   | 
| Fixing repeating first image in email (email notification) when the user submit a new log with in_line images. | 
|  Re: Fixing repeating first inline_image in email, posted by Stefan Ritt on Fri Dec  1 16:30:46 2023 | 
| Unfortunately you made your changes against a pretty old version of elogd.c, so I can't see which changes you made (the diffs gives 100's of changes now). If you can apply your fix against the current elogd.cxx from the bitbucket repository, I would be happy to include the fix in the distribution. Stefan 
	
		
			| rami khrais wrote: |  
			| Fixing repeating first image in email (email notification) when the user submit a new log with in_line images. |    | 
|  Astronomical logbook using Elog, posted by Anthony J Krishock on Tue Dec  7 01:38:23 2021    | 
| Hello all, I became aware of the usefulness of Elog while working at Brookhaven National Lab. Since that time, I have developed a version of Elog that can be used as a log book for observations in Astronomy (my longtime hobby). Attached is my default.css theme and replacement icon files that match the theme. The color scheme is chosen to minimize bright lights and preserve night vision To install, just place the default.css file in the default theme directory and copy over the icon files into the default theme directory and replace the default ones.  Comments and suggestions welcome! Thank you | 
|  RPM build process enhancements, posted by Laurent Jean-Rigaud on Fri Feb 21 19:05:18 2020   | 
| Hi Stefan, I enclosed a patch for RPM build process available on GIT. changes : 
	rpmbuild :
	
		checks if provider or custom build (the rm/mv are done on your computers only :-))call rpmbuild with version / release given as parameterselog.spec :
	
		last changelog entry date is set to build datebuild with debug for debuginfo rpms (product rpms are normally automatically strimmed)elog.init call /etc/ini.d/functions for RHEL/Centos/Fedora/? dists   Todo: 
	add RPMbuild options for ldap/pam/...enclosed git log in changelog automatically (the dream :-)) | 
|  Re: RPM build process enhancements, posted by Laurent Jean-Rigaud on Mon Mar  2 14:31:12 2020   | 
| Hi Stefan, 2nd patch for RPM build which adds : 
	dynamic build options for krb5/ldap/pam/ssl support :
	
		for git / non rpm users : 
		
			buildrpm version release [-krb5] [-ldap] [-pam] [-ssl]for rpm users using SRPMS (dependances are managed) :
		
			rpm -i elog-ver-rel.src.rpm && rpmbuld -bb [--use krb5] [--use ldap] [--use pam] [--use ssl] ~/rpmbuild/SPECS/elog.specdynamic 2 last changelog entries :
	
		last with build information with
		
			dynamic user 's info (use your info if builded from PSI, or use %packager from ~/.rpmmacros if exists, or set to username username@ostname)build options list (KBR5, LDAP, PAM, SSL)before last for product changelog of current ELOG version-releasecustomrel flag for local rebuild :
	
		release = %elogrel%{?customrel}%{?dist)so custom builder can add --define 'customrel NSA'  at rpmbuild command or in .rpmmacros file -> elog-3.1.4-2.NSA.el7.x86_64.rpm by example.elog version and release are delivered in specfile as default for rebuild (tarball name uses it so it can not be changed for local rebuild from SRPMS).buildrpm uses ~/rpmbuild/SPECS/elog.spec generated from elog.spec.template (elog.spec is deleted in repo, replaced by elog.spec.template).   Tested on EL6 and EL7 x86_64 :-) Bye   
	
		
			| Laurent Jean-Rigaud wrote: |  
			| Hi Stefan, I enclosed a patch for RPM build process available on GIT. changes : 
				rpmbuild :
				
					checks if provider or custom build (the rm/mv are done on your computers only :-))call rpmbuild with version / release given as parameterselog.spec :
				
					last changelog entry date is set to build datebuild with debug for debuginfo rpms (product rpms are normally automatically strimmed)elog.init call /etc/ini.d/functions for RHEL/Centos/Fedora/? dists   Todo: 
				add RPMbuild options for ldap/pam/...enclosed git log in changelog automatically (the dream :-)) |    | 
|  Re: Re: RPM build process enhancements, posted by Laurent Jean-Rigaud on Wed Mar  4 18:40:57 2020   | 
| Sorry, the patch is malformed for the template file. Check PJ. Bye, Laurent   
	
		
			| Laurent Jean-Rigaud wrote: |  
			| Hi Stefan, 2nd patch for RPM build which adds : 
				dynamic build options for krb5/ldap/pam/ssl support :
				
					for git / non rpm users : 
					
						buildrpm version release [-krb5] [-ldap] [-pam] [-ssl]for rpm users using SRPMS (dependances are managed) :
					
						rpm -i elog-ver-rel.src.rpm && rpmbuld -bb [--use krb5] [--use ldap] [--use pam] [--use ssl] ~/rpmbuild/SPECS/elog.specdynamic 2 last changelog entries :
				
					last with build information with
					
						dynamic user 's info (use your info if builded from PSI, or use %packager from ~/.rpmmacros if exists, or set to username username@ostname)build options list (KBR5, LDAP, PAM, SSL)before last for product changelog of current ELOG version-releasecustomrel flag for local rebuild :
				
					release = %elogrel%{?customrel}%{?dist)so custom builder can add --define 'customrel NSA'  at rpmbuild command or in .rpmmacros file -> elog-3.1.4-2.NSA.el7.x86_64.rpm by example.elog version and release are delivered in specfile as default for rebuild (tarball name uses it so it can not be changed for local rebuild from SRPMS).buildrpm uses ~/rpmbuild/SPECS/elog.spec generated from elog.spec.template (elog.spec is deleted in repo, replaced by elog.spec.template).   Tested on EL6 and EL7 x86_64 :-) Bye   
				
					
						| Laurent Jean-Rigaud wrote: |  
						| Hi Stefan, I enclosed a patch for RPM build process available on GIT. changes : 
							rpmbuild :
							
								checks if provider or custom build (the rm/mv are done on your computers only :-))call rpmbuild with version / release given as parameterselog.spec :
							
								last changelog entry date is set to build datebuild with debug for debuginfo rpms (product rpms are normally automatically strimmed)elog.init call /etc/ini.d/functions for RHEL/Centos/Fedora/? dists   Todo: 
							add RPMbuild options for ldap/pam/...enclosed git log in changelog automatically (the dream :-)) |    |    | 
|  Custom input forms implementation, posted by Stefan Ritt on Fri Sep 17 06:19:39 2010 6x   | 
| 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.   | 
|  Re: Custom input forms implementation, posted by TimS on Tue Jul  8 15:43:21 2014 | 
| 
 
    
        
            | Stefan Ritt wrote:
 |  
            | 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.   |    That's awesome!! Didn't know ELOG was still being developed!!  I was looking for this ...been trying this version now withsupplied example but there's files missing which are being referenced from the html file.
 Anyway it would be nice to know a little more on how to use this and how it incorporates into ELOG. Is some more work being done on this version ? Thankx heaps for this great enhancement although now it's still needs a lot of figuring out on how to do this.
 | 
|  Re: Re: Custom input forms implementation, posted by Hanno Perrey on Wed May 11 09:35:23 2016   | 
| 
	
		
			| Stefan Ritt wrote: |  
			| 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.   |  Thank you very much for this nice example! I found a little issue with newer ELOG versions: if the authentication is done via session cookies, the submission of the checklist will fail with the error "Cannot open file passwd". This is actually misleading as the cause of the error is the empty user name submitted (since the cookie storing user name and pwd hash is never created) and not the password file itself. This can be worked around by removing the user name and pwd fields in the html form before submitting in case there is a SID cookie around. The attached shiftcheck.html contains this workaround and seems to be functioning fine on my installation (ELOG 3.1.0).   Cheers, Hanno | 
|  Re: Custom input forms implementation, posted by John on Sat Jun 15 06:13:07 2019 | 
| I have been trying to get my head around this application module. I assume that after the input is done on this example (ShiftCheck), if goes into the  usual file system directorys for storage? Or is it (or can it) goto another db like sql, flat, etc.?  I also assume that the 'normal' Elog screens we see for input (and output), would be a completely seperate module that you have for (ShiftCheck).. but we do not see them here (as one of the attachments)? I am asking these questions because I am trying to recreate this (type) of input/output system for users, so I would like to know how the 'whole picture' is done with your example here. Thanx again. 
	
		
			| Stefan Ritt wrote: |  
			| 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.   |    | 
|  Code change for LDAP authentication, posted by Maurat on Mon Mar 11 09:28:15 2019   | 
| Hi, I had to change code to authenticate users in my organization's LDAP directory. Indeed, accounts are distributed under several organizational units in my LDAP directory.  The current version of the code can't authenticate accounts when these are in different organizational units. Hence my contribution. I Use a read account to request LDAP to locate the account that has logged in (with e-mail address in the search filter). I get the number of LDAP entries. If I have one entry then I call ldap_get_dn function to get the DN account and then I call ldap_simple_bind_s using the account's DN and password to perform LDAP authentication. I changed configuration file elogd.cfg. I added two parameters:  LDAP DN user = <DN read account>
 LDAP PW user = <password read account>
 I changed code auth.c too (see attached file)
 I had to change Makefile. I added a call to lber library
 
ifdef USE_LDAP
 ifneq ($(USE_LDAP),0)
 CFLAGS += -DHAVE_LDAP
 LIBS += -lldap -llber
 endif
 endif
 Have good day
           | 
|  Check logbook files for wrong references, posted by Andreas Luedeke on Fri Sep 15 17:19:47 2017   | 
| You can run this little script to check if all entries referenced "In reply to:" do actually exist. To use it, you first need to "cd" to your logbook directory ("cd /usr/local/elog/logbooks") and then run it without arguments "logcheck". If it finds references pointing to a missing entry, it'll print the path to the file with the offending reference and some lines. For example: ### error: reference to entry 146, that exists 0 times. Reference is:### Proscan/2012/120507a.log-<p>[...].</p>
 ### Proscan/2012/120507a.log-$ @ MID @ $: 147
 ### Proscan/2012/120507a.log-Date: Mon, 07 May 2012 13:44:03 +0200
 ### Proscan/2012/120507a.log:In reply to: 146
 ### Proscan/2012/120507a.log-Wann: 1336373261
 ### Proscan/2012/120507a.log-Autor: [...]
 ### Proscan/2012/120507a.log-Eintrag: Problem
 [...]-
 Very often this happens if an entry is deleted AFTER someone already replied to it. Normally that is no problem, but in some cases you might get infinite loops and that causes ELOG to hang. The script is not checking for loops, but wrong references might give you a hint where to look. The script will print duplicate entries as well, if the referenced entry exist more than once. Cheers, Andreas PS: never include the string "$ @ MID @ $:" without spaces in an ELOG entry: apparently ELOG cuts off all text from that token on. | 
|  Re: Check logbook files for wrong references, posted by David Pilgram on Sat Sep 16 15:47:16 2017 | 
| I had to modify the script because I'm still on elog 2.9.2, where there are not subdirectories (by year) foreach logbook.  Line 5 had to be changed to
 $logf=q/[0-9][0-9][01][0-9][0-3][0-9]a.log/; to do this. Once done, I found the deliberate orphan script that I had put in to test, and rather too many other orphans than I had expected.  One or two I cannot explain.   If I had clicked on any of those entries elog would have gone into infinate loop. A very useful utility.  Thanks Andreas! 
	
		
			| Andreas Luedeke wrote: |  
			| You can run this little script to check if all entries referenced "In reply to:" do actually exist. To use it, you first need to "cd" to your logbook directory ("cd /usr/local/elog/logbooks") and then run it without arguments "logcheck". If it finds references pointing to a missing entry, it'll print the path to the file with the offending reference and some lines. For example: ### error: reference to entry 146, that exists 0 times. Reference is:### Proscan/2012/120507a.log-<p>[...].</p>
 ### Proscan/2012/120507a.log-$ @ MID @ $: 147
 ### Proscan/2012/120507a.log-Date: Mon, 07 May 2012 13:44:03 +0200
 ### Proscan/2012/120507a.log:In reply to: 146
 ### Proscan/2012/120507a.log-Wann: 1336373261
 ### Proscan/2012/120507a.log-Autor: [...]
 ### Proscan/2012/120507a.log-Eintrag: Problem
 [...]-
 Very often this happens if an entry is deleted AFTER someone already replied to it. Normally that is no problem, but in some cases you might get infinite loops and that causes ELOG to hang. The script is not checking for loops, but wrong references might give you a hint where to look. The script will print duplicate entries as well, if the referenced entry exist more than once. Cheers, Andreas PS: never include the string "$ @ MID @ $:" without spaces in an ELOG entry: apparently ELOG cuts off all text from that token on. |    | 
|  Python module to read/write/edit/reply/delete ELOG entries, posted by Andreas Luedeke on Tue Jul 26 10:16:22 2016 | 
| 
Hello Everybody!
I would just like to inform you that there is a new Python module available to access and work with ELOG (read/write/edit/reply/delete).
Currently the module is only supported for Python version 3. The package is pure Python and has no special dependencies. Therefore you can use the package on any machine.
The documentation you can find on https://github.com/paulscherrerinstitute/py_elog
If you want to install the package in an Anaconda on your local machine just use
conda install -c paulscherrerinstitute elog
(also works from outside PSI - the package is available at https://anaconda.org/paulscherrerinstitute/elog)
If there are issues with the package please use the issue tracker that comes with the github repository
https://github.com/paulscherrerinstitute/py_elog/issues or let me know.
 
Best
Simon | 
|  Simple theme, posted by Daniel Sajdyk on Sun Aug 23 21:27:00 2015 8x   | 
| Hello.  I did simple theme for ELOG called "dansaj".  This is verision which I did for my ELOG, and if you have troubles in other configurations, please let me know, and we will correct it.  Vectors versions of icons you can find in oryginals folder (if you want to transform it).  The most current version you can download from my blog - Elog theme, czyli skórka, albo temat. Regards Daniel. | 
|  Problem with Internet Explorer when saving an entry, posted by TorstenJ on Fri Jul 31 13:52:32 2015 | 
| Hi all, first off all let me say, that I realy like this great tool. That is a lot of help for keeping our server documentation up-to-date. Thanks to all contributors for that. I right here, because I actually have an issue with saving entries working with IE11 (but also in IE9). When ever I enter an entry, and click the save button, the page open a page with the text: "OK 1"   or the second attemp: "OK 2"   3rd  "OK 3" and so on. To get back to my Item list, I have to click the back button in the internet explorer. I also opens a lot of draft entries in my databases.  When I submit my entry, I don't have an issue, and the entry is saved correctly. This issue doesn't happen when using Google Chrome. Had anyone an simlar issue using elog with IE?  It would be great to have some help with that issue. Thanks Torsten | 
|  systemd-unit file, posted by Christof Hanke on Thu May  7 09:14:25 2015   | 
| sample systemd-unit file. Use it as you like. | 
|  blue-gray theme, posted by Branislav Gardon on Mon Jun 30 15:00:05 2014    | 
| I`ve edited-prepared new default.css It`s very simple but maybe will for someone useful.
 Have a nice day. regardsBranislav
 | 
|  Clean plain-text CSS - modified from default.css, posted by Ryan Blakeslee on Mon Apr 29 04:29:33 2013       | 
| Hello,
I am using ELOG 2.5.2. I had a real need for a simplified almost text-only version of the application.  For me 
personally, I like simple, minimalist and text-only as much as possible for the tools I use.  I personally found 
the layout with all the colors to be distracting from the content of each log entry.  Again this is ONLY my 
personal preference, NO offense meant. :-)
I took the default.css and modified it to achieve what I needed.  I am uploading here, the .css file.  It uses 
"blue" for some of the things such as attribute fields on single page view, etc.  but overall it's all clean, 
plain-text.
I don't know if this css will work on newer versions of ELOG (since I know i'm using an old one.)  But it's my 
hope that others like me, will find this modification very useful.
Thank you Stefan, and community -- this is an awesome tool, that I use in my business.  It's amazing how simple 
tools are always the most powerful and scale-able!  Fantastic, excellent job on this app. | 
|  Server time offset, posted by Bruce Weber on Mon Jan  7 08:45:10 2013 | 
| Our server runs on local time, however, we require log entries to be in UTC (-0800hrs) - is there a command to achieve this? Your assistance will be much appreciated Thanks | 
|  Re: Server time offset, posted by Stefan Ritt on Mon Jan  7 16:37:21 2013 | 
| 
 
    
        
            | Bruce Weber wrote: |  
            | Our server runs on local time, however, we require log entries to be in UTC (-0800hrs) - is there a command to achieve this? Your assistance will be much appreciated Thanks |  Have you tried   Subst <attribute> = $utcdate   Probably you need a dedicated attribute of type "datetime" and have to play with the "Date format" options. | 
|  create incremental daily backups of logbooks for Unix/Linux, posted by Andreas Luedeke on Fri Sep  9 12:08:26 2011     | 
| 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) | 
|  ELOG Mail Parser, posted by Stuart Wilkins on Tue Aug 23 19:45:16 2011    | 
|  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   | 
|  JavaScript list auto-refresh, posted by Emiliano Gabrielli on Fri Jul  8 17:34:02 2005 | 
| 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
 
 | 
 | 
|  Re: JavaScript list auto-refresh, posted by Stefan Ritt on Tue Aug 23 12:07:51 2011 | 
| 
 | 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.
 | 
|  Javascript verification of simple attributes with regexp, posted by JacekK on Tue May 24 22:43:38 2011   | 
| 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 | 
|  Building elog on OpenBSD, posted by T. Ribbrock on Thu Feb  3 23:51:16 2011 | 
| 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.   | 
|  Re: Building elog on OpenBSD, posted by Stefan Ritt on Fri Feb  4 10:26:38 2011 | 
| 
 
    
        
            | 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.  | 
|  updated eloglang.danish file, posted by Tony Albers on Fri Feb 19 14:05:53 2010 | 
| 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
 
 | 
|  Sorting dates before and after "Sun Sep  9 > 03:46:39 CEST 2001", posted by Michel Bovey on Tue Dec 15 20:11:27 2009 | 
| 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 | 
|  Doing mathematical calculations with attributes, posted by Stefan Ritt on Mon Jul 20 14:23:56 2009 | 
| 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.   | 
|  /etc/init.d/elog script for Debian-like distros, posted by T. Ribbrock on Thu Nov 27 11:43:32 2008   | 
| The attached script was used by the Debian package (which is no longer maintained) to start/stop elogd. I have changed it based on some comments in the forum (see script) to add some more functionality. As there is no mainatined elog package for Debian anymore, I'm placing it here in the hope that it might come in handy for users who want to run elog under Debian. This script needs to be placed in /etc/init.d and expects elogd to be installed as /usr/sbin/elogd(can be changed, of course). | 
|  ELOG V2.7.3-2080 debian amd64 package, posted by svrmarty on Fri Mar 28 10:23:50 2008   | 
|  | 
|  Multiple file upload for Firefox, posted by Diogo Alves on Tue Jan 29 23:18:39 2008 | 
| Here's a firefox extension that works extremely well if one uses drag n'drop to upload several attachment files at once:   https://addons.mozilla.org/en-US/firefox/addon/219   | 
|  Compiling elogd.c on HP-UX 64 bit, posted by Peter Rienstra on Wed Jul 11 11:13:16 2007   | 
| We succeeded in compiling and running elogd (elog-2.6.5) on HP-UX 64 bit Itanium platform (HP-UX B.11.23 U ia64). 
 The main problem was we got a core dump after starting elogd. The cause was that the memory has be allocated with a 4 byte boundary. This could be the case on other 64 bit platforms as well. A colleague of mine (Sander Notting) found the solution.
 
 Unzip and untar the zip file (elog-latest.tar.gz)
 Go to the src directory (elog-2.6.5/src)
 
 Edit elogd.c
 
 Replace all:
 
 show_selection_page(NULL);                 =>      show_selection_page();
 seteuid                                    =>      setuid
 setegid                                    =>      setgid
 
 On line 564:
 void *buffer                               =>      char *buffer
 
 
 Line 645, add the text in bold:
 
 void *xmalloc(size_t bytes)
 {
 char *temp;
 
 /* Align buffer on 4 byte boundery for HP UX and other 64 bit systems to prevent  Bus error(core dump)*/
 if (bytes & 3)
 bytes += 4 - (bytes & 3);
 
 temp = (char *) malloc(bytes + 12);
 
 
 After that compile:
 
 cc -w -c -o regex.o regex.c
 cc -w -c -o mxml.o ../../mxml/mxml.c
 cc -w -c -o strlcpy.o ../../mxml/strlcpy.c
 cc -I../../mxml -o elogd elogd.c regex.o mxml.o strlcpy.o
 
 We didn't try to run elogd under root yet.
 | 
|  Re: Compiling elogd.c on HP-UX 64 bit, posted by Stefan Ritt on Fri Jul 13 12:36:45 2007 | 
| I applied most of your patches to the elog source code, SVN revision 1885. The only missing piece has to do with seteuid/setuid. I definitively need seteuid for linux, because elogd might be started under root, then it falls back to an optional elog user. But when it stops, it has to restore the original root user in order to delete the PID file (/var/run/elogd.pid) which was created under root. If seteuid does not exist under HP-UX, you should add something like 
 #ifdef HP-UX
  setuid(...)
#else
  seteuid(...)
#endif Probably the HP-UX has to be something else, but I cannot test this since I don't have such an OS here. Once you get this working I can put it into the standard distribution.
 | 
|  Re: Compiling elogd.c on HP-UX 64 bit, posted by Peter Rienstra on Mon Jul 16 15:27:08 2007     | 
| Stefan, 
 First I want to say I really like your program. We work in a small group of 5 database administrators, and this is exactly what we need to inform each other. Elog is simple but very functional, so thanks!
 
 
 My problem is that I don't have root access to the HP-UX machines. We don't run elogd as root, so I wasn't really interested in the seteuid functionality, I just wanted to compile and run the program.
 
 HP-UX doesn't have the "seteuid" and "setegid" functions. But there are "setuid+setgid", "setreuid+setregid" and "setresuid+setresgid" functions available. I'm not sure which one is the best to use. I uploaded the manpages as attachment. I hope this will help you.
 
 If you want I can do a compile and run test on HP-UX with your altered source code. But I can't do a test with "root".
 
 
 
 
 
 | Stefan Ritt wrote: |  | I applied most of your patches to the elog source code, SVN revision 1885. The only missing piece has to do with seteuid/setuid. I definitively need seteuid for linux, because elogd might be started under root, then it falls back to an optional elog user. But when it stops, it has to restore the original root user in order to delete the PID file (/var/run/elogd.pid) which was created under root. If seteuid does not exist under HP-UX, you should add something like 
 #ifdef HP-UX
  setuid(...)
#else
  seteuid(...)
#endif Probably the HP-UX has to be something else, but I cannot test this since I don't have such an OS here. Once you get this working I can put it into the standard distribution.
 | 
 | 
|  Re: Compiling elogd.c on HP-UX 64 bit, posted by Stefan Ritt on Mon Jul 16 15:57:47 2007 | 
| 
 | Peter Rienstra wrote: |  | HP-UX doesn't have the "seteuid" and "setegid" functions. But there are "setuid+setgid", "setreuid+setregid" and "setresuid+setresgid" functions available. | 
 
 I had a look and found that setreuid/setregid is also available under Linux, so I use those functions instead, which should also work on HP-UX. Can you check revision 1888 (http://savannah.psi.ch/viewcvs/trunk/src/elogd.c?root=elog&rev=1888), compile it and see if you can run it at least under your non-root account.
 | 
|  Re: Compiling elogd.c on HP-UX 64 bit, posted by Peter Rienstra on Mon Jul 16 16:43:07 2007 | 
| 
 
 I downloaded revision 1888. There were no problems compiling it. It's running on the HP-UX system now and everything seems to work fine.
  | 
|  Secure elog with SSL under Apache2 on Ubuntu, posted by Val Schmidt on Tue Feb 20 18:20:40 2007 | 
| The steps for configuration under Apache2 are a bit different. Below I've included a quick list of instructions for Ubuntu. One nice thing about this method, is that only https requests to https://your.url/elog are redirected (not all https connections to your url) so you can have other services running under ssl: 
 My Setup:
 Ubuntu 6.10 (Edgy):
 Linux tide1 2.6.17-11-generic #2 SMP Thu Feb 1 19:52:28 UTC 2007 i686 GNU/Linux
 
 Packages:
 ii  apache2                                    2.0.55-4ubuntu4                      next generation, scalable, extendable web se
ii  apache2-common                             2.0.55-4ubuntu4                      next generation, scalable, extendable web se
ii  apache2-mpm-worker                         2.0.55-4ubuntu4                      high speed threaded model for Apache2
ii  apache2-utils                              2.0.55-4ubuntu4                      utility programs for webservers 
ii  elog                                       2.6.1+r1642-1                        Logbook system to manage notes through a Web--- 
 To setup ssl in apache2 for elog I started here:
 This min-howto was kindly provided in a forum. I reproduced it here without permission.
 
 A Mini-Howto for apache2: 
apt-get install apache2
apache2-ssl-certificate
(and answer the questions)
Now, enable ssl:
a2enmod ssl
configure ssl:
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl 
"/etc/apache2/sites-enabled/ssl" should look like this:
NameVirtualHost *:443
<VirtualHost *:443>
(... configure the directories too...)
and "/etc/apache2/sites-enabled/default" should look like this:
NameVirtualHost *:80
<VirtualHost *:80>
(... configure the directories too...)
In /etc/apache2/ports.conf, add Listen 443
In the middle of /etc/apache2/sites-available/ssl file, insert this two lines:
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
Hope it helps :)
 This method, without configuraiton of any of the <Directory> directives in /etc/apache2/sites-available/ssl, makes everything in /var/www https accessible. This may not be desirable. Configure the directives as you see fit.
 
 To get SSL forwarding going for elog, in /etc/apache2/sites-available/ssl, I added the following:
 
 
  
ServerName tide1.unh.edu
        ProxyRequests Off
        ProxyPreserveHost On
        <Location /elog/>
                Order allow,deny
                allow from all
                ProxyPass  http://tide1.unh.edu:8080/
                ProxyPassReverse  http://tide1.unh.edu:8080/
                SSLRequireSSL
        </Location>
Once this is in place one must restart apache with
 sudo /etc/init.d/apache2 force-reload
 
 In /etc/elog.conf I added:
 
 URL=https://tide1.unh.edu/elog and restarted elog as above.
 
 Finally, I removed the firewall entry that allowed connections to port 8080 for non-secure elog.
 
 Items of note:
 The "apache2-ssl-certificate" created a certificate that seems to expire in 30 days. This obviously not ideal. More details about how to create certificates can be found at HERE. At some point in the future, we'll have to figure this out and create a more appropriate certificate.
 |