ID |
Date |
Author |
Author Email |
Category |
Subject |
Status |
Last Revision |
41
|
Mon Jan 7 16:37:21 2013 |
Stefan Ritt | stefan.ritt@psi.ch | Script | Re: Server time offset | Stable | |
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. |
42
|
Mon Apr 29 04:29:33 2013 |
Ryan Blakeslee | rb@blakesys.net | Theme/Skin | Clean plain-text CSS - modified from default.css | Stable | Mon Apr 29 23:34:40 2013 by Ryan Blakeslee |
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. |
Attachment 1: plaintxt-blue.css
|
\/* default formatting */
body {
margin:3px;
color:black;
background-color:white;
font-family:sans-serif;
}
/* standard link colors and decorations */
a:link { color:#0000FF; text-decoration:none }
a:visited { color:#0000FF; text-decoration:none }
a:hover { color:#0000FF; text-decoration:underline }
a:active { color:#0000FF; text-decoration:underline }
a:focus { color:#0000FF; text-decoration:underline }
td {
color:black;
font-family:sans-serif;
}
/* frame table */
.frame {
width:100%;
}
/* printable frame table */
.pframe {
width:600;
}
/* standard formatting for logbook tabs */
.tabs {
font-family:sans-serif;
font-size:10pt;
background-color:white;
}
/* logbook selection page */
.selframe {
width:60%;
background-color:#486090;
border:1px solid #486090;
font-size:12pt;
}
.seltitle {
border:1px solid #0000FF;
border-top:1px solid white;
border-left:1px solid white;
background-color:#CCCCFF;
color:#486090;
text-align:center;
}
.selexp {
border:1px solid #0000FF;
border-top:1px solid white;
border-left:1px solid white;
background-color:#CCCCFF;
color:#486090;
text-align:left;
font-size:10pt;
}
.selspace {
width:2%;
border:1px solid #308000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
}
.selgroup {
border:1px solid #308000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#FFCCFF;
padding:3px;
text-align:left;
font-weight:bold;
font-size:14pt;
}
.sellogbook {
border:1px solid #308000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#DDEEBB;
padding:3px;
text-align:left;
font-weight:bold;
}
.selcomment {
font-size:8pt;
}
.selentries {
background-color:#E0E0A0;
border:1px solid #0000FF;
border-top:1px solid white;
border-left:1px solid white;
text-align:center;
font-size:10pt;
}
/* unselected and selected group tabs */
.gtab a {
background-color:#B0E0B0;
padding-left:5px;
padding-right:5px;
}
.gtab {
background-color:#B0E0B0;
border-right:1px solid #409040;
}
.sgtab a {
color:white;
padding-left:5px;
padding-right:5px;
}
.sgtab {
background-color:#486090;
color:white;
border-right:1px solid #084070;
}
.sgtab a:visited { color:white; } /* bug for IE */
/* unselected and selected logbook tabs */
.ltab a {
background-color:#E0E0E0;
padding-left:5px;
padding-right:5px;
}
.ltab {
background-color:#E0E0E0;
border-right:1px solid gray;
}
.sltab a {
background-color:#486090;
color:white;
padding-left:5px;
padding-right:5px;
}
.sltab {
background-color:#486090;
color:white;
border-right:1px solid #084070;
}
.sltab a:visited { color:white; } /* bug for IE */
/* logbook title, left, middle and right cell */
.title1 {
background-color:#486090;
border-bottom:1px solid gray;
border-top:1px solid #E0E0E0;
border-left:1px solid #E0E0E0;
color:white;
font-size:medium;
font-family:sans-serif;
text-align:left;
}
.title1 a:visited { color:#A0FFA0; }
.title1 a:link { color:#A0FFA0; }
.title2 {
background-color:#486090;
border-bottom:1px solid black;
border-top:1px solid #E0E0E0;
color:white;
font-size:medium;
font-family:sans-serif;
text-align:center;
}
.title3 {
border-bottom:1px solid black;
border-top:1px solid #E0E0E0;
border-right:0px solid gray;
background-color:#486090;
text-align:left;
}
/* main menu row */
.menuframe {
border:0px solid black;
border-top:1px solid gray;
border-right:0px solid gray;
border-left:0px solid gray;
padding:3px;
background-color:white;
}
.menu1 {
text-align:left;
font-size:10pt;
}
.menu2a {
text-align:left;
font-size:10pt;
}
.menu2b {
text-align:right;
font-size:10pt;
}
.menu3 {
text-align:left;
font-size:8pt;
font-weight:bold;
}
.menu4 {
text-align:right;
font-size:10pt;
vertical-align:middle;
}
/* frame table in listings */
.listframe {
border:0px solid gray;
border-top:0px solid gray;
border-left:0pc solid gray;
background-color:white;
border:0px;
}
/* title row in listing */
.listtitle {
border:0px solid black;
border-top:1px solid gray;
border-left:0px solid gray;
background-color:white;
text-align:left;
}
/* attachment line */
.attachment {
border-left:1px solid gray;
border-right:1px solid gray;
border-bottom:1px solid gray;
background-color:#FFFFB0;
text-align:left;
}
/* threaded listing */
.thread {
border:0px solid gray;
border-top:0px solid gray;
border-left:0px solid gray;
background-color:white;
}
.threadreply {
border:0px solid #808040;
border-top:0px solid white;
border-left:0px solid white;
background-color:white;
text-align:left;
}
/* attribute names and values on single message page */
.attribhead {
background-color:white;
border:0px solid gray;
border-top:1px solid gray;
border-bottom:1px solid gray;
border-left:0px solid gray;
padding:0px;
font-size:12pt;
font-family:sans-serif;
}
.attribname {
width:150px;
background-color:#486090;
color:white;
padding-left:5px;
padding-right:5px;
padding:3px;
border:1px solid white;
}
.attribvalue {
... 225 more lines ...
|
Attachment 2: summary.png
|
|
Attachment 3: full.png
|
|
Attachment 4: single-view.png
|
|
Attachment 5: find.png
|
|
43
|
Mon Jun 30 15:00:05 2014 |
Branislav Gardon | branislav.gardon@gmail.com | Theme/Skin | blue-gray theme | Stable | |
I`ve edited-prepared new default.css
It`s very simple but maybe will for someone useful.
Have a nice day.
regards
Branislav
|
Attachment 1: default.css
|
/* default formatting */
body {
margin:3px;
color:black;
background-color:white;
font-family:verdana,tahoma,sans-serif;
/* background-image:url(elog.gif); */
}
/* standard link colors and decorations */
a:link { color:#000000; text-decoration:none }
a:visited { color:#606060; text-decoration:none }
a:hover { color:#FF0092; text-decoration:underline }
a:active { color:#FF0092; text-decoration:underline }
a:focus { color:#FF0092; text-decoration:underline }
td {
color:black;
font-size:12px;
}
/* frame table */
.frame {
width:100%;
}
/* printable frame table */
.pframe {
width:600px;
}
/* standard formatting for logbook tabs */
.tabs {
font-family:sans-serif;
font-size:10pt;
background-color:white;
}
/* logbook selection page */
.selframe {
width:60%;
background-color:#486090;
border:1px solid #486090;
font-size:10pt;
}
.seltitle {
border:1px solid #486090;
border-top:1px solid white;
border-left:1px solid white;
background-color:#ffffff;
color:#486090;
text-align:center;
}
.selexp {
border:1px solid #0000FF;
border-top:1px solid white;
border-left:1px solid white;
background-color:#CCCCFF;
color:#486090;
text-align:left;
font-size:10pt;
}
.selspace {
width:2%;
border:1px solid #308000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
}
.selgroup {
border:1px solid #308000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#00ffff;
padding:3px;
text-align:left;
font-weight:bold;
font-size:14pt;
}
.sellogbook {
border:1px solid #486090;
border-top:1px solid white;
border-left:1px solid white;
background-color:#ffffff;
padding:3px;
text-align:left;
font-weight:normal;
}
.selcomment {
font-size:8pt;
}
.selentries {
background-color:#ffffff;
border:1px solid #486090;
border-top:1px solid white;
border-left:1px solid white;
text-align:center;
font-size:10pt;
}
/* unselected and selected group tabs */
.gtab a {
background-color:#B0E0B0;
padding-left:5px;
padding-right:5px;
}
.gtab {
background-color:#B0E0B0;
border-right:1px solid #409040;
}
.sgtab a {
color:white;
padding-left:5px;
padding-right:5px;
}
.sgtab {
background-color:#486090;
color:white;
border-right:1px solid #084070;
}
.sgtab a:visited { color:white; } /* bug for IE */
/* unselected and selected logbook tabs */
.ltab a {
background-color:#EEEEEE;
padding-left:5px;
padding-right:5px;
}
.ltab {
background-color:#EEEEEE;
border-top:1px solid white;
border-left:1px solid white;
border-right:1px solid gray;
}
.sltab a {
background-color:#486090;
color:white;
padding-left:5px;
padding-right:5px;
}
.sltab {
background-color:#486090;
color:white;
border-left:1px solid #EEEEEE;
border-right:1px solid #084070;
}
.sltab a:visited { color:white; } /* bug for IE */
/* logbook title, left, middle and right cell */
.title1 {
padding:5px;
background-color:#486090;
border-bottom:1px solid black;
border-left:1px solid #EEEEEE;
color:#486090;
font-size:small;
font-family:sans-serif;
text-align:left;
}
.title1 a:visited { color:#A0FFA0; }
.title1 a:link { color:#A0FFA0; }
.title2 {
background-color:#486090;
border-bottom:1px solid black;
color:white;
font-size:xs-small;
font-family:sans-serif;
text-align:right;
}
.title3 {
border-bottom:1px solid black;
border-right:1px solid black;
background-color:#486090;
text-align:right;
width:100px;
}
/* main menu row */
.menuframe {
border:1px solid #486090;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
height:29px;
}
.menu1 {
text-align:left;
font-size:10pt;
vertical-align:middle;
}
.menu1a {
text-align:center;
width:110px;
font-size:10pt;
font-weight:bold;
vertical-align:middle;
}
.menu2a {
text-align:left;
font-size:10pt;
}
.menu2b {
text-align:right;
font-size:10pt;
}
.menu3 {
text-align:left;
font-size:8pt;
font-weight:bold;
}
.menu4 {
text-align:right;
font-size:10pt;
vertical-align:middle;
}
.menucenter {
border:1px solid #486090;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
text-align:center;
font-size:10pt;
}
.toolframe {
border:1px solid #486090;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
padding:2px;
}
/* frame table in listings */
.listframe {
border:1px solid #0000FF;
border-top:1px solid white;
border-left:1pc solid white;
background-color:#486090;
border:0px;
}
/* title row in listing */
.listtitle {
border:1px solid #000000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
font-size:10pt;
font-weight:normal;
text-align:center;
width:0%;
}
.listtitle2 {
border:1px solid #000000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
font-size:10pt;
font-weight:normal;
text-align:center;
width:100%;
}
.listtitle3 {
border:1px solid #000000;
border-top:1px solid white;
border-left:1px solid white;
background-color:#EEEEEE;
text-align:center;
width:0%;
... 387 more lines ...
|
Attachment 2: ScreenShot174.jpg
|
|
44
|
Tue Jul 8 15:43:21 2014 |
TimS | timpie_s@yahoo.com | Script | Re: Custom input forms implementation | Stable | Tue Mar 19 13:18:33 2013 by Stefan Ritt |
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 with
supplied 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.
|
45
|
Thu May 7 09:14:25 2015 |
Christof Hanke | hanke@rzg.mpg.de | Script | systemd-unit file | Stable | 1 |
sample systemd-unit file.
Use it as you like. |
Attachment 1: elogd.service
|
[Unit]
Description=ELOG Daemon
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
ExecStart=@PREFIX@/elogd -D -c @PREFIX@/elog/elogd.cfg
StandardOutput=null
[Install]
WantedBy=multi-user.target
|
46
|
Fri Jul 31 13:52:32 2015 |
TorstenJ | torsten.jakob@jet-services.com | Web site | Problem with Internet Explorer when saving an entry | Stable | Fri May 31 14:20:43 2019 by Stefan Ritt |
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 |
49
|
Wed May 11 09:35:23 2016 |
Hanno Perrey | hanno.perrey@nuclear.lu.se | Script | Re: Re: Custom input forms implementation | Stable | Wed May 11 09:43:34 2016 by Hanno Perrey |
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 |
Attachment 1: shiftcheck.html
|
50
|
Tue Jul 26 10:16:22 2016 |
Andreas Luedeke | simon.ebner@psi.ch | Script | Python module to read/write/edit/reply/delete ELOG entries | Stable | Tue Jul 26 10:26:34 2016 by Andreas Luedeke |
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 |
52
|
Fri Sep 15 17:19:47 2017 |
Andreas Luedeke | andreas.luedeke@psi.ch | Script | Check logbook files for wrong references | Stable | Fri Sep 15 17:41:41 2017 by Andreas Luedeke |
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. |
Attachment 1: logcheck
|
#!/usr/bin/perl
$cmd=q/find * -noleaf -maxdepth 0 -wholename Backup -prune -o -wholename en -prune -o -type d -exec printf '%s:' {} + /;
#print $cmd;
$logf=q/*\/[0-9][0-9][01][0-9][0-3][0-9]a.log/;
open(INP,$cmd . "2>/dev/null |") || die "can't open " . $cmd . ": $!";
$list=<INP>;
close(INP);
#print "list=" . $list ."\n";
foreach $dir (split(":",$list)) {
chomp $dir;
if (length($dir) > 1) {
print "Check \"" . $dir . "\"\n";
$files=$dir . "/" . $logf;
$cmd="grep ^In.reply.to: " . $files . " 2>/dev/null | cut -d \" \" -f 4 | sort -nu |";
open(INPB,$cmd) || die "can't open " . $cmd . ": $!";
while (<INPB>) {
chomp;
$id=$_;
$cmd="grep '[\$\]\@MID\@[\$\]:.$id\$' $files |";
open(INPC,$cmd) || die "can't open " . $cmd . ": $!";
$c=0;
while (<INPC>) {$c++};
close(INPC);
if ($c != 1) {
print "### error: reference to entry $id, that exists $c times. Reference is:\n";
$cmd="grep -C 3 '^In.reply.to:.$id\$' $files |";
#print $cmd;
open(INPD,$cmd) || die "can't open " . $cmd . ": $!";
while (<INPD>) {
print "### ".$_;
}
close(INPD);
}
}
close(INPB);
}
}
|
53
|
Sat Sep 16 15:47:16 2017 |
David Pilgram | David.Pilgram@epost.org.uk | Script | Re: Check logbook files for wrong references | Stable | Sat Sep 16 15:52:58 2017 by David Pilgram |
I had to modify the script because I'm still on elog 2.9.2, where there are not subdirectories (by year) for
each 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.
|
|