-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.en.html
203 lines (158 loc) · 11.7 KB
/
index.en.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML lang="en">
<HEAD>
<META name="generator" content="HTML Tidy, see www.w3.org">
<TITLE>About Gedafe</TITLE>
<SCRIPT type="text/javascript" language="JavaScript">
<!-- Hiding the code
function nb_imgNormal(imgName) {
if (document.images) {
document[imgName].src = eval(imgName + '_n.src');
self.status = '';
}
}
function nb_imgSelect(imgName) {
if (document.images) {
document[imgName].src = eval(imgName + '_s.src');
self.status = '';
}
}
function nb_imgOver(imgName, nohints, descript) {
if (document.images) {
document[imgName].src = eval(imgName + '_o.src');
if (! nohints) self.status = descript;
}
}
// done hiding -->
</SCRIPT>
<STYLE type="text/css">
<!--
H1,H2,H3 {color: #4f4f4f}
A {text-decoration: underline;
color: #f00ca4}
HR, H1, H2, DIV, P, LI,
UL, OL, TABLE, TD, TR {font-family: lucida-sans, helvetica, arial, sans-serif}
PRE {font-family: courier, typewriter, fixed}
H1 {font-size: 18pt }
H2 {font-size: 16pt }
DIV, P, LI,
UL, OL, TABLE, TD, TR {font-size: 12pt }
SMALL {font-size: 10pt}
-->
</STYLE>
</HEAD>
<BODY bgcolor="#bfbfbf" text="#000000" link="#f00ca4" vlink="#f00ca4" alink="#f00ca4">
<TABLE border="0" bgcolor="#ffffff" cellpadding="0" cellspacing="0" summary="">
<TR>
<TD valign="top">
<TABLE border="0" bgcolor="#ffffff" cellpadding="0" cellspacing="0" summary="">
<TR>
<TD rowspan="5" width="20"><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="20" height="1" align="bottom" border="0"></TD>
<TD colspan="4"><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="10" align="bottom" border="0"></TD>
</TR>
<TR>
<TD colspan="4" valign="top" align="left"><IMG src="./.pics/logo.png" alt="" width="390" height="70"></TD>
</TR>
<TR>
<TD colspan="4"><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="20" align="bottom" border="0"></TD>
</TR>
<TR>
<TD rowspan="2" width="120" valign="top">
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="50" align="bottom" border="0"></DIV>
<SCRIPT type="text/javascript" language="JavaScript">
<!-- Hiding the code
if (document.images) {
nb_img1_doc_n = new Image();
nb_img1_doc_n.src = '.img/doc-std.en.gif';
nb_img1_doc_o = new Image();
nb_img1_doc_o.src = '.img/doc-ovr.en.gif';
nb_img1_screenshots_n = new Image();
nb_img1_screenshots_n.src = '.img/screenshots-std.en.gif';
nb_img1_screenshots_o = new Image();
nb_img1_screenshots_o.src = '.img/screenshots-ovr.en.gif';
nb_img1_download_n = new Image();
nb_img1_download_n.src = '.img/download-std.en.gif';
nb_img1_download_o = new Image();
nb_img1_download_o.src = '.img/download-ovr.en.gif';
nb_img1_people_n = new Image();
nb_img1_people_n.src = '.img/people-std.en.gif';
nb_img1_people_o = new Image();
nb_img1_people_o.src = '.img/people-ovr.en.gif';
nb_img1_mailinglist_n = new Image();
nb_img1_mailinglist_n.src = '.img/mailinglist-std.en.gif';
nb_img1_mailinglist_o = new Image();
nb_img1_mailinglist_o.src = '.img/mailinglist-ovr.en.gif';
}
// done hiding -->
</SCRIPT>
<DIV><IMG src=".img/about-sel.en.gif" alt="About" width="120" height="25"></DIV>
<DIV><A href="doc/index.en.html" onmouseover="nb_imgOver('nb_img1_doc', 0, ''); return true" onmouseout="nb_imgNormal('nb_img1_doc'); return true" onfocus="nb_imgOver('nb_img1_doc', 0, ''); return true" onblur="nb_imgNormal('nb_img1_doc'); return true"><IMG name="nb_img1_doc" src=".img/doc-std.en.gif" alt="Documentation" border="0" width="120" height="25"></A></DIV>
<DIV><A href="screenshots.en.html" onmouseover="nb_imgOver('nb_img1_screenshots', 0, ''); return true" onmouseout="nb_imgNormal('nb_img1_screenshots'); return true" onfocus="nb_imgOver('nb_img1_screenshots', 0, ''); return true" onblur="nb_imgNormal('nb_img1_screenshots'); return true"><IMG name="nb_img1_screenshots" src=".img/screenshots-std.en.gif" alt="Screenshots" border="0" width="120" height="25"></A></DIV>
<DIV><A href="download.en.html" onmouseover="nb_imgOver('nb_img1_download', 0, ''); return true" onmouseout="nb_imgNormal('nb_img1_download'); return true" onfocus="nb_imgOver('nb_img1_download', 0, ''); return true" onblur="nb_imgNormal('nb_img1_download'); return true"><IMG name="nb_img1_download" src=".img/download-std.en.gif" alt="Download" border="0" width="120" height="25"></A></DIV>
<DIV><A href="people.en.html" onmouseover="nb_imgOver('nb_img1_people', 0, ''); return true" onmouseout="nb_imgNormal('nb_img1_people'); return true" onfocus="nb_imgOver('nb_img1_people', 0, ''); return true" onblur="nb_imgNormal('nb_img1_people'); return true"><IMG name="nb_img1_people" src=".img/people-std.en.gif" alt="People" border="0" width="120" height="25"></A></DIV>
<DIV><A href="mailinglist.en.html" onmouseover="nb_imgOver('nb_img1_mailinglist', 0, ''); return true" onmouseout="nb_imgNormal('nb_img1_mailinglist'); return true" onfocus="nb_imgOver('nb_img1_mailinglist', 0, ''); return true" onblur="nb_imgNormal('nb_img1_mailinglist'); return true"><IMG name="nb_img1_mailinglist" src=".img/mailinglist-std.en.gif" alt="Mailing List" border="0" width="120" height="25"></A></DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="60" align="bottom" border="0"></DIV>
<DIV><SMALL>Page Maintainer:<BR>
<IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="10" height="1" align="bottom" border="0"><a href="http://david.schweikert.ch/">David Schweikert</A></SMALL></DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="10" align="bottom" border="0"><BR>
<SMALL>Last Update:<BR>
<IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="10" height="1" align="bottom" border="0">2007-03-20</SMALL></DIV>
</TD>
<TD rowspan="2" width="30"><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="30" height="1" align="bottom" border="0"></TD>
<TD valign="top">
<DIV><IMG src="./.img/About_Gedafe_H1.en.gif" alt="About Gedafe" width="500" height="50"></DIV>
<H2>Gedafe 1.4.0 is released! <A href="pub/NEWS">Read more...</A></H2>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="6" align="bottom" border="0"></DIV>
<DIV><IMG align="BOTTOM" src="./.img/What_is_Gedafe__H2.en.gif" alt="What is Gedafe?" width="500" height="27"></DIV>
<P>Gedafe is a Generic, Web-based, PostgreSQL Database Front-end written in Perl. It pulls all information it needs right from the underlying database. No database specific configuration is required in the front-end itself. Gedafe is nevertheless End-User-Friendly. This means that it provides a full featured Database Application Web-interface ready to be used by normal people.</P>
<P>The main idea behind Gedafe is to put all the application logic into the database along with meta-information on how to present the data. This allows to use a generic front-end which gathers that information and then builds the user interface accordingly.</P>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="6" align="bottom" border="0"></DIV>
<DIV><IMG align="BOTTOM" src="./.img/Application_in_the_Database_H2.en.gif" alt="Application in the Database" width="500" height="27"></DIV>
<P>Modern databases such as PostgreSQL allow to setup rules defining what sort of data is permitted in each field of a table. It is even possible to store little programs (stored procedures) which get executed whenever a value in a table is inserted/changed/deleted. The program can then take additional action, run elaborate tests, and in the end even refuse the modification.</P>
<P>Implementing the application in the database is good practice, as it is highly effective in ensuring data integrity. Whatever means are used to access the database, data-integrity rules will be enforced. Also, writing database applications at the database level is easier, since the built-in programming facilities of the database are tailored to this very purpose.</P>
<P>Such Databases Applications can be implemented in a wide variety of ways. For Gedafe to be able to to generate a web-interface for your database it relies on a number of conventions. Check the <A href="doc/gedafe-sql.en.html">Database Guide</A> for details.</P>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="6" align="bottom" border="0"></DIV>
<DIV><IMG align="BOTTOM" src="./.img/Other_Gedafe_Features_H2.en.gif" alt="Other Gedafe Features" width="500" height="27"></DIV>
<UL>
<LI>
<DIV>User <EM>authentication</EM> is done only at the database-level, it is transparent to the requested URL (after a login you get the page you requested initially). Authentication is based on cookies that expire server-side.</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
<LI>
<DIV>Templates allow to customize the Gedafe generated Web interface</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
<LI>
<DIV>POST is used only for data that modifies the database. Every view is encoded in the URL. This means that you can set <EM>bookmarks</EM> to screens inside Gedafe.</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
<LI>
<DIV><EM>Double Submit Protection</EM>. It is not possible to submit the same form twice. This ensures that data is only entered once even when Gedafe is used under non standard conditions.</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
<LI>
<DIV>Gedafe can read additional setup information from special META tables stored alongside the production data in the database. This allows to enable additional Gedafe features or to override settings which Gedafe derived from looking at the table structure and naming scheme.</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
<LI>
<DIV>Built-in support for external reporting modules allow to easily generate complex reports using external Perl modules.</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
<LI>
<DIV>Every table Gedafe displays can be downloaded with a single click in comma separated format ready for import into a spreadsheet.</DIV>
<DIV><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="4" align="bottom" border="0"></DIV>
</LI>
</UL>
</TD>
<TD rowspan="2" widht="0"><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="0" height="1" align="bottom" border="0"></TD>
</TR>
<TR>
<TD><IMG src=".img/imgdot-1x1-transp-ffffff.gif" alt="" width="1" height="20" align="bottom" border="0"></TD>
</TR>
</TABLE>
</TD>
<TD valign="TOP" align="RIGHT"><IMG src="./.img/about_gedafe_Decor.en.gif" alt="" width="100" height="600"></TD>
</TR>
</TABLE>
</BODY>
</HTML>