Initial revision
SVN revision: 2
339
COPYING
Executable file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
10
README.txt
Executable file
@ -0,0 +1,10 @@
|
||||
Welcome to the ELOG package
|
||||
===========================
|
||||
|
||||
For general documentation, see the file "index.html" in the "doc" subdirectory,
|
||||
for installation instructions, see "adminguide.html" in the same directory.
|
||||
|
||||
|
||||
Stefan Ritt
|
||||
Dec. 2001
|
||||
<stefan.ritt@psi.ch>
|
||||
13
build.bat
Executable file
@ -0,0 +1,13 @@
|
||||
@echo on
|
||||
rem Usage: build_elog <version> like "build 100"
|
||||
rem Build ELOG distribution
|
||||
|
||||
set version=%1
|
||||
|
||||
rem map network drive
|
||||
net use m: /d > nul
|
||||
net use m: \\pc2075\midas mi_das /user:midas
|
||||
|
||||
"\program files\NSIS\makensis" /DVERSION=%version% elog.nsi
|
||||
|
||||
copy elog%version%.exe m:\html\elog\download\
|
||||
238
doc/CHANGELOG.TXT
Executable file
@ -0,0 +1,238 @@
|
||||
Version 1.3.2, released December xxth, 2001
|
||||
===========================================
|
||||
|
||||
- Added spaces around message number in find result page to make
|
||||
link wider
|
||||
- Added "preset <attribute> = %03d" for automatic index generation
|
||||
|
||||
Version 1.3.1, released December 14th, 2001
|
||||
===========================================
|
||||
|
||||
- Display URL links in search result page
|
||||
- Fixed a few missing string translations
|
||||
- Left-align text about attachments on edit page
|
||||
- Fixed concatenation of lines in password file on password change,
|
||||
thanks to Michael Buselli
|
||||
- Added support for crypt() function
|
||||
- Made "Required Attributes" working with "MOptions"
|
||||
- Make relative paths work for "Data dir" and "Password file"
|
||||
|
||||
|
||||
Version 1.3.0, released December 13th, 2001
|
||||
===========================================
|
||||
|
||||
- Changed global "Welcome page" to "Selection page"
|
||||
- Removed most compiler warnings with "-Wall"
|
||||
- Removed DWORD (needed for True64 Unix)
|
||||
- Added localization support, use "language =" in [global]
|
||||
- Added French and German files
|
||||
- Added Per-Session cookies (when expiration = 0)
|
||||
- Fixed major bug with memcpy(rem_addr,...)
|
||||
- Fixed memory leak with ss_file_find
|
||||
- "Entry date" is now formatted according to "Date format"
|
||||
- Added "MOptions" for multi-valued attributes
|
||||
- Added "HTML default" option
|
||||
|
||||
Version 1.2.6, released December 4th, 2001
|
||||
==========================================
|
||||
|
||||
- Fixed bug with "resubmit as new entry" and deleted attachments
|
||||
- Fixed bug where "submit as HTML" got deleted on resubmit
|
||||
- Display locked attributes as text only (no input field)
|
||||
- Added FAQ about "Last 10" page as default logbook page
|
||||
- Added -h flag for multi-homed hosts; thanks to Scott Erickson
|
||||
- Fixed problem with "Date format" in short listings
|
||||
|
||||
Version 1.2.5, released November 21st, 2001
|
||||
===========================================
|
||||
|
||||
- Removed "Revision date:" from edit form (should better be done via an
|
||||
attribute, preset to $date)
|
||||
- Fixed bug with "Welcome page"
|
||||
- Added "resubmit as new entry" checkbox
|
||||
|
||||
Version 1.2.4, released November 20th, 2001
|
||||
===========================================
|
||||
|
||||
- Added "date format" option
|
||||
- Put "copy to" and "move to" under administrative password
|
||||
- String "<mailto:user@host>" now gets correctly converted into a hot link
|
||||
- Use "comment =" string instead of logbook in page title
|
||||
- Logout takes you back to logbook selection page
|
||||
- Made http://<host>/<logbook>/?cmd=Last&<attribute>=<value> working
|
||||
- Added submit button also at bottom of page
|
||||
- Added "Enable browsing" flag
|
||||
- Implemeted default options in [global] section of elogd.cfg
|
||||
- Fixed a bug that $logbook substitution did not work in email subject
|
||||
- Added "Use Email from = <string>"
|
||||
- Made "bottom text" work with query page
|
||||
- Added option "find menu commands"
|
||||
- Added command "last x" to "find menu commands"
|
||||
- Last x gets now multiplied by 2 each time instead of added one
|
||||
- Added more spaces in attachment display of find result page
|
||||
|
||||
Version 1.2.3, released November 15th, 2001
|
||||
===========================================
|
||||
|
||||
- Implemented quotation marks for "email <attribute> <value>" in case
|
||||
attribute or value contains blanks
|
||||
- Produce error if submitted attachment is too large
|
||||
- Fixed crash when nonexisting logbook in URL
|
||||
- Changed "options <attribute> = <string>" into
|
||||
"Preset <attribute> = <string>"
|
||||
- Added "Preset text = <string> | <file>"
|
||||
- Added "Locked attributes"
|
||||
- Added "ftp://" and "mailto:" as clickable links
|
||||
- Added FAQs in documentation
|
||||
|
||||
Version 1.2.2, released November 14th, 2001
|
||||
===========================================
|
||||
|
||||
- Added User level access control with login/logout and password file
|
||||
- Added "Remove on reply"
|
||||
- Added "options <attribute> = $short_name etc."
|
||||
- Fixed wrong numbering when searching in several logbooks
|
||||
- Display "no entries found" in search page
|
||||
- Added "subst <attribute>" option
|
||||
- Cookies are now stored in parameter list
|
||||
- Email notification for logbooks with blanks now use %20 for blanks to
|
||||
make link working in email
|
||||
- Search result page puts links on number instead of dates
|
||||
- Commands wich are not in the menu list cannot be executed now
|
||||
- Added "Reverse sort" flag
|
||||
- Added "Page title" in [global]
|
||||
- Added "Show text" flag for attribute-only logbooks
|
||||
- Made elogd.c compile under Cygwin
|
||||
- Fixed bug that "p<attribute>" was not working any more
|
||||
- Changed "Email <value> =" to "Email <attribute> <value> ="
|
||||
- Added "main tab" in [global]
|
||||
- Added "bottom text" option
|
||||
- Added $logbook variable
|
||||
- Added "number attachments" option
|
||||
|
||||
Version 1.2.1, released November 6th, 2001
|
||||
==========================================
|
||||
|
||||
- Fixed problem with long configuration files (use POST instead GET)
|
||||
- Fixed bug with delete command and admin. password
|
||||
- Fixed bug with reply/edit/delete commands which always used last message
|
||||
- Change "use for title" into "page title", introduced attribute substitution
|
||||
- Added attribute substitution to "use email subject"
|
||||
- Changed elog program to deal with arbitrary attributes
|
||||
|
||||
Version 1.2.0, released October 19th, 2001
|
||||
==========================================
|
||||
|
||||
- added arbitrary attributes instead of fixed "author", "type", "category" and
|
||||
"subject"
|
||||
- logbook entries can now be moved or copied between logbooks, if configured in
|
||||
elogd.cfg
|
||||
- Added "Hosts allow" and "Hosts deny" for access control
|
||||
- Any attribute or several attributes can be used for the "subject" field in
|
||||
email notifications
|
||||
- Any attribute can be used as a title for the web page
|
||||
- A comment can be displayed above the text entry box
|
||||
- A site-specifig URL can be defined for the Help button, can also point
|
||||
directly to a file in the configuration directory, which gets served
|
||||
by elogd
|
||||
- On the search page, the result can be sorted in reverse order
|
||||
- On full-text searches, the pattern is highlighted in the result
|
||||
- If a "types" entry is present in elogd.cfg, a help page is displayed for
|
||||
upgrading the configuration file
|
||||
- Added "boolean" attributes which are represented by a checkbox
|
||||
- Added "Filtered browsing = 0/1" flag
|
||||
- Added "Display search" list
|
||||
- Added "HELO" statement in SMTP communication, thanks to David Monk.
|
||||
- Added "Welcome title" for logbook selection page
|
||||
- Moved "SMTP host" to [global] section
|
||||
- Added "Display email recipients = 0/1"
|
||||
- Added "Suppress default = 2" for no checkbox at all
|
||||
- Added "Show attachments" flag
|
||||
- Added global and logbook "Welcome page"
|
||||
- Added "Submit page"
|
||||
- Added "Email message body" flag
|
||||
- Added "config" menu to edit elogd.cfg over the web
|
||||
- Changed "delete password" into "admin password" which is now used
|
||||
both to delete messages and to config elogd.cfg
|
||||
|
||||
Version 1.1.3, released October 12th, 2001
|
||||
==========================================
|
||||
|
||||
- Various problems fixed with read passwords:
|
||||
o First page of single logbook was always displayed even with read password
|
||||
o Without "-k" flag, some browsers were hanging on password page
|
||||
- Fixed CRLF problem with some SMTP hosts (courtesy of Michael Jones)
|
||||
- Fixed a bug in the elog submission program which added a wrong line
|
||||
at the end of a message
|
||||
- Fixed bug which caused the "find" function to display only one entry if
|
||||
a file xyx.log is present in the data directory
|
||||
|
||||
Version 1.1.2, released October 9th, 2001
|
||||
=========================================
|
||||
|
||||
- Implemented keep-alive of connection. This speeds up considerably especially
|
||||
when browsing through a logbook. It could be that with the Opera browser
|
||||
there are some problems. In this case, start elogd with the "-k" flag to
|
||||
turn keep-alive off.
|
||||
|
||||
Version 1.1.1, released August 31th, 2001
|
||||
=========================================
|
||||
|
||||
- Fixed various bugs to make Elog work with the Opera browser
|
||||
|
||||
Version 1.1.0, released August 28th, 2001
|
||||
=========================================
|
||||
|
||||
- Added "themes"
|
||||
- Added tabs for logbook selection
|
||||
- Added graphical browse buttons
|
||||
- Added "first" browse button
|
||||
- Menu can be switched from buttons to links
|
||||
- Replaced "query" by more appropriate "find"
|
||||
- Search can span multiple logbooks
|
||||
- Search can produce "printable output", which is optimized for printing
|
||||
- Search has no default start date, which means that the whole logbook is
|
||||
searched by default
|
||||
- Configuration and themes file get re-read at each access
|
||||
|
||||
Version 1.0.5, released August 8th, 2001
|
||||
========================================
|
||||
|
||||
- Added separate password for message deletion
|
||||
- Added expiration time for passwords
|
||||
- Added "suppress Email notification" for message entry
|
||||
|
||||
Version 1.0.4, released August 7th, 2001
|
||||
========================================
|
||||
|
||||
- Fixed bug where Email notification only got sent to "Email All"
|
||||
- Fixed bug with wrong display of logbook list if no logbook is
|
||||
specified
|
||||
- Categories and Types were mixed if several logbooks are used. Fixed.
|
||||
|
||||
Version 1.0.3, released August 2nd, 2001
|
||||
========================================
|
||||
|
||||
- Added email facility, please refer to the documentation
|
||||
- Added "Authors =" option in configuration file
|
||||
- Added "Summary lines =" option in configuration file
|
||||
- Fields in "New" page can be pre-populated by using pauthor=xxx etc. in the URL
|
||||
- Added "back" button on certain pages
|
||||
|
||||
Version 1.0.2, released July 26, 2001
|
||||
=====================================
|
||||
- Added URL = flag in elgod.cfg file and update documentation accourdingly
|
||||
to support secure connections over STUNNEL and SSH
|
||||
|
||||
Version 1.0.1, released July 24, 2001
|
||||
=====================================
|
||||
|
||||
- Use subject as page title, useful when bookmarking pages
|
||||
- Display text with "http://xxx" in logbook pages as active links
|
||||
- Increase password expiration from 1h to 1d for computers with daylight
|
||||
savings time incorrectly set
|
||||
|
||||
Version 1.0.0, released June 20, 2001
|
||||
=====================================
|
||||
|
||||
Initial revision
|
||||
253
doc/adminguide.html
Executable file
@ -0,0 +1,253 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>ELOG Administrator's Guide</TITLE>
|
||||
<LINK REV="made" HREF="mailto:fredp@mygale.org">
|
||||
<META NAME="generator" CONTENT="NoteTab Light 4.86c">
|
||||
<META NAME="author" CONTENT="Fred Pacquier">
|
||||
<META NAME="description" CONTENT="Home of the Electronic Logbook (ELOG) package">
|
||||
<META NAME="keywords" CONTENT="ELOG MIDAS PSI RITT">
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
|
||||
|
||||
<div class=title> ELOG Administrator's Guide </div>
|
||||
<p>
|
||||
<div class=menu> Site map :
|
||||
[<a class=nav href="index.html">Home</a>]
|
||||
[<a class=nav href="userguide.html">User's Guide</a>]
|
||||
[Administrator's Guide]
|
||||
[<a class=nav href="faq.html">FAQ</a>]
|
||||
[<a class=nav href="http://midas.psi.ch:8000">DEMO</a>]
|
||||
[<a class=nav href="download.html">Download</a>]
|
||||
</div>
|
||||
<p>
|
||||
<div class=menu> * this section :
|
||||
[<a class=nav href="#unix">UNIX</a>]
|
||||
[<a class=nav href="#windows">Windows</a>]
|
||||
[<a class=nav href="#config">Configuration</a>]
|
||||
[<a class=nav href="#secure">Secure Connections</a>]
|
||||
[<a class=nav href="#tech">How It Works</a>]
|
||||
* </div>
|
||||
<p>
|
||||
<div class=Sub><i>How to set up and run your very own ELOG server</i></div>
|
||||
|
||||
<hr><a name="unix">
|
||||
<div class=section> Installing and running on UNIX </div>
|
||||
<p>
|
||||
<b>ELOG</b> is being developed and tested under Linux, and is being used on (Sparc) Solaris
|
||||
workstations. It should also compile and run on other UNIX flavours.
|
||||
<p>
|
||||
<a href="http://midas.psi.ch/elog/download/">Download</a> the latest <code><b>elog-x.x.x.tar.gz</code></b> package.
|
||||
<p>
|
||||
Expand the compressed TAR file with <code><b>tar -xzvf elog-x.x.x.tar.gz</code></b>.
|
||||
This creates a subdirectory <code><b>elog-x.x.x</b></code> where x.x.x is the
|
||||
version number. In that directory execute <code><b>make</b></code>, which
|
||||
creates the executables <code><b>elogd</b></code> and <code><b>elog</b>
|
||||
</code>. These executables can then be copied to a convenient place like
|
||||
<code><b>/usr/local/bin</b></code> or <code><b>~/bin</b></code>.
|
||||
|
||||
The <code><b>elogd</b></code> executable can be started manually for testing with :
|
||||
<p>
|
||||
<ul><code>elogd -p 8080</code></ul>
|
||||
<p>
|
||||
where the <b>-p</b> flag specifies the port. Without the <b>-p</b> flag,
|
||||
the server uses the standard WWW port 80. Note that ports below 1024 can
|
||||
only be used if <code><b>elogd</b></code> is started a root, or the "<I>sticky bit</I>" is set on
|
||||
the executable.
|
||||
<p>
|
||||
If the program complains with something like "<I>cannot bind to port</I>...", it
|
||||
could be that the network is not started on the Linux box. This can be
|
||||
checked with the <code><b>/sbin/ifconfig</b></code> program, which must
|
||||
show that <code><b>eth0</b></code> is up and running.
|
||||
<p>
|
||||
The distribution contains a sample configuration file <code><b>elogd</b></code> and
|
||||
a demo logbook in the <i>demo</i> subdirectory. If the <code><b>elogd</b></code> server is
|
||||
started in the <i>elogd-x.x.x</i> directory, the demo logbook can be directly
|
||||
accessed with a browser by specifying the URL <b>http://localhost:8080</b>
|
||||
(or whatever port you started the elog daemon on). If the <code><b>elogd</b></code> server is
|
||||
started in some other directory, you must specify the full path of
|
||||
the <code><b>elogd</b></code> file with the <b>"-c"</b> flag and change the
|
||||
<b>Data dir = </b> option in the configuration file to a full path like
|
||||
<b>/usr/local/elogdata</b>.
|
||||
<p>
|
||||
Once testing is complete, <code><b>elogd</b></code> will typically be started with the <b><code>-D</code></b> flag
|
||||
to run as a <I>daemon</I> in the background, like this :
|
||||
<p>
|
||||
<ul><code>elogd -p 8080 -c /usr/local/elog/elogd.cfg -D</code></ul>
|
||||
<p>
|
||||
<I>Note that it is mandatory to specify the full path for the <code><b>elogd</b></code> file when started as a daemon.</I>
|
||||
<p>
|
||||
To test the daemon, connect to your host via :
|
||||
<P>
|
||||
<ul><code>http://your.host:8080/</code></ul>
|
||||
<p>
|
||||
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 :
|
||||
<p>
|
||||
<ul><code>http://your.host/<logbook></code></ul>
|
||||
<p>
|
||||
where <code><logbook></code> is the name of the logbook.
|
||||
<p>
|
||||
The contents of the all-important configuration file <b><code>elogd.cfg</code></b> are
|
||||
described <a href="#config">below</a>.
|
||||
<p>
|
||||
To start the daemon automatically, it can be run from the <code><b>/etc/rc.d/init.d</code></b>
|
||||
system. Please consult your distribution to find out how to do that.
|
||||
<br>
|
||||
Under RedHat 6.x. I use a <a href="elogd">script</a> which I put under <code><b>/etc/rc.d/init.d</code></b>. Then I call :
|
||||
<ul><code>chkconfig --add elogd</code></ul>
|
||||
<p>
|
||||
|
||||
<h3><hr><i>Notes for the Solaris platform</i>:</h3>
|
||||
|
||||
<p><a href="mailto:huber@secaron.de">Martin Huber</a> reports that
|
||||
under Solaris 7 the following command line is needed to compile elog:
|
||||
<P>
|
||||
<ul><code>gcc -L/usr/lib/ -ldl -lresolv -lm -ldl -lnsl -lsocket elogd.c -o elogd</code></ul>
|
||||
<p>
|
||||
With some combinations of Solaris servers and client-side browsers there have also
|
||||
been problems with <b>ELOG</b>'s <I>keep-alive</I> feature. In such a case you need to add
|
||||
the "<B>-k</B>" flag to the <code><b>elogd</b></code> command line to turn keep-alives off.
|
||||
<p>
|
||||
|
||||
<hr><a name="windows">
|
||||
<div class=section> Installing and running in Windows </div>
|
||||
<p>
|
||||
<b>ELOG</b> is distributed in binary (executable) form for Windows platforms. It will run happily in <I>console mode</I> (or "<I>DOS box</I>") under Windows 9x and ME. Under Windows NT and 2000 it is also possible to run it as a <I>service</I> (the Windows equivalent of a UNIX <I>daemon</I>).
|
||||
<p>
|
||||
<a href="http://midas.psi.ch/elog/download/">Download</a> the latest <code><b>elogxxx.exe</b></code> file and execute it. The installer puts the <b>ELOG</b> system into a directory you specify and adds some menu
|
||||
shortcuts. With these shortcuts, the daemon <code>elogd.exe</code> can be started directly and the demo logbook can be accessed with the browser. Under Windows, the ports below 1024 can be used without restriction. So if no web server is running on the same PC the <b>ELOG</b> daemon listens under the standard
|
||||
Web port 80.
|
||||
<p>
|
||||
The "<B>-D</B>" (<I>daemon</I>) command line option only works under UNIX. To start
|
||||
<code><b>elogd</b></code> as a service under Windows NT/2000, you can do one of the following :
|
||||
<p>
|
||||
<ul>
|
||||
<li>use the <code><b>srvany.exe</b></code> and <code><b>instsrv.exe</b></code> from the Windows
|
||||
Resource Kit. If you don't have the Resource Kit, these programs can probably
|
||||
be downloaded from various places like <a href="http://www.pyeung.com/userdefinedservice.html">this one</a>. Then follow these steps:
|
||||
<p>
|
||||
<OL>
|
||||
<LI>Copy SRVANY.EXE to %window%\system32\.
|
||||
|
||||
<LI>Use INSTSRV to install SRVANY.EXE as a service named "<I>elogd</I>":<P>
|
||||
<pre>INSTSRV ELogd %windir%\system32\srvany.exe</pre>
|
||||
|
||||
<LI>Run REGEDIT and find "My Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\elogd".
|
||||
|
||||
<LI>Under the <i>Elogd</i> registry key, create a new key called <i>Parameters</i> via <i>Edit/New/Key</i>.
|
||||
<LI>Under the new key <i>Parameters</i>, create the following three STRING values:
|
||||
<UL>
|
||||
<LI><i>Application</i> set to "c:\elog\elogd.exe" (or wherever you installed the elogd program)
|
||||
<LI><i>AppDirectory</i> set to "c:\elog" (or wherever you installed the <code><b>elogd</b></code> file)
|
||||
<LI><i>AppParameters</i> set to "-p 8080" (or any other port which you would like to use,
|
||||
put an empty string for port 80)
|
||||
</UL>
|
||||
|
||||
<LI>Under NT4, open the <i>Services</i> entry in the control panel, under Windows 2000 right-click
|
||||
on "My Computer", click to "Manage", select "Services and Applications", expand it and select
|
||||
"Services". On the right panel, double-click "ELogd". Then start the service manually and
|
||||
change the startup type to "Automatic". This way the <code><b>elogd</b></code> program gets started automatically
|
||||
on every reboot.
|
||||
</OL>
|
||||
<p>
|
||||
<li>better still, use the free <a href="http://www.firedaemon.com">FireDaemon</a> utility. Make sure <code><b>elogd</b></code> is not running, then start the FireDaemonUI application, and enter the following fields:
|
||||
<P>
|
||||
<pre>
|
||||
Service name: ELogd
|
||||
Service description: "Electronic Logbook Daemon"
|
||||
Startup type: Automatic
|
||||
Interact with desktop: off
|
||||
Start immediately: on
|
||||
Auto restart application: off
|
||||
Application working directory: c:\program files\elog\ (or wherever you installed elog)
|
||||
Application executable: c:\program files\elog\elogd.exe (or wherever you installed elogd.exe)
|
||||
</pre>
|
||||
and keep the other options as they are. After pressing "OK" the daemon should be started immediately.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="config">
|
||||
<div class=section> Server Configuration </div>
|
||||
<p>
|
||||
The appearance, functionality and behaviour of the various logbooks on an <b>ELOG</b> server are determined by the single <b><code>elogd.cfg</code></b> file in the <b>ELOG</b> installation directory.
|
||||
<p>
|
||||
This file may be edited directly from the file system, or from a form in the <b>ELOG</b> Web interface (when the <i>Config</i> menu item is available). In this case, changes are applied dynamically without having to restart the server.
|
||||
<p>
|
||||
The many options of this unique but very important file are documented on the separate <b><a href="config.html">elogd.cfg syntax page</a></b>.
|
||||
<p>
|
||||
To better control appearance and layout of the logbooks, <b><code>elogd.cfg</code></b> may optionally specify the use of additional files containing HTML code, and/or custom "<I>themes</I>" configurations. These need to be edited directly from the file system right now.
|
||||
<p>
|
||||
|
||||
<hr><a name="secure">
|
||||
<div class=section> Secure Connections HOWTO </div>
|
||||
<p>
|
||||
Although the <code><b>elogd</b></code> program does not support secure
|
||||
connections over SSL directly, it is possible to use it together with
|
||||
<a href="http://stunnel.mirt.net/">stunnel</a> to do so. Three steps are
|
||||
necessary:
|
||||
<OL>
|
||||
<LI>Start <code><b>elogd</b></code>. If another Web server is running
|
||||
on port 80, use a different port.
|
||||
<P>
|
||||
<LI>Install the <b><code>stunnel</code></b> program if not already done
|
||||
and start it with:
|
||||
<P>
|
||||
<pre>stunnel -d 443 -r your.host.name:80</pre>
|
||||
Substitute the port 80 if you started <code><b>elogd</b></code> on another port. This
|
||||
causes <b><code>stunnel</code></b> to receive requests on the https port 443 and forward them to the <code><b>elogd</b></code> port.
|
||||
<P>
|
||||
<LI>Connect to your logbook with a browser which supports SSL via:
|
||||
<P>
|
||||
<pre>https://your.host.name/</pre>
|
||||
</OL>
|
||||
<p>
|
||||
Alternatively, <code><b>elogd</b></code> can be accessed through a SSH tunnel.
|
||||
To do so, open an SSH tunnel like:
|
||||
<P>
|
||||
<ul><pre>ssh -L 1234:your.server.name:8080 your.server.name</pre></ul>
|
||||
<p>
|
||||
This opens a secure tunnel from your local host, port 1234, to the server host
|
||||
where the <code><b>elogd</b></code> daemon is running on port 8080. Now you can
|
||||
access <b> <code>http://localhost:1234</code></b> from your browser and reach
|
||||
<code><b>elogd</b></code> in a secure way.
|
||||
<p>
|
||||
|
||||
<hr><a name="tech">
|
||||
<div class=section> How It All Works </div>
|
||||
<p>
|
||||
For the technically curious :
|
||||
<p>
|
||||
The concept of <b>ELOG</b> is very simple. The logbook functionality is implemented by a single daemon program, <code><b>elogd</b></code>, 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 <b>ELOG</b> daemon contains its own <i>http</i> server, no additional server like Apache is required.
|
||||
<p>
|
||||
The "<I>database</I>" in which <b>ELOG</b> saves its entries is in plain ASCII format. One file is
|
||||
created for each day in the form <b><code>YYMMDD.log</b></code> (where
|
||||
YY is the year, MM the month and DD the day). The only non-ASCII character
|
||||
is a form-feed at the end of each message. If a log file is sent directly
|
||||
to a printer, each message is therefore printed on a separate page. Note
|
||||
that the log files should not be edited manually, since this could invalidate
|
||||
the internal database structure (each header contains the message length
|
||||
in bytes, which would then become incorrect).
|
||||
<p>
|
||||
If attachments are submitted, they are saved as separate files named
|
||||
<b><code>YYMMDD_HHMMSS_name</code></b> - where in addition to the date the
|
||||
time is specified and <b><code>name</code></b> 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 <b><code>0103??.log</code>
|
||||
</b> and <b><code>0103??_*</code></b>.
|
||||
<p>
|
||||
|
||||
<HR>
|
||||
<div class=footer>
|
||||
Content by <a class=nav href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a>,
|
||||
Web pages by <a class=nav href="mailto:fredp@mygale.org">Fred Pacquier</a>
|
||||
- last modified on 19/12/2001
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
682
doc/config.html
Executable file
@ -0,0 +1,682 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>ELOG - Syntax of elogd.cfg</TITLE>
|
||||
<LINK REV="made" HREF="mailto:fredp@mygale.org">
|
||||
<META NAME="generator" CONTENT="NoteTab Light 4.86c">
|
||||
<META NAME="author" CONTENT="Fred Pacquier">
|
||||
<META NAME="description" CONTENT="Home of the Electronic Logbook (ELOG) package">
|
||||
<META NAME="keywords" CONTENT="ELOG MIDAS PSI RITT">
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
|
||||
|
||||
<div class=title> ELOG - Syntax of elogd.cfg </div>
|
||||
<p>
|
||||
<div class=menu>
|
||||
[<a class=nav href="adminguide.html">back to Administrator's Guide</a>]
|
||||
</div>
|
||||
<p>
|
||||
<div class=menu> * Server :
|
||||
[<a class=nav href="#global">Global</a>]
|
||||
- Logbooks :
|
||||
[<a class=nav href="#general">General</a>]
|
||||
[<a class=nav href="#attrib">Attributes</a>]
|
||||
[<a class=nav href="#email">E-mail</a>]
|
||||
[<a class=nav href="#access">Access</a>]
|
||||
[<a class=nav href="#flags">Flags</a>]
|
||||
[<a class=nav href="#themes">Themes</a>]
|
||||
* </div>
|
||||
<p>
|
||||
<div class=Sub><i>Global and individual logbook options for an ELOG server</i></div>
|
||||
|
||||
<hr>
|
||||
<p>
|
||||
The configuration file <b><code>elogd.cfg</code></b> contains entries which define
|
||||
the structure of logbooks and the behaviour of <code><b>elogd</b></code>. The file has a simple ASCII
|
||||
format. Each logbook is defined by a <b><code>[<name>]</code></b> section
|
||||
where <name> is the name of the logbook. The <b><code>[global]</code></b>
|
||||
section is used for settings common to all logbooks. Each line contains a setting
|
||||
name, followed by an equal sign and the value for this setting. Lines starting with
|
||||
";" are treated as comments.
|
||||
<p>
|
||||
Here is a simple example, which define two logbooks, "<I>Linux</I>" and "<I>PC</I>":
|
||||
<p>
|
||||
<ul><pre>
|
||||
[global]
|
||||
Logbook tabs = 1
|
||||
Tab cellpadding = 2
|
||||
SMTP host = mailsend.your.domain
|
||||
|
||||
[Linux]
|
||||
Theme = default
|
||||
Comment = General linux tips and tricks
|
||||
Data dir = /usr/local/elog/linux
|
||||
Attributes = Author, Type, Category, Subject
|
||||
Options Type = Routine, Software Installation, Problem Fixed, Configuration, Other
|
||||
Options Category = General, Hardware, Software, Network, Account, Other
|
||||
Options Author = Stefan, Linus, unknown
|
||||
Required Attributes = Author
|
||||
|
||||
[PC]
|
||||
Comment = Database PC installations
|
||||
Data dir = /usr/local/elog/pc
|
||||
Attributes = Location, OS, Owner
|
||||
Options Location = Building1, Building2
|
||||
Options OS = Linux, Windows ME, Windows 2000
|
||||
Required Attributes = Location, Owner
|
||||
Email All = name@address, othername@otheraddress
|
||||
Mail Subject = Location
|
||||
</pre></ul>
|
||||
<p>
|
||||
|
||||
<a name="global"><hr>
|
||||
<div class=title> Global options </div>
|
||||
<p>
|
||||
The following options are specific to the <b><code>[global]</code></b> section:
|
||||
<p>
|
||||
<UL>
|
||||
|
||||
<LI><b><code>Language = <name></code></b>
|
||||
<br>
|
||||
The language setting determines the language of the <code><b>elogd</b></code> output. Not affected by this
|
||||
setting are the configuration file options (they are always in English) and the
|
||||
<b>attribute</b> names as well as the optional <b>Menu commands</b>. These have to be
|
||||
translated manually in the configuration file.
|
||||
<p>
|
||||
If a language name is given (currently only "<I>german</I>" and "<I>french</I>" are supported out-of-the-box),
|
||||
the system searches for a file named <b>eloglang.<name></b> containing
|
||||
string translations from English into that language. <i>If you create a new translation file, please send it back to the author to be included in future distributions</i>.
|
||||
<p>
|
||||
The online help for <code><b>elogd</b></code> is contained in the file <b>eloghelp_<i>xx</i>.html</b> where
|
||||
<i>xx</i> are the first two letters of the language (like "<I>en</I>", "<I>ge</I>" and "<I>fr</I>"). For new languages, a new file of that type must be created as well.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Tab cellpadding</code></b>
|
||||
<br>
|
||||
Specifies the empty space between the name in the logbook tab and its frame, in pixels.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Logbook Tabs = 0/1</code></b>
|
||||
<br>
|
||||
This flag controls the display of "<I>tabs</I>" on top of the logbook page which
|
||||
allow to quickly switch between logbooks.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Main Tab = <string></code></b>
|
||||
<br>
|
||||
If this option is present, an additional first tab is displayed which takes you back
|
||||
to the main logbook selection page. The <b><code>string</b></code> is used for the
|
||||
contents of the tab.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Welcome Title</code></b>
|
||||
<br>
|
||||
This optional HTML code gets displayed in the title of the logbook selection
|
||||
page. It can contain images via <b><code><img src="welcome.gif"></code></b>.
|
||||
These images must be in the same directory as the elodg.cfg file.
|
||||
The following line is an example Welcome Title:
|
||||
<p>
|
||||
<pre>Welcome title = <img src="welcome.jpg"><p><font size=5 color=white>Welcome to our Elog</font></pre>
|
||||
<p>
|
||||
This displays an image and a text below.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Page title = <string></code></b>
|
||||
<br>
|
||||
The string specified here is used for the title of the logbook selection page. It is also
|
||||
used by most browsers for bookmark names.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Selection page = <file></code></b>
|
||||
<br>
|
||||
When this option is present, a user defined file is displayed instead of the logbook
|
||||
selection page. This file must be in the same directory as the <code><b>elogd</b></code>
|
||||
file. It can be completely customized in order to contain logos etc. As a template,
|
||||
the standard selection page produced by <code><b>elogd</b></code> can be used.
|
||||
<p>
|
||||
|
||||
<LI><b><code>SMTP host</code></b>
|
||||
<br>
|
||||
This defines the SMTP host needed to send automatic email notifications. The host
|
||||
name you can get from your email program or your local system administrator.
|
||||
<p>
|
||||
|
||||
</UL>
|
||||
|
||||
<hr>
|
||||
<div class=title> Individual logbook options </div>
|
||||
<p>
|
||||
For each logbook, there is a section with the logbook name in square brackets, so that each
|
||||
logbook can have different options. If an option is not present in a logbook section, then the
|
||||
system tries to locate that option in the <code><b>[global]</b></code> section. Thus if the
|
||||
following options are placed in the <code><b>[global]</b></code> section, they are defaults for
|
||||
all logbooks. If they are present in the <code><b>[global]</b></code> and in the logbook
|
||||
section, the logbook option is used.<p >
|
||||
|
||||
Here are the available options, by broad categories:<p>
|
||||
|
||||
<a name="general"><hr>
|
||||
<div class=section> General options </div>
|
||||
|
||||
<UL>
|
||||
|
||||
<LI><b><code>Data dir</code></b>
|
||||
<br>
|
||||
Each logbook has a separate directory where the logbook entries are stored, which
|
||||
is controlled by this statement. Note that the directories must exist and must
|
||||
be writable by the <code><b>elogd</b></code> program.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Number Attachments</code></b>
|
||||
<br>
|
||||
The number of attachments which can be submitted in one entry. May be zero if no
|
||||
attachments are needed. Maximum is defined by MAX_ATTACHMENTS in elogd.c
|
||||
(10 by default).
|
||||
<p>
|
||||
|
||||
<LI><b><code>Comment</code></b>
|
||||
<br>
|
||||
The comment is displayed on the logbook selection list. The selection list is
|
||||
displayed if more than one logbook is defined on a host and no logbook is
|
||||
explicitly specified in the URL.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Theme</code></b>
|
||||
<br>
|
||||
A theme determines which layout and colors are used for a logbook, similar to
|
||||
<i>skins</i> in other programs. The <i>theme</i> option points to a subdirectory
|
||||
under the directory of the configuration file, which contains all files for
|
||||
that theme. The format of these files is described under the <i>Themes</i>
|
||||
section.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Date format = <string></code></b>
|
||||
<br>
|
||||
This option determines how the date of a logbook entry is displayed. The format
|
||||
of the string is the same as the C function
|
||||
<a href="http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_427.html#IDX2636">
|
||||
strftime</a>, so a string of <b>%A, %B %d, %Y</b> yields in a display of
|
||||
<b>Thursday, November 15, 2001</b> for example.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Welcome Page = <file></code></b>
|
||||
<br>
|
||||
By default, the last entry of a logbook is displayed when the logbook is selected.
|
||||
This can be overridden with this option, which causes a HTML file to be shown
|
||||
instead of the last message. This file can contain further links for new logbook
|
||||
messages of for logbook queries. Here is a simple example of such a file:
|
||||
<p>
|
||||
<pre>
|
||||
<h1>Welcome to the test logbook</h1>
|
||||
<ul>
|
||||
<li><a href="?cmd=new">Enter</a> a new message
|
||||
<li><a href="?cmd=find">Search</a> the logbook
|
||||
</ul>
|
||||
</pre>
|
||||
|
||||
The file must be present in the same directory as the <code><b>elogd</b></code> file.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Submit Page = <file></code></b>
|
||||
<br>
|
||||
This optional page can be displayed when a new message was submitted in a logbook.
|
||||
Here is an example:
|
||||
<p>
|
||||
<pre>
|
||||
<h1>You successfully submitted a message</h1>
|
||||
<a href="linux">Back</a> to the logbook<p>
|
||||
<a href="linux?cmd=new">Enter</a> another message
|
||||
</pre>
|
||||
|
||||
The reference "<I>linux</I>" in this case corresponds to the logbook name.
|
||||
The file must be present in the same directory as the <code><b>elogd</b></code> file.
|
||||
<p>
|
||||
|
||||
<li><b><code>Message comment</code></b>
|
||||
</br>
|
||||
This optional comment is displayed on top of the text entry field when submitting
|
||||
a new message. It can contain a sentence like "<I>Please enter your message here</I>:".
|
||||
<p>
|
||||
|
||||
<li><b><code>Menu commands = <list></code></b>
|
||||
</br>
|
||||
This option specifies the menu commands displayed on top of the logbook page. For
|
||||
certain installations, it can be useful to disable some commands. Following
|
||||
commands are possible:
|
||||
<p>
|
||||
<ul>
|
||||
<li><b>New</b> - Enter new logbook entry
|
||||
<li><b>Edit</b> - Edit current logbook entry
|
||||
<li><b>Delete</b> - Delete current logbook entry
|
||||
<li><b>Reply</b> - Submit a reply to current entry
|
||||
<li><b>Find</b> - Search entries in logbooks
|
||||
<li><b>Last day</b> - Display entries from last day
|
||||
<li><b>Last 10</b> - Display last 10 entries
|
||||
<li><b>Move to</b> - Move entry to other logbook
|
||||
<li><b>Copy to</b> - Copy entry to other logbook
|
||||
<li><b>Config</b> - Edit elogd.cfg
|
||||
<li><b>Change password</b> - Change password for current user (if "<I>Password file</I>" is given)
|
||||
<li><b>Logout</b> - Logout current user (if "<I>Password file</I>" is given)
|
||||
|
||||
<li><b>Help</b> - General help
|
||||
</ul>
|
||||
<p>
|
||||
If this option is not present, following default is used:
|
||||
<p>
|
||||
<pre>Menu commands = New, Edit, Delete, Reply, Find, Last day, Last 10, Config, Help</pre>
|
||||
<p>
|
||||
|
||||
<li><b><code>Find Menu commands = <list></code></b>
|
||||
</br>
|
||||
This option specifies the menu commands displayed on top of the listing page
|
||||
resulting from a "<I>find</I>" command. Although all commands from a above are possible,
|
||||
only the commands <code><b>New, Find, Back, Last, Last day, Last 10, config, Change
|
||||
password, Logout</b></code> and <code><b>Help</b></code> make sense. There is one
|
||||
special command in addition to the above commands: The command <b><code>Last x</b>
|
||||
</code> gets expanded to "<I>Last 2 days</I>", "<I>Last 4 days</I>" or "<I>Last 20 entries</I>", "<I>Last 40 entries</I>" and so on, similar to the standard behaviour without the "<I>Find Menu commands</I>" option.
|
||||
<p>
|
||||
|
||||
<li><b><code>Bottom text = <file></code></b>
|
||||
</br>
|
||||
If this option is present, the HTML contents of <b><code>file</code></b> is displayed at
|
||||
the bottom of an Elog page instead of the little Elog home page link. It can contain for
|
||||
example a link back to the main logbook selection page like:
|
||||
|
||||
<pre>
|
||||
<center><a href="/">Main page</a></center>
|
||||
</pre>
|
||||
|
||||
Or it can contain other useful links. The file must be present in the same directory
|
||||
as the <code><b>elogd</b></code> file.
|
||||
<p>
|
||||
|
||||
<li><b><code>Help URL</code></b>
|
||||
<br>
|
||||
This URL is used for the Help button. By default, the file <b>eloghelp_xx.html</b> is
|
||||
returned with the contents of the help page. Edit this file directly to add site-specific help for all logbooks. Alternatively, use the <b><code>Help URL</code></b> option to specify different help pages for different logbooks.
|
||||
It can point to a site-specific help page via <b><code>http://...</code></b> or to a local file like
|
||||
<b><code>file://c:/tmp/config.html</code></b>, or to the name of an HTML file which must be present in the same directory as the <code><b>elogd</b></code> file.
|
||||
<p>
|
||||
|
||||
</UL>
|
||||
|
||||
<a name="attrib"><hr>
|
||||
<div class=section> Attributes </div>
|
||||
|
||||
<UL>
|
||||
<LI><b><code>Attributes = <list></code></b>
|
||||
<br>
|
||||
Define a number of attributes for the logbook. A maximum of 20 attributes can be
|
||||
defined. Typical values are "<I>Author</I>", "<I>Subject</I>" or "<I>Type</I>".
|
||||
<p>
|
||||
|
||||
<LI><b><code>Options <attribute> = <list></code></b>
|
||||
<br>
|
||||
Usually, an text field is used for an attribute, where the user can fill in
|
||||
text of up to 100 characters. If instead a drop-down box with preset items is
|
||||
better for a given attribute, these items can be defined with this statement.
|
||||
Up to 100 items can be defined, separated by commas.
|
||||
<p>
|
||||
|
||||
<LI><b><code>MOptions <attribute> = <list></code></b>
|
||||
<br>
|
||||
This list allows for "<I>Multiple Options</I>", meaning that an attribute can have
|
||||
several values simultaneously. When entering an entry with MOptions, each value
|
||||
from the list is represented by a checkbox. Unlike with normal options, multiple
|
||||
checkboxes can be checked for an entry. The attribue value then becomes
|
||||
<p>
|
||||
<pre>
|
||||
<value1> | <value2> | ...
|
||||
</pre>
|
||||
In the "<I>find</I>" page only one of these values can be specified, which is then
|
||||
treated as a substring in the search filter.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Options <attribute> = boolean</code></b>
|
||||
<br>
|
||||
If an attribute is marked "<I>boolean</I>" this way, a checkbox is displayed for
|
||||
this attribute.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Preset <attribute> = <string></code></b>
|
||||
<br>
|
||||
This option uses a preset string for an attribute. The string can contain
|
||||
subsitutions like the ones described under the "<I>Subst <attribute></I>"
|
||||
command. One possible application is to use the login name for the author
|
||||
field like:
|
||||
<p>
|
||||
<pre>
|
||||
Preset Author = $long_name
|
||||
</pre>
|
||||
If the attribute should be locked at the Web submission, use the
|
||||
"<I>Locked Attributes = ...</I>" option. If a preset value is given for an
|
||||
attribute which has an options list, the preset value is selected in the drop
|
||||
down box by default.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Preset text = <string> or <file></code></b>
|
||||
<br>
|
||||
This preset value is used for the main body text. It can be a string or a file,
|
||||
which must be present in the same directory as the <code><b>elogd</b></code> file.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Locked Attributes = <list></code></b>
|
||||
<br>
|
||||
The attributes specified here cannot be modified when a new entry is submitted.
|
||||
This makes only sense for preset attributes.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Required Attributes = <list></code></b>
|
||||
<br>
|
||||
The attributes specified here are required when a new entry is submitted. The
|
||||
attribute names are marked with <font color=red>*</font> on the entry form.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Page title = <string></code></b>
|
||||
<br>
|
||||
The string specified here is used for the title of the web page. It is also
|
||||
used by most browsers for bookmark names. The string can contain substitutions
|
||||
as described unter the "<I>Subst <attribute></I>" option.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Display search = <list></code></b>
|
||||
<br>
|
||||
The display of attributes in a search result table can be restricted only to
|
||||
certain attributes listed here. This can be helpful is many attributes are defined
|
||||
in a logbook, which usually makes the table too big to fit in the browser.
|
||||
<p>
|
||||
|
||||
<LI><b><code>Subst <attribute> = <string></code></b>
|
||||
<br>
|
||||
When submitting logbook entries, attribute values can be substituted by some
|
||||
text. This text can contain arbitrary fixed text and following values:
|
||||
<p>
|
||||
<UL>
|
||||
<LI><b>$<attribute></b>: The entered value of the attribute itself
|
||||
<LI><b>$host</b>: The host name where <code><b>elogd</b></code> is running
|
||||
<LI><b>$remote_host</b>: The host name of the host from with the entry was submitted
|
||||
<LI><b>$short_name</b>: The login name (if password file is present)
|
||||
<LI><b>$long_name</b>: The full name (if password file is present)
|
||||
<LI><b>$logbook</b>: The name of the current logbook
|
||||
<LI><b>$date</b>: The current date, formatted via "<I>Date format</I>"
|
||||
</UL>
|
||||
<p>
|
||||
Following example use this feature to add the remote host name to the author:
|
||||
<p>
|
||||
Subst Author = $author from $remote_host
|
||||
<p>
|
||||
|
||||
<LI><b><code>Remove on reply = <list></code></b>
|
||||
<br>
|
||||
This option clears one or more (separated by commata) attribute values from a logbook
|
||||
entry when creating a reply to that entry. This can make sense for example for
|
||||
the author, since the author of a reply can be different from the original author.
|
||||
<p>
|
||||
|
||||
</UL>
|
||||
|
||||
<a name="access"><hr>
|
||||
<div class=section> Access control </div>
|
||||
<p>
|
||||
Reading and writing into logbooks can be constrained using two different access methods,
|
||||
either with global passwords for read, write and admin (config, delete), or with user-
|
||||
level passwords. For these two schemes to work properly, <b>cookies have to be turned
|
||||
on in your browser</b>. Please consult your browser documentation about how to do that.
|
||||
<p>
|
||||
|
||||
<UL>
|
||||
<LI><b><code>Read password</code></b>
|
||||
<LI><b><code>Write password</code></b>
|
||||
<LI><b><code>Admin password</code></b>
|
||||
<LI><b><code>Write password expiration = <hours></code></b>
|
||||
<LI><b><code>Admin password expiration = <hours></code></b>
|
||||
</ul>
|
||||
<p>
|
||||
These optional password statements define passwords for reading and writing to the
|
||||
logbook, to delete entries in the logbook and to configure a logbook via the <I>Config</I>
|
||||
menu. The passwords are stored in an encoded form. To change them, use <code><b>elogd</b></code>
|
||||
directly with the <b><code>-r </code></b>, <b><code>-w</code></b> and <b><code>-a
|
||||
</code></b> flags. To set the write password of logbook "<I>linux</I>" to "<I>test</I>", enter:
|
||||
<p>
|
||||
<ul><code>elogd -w test -l linux</code></ul>
|
||||
<p>
|
||||
The read password is queried by the browser with a pop-up window and usually stays
|
||||
active for the entire browser session. The write and admin passwords are stored in
|
||||
cookies on the browser side and have an expiration time of 24h. After that time, the
|
||||
passwords have to be re-submitted. This time can be changed with the statement <b>
|
||||
<code>Write Password Expiration = x</code></b> or <b><code>Admin Password Expiration
|
||||
= x</code></b>, where <i>x</i> is the expiration time in hours. It should be noted
|
||||
that on some systems the daylight savings time is calculated incorrectly, which can
|
||||
cause time offsets of one hour between a server PC and a client PC. In this case one
|
||||
hour must be added to the expiration time. If the expiration is set to "0", the
|
||||
passwords are kept for the current browser session only. When the browser is restarted,
|
||||
the password must be re-entered.
|
||||
<P>
|
||||
<ul>
|
||||
<LI><b><code>Password file = <file></code></b>
|
||||
<LI><b><code>Login expiration = <hours></code></b>
|
||||
</ul>
|
||||
<p>
|
||||
An alternative to the read/write/admin passwords is the user level access with a
|
||||
password file. This file contains user names and passwords in following format:
|
||||
<p>
|
||||
<ul><code><pre><login name1>:<password1>:<full name1>
|
||||
<login name2>:<password2>:<full name2>
|
||||
<login name3>:<password3>:<full name3>
|
||||
...</pre></code></ul>
|
||||
<p>
|
||||
The passwords are encoded. To create or change them, use the "<I>Change
|
||||
Password</I>" menu point. To create a new user, edit the password file
|
||||
manually and use an empty password (like "<code><login name>::<full name></code>"), which can then be changed via the "<I>Change password</I>" menu point.
|
||||
<p>
|
||||
The presence of a password file requires all users to "<I>log in</I>" using their name and
|
||||
password. An additional advantage of this method is that the user name can be used as
|
||||
an attribute value for creating logbook entries. For example, the following line could be
|
||||
added to the configuration file to fill in the <i>Author</i> attribute with the user name:
|
||||
<p>
|
||||
<ul><code>Options Author = $long_name from $remote_host</code></ul>
|
||||
<p>
|
||||
Thus the author name is not user-input anymore, ensuring the entry always contains the
|
||||
actual user name. For a full listing of substitutions, see the "<I>Subst <attrib></I>" option.
|
||||
<p>
|
||||
The user name and password are stored as cookies on the user side. They expire after 24
|
||||
hours by default, which can be changed with the <code><b>Login expiration</b></code >
|
||||
options. If the expiration is set to "0", the passwords are kept for the current browser
|
||||
session only. When the browser is restarted, the password must be re-entered.
|
||||
<p>
|
||||
<ul>
|
||||
<LI><b><code>Allow <command> = <user list></code></b>
|
||||
</ul>
|
||||
<p>
|
||||
Commands can be restricted to certain login names (separated by commas). For
|
||||
each command in the list defined with the "<I>Menu commands</I>" option, a list of
|
||||
user names can be specified, which are allowed to execute that command. If the
|
||||
allow option is not present, all users may execute that command by default.
|
||||
<p>
|
||||
<ul>
|
||||
<LI><b><code>Hosts allow = <list></code></b>
|
||||
<LI><b><code>Hosts deny = <list></code></b>
|
||||
</ul>
|
||||
<p>
|
||||
These two settings can be used to restrict the access to the logbook to certain
|
||||
computers. It is similar to the UNIX <i>hosts.allow</i> and <i>hosts.deny</i> files.
|
||||
The list can consist of individual host names or IP numbers, subnet masks like
|
||||
<b><code>123.213.</b></code> (note the trailing '.') or <b><code>.mit.edu</b></code>,
|
||||
or the word <b><code>All</code></b>. The following rules are applied:
|
||||
<ul>
|
||||
<li>Access will be granted when a host matches a pattern in "<I>hosts allow</I>".
|
||||
<li>Otherwise, access will be denied when a host matches a pattern in "<I>hosts deny</I>".
|
||||
<li>Otherwise, access will be granted.
|
||||
</ul>
|
||||
<p>
|
||||
These rules are applied <i>before</i> any password is checked. To debug problems,
|
||||
start <code><b>elogd</b></code> with the "-v" flag, in which case the rule checking is printed
|
||||
on the screen.
|
||||
<p>
|
||||
|
||||
<a name="email"><hr>
|
||||
<div class=section> EMail notification </div>
|
||||
|
||||
<ul>
|
||||
<LI><b><code>Email <attribute> <value> = <list></code></b>
|
||||
<LI><b><code>Use Email Subject = <string></code></b>
|
||||
<LI><b><code>Use Email From = <string></code></b>
|
||||
</ul>
|
||||
<p>
|
||||
To send email automatically when new entries are created in a logbook, a <b><code>SMTP host =
|
||||
</b></code> entry must be present in the <b><code>[global]</code></b> section
|
||||
of the configuration file. To submit an email based on an attribute value, use the statement <b><code>Email <attribute> <value> =
|
||||
<list></b></code>. Whenever an entry is submitted where <b><code>
|
||||
attribute</code></b> is equal to <b><code>value</code></b>, an email
|
||||
notification is sent to the email addresses in <b><code>list</code></b>.
|
||||
Several mail addresses may be supplied, separated by commas. Multiple <b>
|
||||
<code>Email xxx</code></b > statements may occur in a configuration
|
||||
file. If either the attribute or the value contains one or more blanks the string
|
||||
must be enclosed with quotation marks, as in:
|
||||
<p>
|
||||
<ul><code>Email type "Normal routine" = ...</code></ul>
|
||||
<p>
|
||||
The statement <b><code>Email All = <list></code></b> sends an
|
||||
email notification independent of the type and category. The <b><code>Use
|
||||
Email Subject = <string></b></code> statement specifies which text is
|
||||
used as the email subject. The text can contain <b><code>$<attribute>
|
||||
</code></b>statements which are substituted with the current value of that
|
||||
attribute. For a full list of possible substitutions, see the
|
||||
"<I>Subst <attribute></I>" option. The option <b><code>Use Email From = <string>
|
||||
</code></b> is used for the "<I>from</I>" field in the email.
|
||||
<p>
|
||||
|
||||
<a name="flags"><hr>
|
||||
<div class=section> Flags </div>
|
||||
|
||||
<ul>
|
||||
<li><b><code>Show text = 0/1</code></b>
|
||||
</br>
|
||||
This flag controls if logbook entries contain a body text. If an installation
|
||||
only requires attributes, this flag can be set to <b>0</b>. Default is
|
||||
<b>1</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Show attachments = 0/1</code></b>
|
||||
</br>
|
||||
This flag controls the display of attachments such as images on normal
|
||||
logbook pages. For logbooks with large images, this flag can be turned off,
|
||||
so that attachments are only displayed when they are clicked on. Default
|
||||
is <b>1</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Summary on default = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, the buttons <i>"Last day"</i> and <i>"Last 10"</i>
|
||||
produce summary listings instead of displaying full messages. In the <i>"Find"</i>
|
||||
page, the <i>"Summary only"</i> check box is checked by default.
|
||||
<p>
|
||||
|
||||
<li><b><code>Summary lines = x</code></b>
|
||||
</br>
|
||||
This specifies the number of text lines displayed in a summary page. Zero displays
|
||||
no text at all. The default is 3.
|
||||
<p>
|
||||
|
||||
<li><b><code>Reverse sort = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, the result of the <i>"Last day"</i> and <i>"Last 10"</i> queries
|
||||
is sorted in reverse order (newest entry down to oldest). Default is <b>0</b>.<p>
|
||||
|
||||
<li><b><code>Enable browsing = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, browsing (hitting the next/previous button) is enabled.
|
||||
For some rare occasions it might be necessary to disable browsing. Default is
|
||||
<b>1</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Filtered browsing = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, browsing (hitting the next/previous button) can be
|
||||
filtered by individual attributes. If the checkbox next to an attribute is checked,
|
||||
only messages with the same attribute value are displayed. Default is <b>1</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>HTML default = 0/1/2</code></b>
|
||||
</br>
|
||||
This specifies the default state of the "<I>Submit as HTML text</I>" button on the
|
||||
new message entry from. For installations where entries are normally submitted
|
||||
as HTML, the default can be set to <b>1</b>. If this value is set to <b>2
|
||||
</b>, the check box is not displayed at all, so that only text submissions
|
||||
are possible. The default is <b>0</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Suppress default = 0/1/2</code></b>
|
||||
</br>
|
||||
This specifies the default state of the "<I>Suppress Email notification</I>" button on the
|
||||
new message entry form. For installations where normally an email notification is
|
||||
not necessary, the default can be set to <b>1</b>. If an important entry is
|
||||
entered, users can then uncheck the suppress box. If this value is set to <b>2
|
||||
</b>, the suppress box is not displayed at all, so that an email notification is
|
||||
always produced. The default is <b>0</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Resubmit default = 0/1/2</code></b>
|
||||
</br>
|
||||
This specifies the default state of the "<I>Resubmit as new entry</I>" button on the
|
||||
edit message entry from. If this button is checked, the current message is removed
|
||||
from its current position in the database and submitted as a new message. This
|
||||
can for example be useful for applications where users want to see which records
|
||||
have been updated recently. If this value is set to <b>2</b>, the resubmit box
|
||||
is not displayed at all. The default is <b>0</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Display Email recipients = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, the email recipients are displayed when a logbook
|
||||
entry is entered which produces an email notification. Setting this flag to 0
|
||||
suppresses this display, in case users need not see that email is being sent and to whom.
|
||||
The default is <b>1</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Email message body = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, the email notification send by elog contains the
|
||||
full message body in addition to the attributes. The default is <b>0</b>.
|
||||
<p>
|
||||
|
||||
<li><b><code>Back to main = 0/1</code></b>
|
||||
</br>
|
||||
If this flag is <b>1</b>, the "<I>Back</I>" button takes you back to the logbook
|
||||
selection page instead to the last entry of the current logbook.
|
||||
The default is <b>0</b>.
|
||||
<p>
|
||||
|
||||
</ul><p>
|
||||
|
||||
<a name="themes"><hr>
|
||||
<div class=section> Themes </div>
|
||||
<p>
|
||||
Themes are layout and color schemes which determine the look and feel of a logbook.
|
||||
Each theme resides in a separate subdirectory and is specified with the
|
||||
<b><code>theme = <dir></code></b> option in the configuration file. The directory
|
||||
contains the file <b><code>theme.cfg</code></b> and a few images, which are used
|
||||
for the title banner and the browse buttons. A default theme is contained in the
|
||||
distribution. If new themes are developed by users, they can be sent back to the author,
|
||||
to be included in future releases.
|
||||
<p>
|
||||
Most of the options in the <b><code>theme.cfg</b></code> are self-explanatory. The colors
|
||||
are coded as #RRGGBB, where RR is a 8-bit hexadecimal value for the red part, GG for the
|
||||
green and BB for the blue part, repectively. Since theme configuration files are re-read
|
||||
at each access, the <B>elogd </B>daemon does not have to be restarted after a change in the
|
||||
theme configuration file.
|
||||
<p>
|
||||
These two images display the same logbook entry using different themes:
|
||||
<p>
|
||||
<img src=theme1.jpg> <img src=theme2.jpg>
|
||||
<p>
|
||||
|
||||
<HR>
|
||||
<div class=footer>
|
||||
Content by <a class=nav href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a>,
|
||||
Web pages by <a class=nav href="mailto:fredp@mygale.org">Fred Pacquier</a>
|
||||
- last modified on 19/12/2001
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
13
doc/dl-menu.html
Executable file
@ -0,0 +1,13 @@
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
<div class=title> ELOG download page </div>
|
||||
<p>
|
||||
<div class=menu> Site map :
|
||||
[<a target=_top class=nav href="index.html">Home</a>]
|
||||
[<a target=_top class=nav href="userguide.html">User's Guide</a>]
|
||||
[<a target=_top class=nav href="adminguide.html">Administrator's Guide</a>]
|
||||
[<a target=_top class=nav href="faq.html">FAQ</a>]
|
||||
[<a target=_top class=nav href="http://midas.psi.ch:8000">DEMO</a>]
|
||||
[Download]
|
||||
</div>
|
||||
<p>
|
||||
<div class=Sub><i>ELOG source code and Windows binaries</i></div>
|
||||
6
doc/dl-sig.html
Executable file
@ -0,0 +1,6 @@
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
<div class=footer>
|
||||
Content by <a class=nav href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a>,
|
||||
Web pages by <a class=nav href="mailto:fredp@mygale.org">Fred Pacquier</a>
|
||||
- last modified on 19/12/2001
|
||||
</div>
|
||||
16
doc/download.html
Executable file
@ -0,0 +1,16 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>ELOG download page</TITLE>
|
||||
<LINK REV="made" HREF="mailto:fredp@mygale.org">
|
||||
<META NAME="generator" CONTENT="NoteTab Light 4.86c">
|
||||
<META NAME="author" CONTENT="Fred Pacquier">
|
||||
<META NAME="description" CONTENT="Home of the Electronic Logbook (ELOG) package">
|
||||
<META NAME="keywords" CONTENT="ELOG MIDAS PSI RITT">
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
</HEAD>
|
||||
<frameset rows="20%,*,10%">
|
||||
<frame src="dl-menu.html">
|
||||
<frame src="http://midas.psi.ch/elog/download/">
|
||||
<frame src="dl-sig.html">
|
||||
</frameset>
|
||||
</HTML>
|
||||
23
doc/elog.css
Executable file
@ -0,0 +1,23 @@
|
||||
<STYLE TYPE="text/css">
|
||||
<!--
|
||||
.dummy {}
|
||||
|
||||
.title {background-color: #486090;font-family: Verdana, Arial, Helvetica, Sans-Serif;font-size: x-large;color: white;text-align: center;padding: 5px 10px 5px 10px;}
|
||||
|
||||
.version {color: #486090;font-family: Verdana, Arial, Helvetica, Sans-Serif;text-align: center;padding: 5px 10px 5px 10px;font-weight: bold;}
|
||||
|
||||
.menu {background-color: #486090;font-family: Verdana, Arial, Helvetica, Sans-Serif;font-size: medium;color: white;text-align: center;padding: 5px 10px 5px 10px; }
|
||||
|
||||
.Sub {font-family: Verdana, Arial, Helvetica, Sans-Serif;font-size: medium;text-align:
|
||||
center;}
|
||||
|
||||
.nav {text-decoration: none; color: yellow;}
|
||||
|
||||
.section {background-color: #486090;font-family: Verdana, Arial, Helvetica, Sans-Serif;font-size: large;color: white;text-align: left;padding: 5px 10px 5px 10px;}
|
||||
|
||||
.footer {background-color: #486090;font-family: Verdana, Arial, Helvetica, Sans-Serif;font-size: small;color: white;text-align: left;padding: 5px 10px 5px 10px;}
|
||||
|
||||
P {margin-left: 10px; margin-right: 10px;}
|
||||
|
||||
-->
|
||||
</STYLE>
|
||||
BIN
doc/elog.gif
Executable file
|
After Width: | Height: | Size: 86 KiB |
BIN
doc/elog_thumb.jpg
Executable file
|
After Width: | Height: | Size: 35 KiB |
155
doc/faq.html
Executable file
@ -0,0 +1,155 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>ELOG FAQ</TITLE>
|
||||
<LINK REV="made" HREF="mailto:fredp@mygale.org">
|
||||
<META NAME="generator" CONTENT="NoteTab Light 4.86c">
|
||||
<META NAME="author" CONTENT="Fred Pacquier">
|
||||
<META NAME="description" CONTENT="Home of the Electronic Logbook (ELOG) package">
|
||||
<META NAME="keywords" CONTENT="ELOG MIDAS PSI RITT">
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
|
||||
|
||||
<div class=title> ELOG FAQ </div>
|
||||
<p>
|
||||
<div class=menu> Site map :
|
||||
[<a class=nav href="index.html">Home</a>]
|
||||
[<a class=nav href="userguide.html">User's Guide</a>]
|
||||
[<a class=nav href="adminguide.html">Administrator's Guide</a>]
|
||||
[FAQ]
|
||||
[<a class=nav href="http://midas.psi.ch:8000">DEMO</a>]
|
||||
[<a class=nav href="download.html">Download</a>]
|
||||
</div>
|
||||
<p>
|
||||
<div class=Sub><i>Frequently Asked Questions about usage and administration</i></div>
|
||||
<hr>
|
||||
|
||||
<UL>
|
||||
|
||||
<LI><b>Are there any plans to implement a MySQL back end?</b>
|
||||
<p>
|
||||
No. The idea behind <b>ELOG</b> is that it is a <I>simple to use, simple to install</I> application. Many people use <b>ELOG</b> 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 <b>ELOG</b> should be independent of any other package, some "switchable" backend between native <b>ELOG</b> format and MySQL would be needed, which is lots of work and not planned right now.
|
||||
<p>
|
||||
|
||||
<LI><b>Can I run the ELOG daemon from inside Apache or any other Web server?</b>
|
||||
<p>
|
||||
No. The <b>ELOG</b> daemon was designed as a standalone server and it will stay like that in the future. The reason for that is that <code><b>elogd</b></code> should not rely on any other software. This is for example important for many people running <code><b>elogd</b></code> under Windows, and they have no clue how to install Apache for Windows. The installation and maintenance for <code><b>elogd</b></code> therefore becomes much simpler. The disadvantage of this solution is that <code><b>elogd</b></code> needs to run on a different port than 80 in case it runs in parallel with a Web server.
|
||||
<p>
|
||||
|
||||
<LI><b>I can access my logbook without any password, isn't that a security problem?</b>
|
||||
<p>
|
||||
By default, no password is used in <b>ELOG</b>. 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.html#access">Access control</a>.
|
||||
<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.html#secure">secure</a> network connection should be used.
|
||||
<p>
|
||||
|
||||
<LI><b>I want a bookmark pointing to the last page where an attribute has a certain value</b>
|
||||
<p>
|
||||
Use the URL:
|
||||
<p>
|
||||
<code>http://<your.host>/<logbook>/?cmd=Last&<attribute>=<value></code>
|
||||
<p>
|
||||
This executes the "<I>Last</I>" 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.
|
||||
<p>
|
||||
<code>http://<your.host>/<logbook>/?cmd=Last&<attribute>=<value>&l<attribute>=1</code>
|
||||
<p>
|
||||
Note the "l" before the second attribute, as in "<I>lAuthor=1</I>".
|
||||
<p>
|
||||
|
||||
<LI><b>I want a logbook with public read access (no password), but restricted write access</b>
|
||||
<p>
|
||||
There is a trick for that: Define two logbooks, but with the same data directory. The first one has no passwords, but a restricted set of menu commands. The second logbook has a read and/or write password or user level access and a full menu (including edit, delete, etc.). So the public uses the first logbook, while the adminitrator uses the second logbook. Here is an example configuration file:
|
||||
<p>
|
||||
<pre>
|
||||
[global]
|
||||
logbook tabs = 0
|
||||
|
||||
[Public]
|
||||
data dir = c:\elog
|
||||
Comment = Public access
|
||||
Attributes = Author, Type, Category, Subject
|
||||
Options Type = Routine, Software Installation, Problem Fixed, Configuration, Other
|
||||
Options Category = General, Hardware, Software, Network, Other
|
||||
Menu commands = Find, Last day, Last 10, Help
|
||||
|
||||
[Restricted]
|
||||
Data dir = c:\elog
|
||||
Comment = Access only for administrator
|
||||
Password file = passwd.txt
|
||||
Attributes = Author, Type, Category, Subject
|
||||
Options Type = Routine, Software Installation, Problem Fixed, Configuration, Other
|
||||
Options Category = General, Hardware, Software, Network, Other
|
||||
Menu commands = New, Edit, Delete, Reply, Find, Last day, Last 10, Config, Change Password, Logout, Help
|
||||
</pre>
|
||||
Note the "<I>logbook tabs = 0</I>" which "<I>hides</I>" the restricted logbook so that public users don't get confused.
|
||||
<p>
|
||||
|
||||
<LI><b>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.</b>
|
||||
<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>
|
||||
|
||||
<LI><b>By default, ELOG displays the last entry from a logbook. How can I configure it to
|
||||
display the last 10 messages instead?</b>
|
||||
<p>
|
||||
There is a simple trick. You use the <b>"<I>Welcome page</I>"</b> option in the <code><b>elogd</b></code> file
|
||||
to redirect the start page to the <b>last 10</b> command. Put the statement:
|
||||
<p>
|
||||
<pre>
|
||||
Welcome page = redir.html
|
||||
</pre>
|
||||
into <code><b>elogd</b></code> and create that file with following contents:
|
||||
<p>
|
||||
<pre>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0; URL=/logbook/last10">
|
||||
</head>
|
||||
</pre>
|
||||
This causes the welcome page being redirected to <b>/logbook/last10</b>, where <b>logbook</b> must be replaced by the current logbook name. Following other redirections are possible:
|
||||
<p>
|
||||
<pre>
|
||||
/logbook/last20 for the last 20 messages and so on
|
||||
/logbook/past1 for the last day
|
||||
/logbook/past2 for the last two days and so on
|
||||
/logbook?cmd=New for the new message entry form
|
||||
/logbook?cmd=Find for the "find" page
|
||||
/logbook?cmd=Search&<attrib>=<value> for a search with <attrib>=<value>
|
||||
</pre>
|
||||
|
||||
<LI><b>What new features are planned for future releases ?</b>
|
||||
<p>
|
||||
Here are some "<I>wishlist</I>" items requested by users. I will work down the list as time permits. If you find
|
||||
a feature you find useful on the list, there is a good chance that it will appear in a future release. You can vote for a feature, or suggest one, by sending me an email.
|
||||
<p>
|
||||
|
||||
<center>
|
||||
<table border=1>
|
||||
<tr><th>Feature<th>Votes</tr>
|
||||
|
||||
<tr><td>Get message from standard input in elog submission program<td>1</tr>
|
||||
<tr><td>Users can only edit their own entries<td>1</tr>
|
||||
<tr><td>Make user file editable through web interface<td>1</tr>
|
||||
<tr><td>Implement groups of users<td>1</tr>
|
||||
<tr><td>Add email address field to user file, so that user name can be
|
||||
specified for "Email <attribute> <value> =" option
|
||||
which gets automatically substituted by email address<td>1</tr>
|
||||
<tr><td>Change internal database format from offset oriented to
|
||||
index oriented (lots of work, need also conversion program)<td>2</tr>
|
||||
<tr><td>Implement new listing mode in between "summary only" and "full listing"
|
||||
where a few text lines are displayed below the attribute fields<td>1</tr>
|
||||
|
||||
</table></center><p>
|
||||
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
<div class=footer>
|
||||
Content by <a class=nav href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a>,
|
||||
Web pages by <a class=nav href="mailto:fredp@mygale.org">Fred Pacquier</a>
|
||||
- last modified on 19/12/2001
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
163
doc/index.html
Executable file
@ -0,0 +1,163 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The ELOG Home Page</TITLE>
|
||||
<LINK REV="made" HREF="mailto:fredp@mygale.org">
|
||||
<META NAME="generator" CONTENT="NoteTab Light 4.86c">
|
||||
<META NAME="author" CONTENT="Fred Pacquier">
|
||||
<META NAME="description" CONTENT="Home of the Electronic Logbook (ELOG) package">
|
||||
<META NAME="keywords" CONTENT="ELOG MIDAS PSI RITT">
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
|
||||
|
||||
<div class=title> The ELOG Home Page </div>
|
||||
<p>
|
||||
<div class=menu> Site map :
|
||||
[Home]
|
||||
[<a class=nav href="userguide.html">User's Guide</a>]
|
||||
[<a class=nav href="adminguide.html">Administrator's Guide</a>]
|
||||
[<a class=nav href="faq.html">FAQ</a>]
|
||||
[<a class=nav href="http://midas.psi.ch:8000">DEMO</a>]
|
||||
[<a class=nav href="download.html">Download</a>]
|
||||
</div>
|
||||
<p>
|
||||
<div class=menu> * this section :
|
||||
[<a class=nav href="#whatis">What is ELOG ?</a>]
|
||||
[<a class=nav href="#screenshots">Screen shots</a>]
|
||||
[<a class=nav href="#usecases">Use cases</a>]
|
||||
[<a class=nav href="#license">License</a>]
|
||||
[<a class=nav href="#links">Links</a>]
|
||||
* </div>
|
||||
<P class=Sub>Home of the <i>Electronic Logbook</i> package by <a href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a></P>
|
||||
<div class=version> Current version is : 1.3.2 </div>
|
||||
|
||||
<hr><a name="whatis">
|
||||
<div class=section> What is ELOG ? </div>
|
||||
<p>
|
||||
<b>ELOG</b> is part of a family of applications known as <i><i>weblog</i>s</i>. 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.)
|
||||
<p>
|
||||
<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.
|
||||
</ol>
|
||||
<p>
|
||||
<b>ELOG</b> is a remarkable implementation of a <i>weblog</i> 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 <b>ELOG</b> ; 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>its versatility : through its single configuration file, <b>ELOG</b> can be made to display an infinity of variants of the <i>weblog</i> 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 <i><i>weblog</i>s</i>, and each <i>weblog</i> can be totally different from the rest.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="screenshots">
|
||||
<div class=section> Screen shots </div>
|
||||
<p>
|
||||
<table border=0 cellpadding=5><tr>
|
||||
<td>
|
||||
<a href=elog.gif><image border=0 align=top src=elog_thumb.jpg alt=elog.gif></a>
|
||||
</td>
|
||||
<td valign=top>
|
||||
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 "<I>Save As...</I>" function of the Web browser.
|
||||
<p>
|
||||
Several logbooks can be served though a single <b>ELOG</b> 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 "<I>Type</I>" equal to "<I>Configuration</I>", and the lower pane
|
||||
shows the search result. It is also possible to use full-text search in
|
||||
attributes and the entry body.
|
||||
<p>
|
||||
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.
|
||||
<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>
|
||||
An additional feature is the automatic generation of a notification email
|
||||
messages based on a certain type or category of a logbook entry.
|
||||
<p>
|
||||
Also try out the <b><a href="http://midas.psi.ch:8000">online demo</a></b> !
|
||||
</td></tr></table>
|
||||
<p>
|
||||
|
||||
<hr><a name="usecases">
|
||||
<div class=section> Use cases </div>
|
||||
<p>
|
||||
The features of <b>ELOG</b> make it useful for several applications:
|
||||
<ul>
|
||||
<li><b>Personal Logbooks</b>. Personal notes can be written into <b>ELOG</b> 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.
|
||||
<p>
|
||||
<li><b>Shared Logbooks</b>. 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 <i>Reply</i> command in <b>ELOG</b> which creates "<I>threads</I>"
|
||||
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 <b>ELOG</b> is
|
||||
much simpler.
|
||||
<p>
|
||||
<li><b>Small Databases</b>. Since arbitrary attributes can be defined
|
||||
for a logbook, it can be used as a small database with search facilities.
|
||||
<p>
|
||||
<li><b>Problem collections</b>. 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.
|
||||
<p>
|
||||
<li><b>Shift Logbooks</b>. If the <i>Allow delete</i> and <i>Allow edit</i>
|
||||
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 "<I>document</I>" with a time and author stamp. <b>ELOG</b>
|
||||
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>.
|
||||
<p>
|
||||
<li><b>File collections</b>. Since files can be attached to <b>ELOG</b> 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 <b>ELOG</b> features an elaborate
|
||||
query facility, entries can be searched for by specifying several
|
||||
categories.
|
||||
</ul><p>
|
||||
|
||||
<hr><a name="license">
|
||||
<div class=section> License </div>
|
||||
<p>
|
||||
<b>ELOG</b> is released under the <a href="http://www.gnu.org/copyleft/gpl.html">
|
||||
GNU Public License</a>.
|
||||
<p>
|
||||
|
||||
<hr><a name="links">
|
||||
<div class=section> Links </div>
|
||||
<p>
|
||||
See also the <b>ELOG</b> project pages on
|
||||
<a href="http://sourceforge.net/projects/elog">
|
||||
<img align=middle src="http://sourceforge.net/sflogo.php?group_id=40505&type=1"
|
||||
width="88" height="31" border="0" alt="SourceForge"></a>
|
||||
and
|
||||
<a href="http://freshmeat.net/projects/elog">
|
||||
<img align=middle border=0 src="http://freshmeat.net/img/fmII-logo.gif" alt="Freshmeat"></a>
|
||||
-
|
||||
<i>
|
||||
Visits to this page since 23 May 2001:
|
||||
<a href="http://cgi3.fxweb.com/v2-openstat.cgi?userid=R17501&password2=public">
|
||||
<IMG align=absmiddle src="http://cgi3.fxweb.com/v2-trackrun.cgi?userid=R17501" height="31" width="88" border=none></a>
|
||||
</i><p>
|
||||
|
||||
<HR>
|
||||
<div class=footer>
|
||||
Content by <a class=nav href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a>,
|
||||
Web pages by <a class=nav href="mailto:fredp@mygale.org">Fred Pacquier</a>
|
||||
- last modified on 19/12/2001
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
BIN
doc/theme1.jpg
Executable file
|
After Width: | Height: | Size: 26 KiB |
BIN
doc/theme2.jpg
Executable file
|
After Width: | Height: | Size: 26 KiB |
269
doc/userguide.html
Executable file
@ -0,0 +1,269 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>ELOG User's Guide</TITLE>
|
||||
<LINK REV="made" HREF="mailto:fredp@mygale.org">
|
||||
<META NAME="generator" CONTENT="NoteTab Light 4.86c">
|
||||
<META NAME="author" CONTENT="Fred Pacquier">
|
||||
<META NAME="description" CONTENT="Home of the Electronic Logbook (ELOG) package">
|
||||
<META NAME="keywords" CONTENT="ELOG MIDAS PSI RITT">
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="elog.css">
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
|
||||
|
||||
<div class=title> ELOG User's Guide </div>
|
||||
<p>
|
||||
<div class=menu> Site map :
|
||||
[<a class=nav href="index.html">Home</a>]
|
||||
[User's Guide]
|
||||
[<a class=nav href="adminguide.html">Administrator's Guide</a>]
|
||||
[<a class=nav href="faq.html">FAQ</a>]
|
||||
[<a class=nav href="http://midas.psi.ch:8000">DEMO</a>]
|
||||
[<a class=nav href="download.html">Download</a>]
|
||||
</div>
|
||||
<p>
|
||||
<div class=menu> * this section :
|
||||
[<a class=nav href="#intro">Introduction</a>]
|
||||
[<a class=nav href="#terms">Terminology</a>]
|
||||
[<a class=nav href="#access">Accessing</a>]
|
||||
[<a class=nav href="#view">Viewing</a>]
|
||||
[<a class=nav href="#browse">Browsing</a>]
|
||||
[<a class=nav href="#add">Adding</a>]
|
||||
[<a class=nav href="#misc">Misc.</a>]
|
||||
* </div>
|
||||
<p>
|
||||
<div class=Sub><i>How to get the most from your ELOG server</i></div>
|
||||
|
||||
<hr><a name="intro">
|
||||
<div class=section> A Quick Intro </div>
|
||||
<p>
|
||||
<b>ELOG</b> is part of a family of applications known as <i><i>weblog</i>s</i>. 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 ("<I>entries</I>") with optional HTML markup for presentation, and optional file attachments (images, archives, etc.)
|
||||
<p>
|
||||
<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.
|
||||
</ol>
|
||||
<p>
|
||||
<b>ELOG</b> is a remarkable implementation of a <i>weblog</i> 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 <b>ELOG</b> ; 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>its versatility : through its single configuration file, <b>ELOG</b> can be made to display an infinity of variants of the <i>weblog</i> 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 <i><i>weblog</i>s</i>, and each <i>weblog</i> can be totally different from the rest.
|
||||
<p>
|
||||
This is actually a problem when writing a User's Guide, because <b>ELOG</b> servers, and individual <i><i>weblog</i>s</i> on one server, can vary wildly in appearance and functionality... This guide only attempts to cover the main concepts of importance for <b>ELOG</b> users, describing the default "<I>out-of-the-box</I>" setup and how that behaviour may have been modified by the server administrator.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="terms">
|
||||
<div class=section> What Words Mean Here </div>
|
||||
<p>
|
||||
Just to be clear, some definitions of terms that will be used throughout the guide :
|
||||
<p>
|
||||
<ul>
|
||||
<li><b>ELOG server</b> : the machine on which the <b>ELOG</b> 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.
|
||||
<p>
|
||||
<li><b>ELOG administrator</b> : the person who has the authority to modify the <b>ELOG</b> 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.
|
||||
<p>
|
||||
<li><b>logbook</b> : a <i>weblog</i> made available by the <b>ELOG</b> server. There may be many distinct such logbooks on one server.
|
||||
<p>
|
||||
<li><b>entry</b> : 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...
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="access">
|
||||
<div class=section> Accessing an ELOG server and its logbook(s) </div>
|
||||
<p>
|
||||
Usually you will be given a URL (through mail, a Web page etc.) to access the <b>ELOG</b> server.
|
||||
<p>
|
||||
If several logbooks are defined on the server, the entry page may be a list of all logbooks, with their descriptions and links to enter the logbook you want to use (<i>this may be disabled</i>).
|
||||
<p>
|
||||
Alternatively, you may be taken directly to a specific logbook. By default you will see the latest entry, but the administrator may have defined a different "<I>default view</I>" for the logbook, like the list of the day's entries, or the last 10 entries, etc. (depending on what is most convenient for that logbook's purpose).
|
||||
<p>
|
||||
<i>Note : it is generally not recommended to link directly to a specific entry in a logbook by its URL, because under certain circumstances such addresses might change. It is possible to achieve the same result with a "<I>search</I>" URL (see below).</i>
|
||||
<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 "<I>read</I>" 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>
|
||||
|
||||
<hr><a name="view">
|
||||
<div class=section> Viewing information in ELOG </div>
|
||||
<p>
|
||||
There are two main viewing modes in a logbook :
|
||||
<p>
|
||||
<ul>
|
||||
<li>the "<b>entry</b>" 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 :
|
||||
<p>
|
||||
<ul>
|
||||
<li>if there are several logbooks on the <b>ELOG</b> server you will see a row of "<I>tabs</I>" at the top with the names of all the logbooks. These are link that allow to switch quickly between logbooks (<i>this may be disabled</i>).
|
||||
<p>
|
||||
<li>below is a title bar with the name of the current logbook at the left, and the <b>ELOG</b> logo at the right. If you are logged in, there will be a "<code>Logged in as <username></code>" reminder in between.
|
||||
<p>
|
||||
<li>next is the "<I>menu bar</I>" : on the left is a series of links or buttons for <b>ELOG</b> commands available to you. These are explored in the sections below (<i>Note: different users may see different menus</i>). On the right is a "<I>VCR-like</I>" set of buttons for browsing, also explained later (<i>this may be disabled</i>).
|
||||
<p>
|
||||
<li>after these comes the actual entry information. It always starts with the entry time-stamp, and may be followed by up to twenty "<I>attributes</I>". 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 (<i>this may be disabled</i>).
|
||||
<p>
|
||||
<li>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>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>
|
||||
At the bottom of every page is a common "<I>footer</I>" for the logbook. By default this is just a link to the <b>ELOG</b> home page in Switzerland, but may be customized locally (typically to provide a navigation bar and links for integration with other Web sites).
|
||||
</ul>
|
||||
<p>
|
||||
<li>the "<b>search result</b>" views : these are basically lists of entries, resulting either from a "<I>Search</I>" command or from shortcuts such as "<I>Last X days</I>" and "<I>Last X entries</I>" commands (more on this below). This mode has many options, including :
|
||||
<p>
|
||||
<ul>
|
||||
<li>a "<I>summary</I>" 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>a "<i>classical weblog</i>" 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>entries may appear most recent first, or in reverse.
|
||||
<p>
|
||||
<li>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>
|
||||
All these lists have a number to the left of each listed entry, that is a link to the corresponding entry view.
|
||||
</ul>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="browse">
|
||||
<div class=section> Browsing around and finding things </div>
|
||||
<p>
|
||||
There are several interesting ways to peruse the information in a logbook :
|
||||
<p>
|
||||
<ul>
|
||||
<li><i><i>weblog</i>s</i> are often used for applications where chronology (time) is relevant, so a very common approach is to see "<I>what happened last</I>". In <b>ELOG</b> 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 "<I>search result</I>" views of these commands are a bit special : they have the same command that created them, but with the search "<I>interval</I>" doubled. From the "<I>last day</I>" list you can get the "<I>last 2 days</I>" list, from that one the "<I>last 4 days</I>", etc., and similarly for "<I>last 10</I>", "<I>last 20</I>", etc., making it easy to quickly go back in time.
|
||||
<p>
|
||||
<li>another useful method, very specific to <b>ELOG</b>, is "<I>filtered browsing</I>" - again, shortcuts for specific searches. On the entry view, the "<I>VCR</I>" 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.
|
||||
<p>
|
||||
<li>for custom searches there is the query form given by the "<I>Find</I>" 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 <b>ALL</b> 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 <b>ELOG</b> server (if applicable).
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="add">
|
||||
<div class=section> Adding stuff to a logbook </div>
|
||||
<p>
|
||||
|
||||
If you have "<I>write access</I>" to a logbook (by one of the same four methods as for read access), then you may use the "<I>New</I>", "<I>Edit</I>", "<I>Reply</I>" and "<I>Delete</I>" commands.
|
||||
<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><b>New</b> :
|
||||
<ul>
|
||||
<li>you will not be able to save your entry if all attributes marked with a red star (<font color="red">*</font>) are not filled in.
|
||||
<p>
|
||||
<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).
|
||||
<p>
|
||||
<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.
|
||||
<p>
|
||||
<li>a nice touch : URLs in attributes (http://..., ftp://..., mailto:...) are automatically converted to links.
|
||||
<p>
|
||||
<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.
|
||||
<p>
|
||||
<li>check the "<I>Submit as HTML</I>" box if the entry contains HTML markup.
|
||||
<p>
|
||||
<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 "<I>Suppress notification</I>" 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).
|
||||
<p>
|
||||
<li>if the logbook allows attachments, there will be a number of fields with "<I>Browse</I>" 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 <b>ELOG</b> 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.
|
||||
<p>
|
||||
</ul>
|
||||
<li><b>Edit</b> :
|
||||
<ul>
|
||||
<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 "<I>Last modified by</I>" field).
|
||||
<p>
|
||||
<li>the "<I>Submit as new entry</I>" 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.
|
||||
<p>
|
||||
<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 "<I>Browse</I>" 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.
|
||||
</ul>
|
||||
<p>
|
||||
<li><b>Reply</b> :
|
||||
<ul>
|
||||
<li>this command creates a new entry, but with the current entry's text "<I>quoted</I>" (with '>') in the compose form, much like when replying to e-mail.
|
||||
<p>
|
||||
<li>the new entry has a special "<I>In reply to</I>" attribute with a link to the original entry ; the latter also acquires a "<I>Reply</I>" attribute with a link to the new entry. Unfortunately these links cannot be trusted in the present <b>ELOG</b> storage system, and the whole scheme gets somewhat confusing when there are several replies.
|
||||
</ul>
|
||||
<p>
|
||||
<li><b>Delete</b> :
|
||||
<ul>
|
||||
<li>nothing much to say about this one, except that there is no "<I>Recycle bin</I>" 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).
|
||||
</ul>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<hr><a name="misc">
|
||||
<div class=section> Misc. tips & tricks, things to be aware of... </div>
|
||||
<p>
|
||||
<ul>
|
||||
|
||||
<li>as mentioned above, it is not recommended to link directly to a specific entry by its URL (from another entry or an external Web page). However, it is easy enough to achieve the same result with "<I>search URLs</I>" : use the "<I>Search</I>" 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>right now you cannot search entries for attachments by their file name.
|
||||
<p>
|
||||
|
||||
<li>right now attributes that consist of just a checkbox ("<I>boolean</I>") can only be searched by "<I>checked</I>" state in the "<I>Search</I>" form. However, if you start from an entry where that attribute is unchecked, you can use "<I>filtered browsing</I>" to flip through all other entries where it is also unchecked.
|
||||
<p>
|
||||
|
||||
<li>as mentioned above, the "<I>Reply</I>" command only provides a basic comment/chat facility - a full-blown discussion board is not <b>ELOG</b>'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 "<I>visual pollution</I>".
|
||||
<p>
|
||||
|
||||
<li>it is important to understand that currently the <b>ELOG</b> server application is "<I>single-process</I>" and "<I>non-streaming</I>". In normal terms this means that :
|
||||
<p>
|
||||
<ul>
|
||||
<li>only one request is processed at any one time by the server.
|
||||
<p>
|
||||
<li>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>
|
||||
This is not normally a problem for the sort of short, text-mode entries <b>ELOG</b> 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 <b>ELOG</b> 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 <b>ELOG</b> should not be used to distribute large files under intensive multi-user conditions.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<li>It is possible to use bookmarks to pre-populate various attributes when submitting an <b>ELOG</b> 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>
|
||||
<pre>http://your.host/your_logbook/?cmd=New&pauthor=joe&ptype=Info
|
||||
</pre>
|
||||
...a new entry is created, with the "<I>author</I>" field pre-populated with "<I>joe</I>" and the "<I>Info</I>" value preselected for the "<I>type</I>" 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>
|
||||
|
||||
<li>In addition to submission of logbook entries through the Web interface, the
|
||||
standalone "<I>client</I>" program <b><code>elog</code></b> can be used. The parameters
|
||||
are:
|
||||
<p>
|
||||
<ul><pre>
|
||||
elog -h hostname [-p port] [-l logbook]
|
||||
[-w password]
|
||||
[-u username password]
|
||||
-a <attribute1>=<value1>
|
||||
-a <attribute2>=<value2>
|
||||
...
|
||||
-f attachment1
|
||||
-f attachment2
|
||||
...
|
||||
-m textfile | text
|
||||
</pre></ul>
|
||||
The password must match the write password defined on the server. If
|
||||
user level access is defined on the server (via the "<I>password file </I>=" option),
|
||||
a valid user name / password pair must be specified with the <b><code>-u</code></b> option.
|
||||
<p>
|
||||
Multiple attributes can be specified as well as several attachments.
|
||||
The message text can be supplied directly at the command line or submitted
|
||||
from a file with the <b><code>-m</code></b> flag.
|
||||
<p>
|
||||
The <b><code>elog</code></b> 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>
|
||||
|
||||
</ul>
|
||||
<p>
|
||||
<HR>
|
||||
<div class=footer>
|
||||
Content by <a class=nav href="mailto:Stefan.Ritt@psi.ch">Stefan Ritt</a>,
|
||||
Web pages by <a class=nav href="mailto:fredp@mygale.org">Fred Pacquier</a>
|
||||
- last modified on 19/12/2001
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
533
elog.c
Executable file
@ -0,0 +1,533 @@
|
||||
/********************************************************************\
|
||||
|
||||
Name: elog.c
|
||||
Created by: Stefan Ritt
|
||||
|
||||
Contents: Electronic logbook utility
|
||||
|
||||
$Log$
|
||||
Revision 1.1 2001/12/21 15:14:04 midas
|
||||
Initial revision
|
||||
|
||||
Revision 1.23 2001/12/21 12:33:04 midas
|
||||
Fixed bug with single logbook and user authentication, thanks to Glenn Horton-Smith
|
||||
|
||||
Revision 1.22 2001/12/05 10:02:50 midas
|
||||
Fixed -Wall compiler warning
|
||||
|
||||
Revision 1.21 2001/12/05 09:58:57 midas
|
||||
Fixed small bug
|
||||
|
||||
Revision 1.20 2001/11/15 11:49:46 midas
|
||||
Added -u flag for user name/password
|
||||
|
||||
Revision 1.19 2001/11/14 15:35:37 midas
|
||||
Fix error under Cygwin with O_BINARY
|
||||
|
||||
Revision 1.18 2001/11/06 15:52:17 midas
|
||||
Added general attributes
|
||||
|
||||
Revision 1.17 2001/10/12 08:40:02 midas
|
||||
Fixed bug when submitting text files and an additional (garbage) lines was
|
||||
added
|
||||
|
||||
Revision 1.16 2001/06/19 10:55:40 midas
|
||||
Variable number of attachments, revised attachment editing
|
||||
|
||||
Revision 1.15 2001/05/23 13:15:34 midas
|
||||
Fixed bug with category
|
||||
|
||||
Revision 1.14 2001/05/23 13:04:19 midas
|
||||
Added password functionality
|
||||
|
||||
Revision 1.13 2001/05/23 10:48:21 midas
|
||||
elog can be used with elogd now
|
||||
|
||||
Revision 1.12 2000/09/01 15:49:26 midas
|
||||
Elog is now submitted via mhttpd
|
||||
|
||||
Revision 1.1 1999/09/14 15:15:27 midas
|
||||
Initial revision
|
||||
|
||||
|
||||
\********************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <windows.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#define closesocket(s) close(s)
|
||||
#ifndef O_BINARY
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef int INT;
|
||||
|
||||
#define MAX_ATTACHMENTS 10
|
||||
#define NAME_LENGTH 100
|
||||
#define MAX_N_ATTR 20
|
||||
|
||||
int verbose;
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
|
||||
char *map= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
void base64_encode(char *s, char *d)
|
||||
{
|
||||
unsigned int t, pad;
|
||||
|
||||
pad = 3 - strlen(s) % 3;
|
||||
while (*s)
|
||||
{
|
||||
t = (*s++) << 16;
|
||||
if (*s)
|
||||
t |= (*s++) << 8;
|
||||
if (*s)
|
||||
t |= (*s++) << 0;
|
||||
|
||||
*(d+3) = map[t & 63];
|
||||
t >>= 6;
|
||||
*(d+2) = map[t & 63];
|
||||
t >>= 6;
|
||||
*(d+1) = map[t & 63];
|
||||
t >>= 6;
|
||||
*(d+0) = map[t & 63];
|
||||
|
||||
d += 4;
|
||||
}
|
||||
*d = 0;
|
||||
while (pad--)
|
||||
*(--d) = '=';
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
|
||||
void sgets(char *string, int size)
|
||||
{
|
||||
char *p;
|
||||
|
||||
do
|
||||
{
|
||||
p = fgets(string, size, stdin);
|
||||
} while (p == NULL);
|
||||
|
||||
if (strlen(p) > 0 && p[strlen(p)-1] == '\n')
|
||||
p[strlen(p)-1] = 0;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
|
||||
char request[600000], response[10000], content[600000];
|
||||
|
||||
INT submit_elog(char *host, int port, char *experiment, char *passwd,
|
||||
char *uname, char *upwd,
|
||||
char attrib_name[MAX_N_ATTR][NAME_LENGTH],
|
||||
char attrib[MAX_N_ATTR][NAME_LENGTH],
|
||||
int n_attr,
|
||||
char *text,
|
||||
char afilename[MAX_ATTACHMENTS][256],
|
||||
char *buffer[MAX_ATTACHMENTS],
|
||||
INT buffer_size[MAX_ATTACHMENTS])
|
||||
/********************************************************************\
|
||||
|
||||
Routine: submit_elog
|
||||
|
||||
Purpose: Submit an ELog entry
|
||||
|
||||
Input:
|
||||
char *host Host name where ELog server runs
|
||||
in port ELog server port number
|
||||
char *passwd Write password
|
||||
char *uname User name
|
||||
char *upwd User password
|
||||
int run Run number
|
||||
char *attrib_name Attribute names
|
||||
char *attrib Attribute values
|
||||
char *text Message text
|
||||
|
||||
char afilename[] File names of attachments
|
||||
char *buffer[] Attachment contents
|
||||
INT buffer_size[] Size of buffer in bytes
|
||||
|
||||
Function value:
|
||||
EL_SUCCESS Successful completion
|
||||
|
||||
\********************************************************************/
|
||||
{
|
||||
int status, sock, i, n, header_length, content_length;
|
||||
struct hostent *phe;
|
||||
struct sockaddr_in bind_addr;
|
||||
char host_name[256], boundary[80], str[80], *p;
|
||||
|
||||
#if defined( _MSC_VER )
|
||||
{
|
||||
WSADATA WSAData;
|
||||
|
||||
/* Start windows sockets */
|
||||
if ( WSAStartup(MAKEWORD(1,1), &WSAData) != 0)
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* get local host name */
|
||||
gethostname(host_name, sizeof(host_name));
|
||||
|
||||
phe = gethostbyname(host_name);
|
||||
if (phe == NULL)
|
||||
{
|
||||
perror("Cannot retrieve host name");
|
||||
return -1;
|
||||
}
|
||||
phe = gethostbyaddr(phe->h_addr, sizeof(int), AF_INET);
|
||||
if (phe == NULL)
|
||||
{
|
||||
perror("Cannot retrieve host name");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* if domain name is not in host name, hope to get it from phe */
|
||||
if (strchr(host_name, '.') == NULL)
|
||||
strcpy(host_name, phe->h_name);
|
||||
|
||||
/* create socket */
|
||||
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
|
||||
{
|
||||
perror("cannot create socket");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* compose remote address */
|
||||
memset(&bind_addr, 0, sizeof(bind_addr));
|
||||
bind_addr.sin_family = AF_INET;
|
||||
bind_addr.sin_addr.s_addr = 0;
|
||||
bind_addr.sin_port = htons((unsigned short)port);
|
||||
|
||||
phe = gethostbyname(host);
|
||||
if (phe == NULL)
|
||||
{
|
||||
perror("cannot get host name");
|
||||
return -1;
|
||||
}
|
||||
memcpy((char *)&(bind_addr.sin_addr), phe->h_addr, phe->h_length);
|
||||
|
||||
/* connect to server */
|
||||
status = connect(sock, (void *) &bind_addr, sizeof(bind_addr));
|
||||
if (status != 0)
|
||||
{
|
||||
printf("Cannot connect to host %s, port %d\n", host, port);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (verbose)
|
||||
printf("Successfully connected to host %s, port %d\n", host, port);
|
||||
|
||||
/* compose content */
|
||||
strcpy(boundary, "---------------------------7d0bf1a60904bc");
|
||||
strcpy(content, boundary);
|
||||
strcat(content, "\r\nContent-Disposition: form-data; name=\"cmd\"\r\n\r\nSubmit\r\n");
|
||||
|
||||
if (uname[0])
|
||||
sprintf(content+strlen(content),
|
||||
"%s\r\nContent-Disposition: form-data; name=\"unm\"\r\n\r\n%s\r\n", boundary, uname);
|
||||
|
||||
if (upwd[0])
|
||||
{
|
||||
base64_encode(upwd, str);
|
||||
sprintf(content+strlen(content),
|
||||
"%s\r\nContent-Disposition: form-data; name=\"upwd\"\r\n\r\n%s\r\n", boundary, str);
|
||||
}
|
||||
|
||||
if (experiment[0])
|
||||
sprintf(content+strlen(content),
|
||||
"%s\r\nContent-Disposition: form-data; name=\"exp\"\r\n\r\n%s\r\n", boundary, experiment);
|
||||
|
||||
for (i=0 ; i<n_attr ; i++)
|
||||
sprintf(content+strlen(content),
|
||||
"%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", boundary, attrib_name[i], attrib[i]);
|
||||
|
||||
sprintf(content+strlen(content),
|
||||
"%s\r\nContent-Disposition: form-data; name=\"Text\"\r\n\r\n%s\r\n%s\r\n", boundary, text, boundary);
|
||||
|
||||
content_length = strlen(content);
|
||||
p = content+content_length;
|
||||
|
||||
for (i=0 ; i<MAX_ATTACHMENTS ; i++)
|
||||
if (afilename[i][0])
|
||||
{
|
||||
sprintf(p, "Content-Disposition: form-data; name=\"attfile%d\"; filename=\"%s\"\r\n\r\n",
|
||||
i+1, afilename[i]);
|
||||
|
||||
content_length += strlen(p);
|
||||
p += strlen(p);
|
||||
memcpy(p, buffer[i], buffer_size[i]);
|
||||
p += buffer_size[i];
|
||||
strcpy(p, boundary);
|
||||
strcat(p, "\r\n");
|
||||
|
||||
content_length += buffer_size[i] + strlen(p);
|
||||
p += strlen(p);
|
||||
}
|
||||
|
||||
/* compose request */
|
||||
sprintf(request, "POST /%s/ HTTP/1.0\r\n", experiment);
|
||||
sprintf(request+strlen(request), "Content-Type: multipart/form-data; boundary=%s\r\n", boundary);
|
||||
sprintf(request+strlen(request), "Host: %s\r\n", host_name);
|
||||
sprintf(request+strlen(request), "User-Agent: ELOG\r\n");
|
||||
sprintf(request+strlen(request), "Content-Length: %d\r\n", content_length);
|
||||
|
||||
if (passwd[0])
|
||||
{
|
||||
base64_encode(passwd, str);
|
||||
sprintf(request+strlen(request), "Cookie: elog_wpwd=%s\r\n", str);
|
||||
}
|
||||
|
||||
strcat(request, "\r\n");
|
||||
|
||||
header_length = strlen(request);
|
||||
memcpy(request+header_length, content, content_length);
|
||||
|
||||
/*
|
||||
{
|
||||
FILE *f;
|
||||
f = fopen("elog.log", "w");
|
||||
fwrite(request, header_length+content_length, 1, f);
|
||||
fclose(f);
|
||||
}
|
||||
*/
|
||||
|
||||
/* send request */
|
||||
if (verbose)
|
||||
{
|
||||
printf("Request sent to host:\n");
|
||||
puts(request);
|
||||
}
|
||||
|
||||
send(sock, request, header_length+content_length, 0);
|
||||
|
||||
/* receive response */
|
||||
i = recv(sock, response, 10000, 0);
|
||||
if (i < 0)
|
||||
{
|
||||
perror("Cannot receive response");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* discard remainder of response */
|
||||
n = i;
|
||||
while (i > 0)
|
||||
{
|
||||
i = recv(sock, response+n, 10000, 0);
|
||||
if (i > 0)
|
||||
n += i;
|
||||
}
|
||||
response[n] = 0;
|
||||
|
||||
closesocket(sock);
|
||||
|
||||
if (verbose)
|
||||
{
|
||||
printf("Response received:\n");
|
||||
puts(response);
|
||||
}
|
||||
|
||||
/* check response status */
|
||||
if (strstr(response, "302 Found"))
|
||||
printf("Message successfully transmitted\n");
|
||||
else if (strstr(response, "Logbook Selection"))
|
||||
printf("No logbook specified\n\n");
|
||||
else if (strstr(response, "Enter password"))
|
||||
printf("Missing or invalid password\n");
|
||||
else if (strstr(response, "login"))
|
||||
printf("Missing or invalid user name/password\n");
|
||||
else
|
||||
printf("Error transmitting message\n");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char str[1000], text[10000], uname[80], upwd[80];
|
||||
char host_name[256], logbook[32], textfile[256], password[80];
|
||||
char *buffer[MAX_ATTACHMENTS], attachment[MAX_ATTACHMENTS][256];
|
||||
INT att_size[MAX_ATTACHMENTS];
|
||||
INT i, n, fh, n_att, n_attr, size, port;
|
||||
char attr_name[MAX_N_ATTR][NAME_LENGTH], attrib[MAX_N_ATTR][NAME_LENGTH];
|
||||
|
||||
text[0] = textfile[0] = uname[0] = upwd[0] = 0;
|
||||
host_name[0] = logbook[0] = password[0] = n_att = n_attr = 0;
|
||||
port = 80;
|
||||
for (i=0 ; i<MAX_ATTACHMENTS ; i++)
|
||||
{
|
||||
attachment[i][0] = 0;
|
||||
buffer[i] = NULL;
|
||||
att_size[i] = 0;
|
||||
}
|
||||
|
||||
/* parse command line parameters */
|
||||
for (i=1 ; i<argc ; i++)
|
||||
{
|
||||
if (argv[i][0] == '-' && argv[i][1] == 'v')
|
||||
verbose = 1;
|
||||
else
|
||||
{
|
||||
if (argv[i][0] == '-')
|
||||
{
|
||||
if (i+1 >= argc || argv[i+1][0] == '-')
|
||||
goto usage;
|
||||
if (argv[i][1] == 'h')
|
||||
strcpy(host_name, argv[++i]);
|
||||
else if (argv[i][1] == 'p')
|
||||
port = atoi(argv[++i]);
|
||||
else if (argv[i][1] == 'l')
|
||||
strcpy(logbook, argv[++i]);
|
||||
else if (argv[i][1] == 'w')
|
||||
strcpy(password, argv[++i]);
|
||||
else if (argv[i][1] == 'u')
|
||||
{
|
||||
strcpy(uname, argv[++i]);
|
||||
strcpy(upwd, argv[++i]);
|
||||
}
|
||||
else if (argv[i][1] == 'a')
|
||||
{
|
||||
strcpy(str, argv[++i]);
|
||||
if (strchr(str, '='))
|
||||
{
|
||||
strcpy(attrib[n_attr], strchr(str, '=')+1);
|
||||
*strchr(str, '=') = 0;
|
||||
strcpy(attr_name[n_attr], str);
|
||||
n_attr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Error: Attributes must be supplied in the form \"-a <attribute>=<value>\".\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (argv[i][1] == 'f')
|
||||
strcpy(attachment[n_att++], argv[++i]);
|
||||
else if (argv[i][1] == 'm')
|
||||
strcpy(textfile, argv[++i]);
|
||||
else
|
||||
{
|
||||
usage:
|
||||
printf("\nusage: elog -h <hostname> [-p port]\n");
|
||||
printf(" [-l logbook/experiment]\n");
|
||||
printf(" [-v] for verbose output\n");
|
||||
printf(" [-w password] write password defined on server\n");
|
||||
printf(" [-u username password] user name and password\n");
|
||||
printf(" [-f <attachment>] (up to %d times)\n", MAX_ATTACHMENTS);
|
||||
printf(" -a <attribute>=<value> (up to %d times)\n", MAX_N_ATTR);
|
||||
printf(" -m <textfile>] | <text>\n");
|
||||
printf("\nArguments with blanks must be enclosed in quotes\n");
|
||||
printf("The elog message can either be submitted on the command line\n");
|
||||
printf("or in a file with the -m flag. Multiple attributes and attachments\n");
|
||||
printf("can be supplied\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
strcpy(text, argv[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (host_name[0] == 0 ||
|
||||
n_attr == 0 ||
|
||||
(text[0] == 0 && textfile[0] == 0))
|
||||
goto usage;
|
||||
|
||||
/*---- open text file ----*/
|
||||
|
||||
if (textfile[0])
|
||||
{
|
||||
fh = open(textfile, O_RDONLY | O_BINARY);
|
||||
if (fh < 0)
|
||||
{
|
||||
printf("Message file \"%s\" does not exist.\n", textfile);
|
||||
return 0;
|
||||
}
|
||||
|
||||
size = lseek(fh, 0, SEEK_END);
|
||||
lseek(fh, 0, SEEK_SET);
|
||||
|
||||
if (size > sizeof(text)-1)
|
||||
{
|
||||
printf("Message file \"%s\" is too long (%d bytes max).\n", textfile, sizeof(text));
|
||||
return 0;
|
||||
}
|
||||
|
||||
memset(text, 0, sizeof(text));
|
||||
i = read(fh, text, size);
|
||||
if (i < size)
|
||||
{
|
||||
printf("Cannot fully read message file \"%s\".\n", textfile);
|
||||
return 0;
|
||||
}
|
||||
|
||||
close(fh);
|
||||
}
|
||||
|
||||
/*---- open attachment file ----*/
|
||||
|
||||
for (i = 0 ; i<MAX_ATTACHMENTS ; i++)
|
||||
{
|
||||
if (!attachment[i][0])
|
||||
break;
|
||||
|
||||
fh = open(attachment[i], O_RDONLY | O_BINARY);
|
||||
if (fh < 0)
|
||||
{
|
||||
printf("Attachment file \"%s\" does not exist.\n", attachment[i]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
att_size[i] = lseek(fh, 0, SEEK_END);
|
||||
lseek(fh, 0, SEEK_SET);
|
||||
|
||||
buffer[i] = malloc(att_size[i]+1);
|
||||
if (buffer[i] == NULL || att_size[i] > 500*1024)
|
||||
{
|
||||
printf("Attachment file \"%s\" is too long (500k max).\n", attachment[i]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
n = read(fh, buffer[i], att_size[i]);
|
||||
if (n < att_size[i])
|
||||
{
|
||||
printf("Cannot fully read attachment file \"%s\".\n", attachment[i]);
|
||||
return 0;
|
||||
}
|
||||
buffer[i][n] = 0;
|
||||
|
||||
close(fh);
|
||||
}
|
||||
|
||||
/* now submit message */
|
||||
submit_elog(host_name, port, logbook, password,
|
||||
uname, upwd,
|
||||
attr_name, attrib, n_attr, text,
|
||||
attachment, buffer, att_size);
|
||||
|
||||
for (i=0 ; i<MAX_ATTACHMENTS ; i++)
|
||||
if (buffer[i])
|
||||
free(buffer[i]);
|
||||
|
||||
return 1;
|
||||
}
|
||||
152
elog.nsi
Executable file
@ -0,0 +1,152 @@
|
||||
; elog.nsi
|
||||
;
|
||||
; This script will install the elog system
|
||||
;
|
||||
|
||||
; The name of the installer
|
||||
Name "ELOG"
|
||||
|
||||
; The file to write
|
||||
OutFile "elog${VERSION}.exe"
|
||||
|
||||
; Overwrite setting
|
||||
SetOverwrite on
|
||||
|
||||
; The default installation directory
|
||||
InstallDir $PROGRAMFILES\ELOG
|
||||
; Registry key to check for directory (so if you install again, it will
|
||||
; overwrite the old one automatically)
|
||||
InstallDirRegKey HKLM SOFTWARE\ELOG "Install_Dir"
|
||||
|
||||
; The text to prompt the user to enter a directory
|
||||
ComponentText "This will install the ELOG electronic logbook server on your computer. Select which optional things you want installed."
|
||||
; The text to prompt the user to enter a directory
|
||||
DirText "Choose a directory to install in to:"
|
||||
|
||||
; Main system
|
||||
Section "ELOG system (required)"
|
||||
|
||||
; root directory
|
||||
SetOutPath $INSTDIR
|
||||
|
||||
File COPYING
|
||||
File README.txt
|
||||
|
||||
File elog*.c
|
||||
File nt\release\elog*.exe
|
||||
File elogd.cfg
|
||||
File eloghelp_en.html
|
||||
|
||||
; doc directory
|
||||
SetOutPath $INSTDIR\doc
|
||||
File doc\*.*
|
||||
|
||||
; themes and demo logbook
|
||||
SetOutPath $INSTDIR\themes\default
|
||||
File themes\default\*.cfg
|
||||
File themes\default\*.gif
|
||||
|
||||
SetOutPath $INSTDIR\logbooks\demo
|
||||
File logbooks\demo\*
|
||||
|
||||
SetOutPath $INSTDIR
|
||||
|
||||
; Write the installation path into the registry
|
||||
WriteRegStr HKLM SOFTWARE\ELOG "Install_Dir" "$INSTDIR"
|
||||
; Write the uninstall keys for Windows
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ELOG" "DisplayName" "ELOG electronic logbook (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ELOG" "UninstallString" '"$INSTDIR\uninst_elog.exe"'
|
||||
SectionEnd
|
||||
|
||||
; optional section
|
||||
Section "Multi-language support"
|
||||
SetOutPath $INSTDIR
|
||||
File eloghelp_ge.html
|
||||
File eloghelp_fr.html
|
||||
File eloglang.german
|
||||
File eloglang.french
|
||||
SectionEnd
|
||||
|
||||
; optional section
|
||||
Section "Start Menu Shortcuts"
|
||||
CreateDirectory "$SMPROGRAMS\ELOG"
|
||||
CreateShortCut "$SMPROGRAMS\ELOG\ELOG server.lnk" "$INSTDIR\elogd.exe" "" "$INSTDIR\elogd.exe" 0
|
||||
Delete "$SMPROGRAMS\ELOG\Demo Logbook (start server first!).lnk"
|
||||
WriteINIStr "$SMPROGRAMS\ELOG\Demo Logbook (start server first!).url" \
|
||||
"InternetShortcut" "URL" "http://localhost/demo/"
|
||||
CreateShortCut "$SMPROGRAMS\ELOG\ELOG Documentation.lnk" "$INSTDIR\doc\index.html"
|
||||
CreateShortCut "$SMPROGRAMS\ELOG\Uninstall ELOG.lnk" "$INSTDIR\uninst_elog.exe" "" "$INSTDIR\uninst_elog.exe" 0
|
||||
SectionEnd
|
||||
|
||||
; display readme file
|
||||
|
||||
Function .onInstSuccess
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
"Setup has completed. View readme file now?" \
|
||||
IDNO NoReadme
|
||||
ExecShell open '$INSTDIR\doc\index.html'
|
||||
NoReadme:
|
||||
FunctionEnd
|
||||
|
||||
; uninstall stuff
|
||||
|
||||
UninstallText "This will uninstall ELOG."
|
||||
UninstallExeName "uninst_elog.exe"
|
||||
|
||||
; special uninstall section.
|
||||
Section "Uninstall"
|
||||
; remove registry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ELOG"
|
||||
DeleteRegKey HKLM SOFTWARE\ELOG
|
||||
|
||||
; remove files
|
||||
Delete $INSTDIR\COPYING
|
||||
Delete $INSTDIR\README.txt
|
||||
Delete $INSTDIR\elog.c
|
||||
Delete $INSTDIR\elogd.c
|
||||
Delete $INSTDIR\elog.exe
|
||||
Delete $INSTDIR\elogd.exe
|
||||
Delete $INSTDIR\elogd.cfg
|
||||
|
||||
Delete $INSTDIR\eloghelp_en.html
|
||||
Delete $INSTDIR\eloghelp_fr.html
|
||||
Delete $INSTDIR\eloghelp_ge.html
|
||||
Delete $INSTDIR\eloglang.french
|
||||
Delete $INSTDIR\eloglang.german
|
||||
|
||||
Delete $INSTDIR\doc\*
|
||||
RMDir $INSTDIR\doc
|
||||
|
||||
Delete $INSTDIR\themes\default\*.*
|
||||
RMDir $INSTDIR\themes\default
|
||||
RMDir $INSTDIR\themes
|
||||
|
||||
Delete $INSTDIR\logbooks\demo\*.*
|
||||
RMDir $INSTDIR\logbooks\demo
|
||||
RMDir $INSTDIR\logbooks
|
||||
|
||||
; MUST REMOVE UNINSTALLER, too
|
||||
Delete $INSTDIR\uninst_elog.exe
|
||||
|
||||
; remove shortcuts, if any.
|
||||
Delete "$SMPROGRAMS\ELOG\*.*"
|
||||
|
||||
; remove directories used.
|
||||
RMDir "$SMPROGRAMS\ELOG"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
; if $INSTDIR was removed, skip these next ones
|
||||
IfFileExists $INSTDIR 0 Removed
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
"Remove all files in your ELOG directory? (If you have anything\
|
||||
you created that you want to keep, click No)" IDNO Removed
|
||||
Delete $INSTDIR\*.* ; this would be skipped if the user hits no
|
||||
RMDir /r $INSTDIR
|
||||
IfFileExists $INSTDIR 0 Removed
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION \
|
||||
"Note: $INSTDIR could not be removed."
|
||||
Removed:
|
||||
|
||||
SectionEnd
|
||||
|
||||
; eof
|
||||
13
elogd.cfg
Executable file
@ -0,0 +1,13 @@
|
||||
[global]
|
||||
logbook tabs = 0
|
||||
tab cellpadding = 2
|
||||
|
||||
[demo]
|
||||
Theme = default
|
||||
Comment = General linux tips & tricks
|
||||
Data dir = logbooks/demo
|
||||
Attributes = Author, Type, Category, Subject
|
||||
Options Type = Routine, Software Installation, Problem Fixed, Configuration, Other
|
||||
Options Category = General, Hardware, Software, Network, Other
|
||||
Required Attributes = Author, Type
|
||||
Page Title = ELOG - $subject
|
||||
56
eloghelp_en.html
Executable file
@ -0,0 +1,56 @@
|
||||
<!--
|
||||
$Revision$
|
||||
-->
|
||||
|
||||
<html><head>
|
||||
<title>ELOG Electronic Logbook Help</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table border=0 width=100%% bgcolor=#486090 cellpadding=1 cellspacing=0 align=center>
|
||||
|
||||
<tr><td><table cellpadding=5 cellspacing=0 border=0 width=100%% bgcolor=#486090>
|
||||
|
||||
<tr><td align=center bgcolor=#486090>
|
||||
<font face=verdana,arial,helvetica,sans-serif size=5 color=#FFFFFF>
|
||||
ELOG Electronic Logbook Help<br></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>The Electronic Logbook (<i>ELog</i>) can be used to store and retrieve
|
||||
messages through a Web interface. Depending on the configuration, the ELog system can host one or
|
||||
more <i>logbooks</i> which are stored in separate sections on the server.<p></td></tr>
|
||||
|
||||
<tr><td bgcolor=#486090><font color=#FFFFFF><b>Quick overview</b></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>Per default, the last entry in a logbook is displayed. One can use the
|
||||
browse buttons to display the first, previous, next and last message.<p>
|
||||
|
||||
If one of the checkboxes next to one of the attribute fields is checked, only messages of that
|
||||
attribute are displayed with the browse buttons. This can be used as a quick filter to display only
|
||||
pages from a certain author or category.<p>
|
||||
|
||||
The <b>New</b> button creates a new entry. With the <b>Edit</b> button one can edit an existing
|
||||
message, if this is allowed in the configuration file. The <b>Reply</b> button creates a reply to an
|
||||
existing message, similar like a reply to an email.<p>
|
||||
|
||||
The <b>Find</b> button opens a query page, where messages from a logbook can be displayed based on
|
||||
filter rules. Each non-empty field works like an additional filter, which is and-ed with the other
|
||||
rules. If no filter is selected, all messages from a logbook are displayed. The <b>Last day</b> and
|
||||
<b>Last 10</b> buttons display all messages from the last 24 hours and the last ten messages,
|
||||
respectively.<p>
|
||||
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor=#486090><font color=#FFFFF><b>More information</b></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>For more information, especially about the configuration of ELog, refer
|
||||
to the <A HREF="http://midas.psi.ch/elog">ELOG home page</A>.<P>
|
||||
|
||||
</td></tr></table></td></tr></table>
|
||||
|
||||
<hr>
|
||||
<address>
|
||||
<a href="http://midas.psi.ch/~stefan">S. Ritt</a>, 28 August 2001
|
||||
</address>
|
||||
|
||||
</body></html>
|
||||
66
eloghelp_fr.html
Executable file
@ -0,0 +1,66 @@
|
||||
<!--
|
||||
$Revision$
|
||||
-->
|
||||
|
||||
<html><head>
|
||||
<title>Aide sur la main-courante électronique ELOG</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table border=0 width=100%% bgcolor=#486090 cellpadding=1 cellspacing=0 align=center>
|
||||
|
||||
<tr><td><table cellpadding=5 cellspacing=0 border=0 width=100%% bgcolor=#486090>
|
||||
|
||||
<tr><td align=center bgcolor=#486090>
|
||||
<font face=verdana,arial,helvetica,sans-serif size=5 color=#FFFFFF>
|
||||
Aide sur la main-courante électronique ELOG<br></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>La "<b>main-courante électronique</b>" (<i>ELog</i>) peut être utilisée pour
|
||||
créer des messages et y accéder à travers une interface Web. Suivant le paramétrage, un serveur ELog
|
||||
peut héberger un ou plusieurs "<b>registres</b>" (</i>logbooks</i>) qui sont enregistrés séparément.
|
||||
<p>
|
||||
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor=#486090><font color=#FFFFFF><b>Aperçu rapide</b></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>
|
||||
Par défaut, la dernière entrée en date est affichée. On peut utiliser les boutons de navigation
|
||||
pour afficher l'entrée précédente ou suivante, ou aller directement à la première ou à la dernière.
|
||||
<p>
|
||||
Si l'une des cases à côté des intitulés de champs est cochée, seuls les messages ayant la même
|
||||
valeur pour cet attribut seront affichés par les boutons de navigation : ceci peut être utilisé
|
||||
comme un filtre rapide, pour parcourir toutes les entrées d'un même auteur ou d'une
|
||||
catégorie donnée.
|
||||
<p>
|
||||
La commande <b>Créer</b> permet d'ajouter une nouvelle entrée. La commande <b>Modifier</b>,
|
||||
si le paramétrage l'autorise, permet l'édition d'une entrée existante. La commande <b>Répondre</b>
|
||||
crée une entrée en référence à une entrée existante, comme lorsqu'on répond à un mél.
|
||||
<p>
|
||||
La commande <b>Chercher</b> affiche un formulaire de recherche, qui permet de filtrer
|
||||
les entrées suivant divers critères. Chaque critère non-vide ajoute un filtre, et les filtres
|
||||
sont cumulés ("ET" logique). Si aucun critère n'est renseigné, toutes les entrées du journal
|
||||
sont affichées.
|
||||
<p>
|
||||
Les commandes <b>Dernier jour</b> et <b>10 Dernières entrées</b> agissent comme des
|
||||
recherches simplifiées, affichant respectivement les entrées des dernières 24 heures, et les 10 dernières
|
||||
entrées créées.
|
||||
<p>
|
||||
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor=#486090><font color=#FFFFF><b>Plus d'informations</b></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>Pour plus de précisions, notamment sur le paramétrage d'un serveur ELog, référez-vous
|
||||
à la <A HREF="http://midas.psi.ch/elog">page d'accueil ELOG</A> (en anglais).<P>
|
||||
|
||||
</td></tr></table></td></tr></table>
|
||||
|
||||
<hr>
|
||||
<address>
|
||||
<a href="http://midas.psi.ch/~stefan">S. Ritt</a>, 28 August 2001
|
||||
<br>Traduit en français par <a href="mailto:fredp@multimania.com">Fred Pacquier</a>, décembre 2001
|
||||
</address>
|
||||
|
||||
</body></html>
|
||||
63
eloghelp_ge.html
Executable file
@ -0,0 +1,63 @@
|
||||
<!--
|
||||
$Revision$
|
||||
-->
|
||||
|
||||
<html><head>
|
||||
<title>ELOG Electronisches Logbuch Hilfe</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table border=0 width=100%% bgcolor=#486090 cellpadding=1 cellspacing=0 align=center>
|
||||
|
||||
<tr><td><table cellpadding=5 cellspacing=0 border=0 width=100%% bgcolor=#486090>
|
||||
|
||||
<tr><td align=center bgcolor=#486090>
|
||||
<font face=verdana,arial,helvetica,sans-serif size=5 color=#FFFFFF>
|
||||
ELOG Electronisches Logbuch Hilfe<br></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>Das elektronische Logbuch (<i>ELog</i>) kann dazu benutzt
|
||||
werden, Einträge übecopyr eine Web Schnittstelle zu speichern und abzurufen.
|
||||
Abhängig von der Konfiguration, kann das ELog System ine oder mehere <i>
|
||||
Logbücher</i> beherbergen, die in verschiedenen Bereichen auf dem Server
|
||||
gespeicher sind.<p></td></tr>
|
||||
|
||||
<tr><td bgcolor=#486090><font color=#FFFFFF><b>Schnellüberblich</b></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>Standardmäßig wird der letzte Eintrag eines
|
||||
Logbuches dargestellt. Man kann die Pfeiltasten verwenden, um den ersten,
|
||||
vorhergenden, nächsten oder letzten Eintrag darzustellen.<p>
|
||||
|
||||
Falls einer der Schalter bei den Attributen angekreuzt ist, werden nur Einträge
|
||||
mit diesem Attribut gezeigt. Diese Eigenschaft kann schnell dazu verwendet werden,
|
||||
nur Seiten mit einem bestimmten Auto oder Kategorie darzustellen.<p>
|
||||
|
||||
Die <b>Neu</b> Schaltfläche erzeugt einen neuen Eintrag. Mit der <b>Ändern
|
||||
</b> Schaltfläche kann man existierende Einträge ändern, falls dieses
|
||||
in der Konfigurationsdatei erlaubt ist. Die <b>Antworten</b> Schaltfläche
|
||||
erzeugt eine Antwort auf eine existierenden Eintrag, ähnlich wie bei einem Email
|
||||
System.<p>
|
||||
|
||||
Die <b>Finden</b> Schaltfläche öffnet ein Formular, das die Suche von
|
||||
Einträgen aus einem Logbuch über Filterregeln erlaubt. Jedes ausgefü
|
||||
llte Feld wirkt wie ein zusätzlicher Filter, das UND-verknüpft wird mit den
|
||||
anderen Regeln. Falls kein Filter ausgewählt ist werden alle Einträge eines
|
||||
Logbuches ausgewählt. Die <b>Letzter Tag</b > und <b>Letzte 10</b>
|
||||
Schaltflächen zeigen alle Einträge der letzten 24 Stunden bzw. die letzten
|
||||
zehn Einträge.<p>
|
||||
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor=#486090><font color=#FFFFF><b>More information</b></font></td></tr>
|
||||
|
||||
<tr><td bgcolor=#FFFFFF><br>Mehr Informationen, insbesondere über die Konfiguration von ELog,
|
||||
gibt es auf der <A HREF="http://midas.psi.ch/elog">ELOG home page</A>.<P>
|
||||
|
||||
</td></tr></table></td></tr></table>
|
||||
|
||||
<hr>
|
||||
<address>
|
||||
<a href="http://midas.psi.ch/~stefan">S. Ritt</a>, 28 August 2001
|
||||
</address>
|
||||
|
||||
</body></html>
|
||||
139
eloglang.french
Executable file
@ -0,0 +1,139 @@
|
||||
#
|
||||
# $Revision$
|
||||
#
|
||||
|
||||
# ElogLang.French - French interface file for ELOG 1.2.7+
|
||||
# version 1.2 - 13/12/01 by Fred Pacquier <fredp@mygale.org>
|
||||
#
|
||||
|
||||
#
|
||||
# Menu commands
|
||||
#
|
||||
New = Créer
|
||||
Edit = Modifier
|
||||
Delete = Supprimer
|
||||
Reply = Répondre
|
||||
Find = Chercher
|
||||
Last day = Dernier jour
|
||||
Last 10 = 10 Dernières entrées
|
||||
Config = Configuration
|
||||
Change Password = Changer le mot de passe
|
||||
Logout = Se déconnecter
|
||||
Help = Aide
|
||||
Back = Retour
|
||||
Submit = Valider
|
||||
First = Première
|
||||
First entry = Première Entrée
|
||||
Last = Dernière
|
||||
Last entry = Dernière Entrée
|
||||
Previous = Précédente
|
||||
Previous entry = Entrée Précédente
|
||||
Next = Suivante
|
||||
Next entry = Entrée Suivante
|
||||
Copy to = Copier vers
|
||||
Move to = Déplacer vers
|
||||
Save = Enregistrer
|
||||
Cancel = Annuler
|
||||
Go to = Aller à
|
||||
|
||||
#
|
||||
# Login & password screens
|
||||
#
|
||||
Wrong password = Mot de passe incorrect
|
||||
Please login = Connexion
|
||||
Username = Utilisateur
|
||||
Password = Mot de passe
|
||||
Old Password = Ancien mot de passe
|
||||
New Password = Nouveau mot de passe
|
||||
ELOG password = mot de passe ELOG
|
||||
ELOG change password = Changer le mot de passe ELOG
|
||||
Please enter password to obtain write access = Entrez le mot de passe pour l'accès en écriture
|
||||
Please enter password to obtain administration access = Entrez le mot de passe pour l'accès administrateur
|
||||
Several logbooks are defined on this host = Il y a plusieurs registres sur ce serveur
|
||||
Please select the one to connect to = Choisissez celui auquel vous souhaitez vous connecter
|
||||
Change password for user = Changer le mot de passe de l'utilisateur
|
||||
|
||||
#
|
||||
# Entry display
|
||||
#
|
||||
Logged in as = Connecté sous
|
||||
Entry date = Date de création
|
||||
with = avec
|
||||
This is the last entry = Ceci est la dernière entrée
|
||||
This is the first entry = Ceci est la première entrée
|
||||
Email sent to = Mél envoyé à
|
||||
Email notification suppressed = Notification mél désactivée
|
||||
please select = choisissez
|
||||
Submit as HTML text = Code HTML
|
||||
Suppress Email notification = Désactiver la notification mél.
|
||||
Resubmit as new entry = Positionner comme une nouvelle entrée
|
||||
If no attachments are resubmitted, the original ones are kept = Si un nouvel attachement n'est pas spécifié, l'ancien est conservé
|
||||
To delete an old attachment, enter <code><delete></code> in the new attachment field = Pour supprimer un attachement existant, saisir comme nouvelle valeur <code><plonk></code>
|
||||
<delete> = <plonk>
|
||||
Attachment = Attachement
|
||||
Attachments = Attachements
|
||||
No message available = Aucune entrée disponible
|
||||
Reply to this = Réponse
|
||||
In reply to = En réponse à
|
||||
|
||||
#
|
||||
# Submit entry
|
||||
#
|
||||
ELOG Error = Erreur ELOG
|
||||
Fields marked with = Les champs marqués
|
||||
are required = sont obligatoires
|
||||
Error: Attachment file <i>%s</i> invalid, please bo back and enter a proper file name = Erreur : le fichier <i>%s</i> est invalide, revenez en arrière et spécifiez un nom de fichier correct
|
||||
New message cannot be written to directory "%s" = Le nouveau message ne peut pas être écrit dans le répertoire "%s"
|
||||
Please check that it exists and elogd has write access = Vérifier qu'il existe bien et qu'elogd a le droit d'y écrire
|
||||
Error: Attribute <b>%s</b> not supplied = Erreur : l'attribut <b>%s</b> n'est pas spécifié
|
||||
Please go back and enter the <b>%s</b> field = Revenez en arrière et renseignez le champ <b>%s</b>
|
||||
Original attachment = Ancien attachement
|
||||
New attachment = Nouvel attachement
|
||||
|
||||
#
|
||||
# Find display
|
||||
#
|
||||
ELOG search result = ELOG - résultat de la recherche
|
||||
ELOG find = Recherche ELOG
|
||||
Find = Chercher
|
||||
Search = Lancer la recherche
|
||||
Reset Form = Réinitaliser le formulaire
|
||||
Summary only = Résumé seulement
|
||||
Show attachments = Montrer les attachements
|
||||
Printable output = Sortie pour impression
|
||||
Sort in reverse order = Tri inversé
|
||||
Start date = Date de début
|
||||
End date = Date de fin
|
||||
Year = Année
|
||||
Text = Texte
|
||||
(case insensitive substring) = (casse non prise en compte)
|
||||
Search all logbooks = Chercher dans tous les registres
|
||||
Last %d days = %d Derniers jours
|
||||
Last %d entries = %d Dernières entrées
|
||||
No entries found = Aucune entrée trouvée
|
||||
|
||||
#
|
||||
# Email, Copy/Move, Delete
|
||||
#
|
||||
A new entry has been submitted on %s = Une nouvelle entrée a été créée le %s
|
||||
Logbook = Registre
|
||||
Copy ELog entry = Copier l'entrée ELog
|
||||
Message moved successfully from "%s" to "%s" = Entrée déplacée de "%s" vers "%s"
|
||||
Message copied successfully from "%s" to "%s" = Entrée copiée de "%s" vers "%s"
|
||||
Are you sure to delete this message? = Confirmez-vous la suppression de cette entrée ?
|
||||
Yes = Oui
|
||||
No = Non
|
||||
Message successfully deleted = Entrée supprimée
|
||||
Error deleting message: status = Erreur lors de la suppression de l'entrée : Status
|
||||
Goto last message = Aller à la dernière entrée
|
||||
|
||||
#
|
||||
# Error messages
|
||||
#
|
||||
Error: Command "<b>%s</b>" not allowed = Erreur : commande "<b>%s</b>" non autorisée
|
||||
Error: Command "<b>%s</b>" is not allowed for user "<b>%s</b>" = Erreur: commande "<b>%s</b>" non autorisée pour l'utilisateur "<b>%s</b>"
|
||||
Cannot open file <b>%s</b> = Erreur d'ouverture du fichier <b>%s</b>
|
||||
Cannot write to <b>%s</b> = Erreur d'écriture dans le fichier <b>%s</b>
|
||||
No SMTP host defined in [global] section of configuration file = Aucun serveur SMTP n'est défini dans la section [global] du fichier de configuration
|
||||
Message %s cannot be read from logbook "%s" = L'entrée %s ne peut pas être lue dans le registre "%s"
|
||||
New message cannot be written to directory "%s" = La nouvelle entrée %s ne peut pas être créée dans le registre "%s"
|
||||
135
eloglang.german
Executable file
@ -0,0 +1,135 @@
|
||||
#
|
||||
# $Revision$
|
||||
#
|
||||
|
||||
#
|
||||
# Menu commands
|
||||
#
|
||||
New = Neu
|
||||
Edit = Ändern
|
||||
Delete = Löschen
|
||||
Reply = Antworten
|
||||
Find = Finden
|
||||
Last day = Letzter Tag
|
||||
Last 10 = Letzte 10
|
||||
Config = Konfigurieren
|
||||
Change Password = Passwort ändern
|
||||
Logout = Abmelden
|
||||
Help = Hilfe
|
||||
Back = Zurück
|
||||
Submit = Abschicken
|
||||
First = Erster
|
||||
First entry = Erster Eintrag
|
||||
Last = Letzter
|
||||
Last entry = Letzter Eintrag
|
||||
Previous = Vorheriger
|
||||
Previous entry = Vorheriger Eintrag
|
||||
Next = Nächster
|
||||
Next entry = Nächster Eintrag
|
||||
Copy to = Kopieren nach
|
||||
Move to = Verschieben nach
|
||||
Save = Speichern
|
||||
Cancel = Abbrechen
|
||||
Go to = Nach
|
||||
|
||||
#
|
||||
# Login & password screens
|
||||
#
|
||||
Wrong password = Falsches Kennwort
|
||||
Please login = Bitte Anmelden
|
||||
Username = Benutzername
|
||||
Password = Kennwort
|
||||
Old Password = Altes Kennwort
|
||||
New Password = Neues Kennwort
|
||||
ELOG password = ELOG Kennwort
|
||||
ELOG change password = ELOG Kennwort ändern
|
||||
Please enter password to obtain write access = Bitte Kennwort eingeben für Schreibzugriff
|
||||
Please enter password to obtain administration access = Bitte Kennwort eingeben für Administrationszugriff
|
||||
Several logbooks are defined on this host = Mehrere Logbücher sind auf diesem Computer eingerichtet
|
||||
Please select the one to connect to = Bitte wählen Sie eines aus
|
||||
Change password for user = Kennwort ändern für Benutzer
|
||||
|
||||
#
|
||||
# Entry display
|
||||
#
|
||||
Logged in as = Angemeldet als
|
||||
Entry date = Eingabedatum
|
||||
with = mit
|
||||
This is the last entry = Dies ist der letzte Eintrag
|
||||
This is the first entry = Dies ist der erste Eintrag
|
||||
Email sent to = Email gesendet an
|
||||
Email notification suppressed = Email Benachrichtigung untedrückt
|
||||
please select = bitte auswählen
|
||||
Submit as HTML text = Als HTML Text abschicken
|
||||
Suppress Email notification = Email Benachrichtigung unterdrücken
|
||||
Resubmit as new entry = Als neuen Eintrag abschicken
|
||||
If no attachments are resubmitted, the original ones are kept = Falls keine neuen Anhänge abgeschickt werden, werden die Originale behalten
|
||||
To delete an old attachment, enter <code><delete></code> in the new attachment field = Um einen alten Anhang zu löschen, bitte <code><entfernen></code> eingeban
|
||||
<delete> = <entfernen>
|
||||
Attachment = Anhang
|
||||
Attachments = Anhänge
|
||||
No message available = Kein Entrag vorhanden
|
||||
Reply to this = Antwort hierzu
|
||||
In reply to = Als Antwort auf
|
||||
|
||||
#
|
||||
# Submit entry
|
||||
#
|
||||
ELOG Error = ELOG Fehler
|
||||
Fields marked with = Felder markiert mit
|
||||
are required = sind Pflichteinträge
|
||||
Error: Attachment file <i>%s</i> invalid, please bo back and enter a proper file name = Fehler: Datei <i>%s</i> ist ungültig, bitte zurück und korrekten Dateinamen eingeben
|
||||
New message cannot be written to directory "%s" = Neuer Entrag kann nicht ins Verzeichnig "%s" geschrieben werden
|
||||
Please check that it exists and elogd has write access = Bitte überprüfen, ob es existiert und ob elogd Schreibzugriff hat
|
||||
Error: Attribute <b>%s</b> not supplied = Fehler: Attribut <b>%s</b> nicht ausgefüllt
|
||||
Please go back and enter the <b>%s</b> field = Bitte zurückgehen und das Feld <b>%s</b> ausfüllen
|
||||
Original attachment = Alter Anhang
|
||||
New attachment = Neuer Anhang
|
||||
|
||||
#
|
||||
# Find display
|
||||
#
|
||||
ELOG search result = ELOG Suchergebnis
|
||||
ELOG find = ELOG suchen
|
||||
Find = Finden
|
||||
Search = Suchen
|
||||
Reset Form = Eingabe zurücksetzen
|
||||
Summary only = Nur Zusammenfassung
|
||||
Show attachments = Anhänge anzeigen
|
||||
Printable output = Druckfähige Anzeige
|
||||
Sort in reverse order = Sortieren in umgekehrter Reihenfolge
|
||||
Start date = Anfangsdatum
|
||||
End date = Enddatum
|
||||
Year = Jahr
|
||||
Text = Text
|
||||
(case insensitive substring) = (Teilzeichenkette Großschreibung ignorieren)
|
||||
Search all logbooks = Alle Logbücher durchsuchen
|
||||
Last %d days = Letzte %d Tage
|
||||
Last %d entries = Letzte %d Einträge
|
||||
No entries found = Keine Einträge gefunden
|
||||
|
||||
#
|
||||
# Email, Copy/Move, Delete
|
||||
#
|
||||
A new entry has been submitted on %s = Ein neuer Eintrag wurde an %s geschickt
|
||||
Logbook = Logbuch
|
||||
Copy ELog entry = ELog Eintrag Kopieren
|
||||
Message moved successfully from "%s" to "%s" = Eintrag erfolgreich von "%s" nach "%s" verschoben
|
||||
Message copied successfully from "%s" to "%s" = Eintrag erfolgreich von "%s" nach "%s" kopiert
|
||||
Are you sure to delete this message? = Diesen Eintrag wirklich löschen?
|
||||
Yes = Ja
|
||||
No = Nein
|
||||
Message successfully deleted = Eintrag erfolgreich gelöscht
|
||||
Error deleting message: status = Fehler beim Löschen: Status
|
||||
Goto last message = Zum letzten Eintrag
|
||||
|
||||
#
|
||||
# Error messages
|
||||
#
|
||||
Error: Command "<b>%s</b>" not allowed = Fehler: Kommando "<b>%s</b>" nicht erlaubt
|
||||
Error: Command "<b>%s</b>" is not allowed for user "<b>%s</b>" = Fehler: Kommando "<b>%s</b>" nicht erlaubt für Benutzer "<b>%s</b>"
|
||||
Cannot open file <b>%s</b> = Datei <b>%s</b> kann nicht geöffnet werden
|
||||
Cannot write to <b>%s</b> = Datei <b>%s</b> kann nicht geschrieben werden
|
||||
No SMTP host defined in [global] section of configuration file = Kein SMTP Host im [global] Bereich der Konfigurationsdatei definiert
|
||||
Messags %s cannot be read from logook "%s" = Eintrag %s kann nicht aus dem Logbuch "%s" gelesen werden
|
||||
New message cannot be written to directory "%s" = Neuer Eintrag kann nicht ins Verzeichnis "%s" geschrieben werden
|
||||
15
logbooks/demo/011108.log
Executable file
@ -0,0 +1,15 @@
|
||||
$Start$: 419
|
||||
Date: Thu Nov 08 18:37:57 2001
|
||||
Thread: 0 0
|
||||
Author: Stefan Ritt
|
||||
Type: Routine
|
||||
Category: General
|
||||
Subject: Welcome
|
||||
|
||||
Encoding: plain
|
||||
========================================
|
||||
Congratulations for installing ELOG sucessfully!
|
||||
|
||||
This is a demo entry to ensure the elogd server is working correctly.
|
||||
Click "New" to add new pages and "Delete" to delete this page.$End$: 419
|
||||
|
||||
BIN
themes/default/elog.gif
Executable file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
themes/default/first.gif
Executable file
|
After Width: | Height: | Size: 941 B |
BIN
themes/default/first.psp
Executable file
BIN
themes/default/last.gif
Executable file
|
After Width: | Height: | Size: 935 B |
BIN
themes/default/last.psp
Executable file
BIN
themes/default/next.gif
Executable file
|
After Width: | Height: | Size: 890 B |
BIN
themes/default/next.psp
Executable file
37
themes/default/oldtheme.cfg
Executable file
@ -0,0 +1,37 @@
|
||||
; General attributes of displayed tables
|
||||
Table width = 700
|
||||
Frame color = #FFFFFF
|
||||
Cell bgcolor = #FFFFFF
|
||||
Border width = 3
|
||||
|
||||
; Look of Title Row
|
||||
Title bgcolor = #A0A0FF
|
||||
Title fontcolor = #000000
|
||||
Title cellpadding = 5
|
||||
Title image =
|
||||
|
||||
; Look of Menus
|
||||
Merge menus = 0
|
||||
Use buttons = 1
|
||||
|
||||
Menu1 bgcolor = #C0C0C0
|
||||
Menu1 Align = left
|
||||
Menu1 cellpadding = 3
|
||||
|
||||
Menu2 bgcolor = #E0E0E0
|
||||
Menu2 Align = left
|
||||
Menu2 cellpadding = 3
|
||||
Menu2 use images = 0
|
||||
|
||||
; Categories
|
||||
Categories cellpadding = 3
|
||||
Categories border = 0
|
||||
Categories bgcolor1 = #CCCCFF
|
||||
Categories bgcolor2 = #A0FFA0
|
||||
|
||||
; Text
|
||||
Text bgcolor = #FFFFFF
|
||||
|
||||
; Search results
|
||||
List bgcolor1 = #FFFFFF
|
||||
List bgcolor2 = #FFFFFF
|
||||
BIN
themes/default/previous.gif
Executable file
|
After Width: | Height: | Size: 893 B |
BIN
themes/default/previous.psp
Executable file
37
themes/default/theme.cfg
Executable file
@ -0,0 +1,37 @@
|
||||
; General attributes of displayed tables
|
||||
Table width = 100%
|
||||
Frame color = #486090
|
||||
Cell bgcolor = #E6E6E6
|
||||
Border width = 0
|
||||
|
||||
; Look of Title Row
|
||||
Title bgcolor = #486090
|
||||
Title fontcolor = #FFFFFF
|
||||
Title cellpadding = 0
|
||||
Title image = elog.gif
|
||||
|
||||
; Look of Menus
|
||||
Merge menus = 1
|
||||
Use buttons = 0
|
||||
|
||||
Menu1 bgcolor = #E0E0E0
|
||||
Menu1 Align = left
|
||||
Menu1 cellpadding = 5
|
||||
|
||||
Menu2 bgcolor = #FFFFB0
|
||||
Menu2 Align = center
|
||||
Menu2 cellpadding = 0
|
||||
Menu2 use images = 1
|
||||
|
||||
; Categories
|
||||
Categories cellpadding = 3
|
||||
Categories border = 0
|
||||
Categories bgcolor1 = #CCCCFF
|
||||
Categories bgcolor2 = #DDEEBB
|
||||
|
||||
; Text
|
||||
Text bgcolor = #FFFFFF
|
||||
|
||||
; Search results
|
||||
List bgcolor1 = #DDEEBB
|
||||
List bgcolor2 = #FFFFB0
|
||||