Added MkDocs files
442
mkdocs/docs/adminguide.md
Normal file
@ -0,0 +1,442 @@
|
||||
# ELOG Administrator's Guide
|
||||
|
||||
*How to set up and run your very own ELOG server*
|
||||
|
||||
---
|
||||
|
||||
## Installing and running on Linux
|
||||
|
||||
|
||||
### Installation from the RPM file
|
||||
|
||||
Since version 2.0, ELOG contains a RPM file which eases the
|
||||
installation. Get the file
|
||||
**`elog-x.x.x-x.i386.rpm`** from the `[download](http://elog.psi.ch/elog/download/RPMS/)` section and execute as root **`"rpm -i elog-x.x.x-x.i386.rpm"`**. This will install the `**elogd**` daemon in **`/usr/local/sbin`** and the **`elog`** and **`elconv`** programs in **`/usr/local/bin`**. The sample configuration file **`elogd.cfg`** together with the sample logbook will be installed under **`/usr/local/elog`** and the documentation goes to **`/usr/share/doc`**. The elogd startup script will be installed at **`/etc/rc.d/init.d/elogd`**. To start the daemon, enter `
|
||||
|
||||
- `/etc/rc.d/init.d/elogd start`
|
||||
|
||||
It will listen under the port specified in
|
||||
**`/usr/local/elog/elogd.cfg`** which is 8080 by default. So one can
|
||||
connect using any browser with the URL:
|
||||
|
||||
- `http://localhost:8080`
|
||||
|
||||
To start the daemon automatically, enter:
|
||||
|
||||
- `chkconfig --add elogd`
|
||||
`chkconfig --level 345 elogd on`
|
||||
|
||||
which will start the daemon on run levels 3,4 and 5 after the next
|
||||
reboot.
|
||||
|
||||
Note that the RPM installation creates a user and group **`elog`**,
|
||||
under which the daemon runs.
|
||||
|
||||
To start the daemon on non-RedHat systems, like SuSE or Solaris, a more
|
||||
generic startup scrips has been provided by Steve Jones in the
|
||||
[Contributions](http://elog.psi.ch/elogs/Contributions/9) section.
|
||||
|
||||
### Installation from the tarball
|
||||
|
||||
[Download](http://elog.psi.ch/elog/download/) the latest
|
||||
**`elog-x.x.x.tar.gz`** package.`
|
||||
|
||||
Make sure you have the **libssl-dev** package installed. Consult your
|
||||
distribution for details.
|
||||
|
||||
Expand the compressed TAR file with
|
||||
**`tar -xzvf elog-x.x.x.tar.gz`**. This creates a subdirectory **`elog-x.x.x`** where x.x.x is the version number. In that directory execute **`make`**, which creates the executables **`elogd`**, **`elog`** and **`elconv`**. On some systems like OpenBSD you have to execut **`gmake`**. These executables can then be copied to a convenient place like **`/usr/local/bin`** or **`~/bin`**. Alternatively, a **`"make install"`** will copy the daemon **`elogd`** to **`SDESTDIR`** (by default **`/usr/local/sbin`**) and the other files to **`DESTDIR`** (by default **`/usr/local/bin`**). These directories can be changed in the Makefile. The **`elogd`** executable can be started manually for testing with : `
|
||||
|
||||
`elogd -p 8080`
|
||||
|
||||
where the **-p** flag specifies the port. Without the **-p** flag, the
|
||||
server uses the standard WWW port 80. Note that ports below 1024 can
|
||||
only be used if **`elogd`** is started under root, or the "*sticky
|
||||
bit*" is set on the executable.
|
||||
|
||||
When **`elogd`** is started under root, it attaches to the specified
|
||||
port and tries to fall-back to a non-root account. This is necessary to
|
||||
avoid security problems. It looks in the configuration file for the
|
||||
statements **`Usr`** and **`Grp.`**. If found, **`elogd`** uses that
|
||||
user and goupe name to run under. The names must of course be present on
|
||||
the system (usually **`/etc/passwd` and **`/etc/group`). If the
|
||||
statements **`Usr`** and **`Grp.`** are not present, **`elogd`** tries
|
||||
user and group **`elog`**, then the default user and group (normally
|
||||
**`nogroup`** and **`nobody`**). Care has to be taken that **`elogd`**,
|
||||
when running under the specific user and group account, has read and
|
||||
write access to the configuration file and logbook directories. Note
|
||||
that the RPM installation automatically creates a user and group
|
||||
**`elog`**.
|
||||
|
||||
If the program complains with something like "*cannot bind to
|
||||
port*...", it could be that the network is not started on the Linux
|
||||
box. This can be checked with the **`/sbin/ifconfig`** program, which
|
||||
must show that **`eth0`** is up and running.
|
||||
|
||||
The distribution contains a sample configuration file **`elogd.cfg`**
|
||||
and a demo logbook in the *demo* subdirectory. If the **`elogd`** server
|
||||
is started in the *elogd-x.x.x* directory, the demo logbook can be
|
||||
directly accessed with a browser by specifying the URL
|
||||
**http://localhost:8080** (or whatever port you started the elog daemon
|
||||
on). If the **`elogd`** server is started in some other directory, you
|
||||
must specify the full path of the **`elogd`** file with the **"-c"**
|
||||
flag and change the **Data dir =** option in the configuration file to a
|
||||
full path like **/usr/local/elog**.
|
||||
|
||||
Once testing is complete, **`elogd`** will typically be started with the
|
||||
**`-D`** flag to run as a *daemon* in the background, like this :
|
||||
|
||||
`elogd -p 8080 -c /usr/local/elog/elogd.cfg -D`
|
||||
|
||||
*Note that it is mandatory to specify the full path for the **`elogd`**
|
||||
file when started as a daemon.*
|
||||
|
||||
To test the daemon, connect to your host via :
|
||||
|
||||
`http://your.host:8080/`
|
||||
|
||||
If port 80 is used, the port can be omitted in the URL. If several
|
||||
logbooks are defined on a host, they can be specified in the URL :
|
||||
|
||||
`http://your.host/<logbook>`
|
||||
|
||||
where `<logbook>` is the name of the logbook.
|
||||
|
||||
The contents of the all-important configuration file **`elogd.cfg`** are
|
||||
described in [Config](config.md).
|
||||
|
||||
## Notes for various platforms
|
||||
|
||||
This section contains notes for installing and running elog under various operating systems.
|
||||
|
||||
### Mac OS X
|
||||
|
||||
Under Mac OSX, **ELOG** must be compiled from the source code. The OSX
|
||||
command line tools (compiler & Co) must be available, which can be done
|
||||
thought he free Xcode package which can be obtained though the App
|
||||
Store. Once Xcode is installed, you can do a `xcode-select --install` to
|
||||
install the command line tools. After that, a simple `make` in in the
|
||||
elog directory does the job of compiling ELOG. If SSL support is needed
|
||||
(access via https://\...), you have to install OpenSSL and turn on SSL
|
||||
support in the Makefile by setting `USE_SSL = 1`. You can install
|
||||
OpenSSL for example through the [MacPorts](https://www.macports.org)
|
||||
project. After having installed MacPorts, you do a
|
||||
`sudo port install openssl`.
|
||||
|
||||
After successful compilation, you do a `sudo make install` to install
|
||||
all required files under the installation directory, which is by default
|
||||
`/usr/local/`. A subdirectory `/usr/local/elog` is created which
|
||||
contains a simple example logbook. The ELOG server can now be started
|
||||
either manually with
|
||||
|
||||
`/usr/local/sbin/elogd`
|
||||
|
||||
or through the daemon servics with
|
||||
|
||||
``` text
|
||||
sudo launchctl enable system/ch.psi.elogd
|
||||
sudo launchctl bootstrap system /Library/LaunchDaemons/ch.psi.elogd.plist
|
||||
```
|
||||
|
||||
To stop the service, use
|
||||
|
||||
``` text
|
||||
sudo launchctl bootout system /Library/LauchDaemons/ch.psi.elogd.plist
|
||||
sudo launchctl disable system/ch.psi.elogd
|
||||
```
|
||||
|
||||
### Debian
|
||||
|
||||
A Debian package is available under <https://tracker.debian.org/pkg/elog>.
|
||||
|
||||
### Solaris
|
||||
|
||||
[Martin Huber](mailto:huber@secaron.de) reports that under Solaris 7 the
|
||||
following command line is needed to compile elog:
|
||||
|
||||
`gcc -L/usr/lib/ -ldl -lresolv -lm -ldl -lnsl -lsocket elogd.c -o elogd`
|
||||
|
||||
With some combinations of Solaris servers and client-side browsers there
|
||||
have also been problems with **ELOG**'s *keep-alive* feature. In such a
|
||||
case you need to add the "**-k**" flag to the **`elogd`** command line
|
||||
to turn keep-alives off.
|
||||
|
||||
### FreeBSD
|
||||
|
||||
[David Otto](mailto:ottodavid@gmx.net) maintains the [ELOG port for
|
||||
FreeBSD](http://www.freshports.org/www/elog). To install ELOG on a
|
||||
FreeBSD system, you can simply type
|
||||
|
||||
``` text
|
||||
cd /usr/ports/www/elog
|
||||
make install clean
|
||||
```
|
||||
|
||||
## Running elogd under Apache
|
||||
|
||||
For cases where **`elogd`** should run under port 80 in parallel to an
|
||||
Apache server, Apache can be configured to run Elog in a subdirectory of
|
||||
Apache. Start **`elogd`** normally under port 8080 (or similarly) as
|
||||
noted above and make sure it's working there. Then put following
|
||||
redirection into the Apache configuration file:
|
||||
|
||||
``` text
|
||||
Redirect permanent /elog http://your.host.domain/elog/
|
||||
ProxyPass /elog/ http://your.host.domain:8080/
|
||||
```
|
||||
|
||||
Make sure that the Apache modules mod_proxy.c and mod_alias.c are
|
||||
activated. Justin Dieters \<enderak@yahoo.com\> reports that
|
||||
mod_proxy_http.c is also required. The *Redirect* statement is necessary
|
||||
to automatically append a "/" to a request like
|
||||
**`http://your.host.domain/elog`**. Apache then works as a proxy and forwards all requests staring with **`/elog`** to the elogd daemon.
|
||||
|
||||
**Note**: Do not put `"ProxyRequests On"` into your configuration file.
|
||||
This option is not necessary and can be misused for spamming and proxy
|
||||
forwarding of otherwise blocked sites.
|
||||
|
||||
Because **`elogd`** uses links to itself (for example in the email
|
||||
notification and the redirection after a submit), it has to know under
|
||||
which URL it is running. If you run it under a proxy, you have to add
|
||||
the line:
|
||||
|
||||
`URL = http://your.proxy.host/subdir/`
|
||||
|
||||
into elogd.cfg.
|
||||
|
||||
## Using apache authentication
|
||||
|
||||
It is also possible to login via an apache-auth module.
|
||||
In elogd.cfg you should use the keyword "Webserver" for
|
||||
Authentication:
|
||||
|
||||
`Authentication = Webserver`
|
||||
|
||||
This triggers elogd to use the environment variable "X-Forwarded-User"
|
||||
as the logged in user.
|
||||
A simple example of a apache configuration (including the proxy) is :
|
||||
|
||||
|
||||
``` text
|
||||
# this required to pass on the generated env-variable X-Forwarded-User to the proxy
|
||||
ProxyPassInterpolateEnv On
|
||||
|
||||
ProxyPass /elog/ http://your.host.domain:8080/
|
||||
|
||||
<Location "/elog">
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
AuthType Basic
|
||||
AuthName "elog-server"
|
||||
AuthUserFile "/opt/elog/htpasswd"
|
||||
require valid-user
|
||||
RequestHeader unset Authorization
|
||||
RequestHeader add X-Forwarded-User %{REMOTE_USER}s
|
||||
# elog doesn't like the '@', so we need to cut it
|
||||
RequestHeader edit X-Forwarded-User "@(.*)$" ""
|
||||
</Location>
|
||||
```
|
||||
|
||||
|
||||
## Installing ImageMagick
|
||||
|
||||
When images are attached to ELOG entries, thumbnails can be created for
|
||||
quick preview. This works also for PDF and PostScript files. ELOG
|
||||
forwards any image operation to the ImageMagic and GhostScript packages,
|
||||
which must be installed for this to work. While these packages are
|
||||
installed on most Linux systems, windows users have to download and
|
||||
install these pagages manually. ImageMagick can be obtained from
|
||||
[www.imagemagick.org](http://www.imagemagick.org/) and GhostScript can
|
||||
be obtained from <http://pages.cs.wisc.edu/~ghost/>. After the
|
||||
installation, it has to be made sure that both packages are in the path.
|
||||
This can be checked to open a command prompt and typing
|
||||
**`identify -version`**. This command should return someting like:
|
||||
|
||||
``` text
|
||||
C:\>identify -version
|
||||
Version: ImageMagick 6.3.8 01/25/08 Q16 http://www.imagemagick.org
|
||||
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC
|
||||
```
|
||||
|
||||
When ELOG is started interactively, it checks for the ImageMagick
|
||||
installation and shows a note if it is found:
|
||||
|
||||
``` text
|
||||
C:\Program Files\ELOG>elogd
|
||||
elogd 2.7.2 built Feb 21 2008, 20:00:42 revision 2051
|
||||
ImageMagick detected
|
||||
Indexing logbooks ... done
|
||||
Server listening on port 8080 ...
|
||||
```
|
||||
|
||||
If ImageMagick is not installed, the thumbnail functions are simply
|
||||
disabled, but ELOG can otherwise run normally.
|
||||
|
||||
## Installing and running in Windows
|
||||
|
||||
**ELOG** is distributed in binary (executable) form for Windows
|
||||
platforms. It will run happily in *console mode* (or "*DOS box*")
|
||||
under Windows 9x and ME. Under Windows NT and 2000 it is also possible
|
||||
to run it as a *service* (the Windows equivalent of a UNIX *daemon*).
|
||||
|
||||
[Download](http://elog.psi.ch/elog/download/windows) the latest
|
||||
**`elogxxx.exe`** file and execute it. The installer puts the **ELOG**
|
||||
system into a directory you specify and adds some menu shortcuts. With
|
||||
these shortcuts, the daemon `elogd.exe` can be started directly and the
|
||||
demo logbook can be accessed with the browser. Alternatively, the
|
||||
`elogd.exe` daemon can be registered as a service under Windows
|
||||
NT/2000/XP, so it gets started automatically when windows boots. This
|
||||
can be selected during installation or be done manually with the start
|
||||
menu shortcuts.
|
||||
|
||||
While the pre-2.5.3 methods of installing elogd.exe as a daemon (namely
|
||||
FireDaemon and srvany.exe) are still possible, they are not recommended
|
||||
any more.
|
||||
|
||||
Under Windows, the ports below 1024 can be used without restriction. So
|
||||
if no web server is running on the same PC the **ELOG** daemon can be
|
||||
started under the standard Web port 80. This is achieved by changing the
|
||||
**`port=8080`** option in `elogd.cfg` to
|
||||
**`port=80`**` and restarting elogd.`
|
||||
|
||||
## Server Configuration
|
||||
|
||||
[The **ELOG** daemon **`elogd`** can be executed with the following
|
||||
options :]{#config}
|
||||
|
||||
``` text
|
||||
elogd [-p port] [-n hostname/IP] [-C] [-m] [-M] [-D] [-c file] [-s dir] [-d dir] [-v] [-k] [-f file] [-x]
|
||||
|
||||
with :
|
||||
|
||||
`-p <port>` TCP port number to use for the http server (if other than 80)
|
||||
`-n <hostname or IP address>` in the case of a "multihomed" server, host name or IP address of the interface ELOG should run on
|
||||
`-C <url>` clone remote elogd configuration
|
||||
`-m` synchronize logbook(s) with remote server
|
||||
`-M` synchronize with removing deleted entries
|
||||
`-l <logbook>` optionally specify logbook for -m and -M commands
|
||||
`-D` become a daemon (Unix only)
|
||||
`-c <file>` specify the configuration file (full path mandatory if -D is used)
|
||||
`-s <dir>` specify resource directory (themes, icons, \...)
|
||||
`-d <dir>` specify logbook root directory
|
||||
`-v ` verbose output for debugging
|
||||
`-k ` do not use TCP keep-alive
|
||||
`-f <file>` specify PID file where elogd process ID is written when server is started
|
||||
`-x `enables execution of shell commands
|
||||
```
|
||||
|
||||
The appearance, functionality and behaviour of the various logbooks on
|
||||
an **ELOG** server are determined by the single **`elogd.cfg`** file in
|
||||
the **ELOG** installation directory.
|
||||
|
||||
This file may be edited directly from the file system, or from a form in
|
||||
the **ELOG** Web interface (when the *Config* menu item is available).
|
||||
In this case, changes are applied dynamically without having to restart
|
||||
the server. Instead of restarting the server, under Unix one can send a
|
||||
HUP signal like **`"killall -HUP elogd"`** to tell the server to re-read
|
||||
its configuration.
|
||||
|
||||
The many options of this unique but very important file are documented
|
||||
on the separate **[elogd.cfg syntax page](config.md)**.
|
||||
|
||||
To better control appearance and layout of the logbooks, **`elogd.cfg`**
|
||||
may optionally specify the use of additional files containing HTML code,
|
||||
and/or custom "*themes*" configurations. These need to be edited
|
||||
directly from the file system right now.
|
||||
|
||||
The meaning of the directory flags **`-s` and **`-d` is explained in the
|
||||
section covering the configuration options **`Resource dir` and
|
||||
**` Logbook dir` in the **[elogd.cfg
|
||||
description](config.md)**.********
|
||||
|
||||
## Secure Connections HOWTO
|
||||
|
||||
### Using elogd itself
|
||||
|
||||
Starting from version 2.7.3 on, the **`elogd`** program supports secure
|
||||
connections over the Secure Socker Layer (SSL) directly. **It is
|
||||
recommented to run elog only through secure HTTPS connections if
|
||||
passwords are used. Otherwise the passwords are send over the network in
|
||||
clear text and exposed to sniffing attacks**. To use SSL, put
|
||||
**`SSL = 1`** into the config file. If the **`URL =`** directive is
|
||||
used, make sure to use
|
||||
**`https://...`** instead of **`http://...`** there. The ELOG distribution contains a simple self-signed certificate in the `**ssl**` subdirectory. One can replace this certificate and key with a real ceritficate to avoid browser pop-up windows warning about the self-signed certificate. `
|
||||
|
||||
### Using Apache
|
||||
|
||||
Another possibility is to use the [Apache](http://httpd.apache.org) web
|
||||
server as a proxy server allowing secure connections. To do so, Apache
|
||||
has to be configured accordingly and a certificate has to be generated.
|
||||
See some [instructions](http://slacksite.com/apache/certificate.html) on
|
||||
how to create a certificate, and see *Running elogd under Apache* before
|
||||
on this page on how to run elogd under Apache. Once configured
|
||||
correctly, elogd can be accessed via *http://your.host* and via
|
||||
*https://your.host* simultaneously.
|
||||
|
||||
The redirection statement has to be changed to
|
||||
|
||||
``` text
|
||||
Redirect permanent /elog https://your.host.domain/elog/
|
||||
ProxyPass /elog/ http://your.host.domain:8080/
|
||||
```
|
||||
|
||||
and following has to be added to the section *"VirtualHOst \...:443* in
|
||||
/etc/httpd/conf.d/ssl.conf:
|
||||
|
||||
``` text
|
||||
# Proxy setup for Elog
|
||||
<Proxy *>
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Proxy>
|
||||
ProxyPass /elog/ http://host.where.elogd.is.running:8080/
|
||||
ProxyPassReverse /elog/ http://host.where.elogd.is.running:8080/
|
||||
```
|
||||
|
||||
Then, following URL statement has to be written to elogd.cfg:
|
||||
|
||||
`URL = https://your.host.domain/elog`
|
||||
|
||||
There is a more detailed step-by-step instructions at the [contributions
|
||||
section](http://elog.psi.ch/elogs/contributions/11).
|
||||
|
||||
### Using ssh
|
||||
|
||||
**`elogd`** can be accessed through a a SSH tunnel. To do so, open an
|
||||
SSH tunnel like:
|
||||
|
||||
`ssh -L 1234:your.server.name:8080 your.server.name`
|
||||
|
||||
This opens a secure tunnel from your local host, port 1234, to the
|
||||
server host where the **`elogd`** daemon is running on port 8080. Now
|
||||
you can access **`http://localhost:1234`** from your browser and reach
|
||||
**`elogd`** in a secure way.
|
||||
|
||||
## How It All Works
|
||||
|
||||
For the technically curious:
|
||||
|
||||
The concept of **ELOG** is very simple. The logbook functionality is
|
||||
implemented by a single daemon program, **`elogd`**, which is written in
|
||||
C. It contains an integrated Web server, which does not serve files like
|
||||
standard Web servers, but reads logbook entries from its database and
|
||||
formats them into HTML. Since only forms and tables are used, no Java or
|
||||
Javascript is necessary, which makes the logbook display very fast. The
|
||||
system does not use any images on purpose to reduce the amount of data
|
||||
to be transferred. Since the **ELOG** daemon contains its own *http*
|
||||
server, no additional server like Apache is required.
|
||||
|
||||
The "*database*" in which **ELOG** saves its entries is in plain ASCII
|
||||
format. One file is created for each day in the form **`YYMMDDa.log`**
|
||||
(where YY is the year, MM the month and DD the day). For ELOG versions
|
||||
1.x.x, the format was **`YYMMDD.log`**. Messages are separated
|
||||
internally by the string **`$@MID@$`**. If this string is entered in a
|
||||
message (main body text or attribute), it gets converted automatically
|
||||
in order not to invalidate the database structure.
|
||||
|
||||
If attachments are submitted, they are saved as separate files named
|
||||
**`YYMMDD_HHMMSS_name`** - where in addition to the date the time is
|
||||
specified and **`name`** is the original file name of the attachment. To
|
||||
copy the database to another computer, only the \*.log files and the
|
||||
attachment files need to be copied. To copy for example all files from
|
||||
March 2001, just select them with **`0103??a.log`** and **`0103??_*`**.
|
||||
2419
mkdocs/docs/config.md
Normal file
4
mkdocs/docs/contrib.md
Normal file
@ -0,0 +1,4 @@
|
||||
# ELOG Contributions
|
||||
|
||||
|
||||
ELOG contributions can now be found in a [separate logbook](http://elog.psi.ch/elogs/Contributions)
|
||||
3
mkdocs/docs/demo.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Demo
|
||||
|
||||
A dedicated [Demo Logbook](https://elog.psi.ch/elogs/Linux+Demo) is available as a playground.
|
||||
48
mkdocs/docs/download.md
Normal file
@ -0,0 +1,48 @@
|
||||
# ELOG download page
|
||||
|
||||
---
|
||||
|
||||
ELOG is distributed both as source code and as precompiled binaries for
|
||||
various platforms. In addition to major versions, minor releases are
|
||||
made containing bug fixes or some new and not yet completely debugged
|
||||
code. This is usually the case if some user asks for some new features,
|
||||
which are then implemented and sent to the user for testing. The minor
|
||||
releases are named **`x.y.z-r`** where **`r`** is the release number. A
|
||||
[web access](https://bitbucket.org/ritt/elog) to the source code
|
||||
contains the complete development history of ELOG, plus the newest fixes
|
||||
and features which might yet be in a release. To check out the GIT
|
||||
repository, use:
|
||||
|
||||
`git clone https://bitbucket.org/ritt/elog --recursive`
|
||||
|
||||
No tags are used, so it is recommended to always use the newest release
|
||||
from the \"master\" branch.
|
||||
|
||||
Building elogd requires the CMake system and is done in the traditional
|
||||
way:
|
||||
|
||||
``` text
|
||||
$ cd elog
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake ..
|
||||
$ make
|
||||
```
|
||||
|
||||
This will put the executables **`elogd`** and **`elog`** into the build
|
||||
directory, from where they can be moved to a system directory like
|
||||
**`/usr/local/sbin/elogd`**
|
||||
|
||||
News for each version can be seen in the
|
||||
[changelog](http://elog.psi.ch/elog/download/ChangeLog)
|
||||
|
||||
## Windows Binaries
|
||||
|
||||
The windows binaries are distributed with an automatic
|
||||
[installer](http://elog.psi.ch/elog/download/windows/elog-latest.exe).
|
||||
Execute the installer to install ELOG and to register the elogd server
|
||||
as a windows service. Previous windows versions can be found
|
||||
[here](http://elog.psi.ch/elog/download/windows/).
|
||||
|
||||
Note that the windows binaries are very much outdated and will be
|
||||
updated once the develop gets access again to a Windows PC.
|
||||
388
mkdocs/docs/faq.md
Normal file
@ -0,0 +1,388 @@
|
||||
# ELOG FAQ
|
||||
|
||||
**Frequently Asked Questions about usage and configuration**
|
||||
|
||||
Please check also the [ELOG Forum](http://elog.psi.ch/elogs/Forum).
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## How does one configure elog to display the last message by default
|
||||
|
||||
One can use the **`Start page`** option for that. The entry:
|
||||
|
||||
` Start page = 0?cmd=last `
|
||||
|
||||
shows the last message entry by default. To have the described behaviour
|
||||
for all logbooks, the above statements can be placed in the
|
||||
**`[global]`** section.
|
||||
|
||||
## Are there any plans to implement a MySQL back end?
|
||||
|
||||
No. The idea behind **ELOG** is that it is a *simple to use, simple to
|
||||
install* application. Many people use **ELOG** under Windows, and they
|
||||
even don't know what MySQL means. Other people like the flat file
|
||||
database format, because it's simple, easily accessible from other
|
||||
programs, and it's easy to backup certain days or months of the
|
||||
database (since the filenames contain the date). Since **ELOG** should
|
||||
be independent of any other package, some "switchable" backend between
|
||||
native **ELOG** format and MySQL would be needed, which is lots of work
|
||||
and not planned right now.
|
||||
|
||||
However, there are several contributions from other people who wrote
|
||||
scripts to put ELOG entries into a MySQL database. One is available at
|
||||
<http://elog.psi.ch/elogs/Forum/387>.
|
||||
|
||||
## Can I run the ELOG daemon from inside Apache or any other Web server?
|
||||
|
||||
No. The **ELOG** daemon was designed as a standalone server and it will
|
||||
stay like that in the future. The reason for that is that **`elogd`**
|
||||
should not rely on any other software. This is for example important for
|
||||
many people running **`elogd`** under Windows, and they have no clue how
|
||||
to install Apache for Windows. The installation and maintenance for
|
||||
**`elogd`** therefore becomes much simpler. To run **`elogd`** in
|
||||
parallel to an Apache server on port 80, use Apache as a proxy,
|
||||
following the instruction on the installation page ("Running elogd
|
||||
under Apache").
|
||||
|
||||
## I can access my logbook without any password, isn't that a security problem?
|
||||
|
||||
By default, no password is used in **ELOG**. This can be useful for
|
||||
public directories etc. that anybody should be able to read. To add
|
||||
password security, read the documentation under [Access
|
||||
control](config.md#access-control). The recommended setup is password file
|
||||
security with guest access.
|
||||
|
||||
Note that passwords are transferred over the network in plain text and
|
||||
therefore not secure. If this is a problem, a
|
||||
[secure](adminguide.md#secure-connections-howto) network connection should be used.
|
||||
|
||||
## I want a bookmark pointing to the last page where an attribute has a certain value
|
||||
|
||||
Use the URL:
|
||||
|
||||
`http://<your.host>/<logbook>/?cmd=Last&<attribute>=<value>`
|
||||
|
||||
This executes the "*Last*" command using a filter with
|
||||
**`<attribute>=<value>`**. The following command displays the same page,
|
||||
but also locks the attribute (checks the box next to `<attribute>`) so
|
||||
that browsing (next, previous, first, last) only shows pages with that
|
||||
attribute value.
|
||||
|
||||
`http://<your.host>/<logbook>/?cmd=Last&<attribute>=<value>&l<attribute>=1`
|
||||
|
||||
Note the `"l"` before the second attribute, as in `"*lAuthor=1*"`.
|
||||
|
||||
## I want a logbook with public read access (no password), but restricted write access
|
||||
|
||||
In an old version of the FAQ it has been stated here that one has to use
|
||||
two logbooks pointing to the same data directory. From Version 2.0.6 on,
|
||||
this can be accomplished much easier by the usage of the **"Guest menu
|
||||
command"**. Use a logbook with user level access (password file), and
|
||||
add menu lists like in the following example to the configuration file:
|
||||
|
||||
``` text
|
||||
Menu commands = New, Edit, Reply, Find, Last 10, Change password, Logout, Help
|
||||
Guest menu commands = Find, Last 10, Login, Help
|
||||
```
|
||||
|
||||
If users access the logbook without supplying a user name, they are
|
||||
treated like "guests" and see the "Guest menu commands", with which
|
||||
one cannot submit or edit logbook entries. If one hits the "login"
|
||||
button, a user can login with a user name/password and sees the normal
|
||||
menu commands, with which one can submit new logbook entries.
|
||||
|
||||
An optional self registration is possible by specifying
|
||||
|
||||
` Self register = 1 `
|
||||
|
||||
in the configuration file. New users can then create their own accounts.
|
||||
|
||||
## I have many loogbooks with password files, so if I add a user or want to change a password I have to do this for all logbooks which is painful.
|
||||
|
||||
You can have several logbooks point to the same password file. So if you
|
||||
change a user or password in that file, it becomes automatically
|
||||
available in all logbooks which use that file.
|
||||
|
||||
## How can I configure ELOG such that it displays something else than the message list by default?
|
||||
|
||||
There is a simple trick. You use the **"*Start page*"** option in the
|
||||
**`elogd`** file to redirect the start page to something else. Here are
|
||||
some examples:
|
||||
|
||||
``` text
|
||||
?npp=5 for the last 5 messages
|
||||
?last=7 show last 7 days (week)
|
||||
?cmd=New show the new message entry form
|
||||
?cmd=Find Show the "find" page
|
||||
?cmd=Search&<attrib>=<value> for a search with <attrib>=<value>
|
||||
```
|
||||
|
||||
The various URLs can be copied from the browser's address bar when
|
||||
doint various things there.
|
||||
|
||||
## I want to have additional commands specific to my lookbook
|
||||
|
||||
New commands can be added for example with the
|
||||
**`"Bottom text = bottom.html"`** option. To display all messages from
|
||||
last week and month of with "category = info", one can put following
|
||||
HTML code in bottom.html:
|
||||
|
||||
```
|
||||
<center>
|
||||
<a href="?last=7&Category=Info">Info from last week</a> |
|
||||
<a href="?last=31&Category=Info">Info from last month</a> |
|
||||
</center>
|
||||
```
|
||||
|
||||
Note that the parameters **`"last=7&Category=Info"`** applies a filter on
|
||||
the display. You can learn how to make these filters by looking at the
|
||||
URL in your browser when you submit a find command with certain
|
||||
options.
|
||||
|
||||
## How does one configure elog to disable editing of existing messages? I want a logbook where one can enter messages but not change them afterwards.
|
||||
|
||||
This works with the option **`Menu commands`**. By default, the menu
|
||||
commands **` Back, New, Edit, Delete, Reply, Find, Config, Help`** are
|
||||
dispalyed and allowed. To avoid editing (and deleting) of existing
|
||||
messages, one removes the two commands and puts following statement into
|
||||
**`elogd.cfg`:**
|
||||
|
||||
`Menu commands = Back, New, Reply, Find, Config, Help`
|
||||
|
||||
This prohibits the execution of the commands "Edit" and "Delete".
|
||||
|
||||
## How can I track various revisions of a message using the "edit" command?
|
||||
|
||||
There are two ways:
|
||||
|
||||
- Add an attribute which keeps the revision dates and names as follows:
|
||||
|
||||
``` text
|
||||
Attributes = Author, ..., Revisions
|
||||
Locked attributes = Revisions
|
||||
Subst on Edit Revisions = $Revisions<br>$date by $long_name
|
||||
```
|
||||
|
||||
The "Revisions" attribute cannot be modified manually (since it's
|
||||
locked). On each edit, the date and the current author is appedned to
|
||||
the previous revisions. The "\<br\>" puts a line break between the
|
||||
entries.
|
||||
|
||||
- Create a thread for each entry. In addition of having the date and
|
||||
author of different revisions, the message content is kept. To revise
|
||||
and entry, one hits "Reply" instead of "Edit" (one can disable the
|
||||
"Edit" command for example). If one puts following option into the
|
||||
configuration file:
|
||||
|
||||
|
||||
`Reply string = ""`
|
||||
|
||||
then the reply contains the original message without the usual "\> "
|
||||
at the beginning of each line. One can then edit the message and
|
||||
submit it. In the threaded message list display, one sees then the
|
||||
different revisions as a message thread.
|
||||
|
||||
## How can I enter a date which is different from current one?
|
||||
|
||||
Usually, the current date/time is recorded when you add a new entry. It
|
||||
might be, however, that one wants to enter "old" entries, or some
|
||||
entries with a date in the future (like a to-do list with a due date).
|
||||
To do that, on can add a new attribute (let's call it *Record date*, to
|
||||
be different from the pre-defined *Date*:
|
||||
|
||||
``` text
|
||||
Attributes = Author, ..., Record date
|
||||
Type Record date = date
|
||||
Preset Record date = $date
|
||||
Date format = %Y %m %d
|
||||
List Display = Record date, Author, ...
|
||||
Start page = ?rsort=Record date
|
||||
```
|
||||
|
||||
The *Preset Record date* statement sets the record date to the current
|
||||
date, but this can then of course edited during the message entry. The
|
||||
*List Display* and *Start page* statements show the record date as the
|
||||
first column in the summary display and also sort by that. Note the
|
||||
*Date format* showing first year, then month and day. This is necessary
|
||||
since sorting is done only lexically. Please note that the *List
|
||||
Display* was renamed recently. Prior to version 2.3.10, it was called
|
||||
*Display Search*.
|
||||
|
||||
## I cannot pass the login page, it's always redisplayed even if I put in the right password?
|
||||
|
||||
This can happen if you change the login policy, for example move the
|
||||
**`Password file =`** entry in the configuration file from a logbook
|
||||
section to the \[global\] section or back. In that case some old cookies
|
||||
could be stored in your browser, which confuse the system. Please delete
|
||||
your cookies in the browser to resolve this problem. Read your browser
|
||||
documentation on how to do that.
|
||||
|
||||
## How can I change an attribute for an entire thread? We have an attribute "open problem/fixed" which should be changed for the whole thread if that problem has been fixed.
|
||||
|
||||
This is a typical request of a bug-tracking set-up. Someone enters a
|
||||
request, opening a new thread. The expert(s) reply to the the request,
|
||||
and after a while, the request gets satisfied or the problem gets fixed.
|
||||
If an attribute like "status", having the options "open" and
|
||||
"fixed" could get changed for the whole thread, on could very easily
|
||||
search for all "open" problems.
|
||||
|
||||
Since this functionality is not implemented, an alternative strategy is
|
||||
recommended: Implement two (or more) logbooks. The first logbook has
|
||||
open issues, the second one has fixed ones. When an entry changes state,
|
||||
it simply has to be copied to the second logbook. This can be done by
|
||||
defining the menu command "move" in the config file, like:
|
||||
|
||||
`Menu commands = Back, New, Edit, Delete, Reply, Find, Move to, Config, Help`
|
||||
|
||||
Note the additional ***Move to***. This solution is even more elegant
|
||||
than having attributes changed in whole threads, since one has two
|
||||
separate logbooks, and can treat the second one more like an archive,
|
||||
make separate back-ups, or deleting some entries after some time, while
|
||||
keeping the open issues untouched.
|
||||
|
||||
## Can I use RSS feeds with password protected logbooks?
|
||||
|
||||
RSS feeds normally only work for logbooks which have at least public
|
||||
read access (via the guest menu commands). There is however a way to
|
||||
allow only restricted read access and still use RSS feeds. This is done
|
||||
by adding an additional read password via the
|
||||
**`elogd -r <pwd> -l <logbook>`** command. This password (username may
|
||||
be any) can then be used in an RSS reader for restricted access. One
|
||||
reader which has been successfully used with this kind of authentication
|
||||
is [RSSReader](http://www.rssreader.com).
|
||||
|
||||
## How can I make a whole thread open or closed?
|
||||
|
||||
Sometime people want to mark a whole thread in a way. An example is a
|
||||
to-do list, where they want a special icon on high priority things, and
|
||||
have this icon disappear one the task is finished. This can be easily
|
||||
done with icons. The configuration could look like this:
|
||||
|
||||
``` text
|
||||
Attributes = Author, Status, Subject
|
||||
IOptions Status = icon1.gif, icon2.gif, icon4.gif
|
||||
Preset Status = icon4.gif
|
||||
Preset on reply status = icon2.gif
|
||||
Icon comment icon1.gif = Closed entry
|
||||
Icon comment icon4.gif = Open entry
|
||||
Thread display = $Author $Subject
|
||||
Thread icon = Status
|
||||
```
|
||||
|
||||
New entries get an exclamation mark icon for example ("Preset status =
|
||||
..."). Replies to this entry get a reply icon. Once the thread should
|
||||
be closed, one simple edits the top entry in that thread and changes the
|
||||
icon. The icon1.gif from the distribution is maybe not ideally suited
|
||||
for that, but one could make a green check mark icon for example for
|
||||
that. The "Thread display" and "Thread icon" make this icon appear
|
||||
at the left side of the threaded display.
|
||||
|
||||
An alternative approach would be to use two logbooks. The first one
|
||||
receive all new entries ("open items"). Once an entry (with its
|
||||
replies) gets closed, it must be moved manually to the second logbook
|
||||
("closed items"). This can be done with the "Move To" command (see
|
||||
"menu commands" in config file). This way one nicely separates open
|
||||
and closed items in two separate logbooks. One can still search both
|
||||
logbooks at the same time if one checks "Search all logbooks" in the
|
||||
find page.
|
||||
|
||||
Starting from elog version 2.7.7, there now even a third way to do this.
|
||||
With an additional line in the configuration file: Collapse tn last = 1
|
||||
(in fact the default, but to be explicit), then when the thread is ready
|
||||
to be marked as closed, select the "closed entry" icon when writing
|
||||
the last entry. When the entries are viewed in "threaded" mode, then
|
||||
the closed entry icon appears on the last entry; and when in "threaded,
|
||||
collapsed" mode, then the closed entry icon appears in the one line
|
||||
that represents that whole thread.
|
||||
|
||||
## Does elog have a spell checker?
|
||||
|
||||
No, but you can use any spell checker which works with your browser.
|
||||
Examples are [IESpell](http://www.iespellc.com) for Internet Explorer
|
||||
and [SpellBound](http://spellbound.sourceforge.net) for Mozilla-based
|
||||
browsers.
|
||||
|
||||
## Why are entries with large attachments submitted so slowly?
|
||||
|
||||
If email notifications are used, the ELOG program has to pass these
|
||||
attachments to the email server, which might take quite some time. Some
|
||||
email servers even don't allow to forward attachments if they are
|
||||
larger than a few mega bytes. In that one can simply turn off the
|
||||
forwarding of email attachments with
|
||||
|
||||
`Email format = 111`
|
||||
|
||||
this causes only the attachment names being forwarded, not the
|
||||
attachments themselves.
|
||||
|
||||
## The elgod daemon crashes from time to time, what can I do?
|
||||
|
||||
Bugs are constantly fixed inside elogd so a upgrade to the current
|
||||
version is recommended as a first measrue. If that does not help, the
|
||||
key will be the reproducibility of the crash. I only can fix problems if
|
||||
I can reproduce them. Sometimes it's related to strange logbook entries
|
||||
which cause elogd to crash when they are edited. So if there is a way to
|
||||
reproducible trigger the problem, I need the files and confiration
|
||||
related with it. If I can reproduce it in my local installation, I can
|
||||
fix it pretty soon.
|
||||
|
||||
If that is not possible, an alternative is to run elgod under a
|
||||
debugger, and do a stack trace if the program dies. Under linux, this
|
||||
can be done using the gdb debugger, which might look like this:
|
||||
|
||||
``` text
|
||||
[~/elog]$ gdb ./elogd
|
||||
GNU gdb Red Hat Linux (6.5-25.el5rh)
|
||||
...
|
||||
|
||||
(gdb) run
|
||||
Starting program: /afs/psi.ch/user/r/ritt/elog/elogd
|
||||
elogd 2.7.5 built Dec 2 2008, 10:47:09 revision 2147
|
||||
ImageMagick detected
|
||||
Indexing logbooks ... test
|
||||
|
||||
Program received signal SIGSEGV, Segmentation fault.
|
||||
0x08054beb in el_index_logbooks () at src/elogd.c:3892
|
||||
3892 *p = (char)1;
|
||||
(gdb) where
|
||||
#0 0x08054beb in el_index_logbooks () at src/elogd.c:3892
|
||||
#1 0x080b8774 in server_loop () at src/elogd.c:27565
|
||||
#2 0x080bbdd5 in main (argc=1, argv=0xbfee5b54) at src/elogd.c:28923
|
||||
(gdb)
|
||||
```
|
||||
|
||||
So the basic command is to make a stack trace with "where" after a
|
||||
segmentation fault. This tells me where in the code something wrong
|
||||
happened (in this case it was inside the function el_index_logbooks() at
|
||||
line 3892. Please send me this information and I will try then to figure
|
||||
out what was wrong.
|
||||
|
||||
## How can I create an ELOG entry automatically from a script?
|
||||
|
||||
The [User's
|
||||
Guide](userguide.md#elog-command-line-client) describes the standalone "elog"
|
||||
utility, which can be used from a script or from another program to
|
||||
submit an automatic email entry. This works locally or remotely, with
|
||||
optional attachments. Enter "elog -h" for a full list of options. The
|
||||
elog utility is part of the distribution and resides in the same
|
||||
directory as the elogd daemon.
|
||||
|
||||
## I want to notify different people for different things, how do I set up this?
|
||||
|
||||
Assume you want to send an email notification to person A for a problem
|
||||
report, to person B for problem fix and so on. The simplest way is to
|
||||
use the `Email <attribute> <value> = <email address>` syntax. So you
|
||||
could set-up following configuration:
|
||||
|
||||
``` text
|
||||
Attributes = Author, Type
|
||||
Options Type = Problem Report, Problem Fix
|
||||
Email Type Problem Report = person.a@elog.com
|
||||
Email Type Problem Fix = person.b@elog.com
|
||||
```
|
||||
|
||||
If you want to select email addresses directly from a list, you can do
|
||||
the set-up as following: Attributes = Author, Notify MOptions Notify =
|
||||
Person A, Person B Email Notify Person A = person.a@elog.com Email
|
||||
Notify Person B = person.b@elog.com This way you can for each entry
|
||||
select one or more people to be notified from the pre-defined list.
|
||||
3
mkdocs/docs/forum.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Forum
|
||||
|
||||
A dedicated [discussion forum](https://elog.psi.ch/elogs/Forum) running elog itself is used for various feedback and questions around elog.
|
||||
BIN
mkdocs/docs/img/cell_style.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
mkdocs/docs/img/elog.gif
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
mkdocs/docs/img/elog_thumb.gif
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
mkdocs/docs/img/hierarchy.gif
Executable file
|
After Width: | Height: | Size: 10 KiB |
BIN
mkdocs/docs/img/live_bookmarks.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
mkdocs/docs/img/rss.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
mkdocs/docs/img/sync.gif
Executable file
|
After Width: | Height: | Size: 23 KiB |
BIN
mkdocs/docs/img/tabs.gif
Executable file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
mkdocs/docs/img/theme1.jpg
Executable file
|
After Width: | Height: | Size: 83 KiB |
BIN
mkdocs/docs/img/theme2.jpg
Executable file
|
After Width: | Height: | Size: 84 KiB |
BIN
mkdocs/docs/img/thumbnail.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
144
mkdocs/docs/index.md
Normal file
@ -0,0 +1,144 @@
|
||||
# The ELOG Home Page
|
||||
|
||||
Home of the *Electronic Logbook* package by [Stefan
|
||||
Ritt](mailto:Stefan.Ritt@psi.ch)
|
||||
|
||||
*Current version: 3.1.4*
|
||||
|
||||
---
|
||||
|
||||
## What is ELOG ?
|
||||
|
||||
**ELOG** is part of a family of applications known as **weblog*s* .
|
||||
Their general purpose is :
|
||||
|
||||
1. to make it easy for people to put information online in a
|
||||
chronological fashion, in the form of short, time-stamped text
|
||||
messages ("entries") with optional HTML markup for presentation,
|
||||
and optional file attachments (images, archives, etc.)
|
||||
2. to make it easy for other people to access this information through
|
||||
a Web interface, browse entries, search, download files, and
|
||||
optionally add, update, delete or comment on entries.
|
||||
|
||||
**ELOG** is a remarkable implementation of a *weblog* in at least two
|
||||
respects :
|
||||
|
||||
- its simplicity of use : you don't need to be a seasoned server
|
||||
operator and/or an experimented database administrator to run **ELOG**
|
||||
; one executable file (under Unix or Windows), a simple configuration
|
||||
text file, and it works. No Web server or relational database
|
||||
required. It is also easy to translate the interface to the
|
||||
appropriate language for your users.
|
||||
- its versatility : through its single configuration file, **ELOG** can
|
||||
be made to display an infinity of variants of the *weblog* concept.
|
||||
There are options for what to display, how to display it, what
|
||||
commands are available and to whom, access control, etc. Moreover, a
|
||||
single server can host several **weblog*s*, and each *weblog* can be
|
||||
totally different from the rest.
|
||||
|
||||
## Screen shots
|
||||
|
||||
<a href="elog/elog.gif" target="_blank">
|
||||
<img src="img/elog_thumb.gif" alt="thumb" style="float:left; margin:0 1em 1em 0; width:200px;">
|
||||
</a>
|
||||
|
||||
On the left upper panel is a typical logbook page displayed by Netscape Navigator. Each
|
||||
logbook page can contain attachments in a similar way to emails. This makes it possible
|
||||
to store images or text files and retrieve them easily. You could for example attach a sample
|
||||
configuration file which can later be copied to the local machine with the "*Save As\...*"
|
||||
function of the Web browser.
|
||||
|
||||
Several logbooks can be served though a single **ELOG** server. Each logbook can use different
|
||||
attributes for its entries. The logbook can then be searched using these attributes. The
|
||||
right pane on the left image shows a search for all entries with attribute "*Type*" equal to
|
||||
"*Configuration*", and the lower pane shows the search result. It is also possible to use
|
||||
full-text search in attributes and the entry body.
|
||||
|
||||
While logbook entries are usually displayed one entry per page, they can also be listed
|
||||
consecutively which makes it easy to produce a paper printout of a logbook.
|
||||
|
||||
Logbook pages can be edited or deleted. This feature can be turned off in the configuration
|
||||
file so that a logbook entries cannot be changed after being submitted.
|
||||
|
||||
An additional feature is the automatic generation of a notification email messages
|
||||
based on a certain type or category of a logbook entry.
|
||||
|
||||
Also try out the **[online demo](http://elog.psi.ch/elogs/Linux%20Demo/)**
|
||||
|
||||
## Use cases
|
||||
|
||||
The features of **ELOG** make it useful for several applications:
|
||||
|
||||
- **Personal Logbooks**. Personal notes can be written into **ELOG** and
|
||||
can then be retrieved from anywhere with a Web browser. This makes it
|
||||
handy for PC supporters who have to go around in companies or
|
||||
laboratories and don\'t want to carry their paper logbook with them.
|
||||
The same holds true for people traveling around a lot. The logbook
|
||||
database consists of plain ASCII files which can copied easily between
|
||||
different computers to have local access, for example on a notebook
|
||||
with no network connection.
|
||||
- **Shared Logbooks**. Logbooks can be shared by several people, for
|
||||
reading and optionally for writing. This way workgroups can share and
|
||||
exchange information like in a (simplified) news group. This is
|
||||
supported by the *Reply* command in **ELOG** which creates
|
||||
"*threads*" of entries. Users can be notified by email when new
|
||||
entries are added to the logbook. Compared to that of a news server,
|
||||
the installation of **ELOG** is much simpler.
|
||||
- **Small Databases**. Since arbitrary attributes can be defined for a
|
||||
logbook, it can be used as a small database with search facilities.
|
||||
- **Problem collections**. A system can consist of two logbooks, in one
|
||||
of which users enter bugs or problems. If someone adds a problem, an
|
||||
email is automatically sent to the administrator, who can then copy
|
||||
the entry to the second logbook and add the solution to the problem.
|
||||
Users can then look up all fixed problems.
|
||||
- **Shift Logbooks**. If the *Allow delete* and *Allow edit* flags are
|
||||
off, an entry cannot be modified once it\'s been entered. This can be
|
||||
useful for shift logbooks for example in accelerator control rooms
|
||||
where each entry becomes a "*document*" with a time and author
|
||||
stamp. **ELOG** was originally developed as a shift logbook for the
|
||||
[PiBeta](http://pibeta.psi.ch) and [Muegamma](http://meg.psi.ch)
|
||||
particle experiments at [PSI](http://www.psi.ch).
|
||||
- **File collections**. Since files can be attached to **ELOG** entries,
|
||||
the system can be used to store and retrieve files. This can be used
|
||||
to store configuration files, which need to be accessible by several
|
||||
people over the web, or to store images. Since **ELOG** features an
|
||||
elaborate query facility, entries can be searched for by specifying
|
||||
several categories.
|
||||
|
||||
## License
|
||||
|
||||
**ELOG** is released under the [GNU Public
|
||||
License](http://www.gnu.org/copyleft/gpl.html) .
|
||||
|
||||
## Credits
|
||||
|
||||
The author would like to give credits to following people:
|
||||
|
||||
- [Fred Pacquier](mailto:fredp@dial.oleane.com) for this Web site and
|
||||
the French translation
|
||||
- [Recai Oktas](mailto:roktas@omu.edu.tr) and [Roger
|
||||
Kalt](mailto:roger.kalt@psi.ch) for the Debian package
|
||||
- [djek](mailto:djek@xs4all.nl) for the Dutch translation
|
||||
- [Heiko Scheit](mailto:Heiko.Scheit@mpi-hd.mpg.de) for many bug fixes
|
||||
and fruitful discussions
|
||||
- [Julio Calvo](mailto:jhcalvo@arnet.com.ar) for the Spanish translation
|
||||
- [Emiliano 'AlberT' Gabrielli](mailto:AlberT@SuperAlberT.it)
|
||||
for his idea of scaling attached images
|
||||
- [Andreas Luedeke](mailto:andreas.luedeke@psi.ch)
|
||||
for continuing user support and deployment of ELOG at PSI
|
||||
|
||||
## Talks and presentations
|
||||
|
||||
Here are some talks and presentations given at various occasions:
|
||||
|
||||
- Seminar at KIT, Karlsruhe, Jan. 2015. [Introduction
|
||||
talk](https://elog.psi.ch/elog/talks/2015_1_intro.pptx) by Stefan
|
||||
Ritt.
|
||||
- Seminar at KIT, Karlsruhe, Jan. 2015. [Application of
|
||||
ELOG](http://elog.psi.ch/elog/talks/2015_1_accel.pptx) for accelerator
|
||||
operation at PSI by [Andreas Luedeke](mailto:andreas.luedeke@psi.ch).
|
||||
|
||||
---
|
||||
|
||||
*Content by [Stefan Ritt](https://www.psi.ch/en/ltp-muon-physics/people/stefan-ritt), Web pages
|
||||
by [Fred Pacquier](mailto:fredp@mygale.org)*
|
||||
270
mkdocs/docs/strftime.txt
Normal file
@ -0,0 +1,270 @@
|
||||
NAME
|
||||
strftime - convert date and time to a string
|
||||
|
||||
SYNOPSIS
|
||||
#include <time.h>
|
||||
|
||||
size_t strftime(char *restrict s, size_t maxsize,
|
||||
const char *restrict format, const struct tm *restrict
|
||||
timeptr);
|
||||
|
||||
DESCRIPTION
|
||||
The strftime() function shall place bytes into the array pointed to by
|
||||
s as controlled by the string pointed to by format. The format is a
|
||||
character string, beginning and ending in its initial shift state, if
|
||||
any. The format string consists of zero or more conversion specifica-
|
||||
tions and ordinary characters. A conversion specification consists of
|
||||
a â%â character, possibly followed by an E or O modifier, and a termi-
|
||||
nating conversion specifier character that determines the conversion
|
||||
specificationâs behavior. All ordinary characters (including the ter-
|
||||
minating null byte) are copied unchanged into the array. If copying
|
||||
takes place between objects that overlap, the behavior is undefined.
|
||||
No more than maxsize bytes are placed into the array. Each conversion
|
||||
specifier is replaced by appropriate characters as described in the
|
||||
following list. The appropriate characters are determined using the
|
||||
LC_TIME category of the current locale and by the values of zero or
|
||||
more members of the broken-down time structure pointed to by timeptr,
|
||||
as specified in brackets in the description. If any of the specified
|
||||
values are outside the normal range, the characters stored are unspec-
|
||||
ified.
|
||||
|
||||
Local timezone information is used as though strftime() called
|
||||
tzset().
|
||||
|
||||
The following conversion specifications are supported:
|
||||
|
||||
%a Replaced by the localeâs abbreviated weekday name. [ tm_wday]
|
||||
|
||||
%A Replaced by the localeâs full weekday name. [ tm_wday]
|
||||
|
||||
%b Replaced by the localeâs abbreviated month name. [ tm_mon]
|
||||
|
||||
%B Replaced by the localeâs full month name. [ tm_mon]
|
||||
|
||||
%c Replaced by the localeâs appropriate date and time representa-
|
||||
tion. (See the Base Definitions volume of
|
||||
IEEE Std 1003.1-2001, <time.h>.)
|
||||
|
||||
%C Replaced by the year divided by 100 and truncated to an inte-
|
||||
ger, as a decimal number [00,99]. [ tm_year]
|
||||
|
||||
%d Replaced by the day of the month as a decimal number [01,31]. [
|
||||
tm_mday]
|
||||
|
||||
%D Equivalent to %m / %d / %y . [ tm_mon, tm_mday, tm_year]
|
||||
|
||||
%e Replaced by the day of the month as a decimal number [1,31]; a
|
||||
single digit is preceded by a space. [ tm_mday]
|
||||
|
||||
%F Equivalent to %Y - %m - %d (the ISO 8601:2000 standard date
|
||||
format). [ tm_year, tm_mon, tm_mday]
|
||||
|
||||
%g Replaced by the last 2 digits of the week-based year (see
|
||||
below) as a decimal number [00,99]. [ tm_year, tm_wday,
|
||||
tm_yday]
|
||||
|
||||
%G Replaced by the week-based year (see below) as a decimal number
|
||||
(for example, 1977). [ tm_year, tm_wday, tm_yday]
|
||||
|
||||
%h Equivalent to %b . [ tm_mon]
|
||||
|
||||
%H Replaced by the hour (24-hour clock) as a decimal number
|
||||
[00,23]. [ tm_hour]
|
||||
|
||||
%I Replaced by the hour (12-hour clock) as a decimal number
|
||||
[01,12]. [ tm_hour]
|
||||
|
||||
%j Replaced by the day of the year as a decimal number [001,366].
|
||||
[ tm_yday]
|
||||
|
||||
%m Replaced by the month as a decimal number [01,12]. [ tm_mon]
|
||||
|
||||
%M Replaced by the minute as a decimal number [00,59]. [ tm_min]
|
||||
|
||||
%n Replaced by a <newline>.
|
||||
|
||||
%p Replaced by the localeâs equivalent of either a.m. or p.m. [
|
||||
tm_hour]
|
||||
|
||||
%r Replaced by the time in a.m. and p.m. notation; in the POSIX
|
||||
locale this shall be equivalent to %I : %M : %S %p . [
|
||||
tm_hour, tm_min, tm_sec]
|
||||
|
||||
%R Replaced by the time in 24-hour notation ( %H : %M ). [
|
||||
tm_hour, tm_min]
|
||||
|
||||
%S Replaced by the second as a decimal number [00,60]. [ tm_sec]
|
||||
|
||||
%t Replaced by a <tab>.
|
||||
|
||||
%T Replaced by the time ( %H : %M : %S ). [ tm_hour, tm_min,
|
||||
tm_sec]
|
||||
|
||||
%u Replaced by the weekday as a decimal number [1,7], with 1 rep-
|
||||
resenting Monday. [ tm_wday]
|
||||
|
||||
%U Replaced by the week number of the year as a decimal number
|
||||
[00,53]. The first Sunday of January is the first day of week
|
||||
1; days in the new year before this are in week 0. [ tm_year,
|
||||
tm_wday, tm_yday]
|
||||
|
||||
%V Replaced by the week number of the year (Monday as the first
|
||||
day of the week) as a decimal number [01,53]. If the week con-
|
||||
taining 1 January has four or more days in the new year, then
|
||||
it is considered week 1. Otherwise, it is the last week of the
|
||||
previous year, and the next week is week 1. Both January 4th
|
||||
and the first Thursday of January are always in week 1. [
|
||||
tm_year, tm_wday, tm_yday]
|
||||
|
||||
%w Replaced by the weekday as a decimal number [0,6], with 0 rep-
|
||||
resenting Sunday. [ tm_wday]
|
||||
|
||||
%W Replaced by the week number of the year as a decimal number
|
||||
[00,53]. The first Monday of January is the first day of week
|
||||
1; days in the new year before this are in week 0. [ tm_year,
|
||||
tm_wday, tm_yday]
|
||||
|
||||
%x Replaced by the localeâs appropriate date representation. (See
|
||||
the Base Definitions volume of IEEE Std 1003.1-2001, <time.h>.)
|
||||
|
||||
%X Replaced by the localeâs appropriate time representation. (See
|
||||
the Base Definitions volume of IEEE Std 1003.1-2001, <time.h>.)
|
||||
|
||||
%y Replaced by the last two digits of the year as a decimal number
|
||||
[00,99]. [ tm_year]
|
||||
|
||||
%Y Replaced by the year as a decimal number (for example, 1997). [
|
||||
tm_year]
|
||||
|
||||
%z Replaced by the offset from UTC in the ISO 8601:2000 standard
|
||||
format ( +hhmm or -hhmm ), or by no characters if no timezone
|
||||
is determinable. For example, "-0430" means 4 hours 30 minutes
|
||||
behind UTC (west of Greenwich). If tm_isdst is zero, the
|
||||
standard time offset is used. If tm_isdst is greater than zero,
|
||||
the daylight savings time offset is used. If tm_isdst is nega-
|
||||
tive, no characters are returned. [ tm_isdst]
|
||||
|
||||
%Z Replaced by the timezone name or abbreviation, or by no bytes
|
||||
if no timezone information exists. [ tm_isdst]
|
||||
|
||||
%% Replaced by % .
|
||||
|
||||
If a conversion specification does not correspond to any of the above,
|
||||
the behavior is undefined.
|
||||
|
||||
If a struct tm broken-down time structure is created by localtime() or
|
||||
localtime_r(), or modified by mktime(), and the value of TZ is subse-
|
||||
quently modified, the results of the %Z and %z strftime() conversion
|
||||
specifiers are undefined, when strftime() is called with such a bro-
|
||||
ken-down time structure.
|
||||
|
||||
If a struct tm broken-down time structure is created or modified by
|
||||
gmtime() or gmtime_r(), it is unspecified whether the result of the %Z
|
||||
and %z conversion specifiers shall refer to UTC or the current local
|
||||
timezone, when strftime() is called with such a broken-down time
|
||||
structure.
|
||||
|
||||
Modified Conversion Specifiers
|
||||
Some conversion specifiers can be modified by the E or O modifier
|
||||
characters to indicate that an alternative format or specification
|
||||
should be used rather than the one normally used by the unmodified
|
||||
conversion specifier. If the alternative format or specification does
|
||||
not exist for the current locale (see ERA in the Base Definitions vol-
|
||||
ume of IEEE Std 1003.1-2001, Section 7.3.5, LC_TIME), the behavior
|
||||
shall be as if the unmodified conversion specification were used.
|
||||
|
||||
%Ec Replaced by the localeâs alternative appropriate date and time
|
||||
representation.
|
||||
|
||||
%EC Replaced by the name of the base year (period) in the localeâs
|
||||
alternative representation.
|
||||
|
||||
%Ex Replaced by the localeâs alternative date representation.
|
||||
|
||||
%EX Replaced by the localeâs alternative time representation.
|
||||
|
||||
%Ey Replaced by the offset from %EC (year only) in the localeâs
|
||||
alternative representation.
|
||||
|
||||
%EY Replaced by the full alternative year representation.
|
||||
|
||||
%Od Replaced by the day of the month, using the localeâs alterna-
|
||||
tive numeric symbols, filled as needed with leading zeros if
|
||||
there is any alternative symbol for zero; otherwise, with lead-
|
||||
ing spaces.
|
||||
|
||||
%Oe Replaced by the day of the month, using the localeâs alterna-
|
||||
tive numeric symbols, filled as needed with leading spaces.
|
||||
|
||||
%OH Replaced by the hour (24-hour clock) using the localeâs alter-
|
||||
native numeric symbols.
|
||||
|
||||
%OI Replaced by the hour (12-hour clock) using the localeâs alter-
|
||||
native numeric symbols.
|
||||
|
||||
%Om Replaced by the month using the localeâs alternative numeric
|
||||
symbols.
|
||||
|
||||
%OM Replaced by the minutes using the localeâs alternative numeric
|
||||
symbols.
|
||||
|
||||
%OS Replaced by the seconds using the localeâs alternative numeric
|
||||
symbols.
|
||||
|
||||
%Ou Replaced by the weekday as a number in the localeâs alternative
|
||||
representation (Monday=1).
|
||||
|
||||
%OU Replaced by the week number of the year (Sunday as the first
|
||||
day of the week, rules corresponding to %U ) using the localeâs
|
||||
alternative numeric symbols.
|
||||
|
||||
%OV Replaced by the week number of the year (Monday as the first
|
||||
day of the week, rules corresponding to %V ) using the localeâs
|
||||
alternative numeric symbols.
|
||||
|
||||
%Ow Replaced by the number of the weekday (Sunday=0) using the
|
||||
localeâs alternative numeric symbols.
|
||||
|
||||
%OW Replaced by the week number of the year (Monday as the first
|
||||
day of the week) using the localeâs alternative numeric sym-
|
||||
bols.
|
||||
|
||||
%Oy Replaced by the year (offset from %C ) using the localeâs
|
||||
alternative numeric symbols.
|
||||
|
||||
%g , %G , and %V give values according to the ISO 8601:2000 standard
|
||||
week-based year. In this system, weeks begin on a Monday and week 1 of
|
||||
the year is the week that includes January 4th, which is also the week
|
||||
that includes the first Thursday of the year, and is also the first
|
||||
week that contains at least four days in the year. If the first Monday
|
||||
of January is the 2nd, 3rd, or 4th, the preceding days are part of the
|
||||
last week of the preceding year; thus, for Saturday 2nd January 1999,
|
||||
%G is replaced by 1998 and %V is replaced by 53. If December 29th,
|
||||
30th, or 31st is a Monday, it and any following days are part of week
|
||||
1 of the following year. Thus, for Tuesday 30th December 1997, %G is
|
||||
replaced by 1998 and %V is replaced by 01.
|
||||
|
||||
If a conversion specifier is not one of the above, the behavior is
|
||||
undefined.
|
||||
|
||||
RETURN VALUE
|
||||
If the total number of resulting bytes including the terminating null
|
||||
byte is not more than maxsize, strftime() shall return the number of
|
||||
bytes placed into the array pointed to by s, not including the termi-
|
||||
nating null byte. Otherwise, 0 shall be returned and the contents of
|
||||
the array are unspecified.
|
||||
|
||||
ERRORS
|
||||
No errors are defined.
|
||||
|
||||
COPYRIGHT
|
||||
Portions of this text are reprinted and reproduced in electronic form
|
||||
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technol-
|
||||
ogy -- Portable Operating System Interface (POSIX), The Open Group
|
||||
Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute
|
||||
of Electrical and Electronics Engineers, Inc and The Open Group. In
|
||||
the event of any discrepancy between this version and the original
|
||||
IEEE and The Open Group Standard, the original IEEE and The Open Group
|
||||
Standard is the referee document. The original Standard can be
|
||||
obtained online at http://www.opengroup.org/unix/online.html .
|
||||
|
||||
407
mkdocs/docs/userguide.md
Normal file
@ -0,0 +1,407 @@
|
||||
# ELOG User's Guide
|
||||
|
||||
*How to get the most from your ELOG server*
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## A Quick Intro
|
||||
|
||||
**ELOG** is part of a family of applications known as *weblogs*. Their
|
||||
general purpose is :
|
||||
|
||||
1. to make it easy for people to put information online in a
|
||||
chronological fashion, in the form of short, time-stamped text
|
||||
messages ("*entries*") with optional HTML markup for presentation,
|
||||
and optional file attachments (images, archives, etc.)
|
||||
2. to make it easy for other people to access this information through
|
||||
a Web interface, browse entries, search, download files, and
|
||||
optionally add, update, delete or comment on entries.
|
||||
|
||||
**ELOG** is a remarkable implementation of a *weblog* in at least two
|
||||
respects :
|
||||
|
||||
- its simplicity of use : you don\'t need to be a seasoned server
|
||||
operator and/or an experimented database administrator to run **ELOG**
|
||||
; one executable file (under Unix or Windows), a simple configuration
|
||||
text file, and it works. No Web server or relational database
|
||||
required. It is also easy to translate the interface to the
|
||||
appropriate language for your users.
|
||||
|
||||
- its versatility : through its single configuration file, **ELOG** can
|
||||
be made to display an infinity of variants of the *weblog* concept.
|
||||
There are options for what to display, how to display it, what
|
||||
commands are available and to whom, access control, etc. Moreover, a
|
||||
single server can host several **weblog*s*, and each *weblog* can be
|
||||
totally different from the rest.
|
||||
|
||||
This is actually a problem when writing a User's Guide, because
|
||||
**ELOG** servers, and individual **weblogs** on one server, can vary
|
||||
wildly in appearance and functionality\... This guide only attempts to
|
||||
cover the main concepts of importance for **ELOG** users, describing
|
||||
the default "*out-of-the-box*" setup and how that behaviour may have
|
||||
been modified by the server administrator.
|
||||
|
||||
## What Words Mean Here
|
||||
|
||||
Just to be clear, some definitions of terms that will be used throughout
|
||||
the guide :
|
||||
|
||||
- **ELOG server** : the machine on which the **ELOG** server is run. Its
|
||||
operating system (Windows/Unix/Linux) and status (server/desktop) are
|
||||
not important, and of course it will probably do many other things
|
||||
besides.
|
||||
- **ELOG administrator** : the person who has the authority to modify
|
||||
the **ELOG** configuration file on the server. May be an actual system
|
||||
administrator, a normal user of a server, or just the owner of a
|
||||
Windows PC.
|
||||
- **logbook** : a *weblog* made available by the **ELOG** server. There
|
||||
may be many distinct such logbooks on one server.
|
||||
- **entry** : the individual piece of information in a logbook. Can be
|
||||
as basic as a text message with a time-stamp, or carry much more
|
||||
information : attributes (see below), HTML markup, links, attached
|
||||
files\...
|
||||
|
||||
## Accessing an ELOG server and its logbook(s)
|
||||
|
||||
To access a logbook, point your Web browser at the appropriate URL. The
|
||||
default for a local Elog is **`http://localhost:8080/logbookname`**.
|
||||
Logbook files are stored in directory **`logbookname`** which is a
|
||||
sub-directory of the logbook root directory, defined by the
|
||||
administrator. See the administrator guide on how to create a new
|
||||
logbook.
|
||||
|
||||
If several logbooks are defined on the server, the entry page may be a
|
||||
list of all logbooks, with their descriptions, number of entries, and
|
||||
links to enter the logbook you want to use.
|
||||
|
||||
Alternatively, you may be taken directly to a specific logbook. By
|
||||
default you will see a list of entries, but the administrator may have
|
||||
defined a different "*default view*" for the logbook, like the list of
|
||||
the day\'s entries, or directly display the last entry, etc. (depending
|
||||
on what is most convenient for that logbook\'s purpose).
|
||||
|
||||
Each entry in a logbook is identified by an unique ID, which is last
|
||||
part of the URL when that message is displayed. This ID might be used to
|
||||
create a bookmark in a browser pointing directly to a specific entry.
|
||||
|
||||
There are four ways through which access to a logbook may be controlled:
|
||||
it may be open for all to read ; it may require a common "*read*"
|
||||
password for all users ; it may require each user to have an individual
|
||||
user account (login name) and password ; finally, access may be granted
|
||||
or not depending on the address of the workstation you are using.
|
||||
|
||||
## Viewing information in ELOG
|
||||
|
||||
There are two main viewing modes in a logbook :
|
||||
|
||||
- the "**entry**" view : this is when only one entry is displayed on
|
||||
screen (like the latest entry when you first enter a logbook, or if
|
||||
you click on one in a list). Here are the various parts of the display
|
||||
:
|
||||
- if there are several logbooks on the **ELOG** server you will see a
|
||||
row of "*tabs*" at the top with the names of all the logbooks.
|
||||
These are link that allow to switch quickly between logbooks (*this
|
||||
may be disabled*).
|
||||
|
||||
- below is a title bar with the name of the current logbook at the
|
||||
left, and the **ELOG** logo at the right. If you are logged in,
|
||||
there will be a "`Logged in as <username>`" reminder in between.
|
||||
|
||||
- next is the "*menu bar*" : on the left is a series of links or
|
||||
buttons for **ELOG** commands available to you. These are explored
|
||||
in the sections below (*Note: different users may see different
|
||||
menus*). On the right is a "*VCR-like*" set of buttons for
|
||||
browsing, also explained later (*this may be disabled*).
|
||||
|
||||
- after these comes the actual entry information. It always starts
|
||||
with the entry time-stamp, and may be followed by up to twenty
|
||||
"*attributes*". These are like fields in a database and have been
|
||||
defined specifically for the current logbook. Each attribute has a
|
||||
checkbox besides it, explained below (*this may be disabled*).
|
||||
|
||||
- the full-width box below holds the textual content (message) of the
|
||||
entry. This can be plain-text or HTML code. Note that for some
|
||||
special applications (say, a photo album or an event log) the
|
||||
attributes and/or the attached files may be enough information, so
|
||||
this field may not always be present.
|
||||
|
||||
- last and optionally, one or more attached files (that were uploaded
|
||||
to the server when the entry was created) are offered as clickable
|
||||
links for download or viewing, along with the file name and size. If
|
||||
these are images they may be displayed directly on the page.
|
||||
|
||||
At the bottom of every page is a common "*footer*" for the
|
||||
logbook. By default this is just a link to the **ELOG** home page in
|
||||
Switzerland, but may be customized locally (typically to provide a
|
||||
navigation bar and links for integration with other Web sites).
|
||||
- the "**search result**" views : these are basically lists of
|
||||
entries, resulting either from a "*Search*" command or from
|
||||
shortcuts such as "*Last X days*" and "*Last X entries*" commands
|
||||
(more on this below). This mode has many options, including :
|
||||
- a "*summary*" view : one entry per row in a table. Some attributes
|
||||
may not be displayed. If the entry text is displayed (or its first
|
||||
few lines), it goes into the rightmost column. Attachments are not
|
||||
displayed.
|
||||
|
||||
- a "*classical weblog*" view : entries appear beneath one another,
|
||||
with attributes on one line and the text (and attachments, if
|
||||
present) below. Images may be displayed or just linked to.
|
||||
|
||||
- entries may appear most recent first, or in reverse.
|
||||
|
||||
- menus on list views are different from the entry view menu. By
|
||||
default they only have two or three commands, but they may have been
|
||||
customized by the administrator to add more.
|
||||
|
||||
All these lists have a number to the left of each listed entry, that
|
||||
is a link to the corresponding entry view.
|
||||
|
||||
## Browsing around and finding things
|
||||
|
||||
There are several interesting ways to peruse the information in a
|
||||
logbook :
|
||||
|
||||
- **weblogs**" are often used for applications where chronology (time) is
|
||||
relevant, so a very common approach is to see "*what happened
|
||||
last*". In **ELOG** there are two commands for this. They are
|
||||
actually shortcuts for searches, to display the last day\'s (24 hrs)
|
||||
entries, or the last 10 entries (regardless of age). Note that the
|
||||
menus on the "*search result*" views of these commands are a bit
|
||||
special : they have the same command that created them, but with the
|
||||
search "*interval*" doubled. From the "*last day*" list you can
|
||||
get the "*last 2 days*" list, from that one the "*last 4 days*",
|
||||
etc., and similarly for "*last 10*", "*last 20*", etc., making it
|
||||
easy to quickly go back in time.
|
||||
- another useful method, very specific to **ELOG**, is "*filtered
|
||||
browsing*" - again, shortcuts for specific searches. On the entry
|
||||
view, the "*VCR*" buttons normally let you see the previous, next,
|
||||
first or last entry in the logbook. However, if on the current entry
|
||||
you check one (or more) of the checkboxes in front of the attributes,
|
||||
only entries having the same value for the checked attribute(s) will
|
||||
be displayed by the browse buttons. Thus you can quickly flip through
|
||||
all the entries you submitted yourself, or of a certain type/category,
|
||||
depending on what attributes have been defined.
|
||||
- for custom searches there is the query form given by the "*Find*"
|
||||
command. This lets you look for entries between two dates, with
|
||||
particular values for any attribute, or containing specific text. If
|
||||
you fill in several fields, only entries that meet **ALL** criteria
|
||||
will be selected. Possible options include sort order and summary view
|
||||
for results, printer-friendly formatting, displaying attachments or
|
||||
not, and searching through all logbooks on the **ELOG** server (if
|
||||
applicable).
|
||||
|
||||
## Adding stuff to a logbook
|
||||
|
||||
If you have "*write access*" to a logbook (by one of the same four
|
||||
methods as for read access), then you may use the "*New*", "*Edit*",
|
||||
"*Reply*" and "*Delete*" commands.
|
||||
|
||||
For the quality of the information committed to the logbook, you need
|
||||
understand and use these as well as possible. Here are some of the
|
||||
important features for each commmand :
|
||||
|
||||
- **New** :
|
||||
- you will not be able to save your entry if all attributes marked
|
||||
with a red star (\*) are not filled in.
|
||||
- some attributes may be pre-filled from system variables (like your
|
||||
user name). Pre-filled attributes may be still editable or read-only
|
||||
(like the entry creation date).
|
||||
- attributes may be text fields (limited to 100 characters),
|
||||
list-boxes (max. 100 values), or check-boxes. There is also a
|
||||
special type of attribute where several values are listed on a line
|
||||
with check-boxes, and you can check as many values as needed.
|
||||
- a nice touch : URLs in attributes (http://\..., ftp://\...,
|
||||
mailto:\...) are automatically converted to links.
|
||||
- in addition to the above URLs, one can enter a tag **elog:\<id\>**
|
||||
which references another logbook entry. The tag
|
||||
**elog:\<logbook\>/\<id\>** references a message in another logbook
|
||||
on the same server. The tag **elog:\<id\>/\<n\>** references
|
||||
attachment number **n** in a logbook entry. To reference an
|
||||
attachment in the current message, one uses **elog:/\<n\>**. An
|
||||
anchor inside an entry can be referenced with
|
||||
**elog:\<id\>#\<anchor\>**.
|
||||
- the Text multi-line field, if present, may be pre-filled with a
|
||||
template if entries need to have a common, consistent format across
|
||||
the logbook (especially for HTML). There may also be a comment
|
||||
inserted before it to explain local rules and conventions, upload
|
||||
rules, etc.
|
||||
- check the "*Submit as HTML*" box if the entry contains HTML
|
||||
markup.
|
||||
- a logbook may be configured to send a notification e-mail to various
|
||||
recipients each time an entry is submitted. This may be the default
|
||||
behaviour, and you should check "*Suppress notification*"" if it is
|
||||
not wanted. Or it may be checked by default, and you need to
|
||||
explicitely uncheck it to send the mail. Then again, you may not
|
||||
have a choice\... (note that notifiation recipients may or may not
|
||||
be disclosed).
|
||||
- if the logbook allows attachments, there will be a number of fields
|
||||
with "*Browse*" buttons at the bottom of the form. Use these to
|
||||
pick one or more files on your local computer, they will be uploaded
|
||||
to the **ELOG** server as you submit the form. IMPORTANT : there is
|
||||
an upper limit on the size of individual attached files. By default
|
||||
it is about 1 MB but can be changed by the administrator.
|
||||
- **Edit** :
|
||||
- normally the Edit form will have all the values of the existing
|
||||
entry in its fields for modification. However, sometimes you may see
|
||||
fields that have been blanked if this makes sense for a particular
|
||||
logbook application (e.g. a "*Last modified by*" field).
|
||||
- the "*Submit as new entry*" checkbox only appears on Edit forms.
|
||||
If it is unchecked, the modified entry keeps its original creation
|
||||
time-stamp. If it is checked, the modified entry becomes the latest
|
||||
in the logbook, as if it had just been created. Again, it is
|
||||
possible that this is checked by default, or disabled altogether on
|
||||
some logbooks.
|
||||
- managing attachments through this form is easy. If all you want to
|
||||
change is the attributes or text, don\'t touch the fields at the
|
||||
bottom and the original attachments will be preserved. If you want
|
||||
to add an additional attachment, use an empty field. If you want to
|
||||
update an existing file, use the "*Browse*" button below that
|
||||
file\'s name to specify the new one. Lastly, if you want to delete
|
||||
an attachment without upoading a new one in its place, you must type
|
||||
the magic word "`<delete>`" in the field below its name.
|
||||
- **Reply** :
|
||||
- this command creates a new entry, but with the current entry\'s text
|
||||
"*quoted*" (with \'\>\') in the compose form, much like when
|
||||
replying to e-mail.
|
||||
- the new entry has a special "*In reply to*" attribute with a link
|
||||
to the original entry ; the latter also acquires a "*Reply*"
|
||||
attribute with a link to the new entry. Unfortunately these links
|
||||
cannot be trusted in the present **ELOG** storage system, and the
|
||||
whole scheme gets somewhat confusing when there are several replies.
|
||||
- **Delete** :
|
||||
- nothing much to say about this one, except that there is no
|
||||
"*Recycle bin*" or whatever : once you have confirmed the deletion
|
||||
of an entry, it\'s gone for good, so be careful ! (same holds for
|
||||
the replacement or deletion of an attached file).
|
||||
|
||||
## Misc. tips & tricks, things to be aware of\...
|
||||
|
||||
- you can link directly to a specific entry by its URL, using the
|
||||
message ID (from another entry or an external Web page). It is also
|
||||
possible to link to a search result this way: use the "*Search*"
|
||||
form to compose a query that will result in exactly what you want
|
||||
(either a single entry or a list of entries). Copy the URL for that
|
||||
result page from your browser, and use that as the target for your
|
||||
link.
|
||||
|
||||
- right now you cannot search entries for attachments by their file
|
||||
name.
|
||||
|
||||
- right now attributes that consist of just a checkbox ("*boolean*")
|
||||
can only be searched by "*checked*" state in the "*Search*" form.
|
||||
However, if you start from an entry where that attribute is unchecked,
|
||||
you can use "*filtered browsing*" to flip through all other entries
|
||||
where it is also unchecked.
|
||||
|
||||
- as mentioned above, the "*Reply*" command only provides a basic
|
||||
comment/chat facility - a full-blown discussion board is not
|
||||
**ELOG**'s purpose. If a logbook has a very specific purpose and
|
||||
format (picture gallery, event log, file library etc.) it might be a
|
||||
good idea to disable that command there and move all
|
||||
chat/comments/discussions to a separate, dedicated logbook to avoid
|
||||
"*visual pollution*".
|
||||
|
||||
- it is important to understand that currently the **ELOG** server
|
||||
application is "*single-process*" and "*non-streaming*". In normal
|
||||
terms this means that :
|
||||
- only one request is processed at any one time by the server.
|
||||
|
||||
- uploading or downloading an attachement file is a single request,
|
||||
and causes the entire file to be loaded in server memory while the
|
||||
request is being processed.
|
||||
|
||||
This is not normally a problem for the sort of short, text-mode
|
||||
entries **ELOG** is designed to support. However, if a user starts
|
||||
to upload or download a large attachment file (or image) over a slow
|
||||
link, all other users on that **ELOG** server will have to wait for
|
||||
that transfert to finish before they can access any logbook on that
|
||||
server. This is why there is a low limit on the size of attachments,
|
||||
and why **ELOG** should not be used to distribute large files under
|
||||
intensive multi-user conditions.
|
||||
|
||||
- It is possible to use bookmarks to pre-populate various attributes
|
||||
when submitting an **ELOG** entry. This can be useful if the same
|
||||
person often creates similar entries from the same PC. For example,
|
||||
with a bookmark of the form:
|
||||
|
||||
http://your.host/your_logbook/?cmd=New&pauthor=joe&ptype=Info
|
||||
|
||||
\...a new entry is created, with the "*author*" field pre-populated
|
||||
with "*joe*" and the "*Info*" value preselected for the "*type*"
|
||||
field. The same is possible for any attribute defined in the logbook
|
||||
(note the leading "p"). Thus you can define a set of bookmarks for
|
||||
various types of logbook entries.
|
||||
|
||||
## elog command line client
|
||||
|
||||
In addition to submission of logbook entries through the Web interface, the standalone "*client*" program **`elog`** can be used.
|
||||
|
||||
The parameters are:
|
||||
|
||||
``` text
|
||||
elog <parameters>
|
||||
|
||||
-h <hostname> Hostname where elogd is running
|
||||
[-p port] Port where elogd is running
|
||||
[-d subdir] URL Directoy where elogd is running
|
||||
-l logbook Name of logbook
|
||||
-s Use SSL for communication
|
||||
[-v] For verbose output
|
||||
[-w password] Write password defined on server
|
||||
[-u username password] User name and password
|
||||
[-f <attachment>] Up to 50 attachments
|
||||
-a <attribute>=<value> Up to 50 attributes
|
||||
[-r <id>] Reply to existing message
|
||||
[-q] Quote original text on reply
|
||||
[-e <id>] Edit existing message
|
||||
[-x] Suppress email notification
|
||||
[-n 0|1|2] Encoding: 0:ELcode,1:plain,2:HTML
|
||||
-m <textfile>] | <text>
|
||||
```
|
||||
|
||||
Arguments with blanks must be enclosed in quotes. The elog message can
|
||||
either be submitted on the command line, piped in like
|
||||
|
||||
`cat text | elog -h ... -l ... -a ...`
|
||||
|
||||
or in a file with the -m flag. Multiple attributes and attachments can
|
||||
be supplied. If attributes with multiple possible values are defined
|
||||
in a logbook (via the *"MOptions"* keyword), they can be separated
|
||||
with a "\|", like **`-a "<attribute>=<value1> | <value2>"`**. The
|
||||
message text can be supplied directly at the command line or submitted
|
||||
from a file with the **`-m`** flag.
|
||||
|
||||
The **`elog`** program makes it possible to submit logbook entries
|
||||
automatically by the system or from scripts. In some shift logbooks
|
||||
this feature is used to enter alarm messages automatically into the
|
||||
logbook.
|
||||
|
||||
## RSS Feed
|
||||
|
||||
RSS (RDF Site Summrary or Really Simple Syntication) is a web feed
|
||||
format to publish frequently new or updated ELOG entries. This is a bit
|
||||
like the email notifications present in ELOG, but the RSS system does
|
||||
not go through an email reader, but through a dedicated RSS reader. This
|
||||
helps to seperate ELOG updates form other email or spam. An RSS
|
||||
"channel" can be subscribed to, so one gets notified whenever a new or
|
||||
updated entry exists. One can either use a dedicated RSS reader or
|
||||
aggregator, or use the RSS functionality of a web browser, such as
|
||||
Firefox or Google Reader.
|
||||
|
||||
To obtain the RSS feed, one simply has to request the file
|
||||
**`elog.rdf`** from a logbook. For the ELOG forum, one can enter the URL
|
||||
|
||||
[`https://elog.psi.ch/elogs/Forum/elog.rdf`](https://elog.psi.ch/elogs/Forum/elog.rdf)
|
||||
|
||||
The browser then offers the possiblity to subscribe to that logbook:
|
||||
|
||||

|
||||
|
||||
In case of "Live Bookmarks" in Firefox, new logbook entries
|
||||
automatically appear in the bookmark list:
|
||||
|
||||

|
||||
|
||||
Standalone RSS reader can also notify the user of new entries with
|
||||
dialog boxes and sounds. For a list of availabel RSS aggregators, see
|
||||
[here](http://en.wikipedia.org/wiki/Comparison_of_feed_aggregators).
|
||||
35
mkdocs/docs/wishlist.md
Normal file
@ -0,0 +1,35 @@
|
||||
# ELOG Wishlist
|
||||
|
||||
Here are some "*wishlist*" items requested by users. I will work down
|
||||
the list as time permits, starting at the items with the most votes. You
|
||||
can vote for a feature, or suggest one, by sending me an email.
|
||||
|
||||
---
|
||||
|
||||
Feature| Votes
|
||||
-------|-------
|
||||
Implement groups of users| 8
|
||||
Password expiration| 2
|
||||
Account expiration|1
|
||||
Make attributes which whould be displayd selectable in \"Find\" page|1
|
||||
Convert elog text files into XML files and comma separated files with elconv|1
|
||||
Implement multi-line attributes|8
|
||||
Derive attribute options from list of entries of another logbook|1
|
||||
Specify date format explicitly for substitutions, like $entry date{%Y}|2
|
||||
Change attributes of whole thread, like mark a thread "open" or "closed"|4
|
||||
Automatic unlocking of entries after a specific time period|1
|
||||
Implement PAM authentification under Linux (Which includes LDAP & AFS & Kerberos & ...)|13
|
||||
Implement attributes which are math results from others, like *att3=att1+att2*|3
|
||||
Show sums of numeric attributes|2
|
||||
Let each user choose its language separately|1
|
||||
Implement multiple selection boxes|1
|
||||
Boolean operators for queries, like "attrib1=a AND not attrib2=b"|1
|
||||
Implement "sybolik-link" logbooks such that a (virtual) logbook can "point" to a "real" logbook.<br>This is useful to have people always submit to the same logbook, when the real logbook<br>changes from time to time.|1
|
||||
Select individual columns for display and printing|2
|
||||
"Incremental" options. Have fixed set of global options, and in each<br>logbook add or remove some of those with<br>**+Options = ...** or **-Options = ...**|1
|
||||
"Include" statement for config file.|2
|
||||
Use different styles (colors) depending on an attribute|1
|
||||
Add native IPv6 support|1
|
||||
Copy new elog entries automatically to other logbooks|1
|
||||
Extend the search facility to (text) attachments|1
|
||||
|
||||
169
mkdocs/index.md
Normal file
@ -0,0 +1,169 @@
|
||||
# The ELOG Home Page
|
||||
|
||||
Home of the *Electronic Logbook* package by [Stefan
|
||||
Ritt](mailto:Stefan.Ritt@psi.ch)
|
||||
|
||||
*Current version: 3.1.4*
|
||||
|
||||
---
|
||||
|
||||
## What is ELOG ?
|
||||
|
||||
**ELOG** is part of a family of applications known as **weblog*s* .
|
||||
Their general purpose is :
|
||||
|
||||
1. to make it easy for people to put information online in a
|
||||
chronological fashion, in the form of short, time-stamped text
|
||||
messages (\"entries\") with optional HTML markup for presentation,
|
||||
and optional file attachments (images, archives, etc.)
|
||||
2. to make it easy for other people to access this information through
|
||||
a Web interface, browse entries, search, download files, and
|
||||
optionally add, update, delete or comment on entries.
|
||||
|
||||
**ELOG** is a remarkable implementation of a *weblog* in at least two
|
||||
respects :
|
||||
|
||||
- its simplicity of use : you don\'t need to be a seasoned server
|
||||
operator and/or an experimented database administrator to run **ELOG**
|
||||
; one executable file (under Unix or Windows), a simple configuration
|
||||
text file, and it works. No Web server or relational database
|
||||
required. It is also easy to translate the interface to the
|
||||
appropriate language for your users.
|
||||
- its versatility : through its single configuration file, **ELOG** can
|
||||
be made to display an infinity of variants of the *weblog* concept.
|
||||
There are options for what to display, how to display it, what
|
||||
commands are available and to whom, access control, etc. Moreover, a
|
||||
single server can host several **weblog*s*, and each *weblog* can be
|
||||
totally different from the rest.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Screen shots
|
||||
|
||||
|-----------------------------------------|-------------------------------------------------|
|
||||
| [{border="0" | On the left upper panel is a typical logbook |
|
||||
| align="top"}](elog.gif) | page displayed by Netscape Navigator. Each |
|
||||
| | logbook page can contain attachments in a |
|
||||
| | similar way to emails. This makes it possible |
|
||||
| | to store images or text files and retrieve them |
|
||||
| | easily. You could for example attach a sample |
|
||||
| | configuration file which can later be copied to |
|
||||
| | the local machine with the \"*Save As\...*\" |
|
||||
| | function of the Web browser. |
|
||||
| | |
|
||||
| | Several logbooks can be served though a single |
|
||||
| | **ELOG** server. Each logbook can use different |
|
||||
| | attributes for its entries. The logbook can |
|
||||
| | then be searched using these attributes. The |
|
||||
| | right pane on the left image shows a search for |
|
||||
| | all entries with attribute \"*Type*\" equal to |
|
||||
| | \"*Configuration* \", and the lower pane shows |
|
||||
| | the search result. It is also possible to use |
|
||||
| | full-text search in attributes and the entry |
|
||||
| | body. |
|
||||
| | |
|
||||
| | While logbook entries are usually displayed one |
|
||||
| | entry per page, they can also be listed |
|
||||
| | consecutively which makes it easy to produce a |
|
||||
| | paper printout of a logbook. |
|
||||
| | |
|
||||
| | Logbook pages can be edited or deleted. This |
|
||||
| | feature can be turned off in the configuration |
|
||||
| | file so that a logbook entries cannot be |
|
||||
| | changed after being submitted. |
|
||||
| | |
|
||||
| | An additional feature is the automatic |
|
||||
| | generation of a notification email messages |
|
||||
| | based on a certain type or category of a |
|
||||
| | logbook entry. |
|
||||
| | |
|
||||
| | Also try out the **[online |
|
||||
| | demo](http://elog.psi.ch/elogs/Linux%20Demo/)** |
|
||||
| | ! |
|
||||
|-----------------------------------------|-------------------------------------------------|
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Use cases
|
||||
|
||||
The features of **ELOG** make it useful for several applications:
|
||||
|
||||
- **Personal Logbooks**. Personal notes can be written into **ELOG** and
|
||||
can then be retrieved from anywhere with a Web browser. This makes it
|
||||
handy for PC supporters who have to go around in companies or
|
||||
laboratories and don\'t want to carry their paper logbook with them.
|
||||
The same holds true for people traveling around a lot. The logbook
|
||||
database consists of plain ASCII files which can copied easily between
|
||||
different computers to have local access, for example on a notebook
|
||||
with no network connection.
|
||||
- **Shared Logbooks**. Logbooks can be shared by several people, for
|
||||
reading and optionally for writing. This way workgroups can share and
|
||||
exchange information like in a (simplified) news group. This is
|
||||
supported by the *Reply* command in **ELOG** which creates
|
||||
\"*threads*\" of entries. Users can be notified by email when new
|
||||
entries are added to the logbook. Compared to that of a news server,
|
||||
the installation of **ELOG** is much simpler.
|
||||
- **Small Databases**. Since arbitrary attributes can be defined for a
|
||||
logbook, it can be used as a small database with search facilities.
|
||||
- **Problem collections**. A system can consist of two logbooks, in one
|
||||
of which users enter bugs or problems. If someone adds a problem, an
|
||||
email is automatically sent to the administrator, who can then copy
|
||||
the entry to the second logbook and add the solution to the problem.
|
||||
Users can then look up all fixed problems.
|
||||
- **Shift Logbooks**. If the *Allow delete* and *Allow edit* flags are
|
||||
off, an entry cannot be modified once it\'s been entered. This can be
|
||||
useful for shift logbooks for example in accelerator control rooms
|
||||
where each entry becomes a \"*document*\" with a time and author
|
||||
stamp. **ELOG** was originally developed as a shift logbook for the
|
||||
[PiBeta](http://pibeta.psi.ch) and [Muegamma](http://meg.psi.ch)
|
||||
particle experiments at [PSI](http://www.psi.ch).
|
||||
- **File collections**. Since files can be attached to **ELOG** entries,
|
||||
the system can be used to store and retrieve files. This can be used
|
||||
to store configuration files, which need to be accessible by several
|
||||
people over the web, or to store images. Since **ELOG** features an
|
||||
elaborate query facility, entries can be searched for by specifying
|
||||
several categories.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## License
|
||||
|
||||
**ELOG** is released under the [GNU Public
|
||||
License](http://www.gnu.org/copyleft/gpl.html) .
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Credits
|
||||
|
||||
The author would like to give credits to following people:
|
||||
|
||||
- [Fred Pacquier](mailto:fredp@dial.oleane.com) for this Web site and
|
||||
the French translation
|
||||
- [Recai Oktas](mailto:roktas@omu.edu.tr) and [Roger
|
||||
Kalt](mailto:roger.kalt@psi.ch) for the Debian package
|
||||
- [djek](mailto:djek@xs4all.nl) for the Dutch translation
|
||||
- [Heiko Scheit](mailto:Heiko.Scheit@mpi-hd.mpg.de) for many bug fixes
|
||||
and fruitful discussions
|
||||
- [Julio Calvo](mailto:jhcalvo@arnet.com.ar) for the Spanish translation
|
||||
- [Emiliano \'AlberT\' Gabrielli](mailto:AlberT@SuperAlberT.it)
|
||||
for his idea of scaling attached images
|
||||
- [Andreas Luedeke](mailto:andreas.luedeke@psi.ch)
|
||||
for continuing user support and deployment of ELOG at PSI
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Talks and presentations
|
||||
|
||||
Here are some talks and presentations given at various occasions:
|
||||
|
||||
- Seminar at KIT, Karlsruhe, Jan. 2015. [Introduction
|
||||
talk](https://elog.psi.ch/elog/talks/2015_1_intro.pptx) by Stefan
|
||||
Ritt.
|
||||
- Seminar at KIT, Karlsruhe, Jan. 2015. [Application of
|
||||
ELOG](http://elog.psi.ch/elog/talks/2015_1_accel.pptx) for accelerator
|
||||
operation at PSI by [Andreas Luedeke](mailto:andreas.luedeke@psi.ch).
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*Content by [Stefan Ritt](https://www.psi.ch/en/ltp-muon-physics/people/stefan-ritt), Web pages
|
||||
by [Fred Pacquier](mailto:fredp@mygale.org)*
|
||||
17
mkdocs/mkdocs.yml
Normal file
@ -0,0 +1,17 @@
|
||||
site_name: ELOG Electronic Logbook
|
||||
# site_url: ""
|
||||
# use_directory_urls: false
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- User guide: userguide.md
|
||||
- Admin guide: adminguide.md
|
||||
- Config file: config.md
|
||||
- FAQ: faq.md
|
||||
- Forum: forum.md
|
||||
- Wishlist: wishlist.md
|
||||
- Contributions: contrib.md
|
||||
- Demo: demo.md
|
||||
- Download: download.md
|
||||
|
||||
theme: readthedocs
|
||||
141
mkdocs/site/404.html
Normal file
@ -0,0 +1,141 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="/img/favicon.ico" />
|
||||
<title>ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="/css/theme.css" />
|
||||
<link rel="stylesheet" href="/css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href="/." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="//search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/.">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="/download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="/.">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="/." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
|
||||
<h1 id="404-page-not-found">404</h1>
|
||||
|
||||
<p><strong>Page not found</strong></p>
|
||||
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="/js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "/";</script>
|
||||
<script src="/js/theme_extra.js"></script>
|
||||
<script src="/js/theme.js"></script>
|
||||
<script src="/search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
mkdocs/site/css/fonts/Roboto-Slab-Bold.woff
Normal file
BIN
mkdocs/site/css/fonts/Roboto-Slab-Bold.woff2
Normal file
BIN
mkdocs/site/css/fonts/Roboto-Slab-Regular.woff
Normal file
BIN
mkdocs/site/css/fonts/Roboto-Slab-Regular.woff2
Normal file
BIN
mkdocs/site/css/fonts/fontawesome-webfont.eot
Normal file
2671
mkdocs/site/css/fonts/fontawesome-webfont.svg
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
mkdocs/site/css/fonts/fontawesome-webfont.ttf
Normal file
BIN
mkdocs/site/css/fonts/fontawesome-webfont.woff
Normal file
BIN
mkdocs/site/css/fonts/fontawesome-webfont.woff2
Normal file
BIN
mkdocs/site/css/fonts/lato-bold-italic.woff
Normal file
BIN
mkdocs/site/css/fonts/lato-bold-italic.woff2
Normal file
BIN
mkdocs/site/css/fonts/lato-bold.woff
Normal file
BIN
mkdocs/site/css/fonts/lato-bold.woff2
Normal file
BIN
mkdocs/site/css/fonts/lato-normal-italic.woff
Normal file
BIN
mkdocs/site/css/fonts/lato-normal-italic.woff2
Normal file
BIN
mkdocs/site/css/fonts/lato-normal.woff
Normal file
BIN
mkdocs/site/css/fonts/lato-normal.woff2
Normal file
13
mkdocs/site/css/theme.css
Normal file
197
mkdocs/site/css/theme_extra.css
Normal file
@ -0,0 +1,197 @@
|
||||
/*
|
||||
* Wrap inline code samples otherwise they shoot of the side and
|
||||
* can't be read at all.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/313
|
||||
* https://github.com/mkdocs/mkdocs/issues/233
|
||||
* https://github.com/mkdocs/mkdocs/issues/834
|
||||
*/
|
||||
.rst-content code {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make code blocks display as blocks and give them the appropriate
|
||||
* font size and padding.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/855
|
||||
* https://github.com/mkdocs/mkdocs/issues/834
|
||||
* https://github.com/mkdocs/mkdocs/issues/233
|
||||
*/
|
||||
.rst-content pre code {
|
||||
white-space: pre;
|
||||
word-wrap: normal;
|
||||
display: block;
|
||||
padding: 12px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix code colors
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/2027
|
||||
*/
|
||||
.rst-content code {
|
||||
color: #E74C3C;
|
||||
}
|
||||
|
||||
.rst-content pre code {
|
||||
color: #000;
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
/*
|
||||
* Fix link colors when the link text is inline code.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/718
|
||||
*/
|
||||
a code {
|
||||
color: #2980B9;
|
||||
}
|
||||
a:hover code {
|
||||
color: #3091d1;
|
||||
}
|
||||
a:visited code {
|
||||
color: #9B59B6;
|
||||
}
|
||||
|
||||
/*
|
||||
* The CSS classes from highlight.js seem to clash with the
|
||||
* ReadTheDocs theme causing some code to be incorrectly made
|
||||
* bold and italic.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/411
|
||||
*/
|
||||
pre .cs, pre .c {
|
||||
font-weight: inherit;
|
||||
font-style: inherit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Fix some issues with the theme and non-highlighted code
|
||||
* samples. Without and highlighting styles attached the
|
||||
* formatting is broken.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/319
|
||||
*/
|
||||
.rst-content .no-highlight {
|
||||
display: block;
|
||||
padding: 0.5em;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Additions specific to the search functionality provided by MkDocs
|
||||
*/
|
||||
|
||||
.search-results {
|
||||
margin-top: 23px;
|
||||
}
|
||||
|
||||
.search-results article {
|
||||
border-top: 1px solid #E1E4E5;
|
||||
padding-top: 24px;
|
||||
}
|
||||
|
||||
.search-results article:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
form .search-query {
|
||||
width: 100%;
|
||||
border-radius: 50px;
|
||||
padding: 6px 12px;
|
||||
border-color: #D1D4D5;
|
||||
}
|
||||
|
||||
/*
|
||||
* Improve inline code blocks within admonitions.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/656
|
||||
*/
|
||||
.rst-content .admonition code {
|
||||
color: #404040;
|
||||
border: 1px solid #c7c9cb;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
background: #f8fbfd;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
}
|
||||
|
||||
/*
|
||||
* Account for wide tables which go off the side.
|
||||
* Override borders to avoid weirdness on narrow tables.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/834
|
||||
* https://github.com/mkdocs/mkdocs/pull/1034
|
||||
*/
|
||||
.rst-content .section .docutils {
|
||||
width: 100%;
|
||||
overflow: auto;
|
||||
display: block;
|
||||
border: none;
|
||||
}
|
||||
|
||||
td, th {
|
||||
border: 1px solid #e1e4e5 !important;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
/*
|
||||
* Without the following amendments, the navigation in the theme will be
|
||||
* slightly cut off. This is due to the fact that the .wy-nav-side has a
|
||||
* padding-bottom of 2em, which must not necessarily align with the font-size of
|
||||
* 90 % on the .rst-current-version container, combined with the padding of 12px
|
||||
* above and below. These amendments fix this in two steps: First, make sure the
|
||||
* .rst-current-version container has a fixed height of 40px, achieved using
|
||||
* line-height, and then applying a padding-bottom of 40px to this container. In
|
||||
* a second step, the items within that container are re-aligned using flexbox.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/2012
|
||||
*/
|
||||
.wy-nav-side {
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
/* For section-index only */
|
||||
.wy-menu-vertical .current-section p {
|
||||
background-color: #e3e3e3;
|
||||
color: #404040;
|
||||
}
|
||||
|
||||
/*
|
||||
* The second step of above amendment: Here we make sure the items are aligned
|
||||
* correctly within the .rst-current-version container. Using flexbox, we
|
||||
* achieve it in such a way that it will look like the following:
|
||||
*
|
||||
* [No repo_name]
|
||||
* Next >> // On the first page
|
||||
* << Previous Next >> // On all subsequent pages
|
||||
*
|
||||
* [With repo_name]
|
||||
* <repo_name> Next >> // On the first page
|
||||
* <repo_name> << Previous Next >> // On all subsequent pages
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/2012
|
||||
*/
|
||||
.rst-versions .rst-current-version {
|
||||
padding: 0 12px;
|
||||
display: flex;
|
||||
font-size: initial;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Please note that this amendment also involves removing certain inline-styles
|
||||
* from the file ./mkdocs/themes/readthedocs/versions.html.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/2012
|
||||
*/
|
||||
.rst-current-version span {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
156
mkdocs/site/demo/index.html
Normal file
@ -0,0 +1,156 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="../img/favicon.ico" />
|
||||
<title>Demo - ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="../css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "Demo";
|
||||
var mkdocs_page_input_path = "demo.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href=".." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">Demo</a>
|
||||
<ul class="current">
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="..">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">Demo</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="demo">Demo</h1>
|
||||
<p>A dedicated <a href="https://elog.psi.ch/elogs/Linux+Demo">Demo Logbook</a> is available as a playground.</p>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href="../contrib/" class="btn btn-neutral float-left" title="Contributions"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
<a href="../download/" class="btn btn-neutral float-right" title="Download">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
<span><a href="../contrib/" style="color: #fcfcfc">« Previous</a></span>
|
||||
|
||||
|
||||
<span><a href="../download/" style="color: #fcfcfc">Next »</a></span>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "..";</script>
|
||||
<script src="../js/theme_extra.js"></script>
|
||||
<script src="../js/theme.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
189
mkdocs/site/download/index.html
Normal file
@ -0,0 +1,189 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="../img/favicon.ico" />
|
||||
<title>Download - ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="../css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "Download";
|
||||
var mkdocs_page_input_path = "download.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href=".." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">Download</a>
|
||||
<ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="#windows-binaries">Windows Binaries</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="..">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">Download</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="elog-download-page">ELOG download page</h1>
|
||||
<hr />
|
||||
<p>ELOG is distributed both as source code and as precompiled binaries for
|
||||
various platforms. In addition to major versions, minor releases are
|
||||
made containing bug fixes or some new and not yet completely debugged
|
||||
code. This is usually the case if some user asks for some new features,
|
||||
which are then implemented and sent to the user for testing. The minor
|
||||
releases are named <strong><code>x.y.z-r</code></strong> where <strong><code>r</code></strong> is the release number. A
|
||||
<a href="https://bitbucket.org/ritt/elog">web access</a> to the source code
|
||||
contains the complete development history of ELOG, plus the newest fixes
|
||||
and features which might yet be in a release. To check out the GIT
|
||||
repository, use:</p>
|
||||
<p><code>git clone https://bitbucket.org/ritt/elog --recursive</code></p>
|
||||
<p>No tags are used, so it is recommended to always use the newest release
|
||||
from the \"master\" branch.</p>
|
||||
<p>Building elogd requires the CMake system and is done in the traditional
|
||||
way:</p>
|
||||
<pre><code class="language-text">$ cd elog
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake ..
|
||||
$ make
|
||||
</code></pre>
|
||||
<p>This will put the executables <strong><code>elogd</code></strong> and <strong><code>elog</code></strong> into the build
|
||||
directory, from where they can be moved to a system directory like
|
||||
<strong><code>/usr/local/sbin/elogd</code></strong></p>
|
||||
<p>News for each version can be seen in the
|
||||
<a href="http://elog.psi.ch/elog/download/ChangeLog">changelog</a></p>
|
||||
<h2 id="windows-binaries">Windows Binaries</h2>
|
||||
<p>The windows binaries are distributed with an automatic
|
||||
<a href="http://elog.psi.ch/elog/download/windows/elog-latest.exe">installer</a>.
|
||||
Execute the installer to install ELOG and to register the elogd server
|
||||
as a windows service. Previous windows versions can be found
|
||||
<a href="http://elog.psi.ch/elog/download/windows/">here</a>.</p>
|
||||
<p>Note that the windows binaries are very much outdated and will be
|
||||
updated once the develop gets access again to a Windows PC.</p>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href="../demo/" class="btn btn-neutral float-left" title="Demo"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
<span><a href="../demo/" style="color: #fcfcfc">« Previous</a></span>
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "..";</script>
|
||||
<script src="../js/theme_extra.js"></script>
|
||||
<script src="../js/theme.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
495
mkdocs/site/faq/index.html
Normal file
@ -0,0 +1,495 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="../img/favicon.ico" />
|
||||
<title>FAQ - ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="../css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "FAQ";
|
||||
var mkdocs_page_input_path = "faq.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href=".." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">FAQ</a>
|
||||
<ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-does-one-configure-elog-to-display-the-last-message-by-default">How does one configure elog to display the last message by default</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#are-there-any-plans-to-implement-a-mysql-back-end">Are there any plans to implement a MySQL back end?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#can-i-run-the-elog-daemon-from-inside-apache-or-any-other-web-server">Can I run the ELOG daemon from inside Apache or any other Web server?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-can-access-my-logbook-without-any-password-isnt-that-a-security-problem">I can access my logbook without any password, isn't that a security problem?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-want-a-bookmark-pointing-to-the-last-page-where-an-attribute-has-a-certain-value">I want a bookmark pointing to the last page where an attribute has a certain value</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-want-a-logbook-with-public-read-access-no-password-but-restricted-write-access">I want a logbook with public read access (no password), but restricted write access</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-have-many-loogbooks-with-password-files-so-if-i-add-a-user-or-want-to-change-a-password-i-have-to-do-this-for-all-logbooks-which-is-painful">I have many loogbooks with password files, so if I add a user or want to change a password I have to do this for all logbooks which is painful.</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-configure-elog-such-that-it-displays-something-else-than-the-message-list-by-default">How can I configure ELOG such that it displays something else than the message list by default?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-want-to-have-additional-commands-specific-to-my-lookbook">I want to have additional commands specific to my lookbook</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-does-one-configure-elog-to-disable-editing-of-existing-messages-i-want-a-logbook-where-one-can-enter-messages-but-not-change-them-afterwards">How does one configure elog to disable editing of existing messages? I want a logbook where one can enter messages but not change them afterwards.</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-track-various-revisions-of-a-message-using-the-edit-command">How can I track various revisions of a message using the "edit" command?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-enter-a-date-which-is-different-from-current-one">How can I enter a date which is different from current one?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-cannot-pass-the-login-page-its-always-redisplayed-even-if-i-put-in-the-right-password">I cannot pass the login page, it's always redisplayed even if I put in the right password?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-change-an-attribute-for-an-entire-thread-we-have-an-attribute-open-problemfixed-which-should-be-changed-for-the-whole-thread-if-that-problem-has-been-fixed">How can I change an attribute for an entire thread? We have an attribute "open problem/fixed" which should be changed for the whole thread if that problem has been fixed.</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#can-i-use-rss-feeds-with-password-protected-logbooks">Can I use RSS feeds with password protected logbooks?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-make-a-whole-thread-open-or-closed">How can I make a whole thread open or closed?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#does-elog-have-a-spell-checker">Does elog have a spell checker?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#why-are-entries-with-large-attachments-submitted-so-slowly">Why are entries with large attachments submitted so slowly?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#the-elgod-daemon-crashes-from-time-to-time-what-can-i-do">The elgod daemon crashes from time to time, what can I do?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#how-can-i-create-an-elog-entry-automatically-from-a-script">How can I create an ELOG entry automatically from a script?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-want-to-notify-different-people-for-different-things-how-do-i-set-up-this">I want to notify different people for different things, how do I set up this?</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="..">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">FAQ</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="elog-faq">ELOG FAQ</h1>
|
||||
<p><strong>Frequently Asked Questions about usage and configuration</strong></p>
|
||||
<p>Please check also the <a href="http://elog.psi.ch/elogs/Forum">ELOG Forum</a>.</p>
|
||||
<hr />
|
||||
<h2 id="how-does-one-configure-elog-to-display-the-last-message-by-default">How does one configure elog to display the last message by default</h2>
|
||||
<p>One can use the <strong><code>Start page</code></strong> option for that. The entry:</p>
|
||||
<p><code>Start page = 0?cmd=last</code></p>
|
||||
<p>shows the last message entry by default. To have the described behaviour
|
||||
for all logbooks, the above statements can be placed in the
|
||||
<strong><code>[global]</code></strong> section.</p>
|
||||
<h2 id="are-there-any-plans-to-implement-a-mysql-back-end">Are there any plans to implement a MySQL back end?</h2>
|
||||
<p>No. The idea behind <strong>ELOG</strong> is that it is a <em>simple to use, simple to
|
||||
install</em> application. Many people use <strong>ELOG</strong> under Windows, and they
|
||||
even don't know what MySQL means. Other people like the flat file
|
||||
database format, because it's simple, easily accessible from other
|
||||
programs, and it's easy to backup certain days or months of the
|
||||
database (since the filenames contain the date). Since <strong>ELOG</strong> should
|
||||
be independent of any other package, some "switchable" backend between
|
||||
native <strong>ELOG</strong> format and MySQL would be needed, which is lots of work
|
||||
and not planned right now.</p>
|
||||
<p>However, there are several contributions from other people who wrote
|
||||
scripts to put ELOG entries into a MySQL database. One is available at
|
||||
<a href="http://elog.psi.ch/elogs/Forum/387">http://elog.psi.ch/elogs/Forum/387</a>.</p>
|
||||
<h2 id="can-i-run-the-elog-daemon-from-inside-apache-or-any-other-web-server">Can I run the ELOG daemon from inside Apache or any other Web server?</h2>
|
||||
<p>No. The <strong>ELOG</strong> daemon was designed as a standalone server and it will
|
||||
stay like that in the future. The reason for that is that <strong><code>elogd</code></strong>
|
||||
should not rely on any other software. This is for example important for
|
||||
many people running <strong><code>elogd</code></strong> under Windows, and they have no clue how
|
||||
to install Apache for Windows. The installation and maintenance for
|
||||
<strong><code>elogd</code></strong> therefore becomes much simpler. To run <strong><code>elogd</code></strong> in
|
||||
parallel to an Apache server on port 80, use Apache as a proxy,
|
||||
following the instruction on the installation page ("Running elogd
|
||||
under Apache").</p>
|
||||
<h2 id="i-can-access-my-logbook-without-any-password-isnt-that-a-security-problem">I can access my logbook without any password, isn't that a security problem?</h2>
|
||||
<p>By default, no password is used in <strong>ELOG</strong>. This can be useful for
|
||||
public directories etc. that anybody should be able to read. To add
|
||||
password security, read the documentation under <a href="../config/#access-control">Access
|
||||
control</a>. The recommended setup is password file
|
||||
security with guest access.</p>
|
||||
<p>Note that passwords are transferred over the network in plain text and
|
||||
therefore not secure. If this is a problem, a
|
||||
<a href="../adminguide/#secure-connections-howto">secure</a> network connection should be used.</p>
|
||||
<h2 id="i-want-a-bookmark-pointing-to-the-last-page-where-an-attribute-has-a-certain-value">I want a bookmark pointing to the last page where an attribute has a certain value</h2>
|
||||
<p>Use the URL:</p>
|
||||
<p><code>http://<your.host>/<logbook>/?cmd=Last&<attribute>=<value></code></p>
|
||||
<p>This executes the "<em>Last</em>" command using a filter with
|
||||
<strong><code><attribute>=<value></code></strong>. The following command displays the same page,
|
||||
but also locks the attribute (checks the box next to <code><attribute></code>) so
|
||||
that browsing (next, previous, first, last) only shows pages with that
|
||||
attribute value.</p>
|
||||
<p><code>http://<your.host>/<logbook>/?cmd=Last&<attribute>=<value>&l<attribute>=1</code></p>
|
||||
<p>Note the <code>"l"</code> before the second attribute, as in <code>"*lAuthor=1*"</code>.</p>
|
||||
<h2 id="i-want-a-logbook-with-public-read-access-no-password-but-restricted-write-access">I want a logbook with public read access (no password), but restricted write access</h2>
|
||||
<p>In an old version of the FAQ it has been stated here that one has to use
|
||||
two logbooks pointing to the same data directory. From Version 2.0.6 on,
|
||||
this can be accomplished much easier by the usage of the <strong>"Guest menu
|
||||
command"</strong>. Use a logbook with user level access (password file), and
|
||||
add menu lists like in the following example to the configuration file:</p>
|
||||
<pre><code class="language-text">Menu commands = New, Edit, Reply, Find, Last 10, Change password, Logout, Help
|
||||
Guest menu commands = Find, Last 10, Login, Help
|
||||
</code></pre>
|
||||
<p>If users access the logbook without supplying a user name, they are
|
||||
treated like "guests" and see the "Guest menu commands", with which
|
||||
one cannot submit or edit logbook entries. If one hits the "login"
|
||||
button, a user can login with a user name/password and sees the normal
|
||||
menu commands, with which one can submit new logbook entries.</p>
|
||||
<p>An optional self registration is possible by specifying</p>
|
||||
<p><code>Self register = 1</code></p>
|
||||
<p>in the configuration file. New users can then create their own accounts.</p>
|
||||
<h2 id="i-have-many-loogbooks-with-password-files-so-if-i-add-a-user-or-want-to-change-a-password-i-have-to-do-this-for-all-logbooks-which-is-painful">I have many loogbooks with password files, so if I add a user or want to change a password I have to do this for all logbooks which is painful.</h2>
|
||||
<p>You can have several logbooks point to the same password file. So if you
|
||||
change a user or password in that file, it becomes automatically
|
||||
available in all logbooks which use that file.</p>
|
||||
<h2 id="how-can-i-configure-elog-such-that-it-displays-something-else-than-the-message-list-by-default">How can I configure ELOG such that it displays something else than the message list by default?</h2>
|
||||
<p>There is a simple trick. You use the <strong>"<em>Start page</em>"</strong> option in the
|
||||
<strong><code>elogd</code></strong> file to redirect the start page to something else. Here are
|
||||
some examples:</p>
|
||||
<pre><code class="language-text">?npp=5 for the last 5 messages
|
||||
?last=7 show last 7 days (week)
|
||||
?cmd=New show the new message entry form
|
||||
?cmd=Find Show the "find" page
|
||||
?cmd=Search&<attrib>=<value> for a search with <attrib>=<value>
|
||||
</code></pre>
|
||||
<p>The various URLs can be copied from the browser's address bar when
|
||||
doint various things there.</p>
|
||||
<h2 id="i-want-to-have-additional-commands-specific-to-my-lookbook">I want to have additional commands specific to my lookbook</h2>
|
||||
<p>New commands can be added for example with the
|
||||
<strong><code>"Bottom text = bottom.html"</code></strong> option. To display all messages from
|
||||
last week and month of with "category = info", one can put following
|
||||
HTML code in bottom.html:</p>
|
||||
<pre><code><center>
|
||||
<a href="?last=7&Category=Info">Info from last week</a> |
|
||||
<a href="?last=31&Category=Info">Info from last month</a> |
|
||||
</center>
|
||||
</code></pre>
|
||||
<p>Note that the parameters <strong><code>"last=7&Category=Info"</code></strong> applies a filter on
|
||||
the display. You can learn how to make these filters by looking at the
|
||||
URL in your browser when you submit a find command with certain
|
||||
options.</p>
|
||||
<h2 id="how-does-one-configure-elog-to-disable-editing-of-existing-messages-i-want-a-logbook-where-one-can-enter-messages-but-not-change-them-afterwards">How does one configure elog to disable editing of existing messages? I want a logbook where one can enter messages but not change them afterwards.</h2>
|
||||
<p>This works with the option <strong><code>Menu commands</code></strong>. By default, the menu
|
||||
commands <strong><code>Back, New, Edit, Delete, Reply, Find, Config, Help</code></strong> are
|
||||
dispalyed and allowed. To avoid editing (and deleting) of existing
|
||||
messages, one removes the two commands and puts following statement into
|
||||
<strong><code>elogd.cfg</code>:</strong></p>
|
||||
<p><code>Menu commands = Back, New, Reply, Find, Config, Help</code></p>
|
||||
<p>This prohibits the execution of the commands "Edit" and "Delete".</p>
|
||||
<h2 id="how-can-i-track-various-revisions-of-a-message-using-the-edit-command">How can I track various revisions of a message using the "edit" command?</h2>
|
||||
<p>There are two ways:</p>
|
||||
<ul>
|
||||
<li>Add an attribute which keeps the revision dates and names as follows:</li>
|
||||
</ul>
|
||||
<pre><code class="language-text">Attributes = Author, ..., Revisions
|
||||
Locked attributes = Revisions
|
||||
Subst on Edit Revisions = $Revisions<br>$date by $long_name
|
||||
</code></pre>
|
||||
<p>The "Revisions" attribute cannot be modified manually (since it's
|
||||
locked). On each edit, the date and the current author is appedned to
|
||||
the previous revisions. The "\<br>" puts a line break between the
|
||||
entries.</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Create a thread for each entry. In addition of having the date and
|
||||
author of different revisions, the message content is kept. To revise
|
||||
and entry, one hits "Reply" instead of "Edit" (one can disable the
|
||||
"Edit" command for example). If one puts following option into the
|
||||
configuration file:</p>
|
||||
<p><code>Reply string = ""</code></p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>then the reply contains the original message without the usual "> "
|
||||
at the beginning of each line. One can then edit the message and
|
||||
submit it. In the threaded message list display, one sees then the
|
||||
different revisions as a message thread.</p>
|
||||
<h2 id="how-can-i-enter-a-date-which-is-different-from-current-one">How can I enter a date which is different from current one?</h2>
|
||||
<p>Usually, the current date/time is recorded when you add a new entry. It
|
||||
might be, however, that one wants to enter "old" entries, or some
|
||||
entries with a date in the future (like a to-do list with a due date).
|
||||
To do that, on can add a new attribute (let's call it <em>Record date</em>, to
|
||||
be different from the pre-defined <em>Date</em>:</p>
|
||||
<pre><code class="language-text">Attributes = Author, ..., Record date
|
||||
Type Record date = date
|
||||
Preset Record date = $date
|
||||
Date format = %Y %m %d
|
||||
List Display = Record date, Author, ...
|
||||
Start page = ?rsort=Record date
|
||||
</code></pre>
|
||||
<p>The <em>Preset Record date</em> statement sets the record date to the current
|
||||
date, but this can then of course edited during the message entry. The
|
||||
<em>List Display</em> and <em>Start page</em> statements show the record date as the
|
||||
first column in the summary display and also sort by that. Note the
|
||||
<em>Date format</em> showing first year, then month and day. This is necessary
|
||||
since sorting is done only lexically. Please note that the <em>List
|
||||
Display</em> was renamed recently. Prior to version 2.3.10, it was called
|
||||
<em>Display Search</em>.</p>
|
||||
<h2 id="i-cannot-pass-the-login-page-its-always-redisplayed-even-if-i-put-in-the-right-password">I cannot pass the login page, it's always redisplayed even if I put in the right password?</h2>
|
||||
<p>This can happen if you change the login policy, for example move the
|
||||
<strong><code>Password file =</code></strong> entry in the configuration file from a logbook
|
||||
section to the [global] section or back. In that case some old cookies
|
||||
could be stored in your browser, which confuse the system. Please delete
|
||||
your cookies in the browser to resolve this problem. Read your browser
|
||||
documentation on how to do that.</p>
|
||||
<h2 id="how-can-i-change-an-attribute-for-an-entire-thread-we-have-an-attribute-open-problemfixed-which-should-be-changed-for-the-whole-thread-if-that-problem-has-been-fixed">How can I change an attribute for an entire thread? We have an attribute "open problem/fixed" which should be changed for the whole thread if that problem has been fixed.</h2>
|
||||
<p>This is a typical request of a bug-tracking set-up. Someone enters a
|
||||
request, opening a new thread. The expert(s) reply to the the request,
|
||||
and after a while, the request gets satisfied or the problem gets fixed.
|
||||
If an attribute like "status", having the options "open" and
|
||||
"fixed" could get changed for the whole thread, on could very easily
|
||||
search for all "open" problems.</p>
|
||||
<p>Since this functionality is not implemented, an alternative strategy is
|
||||
recommended: Implement two (or more) logbooks. The first logbook has
|
||||
open issues, the second one has fixed ones. When an entry changes state,
|
||||
it simply has to be copied to the second logbook. This can be done by
|
||||
defining the menu command "move" in the config file, like:</p>
|
||||
<p><code>Menu commands = Back, New, Edit, Delete, Reply, Find, Move to, Config, Help</code></p>
|
||||
<p>Note the additional <strong><em>Move to</em></strong>. This solution is even more elegant
|
||||
than having attributes changed in whole threads, since one has two
|
||||
separate logbooks, and can treat the second one more like an archive,
|
||||
make separate back-ups, or deleting some entries after some time, while
|
||||
keeping the open issues untouched.</p>
|
||||
<h2 id="can-i-use-rss-feeds-with-password-protected-logbooks">Can I use RSS feeds with password protected logbooks?</h2>
|
||||
<p>RSS feeds normally only work for logbooks which have at least public
|
||||
read access (via the guest menu commands). There is however a way to
|
||||
allow only restricted read access and still use RSS feeds. This is done
|
||||
by adding an additional read password via the
|
||||
<strong><code>elogd -r <pwd> -l <logbook></code></strong> command. This password (username may
|
||||
be any) can then be used in an RSS reader for restricted access. One
|
||||
reader which has been successfully used with this kind of authentication
|
||||
is <a href="http://www.rssreader.com">RSSReader</a>.</p>
|
||||
<h2 id="how-can-i-make-a-whole-thread-open-or-closed">How can I make a whole thread open or closed?</h2>
|
||||
<p>Sometime people want to mark a whole thread in a way. An example is a
|
||||
to-do list, where they want a special icon on high priority things, and
|
||||
have this icon disappear one the task is finished. This can be easily
|
||||
done with icons. The configuration could look like this:</p>
|
||||
<pre><code class="language-text">Attributes = Author, Status, Subject
|
||||
IOptions Status = icon1.gif, icon2.gif, icon4.gif
|
||||
Preset Status = icon4.gif
|
||||
Preset on reply status = icon2.gif
|
||||
Icon comment icon1.gif = Closed entry
|
||||
Icon comment icon4.gif = Open entry
|
||||
Thread display = $Author $Subject
|
||||
Thread icon = Status
|
||||
</code></pre>
|
||||
<p>New entries get an exclamation mark icon for example ("Preset status =
|
||||
..."). Replies to this entry get a reply icon. Once the thread should
|
||||
be closed, one simple edits the top entry in that thread and changes the
|
||||
icon. The icon1.gif from the distribution is maybe not ideally suited
|
||||
for that, but one could make a green check mark icon for example for
|
||||
that. The "Thread display" and "Thread icon" make this icon appear
|
||||
at the left side of the threaded display.</p>
|
||||
<p>An alternative approach would be to use two logbooks. The first one
|
||||
receive all new entries ("open items"). Once an entry (with its
|
||||
replies) gets closed, it must be moved manually to the second logbook
|
||||
("closed items"). This can be done with the "Move To" command (see
|
||||
"menu commands" in config file). This way one nicely separates open
|
||||
and closed items in two separate logbooks. One can still search both
|
||||
logbooks at the same time if one checks "Search all logbooks" in the
|
||||
find page.</p>
|
||||
<p>Starting from elog version 2.7.7, there now even a third way to do this.
|
||||
With an additional line in the configuration file: Collapse tn last = 1
|
||||
(in fact the default, but to be explicit), then when the thread is ready
|
||||
to be marked as closed, select the "closed entry" icon when writing
|
||||
the last entry. When the entries are viewed in "threaded" mode, then
|
||||
the closed entry icon appears on the last entry; and when in "threaded,
|
||||
collapsed" mode, then the closed entry icon appears in the one line
|
||||
that represents that whole thread.</p>
|
||||
<h2 id="does-elog-have-a-spell-checker">Does elog have a spell checker?</h2>
|
||||
<p>No, but you can use any spell checker which works with your browser.
|
||||
Examples are <a href="http://www.iespellc.com">IESpell</a> for Internet Explorer
|
||||
and <a href="http://spellbound.sourceforge.net">SpellBound</a> for Mozilla-based
|
||||
browsers.</p>
|
||||
<h2 id="why-are-entries-with-large-attachments-submitted-so-slowly">Why are entries with large attachments submitted so slowly?</h2>
|
||||
<p>If email notifications are used, the ELOG program has to pass these
|
||||
attachments to the email server, which might take quite some time. Some
|
||||
email servers even don't allow to forward attachments if they are
|
||||
larger than a few mega bytes. In that one can simply turn off the
|
||||
forwarding of email attachments with</p>
|
||||
<p><code>Email format = 111</code></p>
|
||||
<p>this causes only the attachment names being forwarded, not the
|
||||
attachments themselves.</p>
|
||||
<h2 id="the-elgod-daemon-crashes-from-time-to-time-what-can-i-do">The elgod daemon crashes from time to time, what can I do?</h2>
|
||||
<p>Bugs are constantly fixed inside elogd so a upgrade to the current
|
||||
version is recommended as a first measrue. If that does not help, the
|
||||
key will be the reproducibility of the crash. I only can fix problems if
|
||||
I can reproduce them. Sometimes it's related to strange logbook entries
|
||||
which cause elogd to crash when they are edited. So if there is a way to
|
||||
reproducible trigger the problem, I need the files and confiration
|
||||
related with it. If I can reproduce it in my local installation, I can
|
||||
fix it pretty soon.</p>
|
||||
<p>If that is not possible, an alternative is to run elgod under a
|
||||
debugger, and do a stack trace if the program dies. Under linux, this
|
||||
can be done using the gdb debugger, which might look like this:</p>
|
||||
<pre><code class="language-text">[~/elog]$ gdb ./elogd
|
||||
GNU gdb Red Hat Linux (6.5-25.el5rh)
|
||||
...
|
||||
|
||||
(gdb) run
|
||||
Starting program: /afs/psi.ch/user/r/ritt/elog/elogd
|
||||
elogd 2.7.5 built Dec 2 2008, 10:47:09 revision 2147
|
||||
ImageMagick detected
|
||||
Indexing logbooks ... test
|
||||
|
||||
Program received signal SIGSEGV, Segmentation fault.
|
||||
0x08054beb in el_index_logbooks () at src/elogd.c:3892
|
||||
3892 *p = (char)1;
|
||||
(gdb) where
|
||||
#0 0x08054beb in el_index_logbooks () at src/elogd.c:3892
|
||||
#1 0x080b8774 in server_loop () at src/elogd.c:27565
|
||||
#2 0x080bbdd5 in main (argc=1, argv=0xbfee5b54) at src/elogd.c:28923
|
||||
(gdb)
|
||||
</code></pre>
|
||||
<p>So the basic command is to make a stack trace with "where" after a
|
||||
segmentation fault. This tells me where in the code something wrong
|
||||
happened (in this case it was inside the function el_index_logbooks() at
|
||||
line 3892. Please send me this information and I will try then to figure
|
||||
out what was wrong.</p>
|
||||
<h2 id="how-can-i-create-an-elog-entry-automatically-from-a-script">How can I create an ELOG entry automatically from a script?</h2>
|
||||
<p>The <a href="../userguide/#elog-command-line-client">User's
|
||||
Guide</a> describes the standalone "elog"
|
||||
utility, which can be used from a script or from another program to
|
||||
submit an automatic email entry. This works locally or remotely, with
|
||||
optional attachments. Enter "elog -h" for a full list of options. The
|
||||
elog utility is part of the distribution and resides in the same
|
||||
directory as the elogd daemon.</p>
|
||||
<h2 id="i-want-to-notify-different-people-for-different-things-how-do-i-set-up-this">I want to notify different people for different things, how do I set up this?</h2>
|
||||
<p>Assume you want to send an email notification to person A for a problem
|
||||
report, to person B for problem fix and so on. The simplest way is to
|
||||
use the <code>Email <attribute> <value> = <email address></code> syntax. So you
|
||||
could set-up following configuration:</p>
|
||||
<pre><code class="language-text">Attributes = Author, Type
|
||||
Options Type = Problem Report, Problem Fix
|
||||
Email Type Problem Report = person.a@elog.com
|
||||
Email Type Problem Fix = person.b@elog.com
|
||||
</code></pre>
|
||||
<p>If you want to select email addresses directly from a list, you can do
|
||||
the set-up as following: Attributes = Author, Notify MOptions Notify =
|
||||
Person A, Person B Email Notify Person A = person.a@elog.com Email
|
||||
Notify Person B = person.b@elog.com This way you can for each entry
|
||||
select one or more people to be notified from the pre-defined list.</p>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href="../config/" class="btn btn-neutral float-left" title="Config file"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
<a href="../forum/" class="btn btn-neutral float-right" title="Forum">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
<span><a href="../config/" style="color: #fcfcfc">« Previous</a></span>
|
||||
|
||||
|
||||
<span><a href="../forum/" style="color: #fcfcfc">Next »</a></span>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "..";</script>
|
||||
<script src="../js/theme_extra.js"></script>
|
||||
<script src="../js/theme.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
156
mkdocs/site/forum/index.html
Normal file
@ -0,0 +1,156 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="../img/favicon.ico" />
|
||||
<title>Forum - ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="../css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "Forum";
|
||||
var mkdocs_page_input_path = "forum.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href=".." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">Forum</a>
|
||||
<ul class="current">
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="..">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">Forum</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="forum">Forum</h1>
|
||||
<p>A dedicated <a href="https://elog.psi.ch/elogs/Forum">discussion forum</a> running elog itself is used for various feedback and questions around elog.</p>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href="../faq/" class="btn btn-neutral float-left" title="FAQ"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
<a href="../wishlist/" class="btn btn-neutral float-right" title="Wishlist">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
<span><a href="../faq/" style="color: #fcfcfc">« Previous</a></span>
|
||||
|
||||
|
||||
<span><a href="../wishlist/" style="color: #fcfcfc">Next »</a></span>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "..";</script>
|
||||
<script src="../js/theme_extra.js"></script>
|
||||
<script src="../js/theme.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
mkdocs/site/img/cell_style.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
mkdocs/site/img/elog.gif
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
mkdocs/site/img/elog_thumb.gif
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
mkdocs/site/img/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
mkdocs/site/img/hierarchy.gif
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
mkdocs/site/img/live_bookmarks.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
mkdocs/site/img/rss.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
mkdocs/site/img/sync.gif
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
mkdocs/site/img/tabs.gif
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
mkdocs/site/img/theme1.jpg
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
mkdocs/site/img/theme2.jpg
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
mkdocs/site/img/thumbnail.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
293
mkdocs/site/index.html
Normal file
@ -0,0 +1,293 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="description" content="None" />
|
||||
<link rel="shortcut icon" href="img/favicon.ico" />
|
||||
<title>ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="css/theme.css" />
|
||||
<link rel="stylesheet" href="css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "Home";
|
||||
var mkdocs_page_input_path = "index.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href="." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="./search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">Home</a>
|
||||
<ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="#what-is-elog">What is ELOG ?</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#screen-shots">Screen shots</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#use-cases">Use cases</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#license">License</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#credits">Credits</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#talks-and-presentations">Talks and presentations</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href=".">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">Home</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="the-elog-home-page">The ELOG Home Page</h1>
|
||||
<p>Home of the <em>Electronic Logbook</em> package by <a href="mailto:Stefan.Ritt@psi.ch">Stefan
|
||||
Ritt</a></p>
|
||||
<p><em>Current version: 3.1.4</em></p>
|
||||
<hr />
|
||||
<h2 id="what-is-elog">What is ELOG ?</h2>
|
||||
<p><strong>ELOG</strong> is part of a family of applications known as <em><em>weblog</em>s</em> .
|
||||
Their general purpose is :</p>
|
||||
<ol>
|
||||
<li>to make it easy for people to put information online in a
|
||||
chronological fashion, in the form of short, time-stamped text
|
||||
messages ("entries") with optional HTML markup for presentation,
|
||||
and optional file attachments (images, archives, etc.)</li>
|
||||
<li>to make it easy for other people to access this information through
|
||||
a Web interface, browse entries, search, download files, and
|
||||
optionally add, update, delete or comment on entries.</li>
|
||||
</ol>
|
||||
<p><strong>ELOG</strong> is a remarkable implementation of a <em>weblog</em> in at least two
|
||||
respects :</p>
|
||||
<ul>
|
||||
<li>its simplicity of use : you don't need to be a seasoned server
|
||||
operator and/or an experimented database administrator to run <strong>ELOG</strong>
|
||||
; one executable file (under Unix or Windows), a simple configuration
|
||||
text file, and it works. No Web server or relational database
|
||||
required. It is also easy to translate the interface to the
|
||||
appropriate language for your users.</li>
|
||||
<li>its versatility : through its single configuration file, <strong>ELOG</strong> can
|
||||
be made to display an infinity of variants of the <em>weblog</em> concept.
|
||||
There are options for what to display, how to display it, what
|
||||
commands are available and to whom, access control, etc. Moreover, a
|
||||
single server can host several <em><em>weblog</em>s</em>, and each <em>weblog</em> can be
|
||||
totally different from the rest.</li>
|
||||
</ul>
|
||||
<h2 id="screen-shots">Screen shots</h2>
|
||||
<p><a href="elog/elog.gif" target="_blank">
|
||||
<img src="img/elog_thumb.gif" alt="thumb" style="float:left; margin:0 1em 1em 0; width:200px;">
|
||||
</a></p>
|
||||
<p>On the left upper panel is a typical logbook page displayed by Netscape Navigator. Each
|
||||
logbook page can contain attachments in a similar way to emails. This makes it possible
|
||||
to store images or text files and retrieve them easily. You could for example attach a sample
|
||||
configuration file which can later be copied to the local machine with the "<em>Save As...</em>"
|
||||
function of the Web browser.</p>
|
||||
<p>Several logbooks can be served though a single <strong>ELOG</strong> server. Each logbook can use different
|
||||
attributes for its entries. The logbook can then be searched using these attributes. The
|
||||
right pane on the left image shows a search for all entries with attribute "<em>Type</em>" equal to<br />
|
||||
"<em>Configuration</em>", and the lower pane shows the search result. It is also possible to use <br />
|
||||
full-text search in attributes and the entry body. </p>
|
||||
<p>While logbook entries are usually displayed one entry per page, they can also be listed <br />
|
||||
consecutively which makes it easy to produce a paper printout of a logbook. </p>
|
||||
<p>Logbook pages can be edited or deleted. This feature can be turned off in the configuration
|
||||
file so that a logbook entries cannot be changed after being submitted. </p>
|
||||
<p>An additional feature is the automatic generation of a notification email messages <br />
|
||||
based on a certain type or category of a logbook entry. </p>
|
||||
<p>Also try out the <strong><a href="http://elog.psi.ch/elogs/Linux%20Demo/">online demo</a></strong></p>
|
||||
<h2 id="use-cases">Use cases</h2>
|
||||
<p>The features of <strong>ELOG</strong> make it useful for several applications:</p>
|
||||
<ul>
|
||||
<li><strong>Personal Logbooks</strong>. Personal notes can be written into <strong>ELOG</strong> and
|
||||
can then be retrieved from anywhere with a Web browser. This makes it
|
||||
handy for PC supporters who have to go around in companies or
|
||||
laboratories and don\'t want to carry their paper logbook with them.
|
||||
The same holds true for people traveling around a lot. The logbook
|
||||
database consists of plain ASCII files which can copied easily between
|
||||
different computers to have local access, for example on a notebook
|
||||
with no network connection.</li>
|
||||
<li><strong>Shared Logbooks</strong>. Logbooks can be shared by several people, for
|
||||
reading and optionally for writing. This way workgroups can share and
|
||||
exchange information like in a (simplified) news group. This is
|
||||
supported by the <em>Reply</em> command in <strong>ELOG</strong> which creates
|
||||
"<em>threads</em>" of entries. Users can be notified by email when new
|
||||
entries are added to the logbook. Compared to that of a news server,
|
||||
the installation of <strong>ELOG</strong> is much simpler.</li>
|
||||
<li><strong>Small Databases</strong>. Since arbitrary attributes can be defined for a
|
||||
logbook, it can be used as a small database with search facilities.</li>
|
||||
<li><strong>Problem collections</strong>. A system can consist of two logbooks, in one
|
||||
of which users enter bugs or problems. If someone adds a problem, an
|
||||
email is automatically sent to the administrator, who can then copy
|
||||
the entry to the second logbook and add the solution to the problem.
|
||||
Users can then look up all fixed problems.</li>
|
||||
<li><strong>Shift Logbooks</strong>. If the <em>Allow delete</em> and <em>Allow edit</em> flags are
|
||||
off, an entry cannot be modified once it\'s been entered. This can be
|
||||
useful for shift logbooks for example in accelerator control rooms
|
||||
where each entry becomes a "<em>document</em>" with a time and author
|
||||
stamp. <strong>ELOG</strong> was originally developed as a shift logbook for the
|
||||
<a href="http://pibeta.psi.ch">PiBeta</a> and <a href="http://meg.psi.ch">Muegamma</a>
|
||||
particle experiments at <a href="http://www.psi.ch">PSI</a>.</li>
|
||||
<li><strong>File collections</strong>. Since files can be attached to <strong>ELOG</strong> entries,
|
||||
the system can be used to store and retrieve files. This can be used
|
||||
to store configuration files, which need to be accessible by several
|
||||
people over the web, or to store images. Since <strong>ELOG</strong> features an
|
||||
elaborate query facility, entries can be searched for by specifying
|
||||
several categories.</li>
|
||||
</ul>
|
||||
<h2 id="license">License</h2>
|
||||
<p><strong>ELOG</strong> is released under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU Public
|
||||
License</a> .</p>
|
||||
<h2 id="credits">Credits</h2>
|
||||
<p>The author would like to give credits to following people:</p>
|
||||
<ul>
|
||||
<li><a href="mailto:fredp@dial.oleane.com">Fred Pacquier</a> for this Web site and
|
||||
the French translation</li>
|
||||
<li><a href="mailto:roktas@omu.edu.tr">Recai Oktas</a> and <a href="mailto:roger.kalt@psi.ch">Roger
|
||||
Kalt</a> for the Debian package</li>
|
||||
<li><a href="mailto:djek@xs4all.nl">djek</a> for the Dutch translation</li>
|
||||
<li><a href="mailto:Heiko.Scheit@mpi-hd.mpg.de">Heiko Scheit</a> for many bug fixes
|
||||
and fruitful discussions</li>
|
||||
<li><a href="mailto:jhcalvo@arnet.com.ar">Julio Calvo</a> for the Spanish translation</li>
|
||||
<li><a href="mailto:AlberT@SuperAlberT.it">Emiliano 'AlberT' Gabrielli</a>
|
||||
for his idea of scaling attached images</li>
|
||||
<li><a href="mailto:andreas.luedeke@psi.ch">Andreas Luedeke</a>
|
||||
for continuing user support and deployment of ELOG at PSI</li>
|
||||
</ul>
|
||||
<h2 id="talks-and-presentations">Talks and presentations</h2>
|
||||
<p>Here are some talks and presentations given at various occasions:</p>
|
||||
<ul>
|
||||
<li>Seminar at KIT, Karlsruhe, Jan. 2015. <a href="https://elog.psi.ch/elog/talks/2015_1_intro.pptx">Introduction
|
||||
talk</a> by Stefan
|
||||
Ritt.</li>
|
||||
<li>Seminar at KIT, Karlsruhe, Jan. 2015. <a href="http://elog.psi.ch/elog/talks/2015_1_accel.pptx">Application of
|
||||
ELOG</a> for accelerator
|
||||
operation at PSI by <a href="mailto:andreas.luedeke@psi.ch">Andreas Luedeke</a>.</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<p><em>Content by <a href="https://www.psi.ch/en/ltp-muon-physics/people/stefan-ritt">Stefan Ritt</a>, Web pages
|
||||
by <a href="mailto:fredp@mygale.org">Fred Pacquier</a></em></p>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href="userguide/" class="btn btn-neutral float-right" title="User guide">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
|
||||
<span><a href="userguide/" style="color: #fcfcfc">Next »</a></span>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = ".";</script>
|
||||
<script src="js/theme_extra.js"></script>
|
||||
<script src="js/theme.js"></script>
|
||||
<script src="search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!--
|
||||
MkDocs version : 1.6.1
|
||||
Build Date UTC : 2025-10-02 08:35:21.979466+00:00
|
||||
-->
|
||||
4
mkdocs/site/js/html5shiv.min.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
/**
|
||||
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
|
||||
2
mkdocs/site/js/jquery-3.6.0.min.js
vendored
Normal file
2
mkdocs/site/js/theme.js
Normal file
8
mkdocs/site/js/theme_extra.js
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
* Assign 'docutils' class to tables so styling and
|
||||
* JavaScript behavior is applied.
|
||||
*
|
||||
* https://github.com/mkdocs/mkdocs/issues/2028
|
||||
*/
|
||||
|
||||
$('div.rst-content table').addClass('docutils');
|
||||
148
mkdocs/site/search.html
Normal file
@ -0,0 +1,148 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="./img/favicon.ico" />
|
||||
<title>ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="./css/theme.css" />
|
||||
<link rel="stylesheet" href="./css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="./js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href="./." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="./search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./.">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="./download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="./.">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="./." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
|
||||
<h1 id="search">Search Results</h1>
|
||||
|
||||
<form id="content_search" action="search.html">
|
||||
<span role="status" aria-live="polite" class="ui-helper-hidden-accessible"></span>
|
||||
<input name="q" id="mkdocs-search-query" type="text" class="search_input search-query ui-autocomplete-input" placeholder="Search the Docs" aria-label="Search the Docs" autocomplete="off" autofocus title="Type search term here">
|
||||
</form>
|
||||
|
||||
<div id="mkdocs-search-results" class="search-results" data-no-results-text="No results found">
|
||||
Searching...
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="./js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = ".";</script>
|
||||
<script src="./js/theme_extra.js"></script>
|
||||
<script src="./js/theme.js"></script>
|
||||
<script src="./search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
3475
mkdocs/site/search/lunr.js
Normal file
109
mkdocs/site/search/main.js
Normal file
@ -0,0 +1,109 @@
|
||||
function getSearchTermFromLocation() {
|
||||
var sPageURL = window.location.search.substring(1);
|
||||
var sURLVariables = sPageURL.split('&');
|
||||
for (var i = 0; i < sURLVariables.length; i++) {
|
||||
var sParameterName = sURLVariables[i].split('=');
|
||||
if (sParameterName[0] == 'q') {
|
||||
return decodeURIComponent(sParameterName[1].replace(/\+/g, '%20'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function joinUrl (base, path) {
|
||||
if (path.substring(0, 1) === "/") {
|
||||
// path starts with `/`. Thus it is absolute.
|
||||
return path;
|
||||
}
|
||||
if (base.substring(base.length-1) === "/") {
|
||||
// base ends with `/`
|
||||
return base + path;
|
||||
}
|
||||
return base + "/" + path;
|
||||
}
|
||||
|
||||
function escapeHtml (value) {
|
||||
return value.replace(/&/g, '&')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>');
|
||||
}
|
||||
|
||||
function formatResult (location, title, summary) {
|
||||
return '<article><h3><a href="' + joinUrl(base_url, location) + '">'+ escapeHtml(title) + '</a></h3><p>' + escapeHtml(summary) +'</p></article>';
|
||||
}
|
||||
|
||||
function displayResults (results) {
|
||||
var search_results = document.getElementById("mkdocs-search-results");
|
||||
while (search_results.firstChild) {
|
||||
search_results.removeChild(search_results.firstChild);
|
||||
}
|
||||
if (results.length > 0){
|
||||
for (var i=0; i < results.length; i++){
|
||||
var result = results[i];
|
||||
var html = formatResult(result.location, result.title, result.summary);
|
||||
search_results.insertAdjacentHTML('beforeend', html);
|
||||
}
|
||||
} else {
|
||||
var noResultsText = search_results.getAttribute('data-no-results-text');
|
||||
if (!noResultsText) {
|
||||
noResultsText = "No results found";
|
||||
}
|
||||
search_results.insertAdjacentHTML('beforeend', '<p>' + noResultsText + '</p>');
|
||||
}
|
||||
}
|
||||
|
||||
function doSearch () {
|
||||
var query = document.getElementById('mkdocs-search-query').value;
|
||||
if (query.length > min_search_length) {
|
||||
if (!window.Worker) {
|
||||
displayResults(search(query));
|
||||
} else {
|
||||
searchWorker.postMessage({query: query});
|
||||
}
|
||||
} else {
|
||||
// Clear results for short queries
|
||||
displayResults([]);
|
||||
}
|
||||
}
|
||||
|
||||
function initSearch () {
|
||||
var search_input = document.getElementById('mkdocs-search-query');
|
||||
if (search_input) {
|
||||
search_input.addEventListener("keyup", doSearch);
|
||||
}
|
||||
var term = getSearchTermFromLocation();
|
||||
if (term) {
|
||||
search_input.value = term;
|
||||
doSearch();
|
||||
}
|
||||
}
|
||||
|
||||
function onWorkerMessage (e) {
|
||||
if (e.data.allowSearch) {
|
||||
initSearch();
|
||||
} else if (e.data.results) {
|
||||
var results = e.data.results;
|
||||
displayResults(results);
|
||||
} else if (e.data.config) {
|
||||
min_search_length = e.data.config.min_search_length-1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!window.Worker) {
|
||||
console.log('Web Worker API not supported');
|
||||
// load index in main thread
|
||||
$.getScript(joinUrl(base_url, "search/worker.js")).done(function () {
|
||||
console.log('Loaded worker');
|
||||
init();
|
||||
window.postMessage = function (msg) {
|
||||
onWorkerMessage({data: msg});
|
||||
};
|
||||
}).fail(function (jqxhr, settings, exception) {
|
||||
console.error('Could not load worker.js');
|
||||
});
|
||||
} else {
|
||||
// Wrap search in a web worker
|
||||
var searchWorker = new Worker(joinUrl(base_url, "search/worker.js"));
|
||||
searchWorker.postMessage({init: true});
|
||||
searchWorker.onmessage = onWorkerMessage;
|
||||
}
|
||||
1
mkdocs/site/search/search_index.json
Normal file
133
mkdocs/site/search/worker.js
Normal file
@ -0,0 +1,133 @@
|
||||
var base_path = 'function' === typeof importScripts ? '.' : '/search/';
|
||||
var allowSearch = false;
|
||||
var index;
|
||||
var documents = {};
|
||||
var lang = ['en'];
|
||||
var data;
|
||||
|
||||
function getScript(script, callback) {
|
||||
console.log('Loading script: ' + script);
|
||||
$.getScript(base_path + script).done(function () {
|
||||
callback();
|
||||
}).fail(function (jqxhr, settings, exception) {
|
||||
console.log('Error: ' + exception);
|
||||
});
|
||||
}
|
||||
|
||||
function getScriptsInOrder(scripts, callback) {
|
||||
if (scripts.length === 0) {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
getScript(scripts[0], function() {
|
||||
getScriptsInOrder(scripts.slice(1), callback);
|
||||
});
|
||||
}
|
||||
|
||||
function loadScripts(urls, callback) {
|
||||
if( 'function' === typeof importScripts ) {
|
||||
importScripts.apply(null, urls);
|
||||
callback();
|
||||
} else {
|
||||
getScriptsInOrder(urls, callback);
|
||||
}
|
||||
}
|
||||
|
||||
function onJSONLoaded () {
|
||||
data = JSON.parse(this.responseText);
|
||||
var scriptsToLoad = ['lunr.js'];
|
||||
if (data.config && data.config.lang && data.config.lang.length) {
|
||||
lang = data.config.lang;
|
||||
}
|
||||
if (lang.length > 1 || lang[0] !== "en") {
|
||||
scriptsToLoad.push('lunr.stemmer.support.js');
|
||||
if (lang.length > 1) {
|
||||
scriptsToLoad.push('lunr.multi.js');
|
||||
}
|
||||
if (lang.includes("ja") || lang.includes("jp")) {
|
||||
scriptsToLoad.push('tinyseg.js');
|
||||
}
|
||||
for (var i=0; i < lang.length; i++) {
|
||||
if (lang[i] != 'en') {
|
||||
scriptsToLoad.push(['lunr', lang[i], 'js'].join('.'));
|
||||
}
|
||||
}
|
||||
}
|
||||
loadScripts(scriptsToLoad, onScriptsLoaded);
|
||||
}
|
||||
|
||||
function onScriptsLoaded () {
|
||||
console.log('All search scripts loaded, building Lunr index...');
|
||||
if (data.config && data.config.separator && data.config.separator.length) {
|
||||
lunr.tokenizer.separator = new RegExp(data.config.separator);
|
||||
}
|
||||
|
||||
if (data.index) {
|
||||
index = lunr.Index.load(data.index);
|
||||
data.docs.forEach(function (doc) {
|
||||
documents[doc.location] = doc;
|
||||
});
|
||||
console.log('Lunr pre-built index loaded, search ready');
|
||||
} else {
|
||||
index = lunr(function () {
|
||||
if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) {
|
||||
this.use(lunr[lang[0]]);
|
||||
} else if (lang.length > 1) {
|
||||
this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility
|
||||
}
|
||||
this.field('title');
|
||||
this.field('text');
|
||||
this.ref('location');
|
||||
|
||||
for (var i=0; i < data.docs.length; i++) {
|
||||
var doc = data.docs[i];
|
||||
this.add(doc);
|
||||
documents[doc.location] = doc;
|
||||
}
|
||||
});
|
||||
console.log('Lunr index built, search ready');
|
||||
}
|
||||
allowSearch = true;
|
||||
postMessage({config: data.config});
|
||||
postMessage({allowSearch: allowSearch});
|
||||
}
|
||||
|
||||
function init () {
|
||||
var oReq = new XMLHttpRequest();
|
||||
oReq.addEventListener("load", onJSONLoaded);
|
||||
var index_path = base_path + '/search_index.json';
|
||||
if( 'function' === typeof importScripts ){
|
||||
index_path = 'search_index.json';
|
||||
}
|
||||
oReq.open("GET", index_path);
|
||||
oReq.send();
|
||||
}
|
||||
|
||||
function search (query) {
|
||||
if (!allowSearch) {
|
||||
console.error('Assets for search still loading');
|
||||
return;
|
||||
}
|
||||
|
||||
var resultDocuments = [];
|
||||
var results = index.search(query);
|
||||
for (var i=0; i < results.length; i++){
|
||||
var result = results[i];
|
||||
doc = documents[result.ref];
|
||||
doc.summary = doc.text.substring(0, 200);
|
||||
resultDocuments.push(doc);
|
||||
}
|
||||
return resultDocuments;
|
||||
}
|
||||
|
||||
if( 'function' === typeof importScripts ) {
|
||||
onmessage = function (e) {
|
||||
if (e.data.init) {
|
||||
init();
|
||||
} else if (e.data.query) {
|
||||
postMessage({ results: search(e.data.query) });
|
||||
} else {
|
||||
console.error("Worker - Unrecognized message: " + e);
|
||||
}
|
||||
};
|
||||
}
|
||||
3
mkdocs/site/sitemap.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
</urlset>
|
||||
BIN
mkdocs/site/sitemap.xml.gz
Normal file
270
mkdocs/site/strftime.txt
Normal file
@ -0,0 +1,270 @@
|
||||
NAME
|
||||
strftime - convert date and time to a string
|
||||
|
||||
SYNOPSIS
|
||||
#include <time.h>
|
||||
|
||||
size_t strftime(char *restrict s, size_t maxsize,
|
||||
const char *restrict format, const struct tm *restrict
|
||||
timeptr);
|
||||
|
||||
DESCRIPTION
|
||||
The strftime() function shall place bytes into the array pointed to by
|
||||
s as controlled by the string pointed to by format. The format is a
|
||||
character string, beginning and ending in its initial shift state, if
|
||||
any. The format string consists of zero or more conversion specifica-
|
||||
tions and ordinary characters. A conversion specification consists of
|
||||
a â%â character, possibly followed by an E or O modifier, and a termi-
|
||||
nating conversion specifier character that determines the conversion
|
||||
specificationâs behavior. All ordinary characters (including the ter-
|
||||
minating null byte) are copied unchanged into the array. If copying
|
||||
takes place between objects that overlap, the behavior is undefined.
|
||||
No more than maxsize bytes are placed into the array. Each conversion
|
||||
specifier is replaced by appropriate characters as described in the
|
||||
following list. The appropriate characters are determined using the
|
||||
LC_TIME category of the current locale and by the values of zero or
|
||||
more members of the broken-down time structure pointed to by timeptr,
|
||||
as specified in brackets in the description. If any of the specified
|
||||
values are outside the normal range, the characters stored are unspec-
|
||||
ified.
|
||||
|
||||
Local timezone information is used as though strftime() called
|
||||
tzset().
|
||||
|
||||
The following conversion specifications are supported:
|
||||
|
||||
%a Replaced by the localeâs abbreviated weekday name. [ tm_wday]
|
||||
|
||||
%A Replaced by the localeâs full weekday name. [ tm_wday]
|
||||
|
||||
%b Replaced by the localeâs abbreviated month name. [ tm_mon]
|
||||
|
||||
%B Replaced by the localeâs full month name. [ tm_mon]
|
||||
|
||||
%c Replaced by the localeâs appropriate date and time representa-
|
||||
tion. (See the Base Definitions volume of
|
||||
IEEE Std 1003.1-2001, <time.h>.)
|
||||
|
||||
%C Replaced by the year divided by 100 and truncated to an inte-
|
||||
ger, as a decimal number [00,99]. [ tm_year]
|
||||
|
||||
%d Replaced by the day of the month as a decimal number [01,31]. [
|
||||
tm_mday]
|
||||
|
||||
%D Equivalent to %m / %d / %y . [ tm_mon, tm_mday, tm_year]
|
||||
|
||||
%e Replaced by the day of the month as a decimal number [1,31]; a
|
||||
single digit is preceded by a space. [ tm_mday]
|
||||
|
||||
%F Equivalent to %Y - %m - %d (the ISO 8601:2000 standard date
|
||||
format). [ tm_year, tm_mon, tm_mday]
|
||||
|
||||
%g Replaced by the last 2 digits of the week-based year (see
|
||||
below) as a decimal number [00,99]. [ tm_year, tm_wday,
|
||||
tm_yday]
|
||||
|
||||
%G Replaced by the week-based year (see below) as a decimal number
|
||||
(for example, 1977). [ tm_year, tm_wday, tm_yday]
|
||||
|
||||
%h Equivalent to %b . [ tm_mon]
|
||||
|
||||
%H Replaced by the hour (24-hour clock) as a decimal number
|
||||
[00,23]. [ tm_hour]
|
||||
|
||||
%I Replaced by the hour (12-hour clock) as a decimal number
|
||||
[01,12]. [ tm_hour]
|
||||
|
||||
%j Replaced by the day of the year as a decimal number [001,366].
|
||||
[ tm_yday]
|
||||
|
||||
%m Replaced by the month as a decimal number [01,12]. [ tm_mon]
|
||||
|
||||
%M Replaced by the minute as a decimal number [00,59]. [ tm_min]
|
||||
|
||||
%n Replaced by a <newline>.
|
||||
|
||||
%p Replaced by the localeâs equivalent of either a.m. or p.m. [
|
||||
tm_hour]
|
||||
|
||||
%r Replaced by the time in a.m. and p.m. notation; in the POSIX
|
||||
locale this shall be equivalent to %I : %M : %S %p . [
|
||||
tm_hour, tm_min, tm_sec]
|
||||
|
||||
%R Replaced by the time in 24-hour notation ( %H : %M ). [
|
||||
tm_hour, tm_min]
|
||||
|
||||
%S Replaced by the second as a decimal number [00,60]. [ tm_sec]
|
||||
|
||||
%t Replaced by a <tab>.
|
||||
|
||||
%T Replaced by the time ( %H : %M : %S ). [ tm_hour, tm_min,
|
||||
tm_sec]
|
||||
|
||||
%u Replaced by the weekday as a decimal number [1,7], with 1 rep-
|
||||
resenting Monday. [ tm_wday]
|
||||
|
||||
%U Replaced by the week number of the year as a decimal number
|
||||
[00,53]. The first Sunday of January is the first day of week
|
||||
1; days in the new year before this are in week 0. [ tm_year,
|
||||
tm_wday, tm_yday]
|
||||
|
||||
%V Replaced by the week number of the year (Monday as the first
|
||||
day of the week) as a decimal number [01,53]. If the week con-
|
||||
taining 1 January has four or more days in the new year, then
|
||||
it is considered week 1. Otherwise, it is the last week of the
|
||||
previous year, and the next week is week 1. Both January 4th
|
||||
and the first Thursday of January are always in week 1. [
|
||||
tm_year, tm_wday, tm_yday]
|
||||
|
||||
%w Replaced by the weekday as a decimal number [0,6], with 0 rep-
|
||||
resenting Sunday. [ tm_wday]
|
||||
|
||||
%W Replaced by the week number of the year as a decimal number
|
||||
[00,53]. The first Monday of January is the first day of week
|
||||
1; days in the new year before this are in week 0. [ tm_year,
|
||||
tm_wday, tm_yday]
|
||||
|
||||
%x Replaced by the localeâs appropriate date representation. (See
|
||||
the Base Definitions volume of IEEE Std 1003.1-2001, <time.h>.)
|
||||
|
||||
%X Replaced by the localeâs appropriate time representation. (See
|
||||
the Base Definitions volume of IEEE Std 1003.1-2001, <time.h>.)
|
||||
|
||||
%y Replaced by the last two digits of the year as a decimal number
|
||||
[00,99]. [ tm_year]
|
||||
|
||||
%Y Replaced by the year as a decimal number (for example, 1997). [
|
||||
tm_year]
|
||||
|
||||
%z Replaced by the offset from UTC in the ISO 8601:2000 standard
|
||||
format ( +hhmm or -hhmm ), or by no characters if no timezone
|
||||
is determinable. For example, "-0430" means 4 hours 30 minutes
|
||||
behind UTC (west of Greenwich). If tm_isdst is zero, the
|
||||
standard time offset is used. If tm_isdst is greater than zero,
|
||||
the daylight savings time offset is used. If tm_isdst is nega-
|
||||
tive, no characters are returned. [ tm_isdst]
|
||||
|
||||
%Z Replaced by the timezone name or abbreviation, or by no bytes
|
||||
if no timezone information exists. [ tm_isdst]
|
||||
|
||||
%% Replaced by % .
|
||||
|
||||
If a conversion specification does not correspond to any of the above,
|
||||
the behavior is undefined.
|
||||
|
||||
If a struct tm broken-down time structure is created by localtime() or
|
||||
localtime_r(), or modified by mktime(), and the value of TZ is subse-
|
||||
quently modified, the results of the %Z and %z strftime() conversion
|
||||
specifiers are undefined, when strftime() is called with such a bro-
|
||||
ken-down time structure.
|
||||
|
||||
If a struct tm broken-down time structure is created or modified by
|
||||
gmtime() or gmtime_r(), it is unspecified whether the result of the %Z
|
||||
and %z conversion specifiers shall refer to UTC or the current local
|
||||
timezone, when strftime() is called with such a broken-down time
|
||||
structure.
|
||||
|
||||
Modified Conversion Specifiers
|
||||
Some conversion specifiers can be modified by the E or O modifier
|
||||
characters to indicate that an alternative format or specification
|
||||
should be used rather than the one normally used by the unmodified
|
||||
conversion specifier. If the alternative format or specification does
|
||||
not exist for the current locale (see ERA in the Base Definitions vol-
|
||||
ume of IEEE Std 1003.1-2001, Section 7.3.5, LC_TIME), the behavior
|
||||
shall be as if the unmodified conversion specification were used.
|
||||
|
||||
%Ec Replaced by the localeâs alternative appropriate date and time
|
||||
representation.
|
||||
|
||||
%EC Replaced by the name of the base year (period) in the localeâs
|
||||
alternative representation.
|
||||
|
||||
%Ex Replaced by the localeâs alternative date representation.
|
||||
|
||||
%EX Replaced by the localeâs alternative time representation.
|
||||
|
||||
%Ey Replaced by the offset from %EC (year only) in the localeâs
|
||||
alternative representation.
|
||||
|
||||
%EY Replaced by the full alternative year representation.
|
||||
|
||||
%Od Replaced by the day of the month, using the localeâs alterna-
|
||||
tive numeric symbols, filled as needed with leading zeros if
|
||||
there is any alternative symbol for zero; otherwise, with lead-
|
||||
ing spaces.
|
||||
|
||||
%Oe Replaced by the day of the month, using the localeâs alterna-
|
||||
tive numeric symbols, filled as needed with leading spaces.
|
||||
|
||||
%OH Replaced by the hour (24-hour clock) using the localeâs alter-
|
||||
native numeric symbols.
|
||||
|
||||
%OI Replaced by the hour (12-hour clock) using the localeâs alter-
|
||||
native numeric symbols.
|
||||
|
||||
%Om Replaced by the month using the localeâs alternative numeric
|
||||
symbols.
|
||||
|
||||
%OM Replaced by the minutes using the localeâs alternative numeric
|
||||
symbols.
|
||||
|
||||
%OS Replaced by the seconds using the localeâs alternative numeric
|
||||
symbols.
|
||||
|
||||
%Ou Replaced by the weekday as a number in the localeâs alternative
|
||||
representation (Monday=1).
|
||||
|
||||
%OU Replaced by the week number of the year (Sunday as the first
|
||||
day of the week, rules corresponding to %U ) using the localeâs
|
||||
alternative numeric symbols.
|
||||
|
||||
%OV Replaced by the week number of the year (Monday as the first
|
||||
day of the week, rules corresponding to %V ) using the localeâs
|
||||
alternative numeric symbols.
|
||||
|
||||
%Ow Replaced by the number of the weekday (Sunday=0) using the
|
||||
localeâs alternative numeric symbols.
|
||||
|
||||
%OW Replaced by the week number of the year (Monday as the first
|
||||
day of the week) using the localeâs alternative numeric sym-
|
||||
bols.
|
||||
|
||||
%Oy Replaced by the year (offset from %C ) using the localeâs
|
||||
alternative numeric symbols.
|
||||
|
||||
%g , %G , and %V give values according to the ISO 8601:2000 standard
|
||||
week-based year. In this system, weeks begin on a Monday and week 1 of
|
||||
the year is the week that includes January 4th, which is also the week
|
||||
that includes the first Thursday of the year, and is also the first
|
||||
week that contains at least four days in the year. If the first Monday
|
||||
of January is the 2nd, 3rd, or 4th, the preceding days are part of the
|
||||
last week of the preceding year; thus, for Saturday 2nd January 1999,
|
||||
%G is replaced by 1998 and %V is replaced by 53. If December 29th,
|
||||
30th, or 31st is a Monday, it and any following days are part of week
|
||||
1 of the following year. Thus, for Tuesday 30th December 1997, %G is
|
||||
replaced by 1998 and %V is replaced by 01.
|
||||
|
||||
If a conversion specifier is not one of the above, the behavior is
|
||||
undefined.
|
||||
|
||||
RETURN VALUE
|
||||
If the total number of resulting bytes including the terminating null
|
||||
byte is not more than maxsize, strftime() shall return the number of
|
||||
bytes placed into the array pointed to by s, not including the termi-
|
||||
nating null byte. Otherwise, 0 shall be returned and the contents of
|
||||
the array are unspecified.
|
||||
|
||||
ERRORS
|
||||
No errors are defined.
|
||||
|
||||
COPYRIGHT
|
||||
Portions of this text are reprinted and reproduced in electronic form
|
||||
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technol-
|
||||
ogy -- Portable Operating System Interface (POSIX), The Open Group
|
||||
Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute
|
||||
of Electrical and Electronics Engineers, Inc and The Open Group. In
|
||||
the event of any discrepancy between this version and the original
|
||||
IEEE and The Open Group Standard, the original IEEE and The Open Group
|
||||
Standard is the referee document. The original Standard can be
|
||||
obtained online at http://www.opengroup.org/unix/online.html .
|
||||
|
||||
564
mkdocs/site/userguide/index.html
Normal file
@ -0,0 +1,564 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="../img/favicon.ico" />
|
||||
<title>User guide - ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="../css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "User guide";
|
||||
var mkdocs_page_input_path = "userguide.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href=".." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">User guide</a>
|
||||
<ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="#a-quick-intro">A Quick Intro</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#what-words-mean-here">What Words Mean Here</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#accessing-an-elog-server-and-its-logbooks">Accessing an ELOG server and its logbook(s)</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#viewing-information-in-elog">Viewing information in ELOG</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#browsing-around-and-finding-things">Browsing around and finding things</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#adding-stuff-to-a-logbook">Adding stuff to a logbook</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#misc-tips-tricks-things-to-be-aware-of">Misc. tips & tricks, things to be aware of...</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#elog-command-line-client">elog command line client</a>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#rss-feed">RSS Feed</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../wishlist/">Wishlist</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="..">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">User guide</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="elog-users-guide">ELOG User's Guide</h1>
|
||||
<p><em>How to get the most from your ELOG server</em></p>
|
||||
<hr />
|
||||
<h2 id="a-quick-intro">A Quick Intro</h2>
|
||||
<p><strong>ELOG</strong> is part of a family of applications known as <em>weblogs</em>. Their
|
||||
general purpose is :</p>
|
||||
<ol>
|
||||
<li>to make it easy for people to put information online in a
|
||||
chronological fashion, in the form of short, time-stamped text
|
||||
messages ("<em>entries</em>") with optional HTML markup for presentation,
|
||||
and optional file attachments (images, archives, etc.)</li>
|
||||
<li>to make it easy for other people to access this information through
|
||||
a Web interface, browse entries, search, download files, and
|
||||
optionally add, update, delete or comment on entries.</li>
|
||||
</ol>
|
||||
<p><strong>ELOG</strong> is a remarkable implementation of a <em>weblog</em> in at least two
|
||||
respects :</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>its simplicity of use : you don\'t need to be a seasoned server
|
||||
operator and/or an experimented database administrator to run <strong>ELOG</strong>
|
||||
; one executable file (under Unix or Windows), a simple configuration
|
||||
text file, and it works. No Web server or relational database
|
||||
required. It is also easy to translate the interface to the
|
||||
appropriate language for your users.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>its versatility : through its single configuration file, <strong>ELOG</strong> can
|
||||
be made to display an infinity of variants of the <em>weblog</em> concept.
|
||||
There are options for what to display, how to display it, what
|
||||
commands are available and to whom, access control, etc. Moreover, a
|
||||
single server can host several <em><em>weblog</em>s</em>, and each <em>weblog</em> can be
|
||||
totally different from the rest.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>This is actually a problem when writing a User's Guide, because
|
||||
<strong>ELOG</strong> servers, and individual <strong>weblogs</strong> on one server, can vary
|
||||
wildly in appearance and functionality... This guide only attempts to
|
||||
cover the main concepts of importance for <strong>ELOG</strong> users, describing
|
||||
the default "<em>out-of-the-box</em>" setup and how that behaviour may have
|
||||
been modified by the server administrator.</p>
|
||||
<h2 id="what-words-mean-here">What Words Mean Here</h2>
|
||||
<p>Just to be clear, some definitions of terms that will be used throughout
|
||||
the guide :</p>
|
||||
<ul>
|
||||
<li><strong>ELOG server</strong> : the machine on which the <strong>ELOG</strong> server is run. Its
|
||||
operating system (Windows/Unix/Linux) and status (server/desktop) are
|
||||
not important, and of course it will probably do many other things
|
||||
besides.</li>
|
||||
<li><strong>ELOG administrator</strong> : the person who has the authority to modify
|
||||
the <strong>ELOG</strong> configuration file on the server. May be an actual system
|
||||
administrator, a normal user of a server, or just the owner of a
|
||||
Windows PC.</li>
|
||||
<li><strong>logbook</strong> : a <em>weblog</em> made available by the <strong>ELOG</strong> server. There
|
||||
may be many distinct such logbooks on one server.</li>
|
||||
<li><strong>entry</strong> : the individual piece of information in a logbook. Can be
|
||||
as basic as a text message with a time-stamp, or carry much more
|
||||
information : attributes (see below), HTML markup, links, attached
|
||||
files...</li>
|
||||
</ul>
|
||||
<h2 id="accessing-an-elog-server-and-its-logbooks">Accessing an ELOG server and its logbook(s)</h2>
|
||||
<p>To access a logbook, point your Web browser at the appropriate URL. The
|
||||
default for a local Elog is <strong><code>http://localhost:8080/logbookname</code></strong>.
|
||||
Logbook files are stored in directory <strong><code>logbookname</code></strong> which is a
|
||||
sub-directory of the logbook root directory, defined by the
|
||||
administrator. See the administrator guide on how to create a new
|
||||
logbook.</p>
|
||||
<p>If several logbooks are defined on the server, the entry page may be a
|
||||
list of all logbooks, with their descriptions, number of entries, and
|
||||
links to enter the logbook you want to use.</p>
|
||||
<p>Alternatively, you may be taken directly to a specific logbook. By
|
||||
default you will see a list of entries, but the administrator may have
|
||||
defined a different "<em>default view</em>" for the logbook, like the list of
|
||||
the day\'s entries, or directly display the last entry, etc. (depending
|
||||
on what is most convenient for that logbook\'s purpose).</p>
|
||||
<p>Each entry in a logbook is identified by an unique ID, which is last
|
||||
part of the URL when that message is displayed. This ID might be used to
|
||||
create a bookmark in a browser pointing directly to a specific entry.</p>
|
||||
<p>There are four ways through which access to a logbook may be controlled:
|
||||
it may be open for all to read ; it may require a common "<em>read</em>"
|
||||
password for all users ; it may require each user to have an individual
|
||||
user account (login name) and password ; finally, access may be granted
|
||||
or not depending on the address of the workstation you are using.</p>
|
||||
<h2 id="viewing-information-in-elog">Viewing information in ELOG</h2>
|
||||
<p>There are two main viewing modes in a logbook :</p>
|
||||
<ul>
|
||||
<li>the "<strong>entry</strong>" view : this is when only one entry is displayed on
|
||||
screen (like the latest entry when you first enter a logbook, or if
|
||||
you click on one in a list). Here are the various parts of the display
|
||||
:</li>
|
||||
<li>
|
||||
<p>if there are several logbooks on the <strong>ELOG</strong> server you will see a
|
||||
row of "<em>tabs</em>" at the top with the names of all the logbooks.
|
||||
These are link that allow to switch quickly between logbooks (<em>this
|
||||
may be disabled</em>).</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>below is a title bar with the name of the current logbook at the
|
||||
left, and the <strong>ELOG</strong> logo at the right. If you are logged in,
|
||||
there will be a "<code>Logged in as <username></code>" reminder in between.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>next is the "<em>menu bar</em>" : on the left is a series of links or
|
||||
buttons for <strong>ELOG</strong> commands available to you. These are explored
|
||||
in the sections below (<em>Note: different users may see different
|
||||
menus</em>). On the right is a "<em>VCR-like</em>" set of buttons for
|
||||
browsing, also explained later (<em>this may be disabled</em>).</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>after these comes the actual entry information. It always starts
|
||||
with the entry time-stamp, and may be followed by up to twenty
|
||||
"<em>attributes</em>". These are like fields in a database and have been
|
||||
defined specifically for the current logbook. Each attribute has a
|
||||
checkbox besides it, explained below (<em>this may be disabled</em>).</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>the full-width box below holds the textual content (message) of the
|
||||
entry. This can be plain-text or HTML code. Note that for some
|
||||
special applications (say, a photo album or an event log) the
|
||||
attributes and/or the attached files may be enough information, so
|
||||
this field may not always be present.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>last and optionally, one or more attached files (that were uploaded
|
||||
to the server when the entry was created) are offered as clickable
|
||||
links for download or viewing, along with the file name and size. If
|
||||
these are images they may be displayed directly on the page.</p>
|
||||
<p>At the bottom of every page is a common "<em>footer</em>" for the
|
||||
logbook. By default this is just a link to the <strong>ELOG</strong> home page in
|
||||
Switzerland, but may be customized locally (typically to provide a
|
||||
navigation bar and links for integration with other Web sites).
|
||||
- the "<strong>search result</strong>" views : these are basically lists of
|
||||
entries, resulting either from a "<em>Search</em>" command or from
|
||||
shortcuts such as "<em>Last X days</em>" and "<em>Last X entries</em>" commands
|
||||
(more on this below). This mode has many options, including :
|
||||
- a "<em>summary</em>" view : one entry per row in a table. Some attributes
|
||||
may not be displayed. If the entry text is displayed (or its first
|
||||
few lines), it goes into the rightmost column. Attachments are not
|
||||
displayed.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>a "<em>classical weblog</em>" view : entries appear beneath one another,
|
||||
with attributes on one line and the text (and attachments, if
|
||||
present) below. Images may be displayed or just linked to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>entries may appear most recent first, or in reverse.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>menus on list views are different from the entry view menu. By
|
||||
default they only have two or three commands, but they may have been
|
||||
customized by the administrator to add more.</p>
|
||||
<p>All these lists have a number to the left of each listed entry, that
|
||||
is a link to the corresponding entry view.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="browsing-around-and-finding-things">Browsing around and finding things</h2>
|
||||
<p>There are several interesting ways to peruse the information in a
|
||||
logbook :</p>
|
||||
<ul>
|
||||
<li><strong>weblogs</strong>" are often used for applications where chronology (time) is
|
||||
relevant, so a very common approach is to see "<em>what happened
|
||||
last</em>". In <strong>ELOG</strong> there are two commands for this. They are
|
||||
actually shortcuts for searches, to display the last day\'s (24 hrs)
|
||||
entries, or the last 10 entries (regardless of age). Note that the
|
||||
menus on the "<em>search result</em>" views of these commands are a bit
|
||||
special : they have the same command that created them, but with the
|
||||
search "<em>interval</em>" doubled. From the "<em>last day</em>" list you can
|
||||
get the "<em>last 2 days</em>" list, from that one the "<em>last 4 days</em>",
|
||||
etc., and similarly for "<em>last 10</em>", "<em>last 20</em>", etc., making it
|
||||
easy to quickly go back in time.</li>
|
||||
<li>another useful method, very specific to <strong>ELOG</strong>, is "<em>filtered
|
||||
browsing</em>" - again, shortcuts for specific searches. On the entry
|
||||
view, the "<em>VCR</em>" buttons normally let you see the previous, next,
|
||||
first or last entry in the logbook. However, if on the current entry
|
||||
you check one (or more) of the checkboxes in front of the attributes,
|
||||
only entries having the same value for the checked attribute(s) will
|
||||
be displayed by the browse buttons. Thus you can quickly flip through
|
||||
all the entries you submitted yourself, or of a certain type/category,
|
||||
depending on what attributes have been defined.</li>
|
||||
<li>for custom searches there is the query form given by the "<em>Find</em>"
|
||||
command. This lets you look for entries between two dates, with
|
||||
particular values for any attribute, or containing specific text. If
|
||||
you fill in several fields, only entries that meet <strong>ALL</strong> criteria
|
||||
will be selected. Possible options include sort order and summary view
|
||||
for results, printer-friendly formatting, displaying attachments or
|
||||
not, and searching through all logbooks on the <strong>ELOG</strong> server (if
|
||||
applicable).</li>
|
||||
</ul>
|
||||
<h2 id="adding-stuff-to-a-logbook">Adding stuff to a logbook</h2>
|
||||
<p>If you have "<em>write access</em>" to a logbook (by one of the same four
|
||||
methods as for read access), then you may use the "<em>New</em>", "<em>Edit</em>",
|
||||
"<em>Reply</em>" and "<em>Delete</em>" commands.</p>
|
||||
<p>For the quality of the information committed to the logbook, you need
|
||||
understand and use these as well as possible. Here are some of the
|
||||
important features for each commmand :</p>
|
||||
<ul>
|
||||
<li><strong>New</strong> :</li>
|
||||
<li>you will not be able to save your entry if all attributes marked
|
||||
with a red star (*) are not filled in.</li>
|
||||
<li>some attributes may be pre-filled from system variables (like your
|
||||
user name). Pre-filled attributes may be still editable or read-only
|
||||
(like the entry creation date).</li>
|
||||
<li>attributes may be text fields (limited to 100 characters),
|
||||
list-boxes (max. 100 values), or check-boxes. There is also a
|
||||
special type of attribute where several values are listed on a line
|
||||
with check-boxes, and you can check as many values as needed.</li>
|
||||
<li>a nice touch : URLs in attributes (http://..., ftp://...,
|
||||
mailto:...) are automatically converted to links.</li>
|
||||
<li>in addition to the above URLs, one can enter a tag <strong>elog:\<id></strong>
|
||||
which references another logbook entry. The tag
|
||||
<strong>elog:\<logbook>/\<id></strong> references a message in another logbook
|
||||
on the same server. The tag <strong>elog:\<id>/\<n></strong> references
|
||||
attachment number <strong>n</strong> in a logbook entry. To reference an
|
||||
attachment in the current message, one uses <strong>elog:/\<n></strong>. An
|
||||
anchor inside an entry can be referenced with
|
||||
<strong>elog:\<id>#\<anchor></strong>.</li>
|
||||
<li>the Text multi-line field, if present, may be pre-filled with a
|
||||
template if entries need to have a common, consistent format across
|
||||
the logbook (especially for HTML). There may also be a comment
|
||||
inserted before it to explain local rules and conventions, upload
|
||||
rules, etc.</li>
|
||||
<li>check the "<em>Submit as HTML</em>" box if the entry contains HTML
|
||||
markup.</li>
|
||||
<li>a logbook may be configured to send a notification e-mail to various
|
||||
recipients each time an entry is submitted. This may be the default
|
||||
behaviour, and you should check "<em>Suppress notification</em>"" if it is
|
||||
not wanted. Or it may be checked by default, and you need to
|
||||
explicitely uncheck it to send the mail. Then again, you may not
|
||||
have a choice... (note that notifiation recipients may or may not
|
||||
be disclosed).</li>
|
||||
<li>if the logbook allows attachments, there will be a number of fields
|
||||
with "<em>Browse</em>" buttons at the bottom of the form. Use these to
|
||||
pick one or more files on your local computer, they will be uploaded
|
||||
to the <strong>ELOG</strong> server as you submit the form. IMPORTANT : there is
|
||||
an upper limit on the size of individual attached files. By default
|
||||
it is about 1 MB but can be changed by the administrator.</li>
|
||||
<li><strong>Edit</strong> :</li>
|
||||
<li>normally the Edit form will have all the values of the existing
|
||||
entry in its fields for modification. However, sometimes you may see
|
||||
fields that have been blanked if this makes sense for a particular
|
||||
logbook application (e.g. a "<em>Last modified by</em>" field).</li>
|
||||
<li>the "<em>Submit as new entry</em>" checkbox only appears on Edit forms.
|
||||
If it is unchecked, the modified entry keeps its original creation
|
||||
time-stamp. If it is checked, the modified entry becomes the latest
|
||||
in the logbook, as if it had just been created. Again, it is
|
||||
possible that this is checked by default, or disabled altogether on
|
||||
some logbooks.</li>
|
||||
<li>managing attachments through this form is easy. If all you want to
|
||||
change is the attributes or text, don\'t touch the fields at the
|
||||
bottom and the original attachments will be preserved. If you want
|
||||
to add an additional attachment, use an empty field. If you want to
|
||||
update an existing file, use the "<em>Browse</em>" button below that
|
||||
file\'s name to specify the new one. Lastly, if you want to delete
|
||||
an attachment without upoading a new one in its place, you must type
|
||||
the magic word "<code><delete></code>" in the field below its name.</li>
|
||||
<li><strong>Reply</strong> :</li>
|
||||
<li>this command creates a new entry, but with the current entry\'s text
|
||||
"<em>quoted</em>" (with \'>\') in the compose form, much like when
|
||||
replying to e-mail.</li>
|
||||
<li>the new entry has a special "<em>In reply to</em>" attribute with a link
|
||||
to the original entry ; the latter also acquires a "<em>Reply</em>"
|
||||
attribute with a link to the new entry. Unfortunately these links
|
||||
cannot be trusted in the present <strong>ELOG</strong> storage system, and the
|
||||
whole scheme gets somewhat confusing when there are several replies.</li>
|
||||
<li><strong>Delete</strong> :</li>
|
||||
<li>nothing much to say about this one, except that there is no
|
||||
"<em>Recycle bin</em>" or whatever : once you have confirmed the deletion
|
||||
of an entry, it\'s gone for good, so be careful ! (same holds for
|
||||
the replacement or deletion of an attached file).</li>
|
||||
</ul>
|
||||
<h2 id="misc-tips-tricks-things-to-be-aware-of">Misc. tips & tricks, things to be aware of...</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p>you can link directly to a specific entry by its URL, using the
|
||||
message ID (from another entry or an external Web page). It is also
|
||||
possible to link to a search result this way: use the "<em>Search</em>"
|
||||
form to compose a query that will result in exactly what you want
|
||||
(either a single entry or a list of entries). Copy the URL for that
|
||||
result page from your browser, and use that as the target for your
|
||||
link.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>right now you cannot search entries for attachments by their file
|
||||
name.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>right now attributes that consist of just a checkbox ("<em>boolean</em>")
|
||||
can only be searched by "<em>checked</em>" state in the "<em>Search</em>" form.
|
||||
However, if you start from an entry where that attribute is unchecked,
|
||||
you can use "<em>filtered browsing</em>" to flip through all other entries
|
||||
where it is also unchecked.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>as mentioned above, the "<em>Reply</em>" command only provides a basic
|
||||
comment/chat facility - a full-blown discussion board is not
|
||||
<strong>ELOG</strong>'s purpose. If a logbook has a very specific purpose and
|
||||
format (picture gallery, event log, file library etc.) it might be a
|
||||
good idea to disable that command there and move all
|
||||
chat/comments/discussions to a separate, dedicated logbook to avoid
|
||||
"<em>visual pollution</em>".</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>it is important to understand that currently the <strong>ELOG</strong> server
|
||||
application is "<em>single-process</em>" and "<em>non-streaming</em>". In normal
|
||||
terms this means that :</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>only one request is processed at any one time by the server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>uploading or downloading an attachement file is a single request,
|
||||
and causes the entire file to be loaded in server memory while the
|
||||
request is being processed.</p>
|
||||
<p>This is not normally a problem for the sort of short, text-mode
|
||||
entries <strong>ELOG</strong> is designed to support. However, if a user starts
|
||||
to upload or download a large attachment file (or image) over a slow
|
||||
link, all other users on that <strong>ELOG</strong> server will have to wait for
|
||||
that transfert to finish before they can access any logbook on that
|
||||
server. This is why there is a low limit on the size of attachments,
|
||||
and why <strong>ELOG</strong> should not be used to distribute large files under
|
||||
intensive multi-user conditions.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>It is possible to use bookmarks to pre-populate various attributes
|
||||
when submitting an <strong>ELOG</strong> entry. This can be useful if the same
|
||||
person often creates similar entries from the same PC. For example,
|
||||
with a bookmark of the form:</p>
|
||||
<p>http://your.host/your_logbook/?cmd=New&pauthor=joe&ptype=Info</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>...a new entry is created, with the "<em>author</em>" field pre-populated
|
||||
with "<em>joe</em>" and the "<em>Info</em>" value preselected for the "<em>type</em>"
|
||||
field. The same is possible for any attribute defined in the logbook
|
||||
(note the leading "p"). Thus you can define a set of bookmarks for
|
||||
various types of logbook entries.</p>
|
||||
<h2 id="elog-command-line-client">elog command line client</h2>
|
||||
<p>In addition to submission of logbook entries through the Web interface, the standalone "<em>client</em>" program <strong><code>elog</code></strong> can be used.</p>
|
||||
<p>The parameters are:</p>
|
||||
<pre><code class="language-text">elog <parameters>
|
||||
|
||||
-h <hostname> Hostname where elogd is running
|
||||
[-p port] Port where elogd is running
|
||||
[-d subdir] URL Directoy where elogd is running
|
||||
-l logbook Name of logbook
|
||||
-s Use SSL for communication
|
||||
[-v] For verbose output
|
||||
[-w password] Write password defined on server
|
||||
[-u username password] User name and password
|
||||
[-f <attachment>] Up to 50 attachments
|
||||
-a <attribute>=<value> Up to 50 attributes
|
||||
[-r <id>] Reply to existing message
|
||||
[-q] Quote original text on reply
|
||||
[-e <id>] Edit existing message
|
||||
[-x] Suppress email notification
|
||||
[-n 0|1|2] Encoding: 0:ELcode,1:plain,2:HTML
|
||||
-m <textfile>] | <text>
|
||||
</code></pre>
|
||||
<p>Arguments with blanks must be enclosed in quotes. The elog message can
|
||||
either be submitted on the command line, piped in like</p>
|
||||
<p><code>cat text | elog -h ... -l ... -a ...</code></p>
|
||||
<p>or in a file with the -m flag. Multiple attributes and attachments can
|
||||
be supplied. If attributes with multiple possible values are defined
|
||||
in a logbook (via the <em>"MOptions"</em> keyword), they can be separated
|
||||
with a "|", like <strong><code>-a "<attribute>=<value1> | <value2>"</code></strong>. The
|
||||
message text can be supplied directly at the command line or submitted
|
||||
from a file with the <strong><code>-m</code></strong> flag.</p>
|
||||
<p>The <strong><code>elog</code></strong> program makes it possible to submit logbook entries
|
||||
automatically by the system or from scripts. In some shift logbooks
|
||||
this feature is used to enter alarm messages automatically into the
|
||||
logbook.</p>
|
||||
<h2 id="rss-feed">RSS Feed</h2>
|
||||
<p>RSS (RDF Site Summrary or Really Simple Syntication) is a web feed
|
||||
format to publish frequently new or updated ELOG entries. This is a bit
|
||||
like the email notifications present in ELOG, but the RSS system does
|
||||
not go through an email reader, but through a dedicated RSS reader. This
|
||||
helps to seperate ELOG updates form other email or spam. An RSS
|
||||
"channel" can be subscribed to, so one gets notified whenever a new or
|
||||
updated entry exists. One can either use a dedicated RSS reader or
|
||||
aggregator, or use the RSS functionality of a web browser, such as
|
||||
Firefox or Google Reader.</p>
|
||||
<p>To obtain the RSS feed, one simply has to request the file
|
||||
<strong><code>elog.rdf</code></strong> from a logbook. For the ELOG forum, one can enter the URL</p>
|
||||
<p><a href="https://elog.psi.ch/elogs/Forum/elog.rdf"><code>https://elog.psi.ch/elogs/Forum/elog.rdf</code></a></p>
|
||||
<p>The browser then offers the possiblity to subscribe to that logbook:</p>
|
||||
<p><img alt="" src="../img/rss.png" /></p>
|
||||
<p>In case of "Live Bookmarks" in Firefox, new logbook entries
|
||||
automatically appear in the bookmark list:</p>
|
||||
<p><img alt="" src="../img/live_bookmarks.png" /></p>
|
||||
<p>Standalone RSS reader can also notify the user of new entries with
|
||||
dialog boxes and sounds. For a list of availabel RSS aggregators, see
|
||||
<a href="http://en.wikipedia.org/wiki/Comparison_of_feed_aggregators">here</a>.</p>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href=".." class="btn btn-neutral float-left" title="Home"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
<a href="../adminguide/" class="btn btn-neutral float-right" title="Admin guide">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
<span><a href=".." style="color: #fcfcfc">« Previous</a></span>
|
||||
|
||||
|
||||
<span><a href="../adminguide/" style="color: #fcfcfc">Next »</a></span>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "..";</script>
|
||||
<script src="../js/theme_extra.js"></script>
|
||||
<script src="../js/theme.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
265
mkdocs/site/wishlist/index.html
Normal file
@ -0,0 +1,265 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="../img/favicon.ico" />
|
||||
<title>Wishlist - ELOG Electronic Logbook</title>
|
||||
<link rel="stylesheet" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="../css/theme_extra.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
||||
|
||||
<script>
|
||||
// Current page data
|
||||
var mkdocs_page_name = "Wishlist";
|
||||
var mkdocs_page_input_path = "wishlist.md";
|
||||
var mkdocs_page_url = null;
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
<a href=".." class="icon icon-home"> ELOG Electronic Logbook
|
||||
</a><div role="search">
|
||||
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../userguide/">User guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../adminguide/">Admin guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../config/">Config file</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq/">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../forum/">Forum</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal current" href="#">Wishlist</a>
|
||||
<ul class="current">
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../contrib/">Contributions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../demo/">Demo</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../download/">Download</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="..">ELOG Electronic Logbook</a>
|
||||
|
||||
</nav>
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
|
||||
<li class="breadcrumb-item active">Wishlist</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div class="section" itemprop="articleBody">
|
||||
|
||||
<h1 id="elog-wishlist">ELOG Wishlist</h1>
|
||||
<p>Here are some "<em>wishlist</em>" items requested by users. I will work down
|
||||
the list as time permits, starting at the items with the most votes. You
|
||||
can vote for a feature, or suggest one, by sending me an email.</p>
|
||||
<hr />
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Feature</th>
|
||||
<th>Votes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Implement groups of users</td>
|
||||
<td>8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password expiration</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Account expiration</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Make attributes which whould be displayd selectable in \"Find\" page</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Convert elog text files into XML files and comma separated files with elconv</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Implement multi-line attributes</td>
|
||||
<td>8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Derive attribute options from list of entries of another logbook</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Specify date format explicitly for substitutions, like $entry date{%Y}</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Change attributes of whole thread, like mark a thread "open" or "closed"</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Automatic unlocking of entries after a specific time period</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Implement PAM authentification under Linux (Which includes LDAP & AFS & Kerberos & ...)</td>
|
||||
<td>13</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Implement attributes which are math results from others, like <em>att3=att1+att2</em></td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Show sums of numeric attributes</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Let each user choose its language separately</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Implement multiple selection boxes</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Boolean operators for queries, like "attrib1=a AND not attrib2=b"</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Implement "sybolik-link" logbooks such that a (virtual) logbook can "point" to a "real" logbook.<br>This is useful to have people always submit to the same logbook, when the real logbook<br>changes from time to time.</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Select individual columns for display and printing</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>"Incremental" options. Have fixed set of global options, and in each<br>logbook add or remove some of those with<br><strong>+Options = ...</strong> or <strong>-Options = ...</strong></td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>"Include" statement for config file.</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Use different styles (colors) depending on an attribute</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add native IPv6 support</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Copy new elog entries automatically to other logbooks</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extend the search facility to (text) attachments</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div><footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
|
||||
<a href="../forum/" class="btn btn-neutral float-left" title="Forum"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
<a href="../contrib/" class="btn btn-neutral float-right" title="Contributions">Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<!-- Copyright etc -->
|
||||
</div>
|
||||
|
||||
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rst-versions" role="note" aria-label="Versions">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
|
||||
|
||||
<span><a href="../forum/" style="color: #fcfcfc">« Previous</a></span>
|
||||
|
||||
|
||||
<span><a href="../contrib/" style="color: #fcfcfc">Next »</a></span>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<script src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script>var base_url = "..";</script>
|
||||
<script src="../js/theme_extra.js"></script>
|
||||
<script src="../js/theme.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||