Fossil SCM

Add a new "Skins" configuration page that allows the look and feel of the web interface to be changed to one of several prototypes at the click of a button. Currently, there are only two built-in prototypes.

drh 2009-12-19 21:04 trunk
Commit 007d0a9b3f7c0288c072cc4909571b50d2e54392
+12 -2
--- src/main.mk
+++ src/main.mk
@@ -60,10 +60,11 @@
6060
$(SRCDIR)/schema.c \
6161
$(SRCDIR)/search.c \
6262
$(SRCDIR)/setup.c \
6363
$(SRCDIR)/sha1.c \
6464
$(SRCDIR)/shun.c \
65
+ $(SRCDIR)/skins.c \
6566
$(SRCDIR)/stat.c \
6667
$(SRCDIR)/style.c \
6768
$(SRCDIR)/sync.c \
6869
$(SRCDIR)/tag.c \
6970
$(SRCDIR)/th_main.c \
@@ -130,10 +131,11 @@
130131
schema_.c \
131132
search_.c \
132133
setup_.c \
133134
sha1_.c \
134135
shun_.c \
136
+ skins_.c \
135137
stat_.c \
136138
style_.c \
137139
sync_.c \
138140
tag_.c \
139141
th_main_.c \
@@ -200,10 +202,11 @@
200202
schema.o \
201203
search.o \
202204
setup.o \
203205
sha1.o \
204206
shun.o \
207
+ skins.o \
205208
stat.o \
206209
style.o \
207210
sync.o \
208211
tag.o \
209212
th_main.o \
@@ -261,16 +264,16 @@
261264
# noop
262265
263266
clean:
264267
rm -f *.o *_.c $(APPNAME) VERSION.h
265268
rm -f translate makeheaders mkindex page_index.h headers
266
- rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h construct.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h rstats.h schema.h search.h setup.h sha1.h shun.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h
269
+ rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h construct.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h rstats.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h
267270
268271
page_index.h: $(TRANS_SRC) mkindex
269272
./mkindex $(TRANS_SRC) >$@
270273
headers: page_index.h makeheaders VERSION.h
271
- ./makeheaders add_.c:add.h allrepo_.c:allrepo.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h file_.c:file.h finfo_.c:finfo.h http_.c:http.h http_socket_.c:http_socket.h http_transport_.c:http_transport.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h report_.c:report.h rss_.c:rss.h rstats_.c:rstats.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h VERSION.h
274
+ ./makeheaders add_.c:add.h allrepo_.c:allrepo.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h file_.c:file.h finfo_.c:finfo.h http_.c:http.h http_socket_.c:http_socket.h http_transport_.c:http_transport.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h report_.c:report.h rss_.c:rss.h rstats_.c:rstats.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h VERSION.h
272275
touch headers
273276
headers: Makefile
274277
Makefile:
275278
add_.c: $(SRCDIR)/add.c translate
276279
./translate $(SRCDIR)/add.c >add_.c
@@ -613,10 +616,17 @@
613616
614617
shun.o: shun_.c shun.h $(SRCDIR)/config.h
615618
$(XTCC) -o shun.o -c shun_.c
616619
617620
shun.h: headers
621
+skins_.c: $(SRCDIR)/skins.c translate
622
+ ./translate $(SRCDIR)/skins.c >skins_.c
623
+
624
+skins.o: skins_.c skins.h $(SRCDIR)/config.h
625
+ $(XTCC) -o skins.o -c skins_.c
626
+
627
+skins.h: headers
618628
stat_.c: $(SRCDIR)/stat.c translate
619629
./translate $(SRCDIR)/stat.c >stat_.c
620630
621631
stat.o: stat_.c stat.h $(SRCDIR)/config.h
622632
$(XTCC) -o stat.o -c stat_.c
623633
--- src/main.mk
+++ src/main.mk
@@ -60,10 +60,11 @@
60 $(SRCDIR)/schema.c \
61 $(SRCDIR)/search.c \
62 $(SRCDIR)/setup.c \
63 $(SRCDIR)/sha1.c \
64 $(SRCDIR)/shun.c \
 
65 $(SRCDIR)/stat.c \
66 $(SRCDIR)/style.c \
67 $(SRCDIR)/sync.c \
68 $(SRCDIR)/tag.c \
69 $(SRCDIR)/th_main.c \
@@ -130,10 +131,11 @@
130 schema_.c \
131 search_.c \
132 setup_.c \
133 sha1_.c \
134 shun_.c \
 
135 stat_.c \
136 style_.c \
137 sync_.c \
138 tag_.c \
139 th_main_.c \
@@ -200,10 +202,11 @@
200 schema.o \
201 search.o \
202 setup.o \
203 sha1.o \
204 shun.o \
 
205 stat.o \
206 style.o \
207 sync.o \
208 tag.o \
209 th_main.o \
@@ -261,16 +264,16 @@
261 # noop
262
263 clean:
264 rm -f *.o *_.c $(APPNAME) VERSION.h
265 rm -f translate makeheaders mkindex page_index.h headers
266 rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h construct.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h rstats.h schema.h search.h setup.h sha1.h shun.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h
267
268 page_index.h: $(TRANS_SRC) mkindex
269 ./mkindex $(TRANS_SRC) >$@
270 headers: page_index.h makeheaders VERSION.h
271 ./makeheaders add_.c:add.h allrepo_.c:allrepo.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h file_.c:file.h finfo_.c:finfo.h http_.c:http.h http_socket_.c:http_socket.h http_transport_.c:http_transport.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h report_.c:report.h rss_.c:rss.h rstats_.c:rstats.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h VERSION.h
272 touch headers
273 headers: Makefile
274 Makefile:
275 add_.c: $(SRCDIR)/add.c translate
276 ./translate $(SRCDIR)/add.c >add_.c
@@ -613,10 +616,17 @@
613
614 shun.o: shun_.c shun.h $(SRCDIR)/config.h
615 $(XTCC) -o shun.o -c shun_.c
616
617 shun.h: headers
 
 
 
 
 
 
 
618 stat_.c: $(SRCDIR)/stat.c translate
619 ./translate $(SRCDIR)/stat.c >stat_.c
620
621 stat.o: stat_.c stat.h $(SRCDIR)/config.h
622 $(XTCC) -o stat.o -c stat_.c
623
--- src/main.mk
+++ src/main.mk
@@ -60,10 +60,11 @@
60 $(SRCDIR)/schema.c \
61 $(SRCDIR)/search.c \
62 $(SRCDIR)/setup.c \
63 $(SRCDIR)/sha1.c \
64 $(SRCDIR)/shun.c \
65 $(SRCDIR)/skins.c \
66 $(SRCDIR)/stat.c \
67 $(SRCDIR)/style.c \
68 $(SRCDIR)/sync.c \
69 $(SRCDIR)/tag.c \
70 $(SRCDIR)/th_main.c \
@@ -130,10 +131,11 @@
131 schema_.c \
132 search_.c \
133 setup_.c \
134 sha1_.c \
135 shun_.c \
136 skins_.c \
137 stat_.c \
138 style_.c \
139 sync_.c \
140 tag_.c \
141 th_main_.c \
@@ -200,10 +202,11 @@
202 schema.o \
203 search.o \
204 setup.o \
205 sha1.o \
206 shun.o \
207 skins.o \
208 stat.o \
209 style.o \
210 sync.o \
211 tag.o \
212 th_main.o \
@@ -261,16 +264,16 @@
264 # noop
265
266 clean:
267 rm -f *.o *_.c $(APPNAME) VERSION.h
268 rm -f translate makeheaders mkindex page_index.h headers
269 rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h construct.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h rstats.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h
270
271 page_index.h: $(TRANS_SRC) mkindex
272 ./mkindex $(TRANS_SRC) >$@
273 headers: page_index.h makeheaders VERSION.h
274 ./makeheaders add_.c:add.h allrepo_.c:allrepo.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h file_.c:file.h finfo_.c:finfo.h http_.c:http.h http_socket_.c:http_socket.h http_transport_.c:http_transport.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h report_.c:report.h rss_.c:rss.h rstats_.c:rstats.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h VERSION.h
275 touch headers
276 headers: Makefile
277 Makefile:
278 add_.c: $(SRCDIR)/add.c translate
279 ./translate $(SRCDIR)/add.c >add_.c
@@ -613,10 +616,17 @@
616
617 shun.o: shun_.c shun.h $(SRCDIR)/config.h
618 $(XTCC) -o shun.o -c shun_.c
619
620 shun.h: headers
621 skins_.c: $(SRCDIR)/skins.c translate
622 ./translate $(SRCDIR)/skins.c >skins_.c
623
624 skins.o: skins_.c skins.h $(SRCDIR)/config.h
625 $(XTCC) -o skins.o -c skins_.c
626
627 skins.h: headers
628 stat_.c: $(SRCDIR)/stat.c translate
629 ./translate $(SRCDIR)/stat.c >stat_.c
630
631 stat.o: stat_.c stat.h $(SRCDIR)/config.h
632 $(XTCC) -o stat.o -c stat_.c
633
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -54,10 +54,11 @@
5454
schema
5555
search
5656
setup
5757
sha1
5858
shun
59
+ skins
5960
stat
6061
style
6162
sync
6263
tag
6364
th_main
6465
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -54,10 +54,11 @@
54 schema
55 search
56 setup
57 sha1
58 shun
 
59 stat
60 style
61 sync
62 tag
63 th_main
64
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -54,10 +54,11 @@
54 schema
55 search
56 setup
57 sha1
58 shun
59 skins
60 stat
61 style
62 sync
63 tag
64 th_main
65
+27 -8
--- src/setup.c
+++ src/setup.c
@@ -70,10 +70,12 @@
7070
"Configure the SCM behavior of the repository");
7171
setup_menu_entry("Timeline", "setup_timeline",
7272
"Timeline display preferences");
7373
setup_menu_entry("Tickets", "tktsetup",
7474
"Configure the trouble-ticketing system for this repository");
75
+ setup_menu_entry("Skins", "setup_skin",
76
+ "Select from a menu of prepackaged \"skins\" for the web interface");
7577
setup_menu_entry("CSS", "setup_editcss",
7678
"Edit the Cascading Style Sheet used by all pages of this repository");
7779
setup_menu_entry("Header", "setup_header",
7880
"Edit HTML text inserted at the top of every page");
7981
setup_menu_entry("Footer", "setup_footer",
@@ -722,10 +724,19 @@
722724
@ from 127.0.0.1 is allows without any login - the user id is selected
723725
@ from the ~/.fossil database. Password login is always required
724726
@ for incoming web connections on internet addresses other than
725727
@ 127.0.0.1.</p></li>
726728
729
+ @ <hr>
730
+ onoff_attribute("Show javascript button to fill in CAPTCHA",
731
+ "auto-captcha", "autocaptcha", 0);
732
+ @ <p>When enabled, a button appears on the login screen for user
733
+ @ "anonymous" that will automatically fill in the CAPTCHA password.
734
+ @ This is less secure that forcing the user to do it manually, but is
735
+ @ probably secure enough and it is certainly more convenient for
736
+ @ anonymous users.</p>
737
+
727738
@ <hr>
728739
entry_attribute("Login expiration time", 6, "cookie-expire", "cex", "8766");
729740
@ <p>The number of hours for which a login is valid. This must be a
730741
@ positive number. The default is 8760 hours which is approximately equal
731742
@ to a year.</p>
@@ -816,11 +827,12 @@
816827
onoff_attribute("Show javascript button to fill in CAPTCHA",
817828
"auto-captcha", "autocaptcha", 0);
818829
@ <p>When enabled, a button appears on the login screen for user
819830
@ "anonymous" that will automatically fill in the CAPTCHA password.
820831
@ This is less secure that forcing the user to do it manually, but is
821
- @ usually secure enough.</p>
832
+ @ probably secure enough and it is certainly more convenient for
833
+ @ anonymous users.</p>
822834
823835
@ <hr>
824836
onoff_attribute("Sign all commits with GPG",
825837
"clearsign", "clearsign", 1);
826838
@ <p>When enabled (the default), fossil will attempt to
@@ -943,18 +955,19 @@
943955
textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
944956
}
945957
style_header("Edit CSS");
946958
@ <form action="%s(g.zBaseURL)/setup_editcss" method="POST">
947959
login_insert_csrf_secret();
948
- @ Edit the CSS:<br />
960
+ @ Edit the CSS below:<br />
949961
textarea_attribute("", 40, 80, "css", "css", zDefaultCSS);
950962
@ <br />
951963
@ <input type="submit" name="submit" value="Apply Changes">
952964
@ <input type="submit" name="clear" value="Revert To Default">
953965
@ </form>
954966
@ <hr>
955
- @ Here is the default CSS:
967
+ @ The default CSS is shown below for reference. Other examples
968
+ @ of CSS files can be seen on the <a href="setup_skin">skins page</a>.
956969
@ <blockquote><pre>
957970
@ %h(zDefaultCSS)
958971
@ </pre></blockquote>
959972
style_footer();
960973
db_end_transaction(0);
@@ -985,11 +998,12 @@
985998
@ <br />
986999
@ <input type="submit" name="submit" value="Apply Changes">
9871000
@ <input type="submit" name="clear" value="Revert To Default">
9881001
@ </form>
9891002
@ <hr>
990
- @ Here is the default page header:
1003
+ @ The default header is shown below for reference. Other examples
1004
+ @ of headers can be seen on the <a href="setup_skin">skins page</a>.
9911005
@ <blockquote><pre>
9921006
@ %h(zDefaultHeader)
9931007
@ </pre></blockquote>
9941008
style_footer();
9951009
db_end_transaction(0);
@@ -1019,11 +1033,12 @@
10191033
@ <br />
10201034
@ <input type="submit" name="submit" value="Apply Changes">
10211035
@ <input type="submit" name="clear" value="Revert To Default">
10221036
@ </form>
10231037
@ <hr>
1024
- @ Here is the default page footer:
1038
+ @ The default footer is shown below for reference. Other examples
1039
+ @ of footers can be seen on the <a href="setup_skin">skins page</a>.
10251040
@ <blockquote><pre>
10261041
@ %h(zDefaultFooter)
10271042
@ </pre></blockquote>
10281043
style_footer();
10291044
db_end_transaction(0);
@@ -1067,15 +1082,19 @@
10671082
style_header("Edit Project Logo");
10681083
@ <p>The current project logo has a MIME-Type of <b>%h(zMime)</b> and looks
10691084
@ like this:</p>
10701085
@ <blockquote><img src="%s(g.zTop)/logo" alt="logo"></blockquote>
10711086
@
1072
- @ <form action="%s(g.zBaseURL)/setup_logo" method="POST"
1073
- @ enctype="multipart/form-data">
10741087
@ <p>The logo is accessible to all users at this URL:
10751088
@ <a href="%s(g.zBaseURL)/logo">%s(g.zBaseURL)/logo</a>.
1076
- @ To set a new logo image, select a file to use as the logo using
1089
+ @ The logo may or may not appear on each
1090
+ @ page depending on the <a href="setup_editcss">CSS</a> and
1091
+ @ <a href="setup_header">header setup</a>.</p>
1092
+ @
1093
+ @ <form action="%s(g.zBaseURL)/setup_logo" method="POST"
1094
+ @ enctype="multipart/form-data">
1095
+ @ <p>To set a new logo image, select a file to use as the logo using
10771096
@ the entry box below and then press the "Change Logo" button.</p>
10781097
login_insert_csrf_secret();
10791098
@ Logo Image file:
10801099
@ <input type="file" name="im" size="60" accepts="image/*"><br>
10811100
@ <input type="submit" name="set" value="Change Logo">
10821101
10831102
ADDED src/skins.c
--- src/setup.c
+++ src/setup.c
@@ -70,10 +70,12 @@
70 "Configure the SCM behavior of the repository");
71 setup_menu_entry("Timeline", "setup_timeline",
72 "Timeline display preferences");
73 setup_menu_entry("Tickets", "tktsetup",
74 "Configure the trouble-ticketing system for this repository");
 
 
75 setup_menu_entry("CSS", "setup_editcss",
76 "Edit the Cascading Style Sheet used by all pages of this repository");
77 setup_menu_entry("Header", "setup_header",
78 "Edit HTML text inserted at the top of every page");
79 setup_menu_entry("Footer", "setup_footer",
@@ -722,10 +724,19 @@
722 @ from 127.0.0.1 is allows without any login - the user id is selected
723 @ from the ~/.fossil database. Password login is always required
724 @ for incoming web connections on internet addresses other than
725 @ 127.0.0.1.</p></li>
726
 
 
 
 
 
 
 
 
 
727 @ <hr>
728 entry_attribute("Login expiration time", 6, "cookie-expire", "cex", "8766");
729 @ <p>The number of hours for which a login is valid. This must be a
730 @ positive number. The default is 8760 hours which is approximately equal
731 @ to a year.</p>
@@ -816,11 +827,12 @@
816 onoff_attribute("Show javascript button to fill in CAPTCHA",
817 "auto-captcha", "autocaptcha", 0);
818 @ <p>When enabled, a button appears on the login screen for user
819 @ "anonymous" that will automatically fill in the CAPTCHA password.
820 @ This is less secure that forcing the user to do it manually, but is
821 @ usually secure enough.</p>
 
822
823 @ <hr>
824 onoff_attribute("Sign all commits with GPG",
825 "clearsign", "clearsign", 1);
826 @ <p>When enabled (the default), fossil will attempt to
@@ -943,18 +955,19 @@
943 textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
944 }
945 style_header("Edit CSS");
946 @ <form action="%s(g.zBaseURL)/setup_editcss" method="POST">
947 login_insert_csrf_secret();
948 @ Edit the CSS:<br />
949 textarea_attribute("", 40, 80, "css", "css", zDefaultCSS);
950 @ <br />
951 @ <input type="submit" name="submit" value="Apply Changes">
952 @ <input type="submit" name="clear" value="Revert To Default">
953 @ </form>
954 @ <hr>
955 @ Here is the default CSS:
 
956 @ <blockquote><pre>
957 @ %h(zDefaultCSS)
958 @ </pre></blockquote>
959 style_footer();
960 db_end_transaction(0);
@@ -985,11 +998,12 @@
985 @ <br />
986 @ <input type="submit" name="submit" value="Apply Changes">
987 @ <input type="submit" name="clear" value="Revert To Default">
988 @ </form>
989 @ <hr>
990 @ Here is the default page header:
 
991 @ <blockquote><pre>
992 @ %h(zDefaultHeader)
993 @ </pre></blockquote>
994 style_footer();
995 db_end_transaction(0);
@@ -1019,11 +1033,12 @@
1019 @ <br />
1020 @ <input type="submit" name="submit" value="Apply Changes">
1021 @ <input type="submit" name="clear" value="Revert To Default">
1022 @ </form>
1023 @ <hr>
1024 @ Here is the default page footer:
 
1025 @ <blockquote><pre>
1026 @ %h(zDefaultFooter)
1027 @ </pre></blockquote>
1028 style_footer();
1029 db_end_transaction(0);
@@ -1067,15 +1082,19 @@
1067 style_header("Edit Project Logo");
1068 @ <p>The current project logo has a MIME-Type of <b>%h(zMime)</b> and looks
1069 @ like this:</p>
1070 @ <blockquote><img src="%s(g.zTop)/logo" alt="logo"></blockquote>
1071 @
1072 @ <form action="%s(g.zBaseURL)/setup_logo" method="POST"
1073 @ enctype="multipart/form-data">
1074 @ <p>The logo is accessible to all users at this URL:
1075 @ <a href="%s(g.zBaseURL)/logo">%s(g.zBaseURL)/logo</a>.
1076 @ To set a new logo image, select a file to use as the logo using
 
 
 
 
 
 
1077 @ the entry box below and then press the "Change Logo" button.</p>
1078 login_insert_csrf_secret();
1079 @ Logo Image file:
1080 @ <input type="file" name="im" size="60" accepts="image/*"><br>
1081 @ <input type="submit" name="set" value="Change Logo">
1082
1083 DDED src/skins.c
--- src/setup.c
+++ src/setup.c
@@ -70,10 +70,12 @@
70 "Configure the SCM behavior of the repository");
71 setup_menu_entry("Timeline", "setup_timeline",
72 "Timeline display preferences");
73 setup_menu_entry("Tickets", "tktsetup",
74 "Configure the trouble-ticketing system for this repository");
75 setup_menu_entry("Skins", "setup_skin",
76 "Select from a menu of prepackaged \"skins\" for the web interface");
77 setup_menu_entry("CSS", "setup_editcss",
78 "Edit the Cascading Style Sheet used by all pages of this repository");
79 setup_menu_entry("Header", "setup_header",
80 "Edit HTML text inserted at the top of every page");
81 setup_menu_entry("Footer", "setup_footer",
@@ -722,10 +724,19 @@
724 @ from 127.0.0.1 is allows without any login - the user id is selected
725 @ from the ~/.fossil database. Password login is always required
726 @ for incoming web connections on internet addresses other than
727 @ 127.0.0.1.</p></li>
728
729 @ <hr>
730 onoff_attribute("Show javascript button to fill in CAPTCHA",
731 "auto-captcha", "autocaptcha", 0);
732 @ <p>When enabled, a button appears on the login screen for user
733 @ "anonymous" that will automatically fill in the CAPTCHA password.
734 @ This is less secure that forcing the user to do it manually, but is
735 @ probably secure enough and it is certainly more convenient for
736 @ anonymous users.</p>
737
738 @ <hr>
739 entry_attribute("Login expiration time", 6, "cookie-expire", "cex", "8766");
740 @ <p>The number of hours for which a login is valid. This must be a
741 @ positive number. The default is 8760 hours which is approximately equal
742 @ to a year.</p>
@@ -816,11 +827,12 @@
827 onoff_attribute("Show javascript button to fill in CAPTCHA",
828 "auto-captcha", "autocaptcha", 0);
829 @ <p>When enabled, a button appears on the login screen for user
830 @ "anonymous" that will automatically fill in the CAPTCHA password.
831 @ This is less secure that forcing the user to do it manually, but is
832 @ probably secure enough and it is certainly more convenient for
833 @ anonymous users.</p>
834
835 @ <hr>
836 onoff_attribute("Sign all commits with GPG",
837 "clearsign", "clearsign", 1);
838 @ <p>When enabled (the default), fossil will attempt to
@@ -943,18 +955,19 @@
955 textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
956 }
957 style_header("Edit CSS");
958 @ <form action="%s(g.zBaseURL)/setup_editcss" method="POST">
959 login_insert_csrf_secret();
960 @ Edit the CSS below:<br />
961 textarea_attribute("", 40, 80, "css", "css", zDefaultCSS);
962 @ <br />
963 @ <input type="submit" name="submit" value="Apply Changes">
964 @ <input type="submit" name="clear" value="Revert To Default">
965 @ </form>
966 @ <hr>
967 @ The default CSS is shown below for reference. Other examples
968 @ of CSS files can be seen on the <a href="setup_skin">skins page</a>.
969 @ <blockquote><pre>
970 @ %h(zDefaultCSS)
971 @ </pre></blockquote>
972 style_footer();
973 db_end_transaction(0);
@@ -985,11 +998,12 @@
998 @ <br />
999 @ <input type="submit" name="submit" value="Apply Changes">
1000 @ <input type="submit" name="clear" value="Revert To Default">
1001 @ </form>
1002 @ <hr>
1003 @ The default header is shown below for reference. Other examples
1004 @ of headers can be seen on the <a href="setup_skin">skins page</a>.
1005 @ <blockquote><pre>
1006 @ %h(zDefaultHeader)
1007 @ </pre></blockquote>
1008 style_footer();
1009 db_end_transaction(0);
@@ -1019,11 +1033,12 @@
1033 @ <br />
1034 @ <input type="submit" name="submit" value="Apply Changes">
1035 @ <input type="submit" name="clear" value="Revert To Default">
1036 @ </form>
1037 @ <hr>
1038 @ The default footer is shown below for reference. Other examples
1039 @ of footers can be seen on the <a href="setup_skin">skins page</a>.
1040 @ <blockquote><pre>
1041 @ %h(zDefaultFooter)
1042 @ </pre></blockquote>
1043 style_footer();
1044 db_end_transaction(0);
@@ -1067,15 +1082,19 @@
1082 style_header("Edit Project Logo");
1083 @ <p>The current project logo has a MIME-Type of <b>%h(zMime)</b> and looks
1084 @ like this:</p>
1085 @ <blockquote><img src="%s(g.zTop)/logo" alt="logo"></blockquote>
1086 @
 
 
1087 @ <p>The logo is accessible to all users at this URL:
1088 @ <a href="%s(g.zBaseURL)/logo">%s(g.zBaseURL)/logo</a>.
1089 @ The logo may or may not appear on each
1090 @ page depending on the <a href="setup_editcss">CSS</a> and
1091 @ <a href="setup_header">header setup</a>.</p>
1092 @
1093 @ <form action="%s(g.zBaseURL)/setup_logo" method="POST"
1094 @ enctype="multipart/form-data">
1095 @ <p>To set a new logo image, select a file to use as the logo using
1096 @ the entry box below and then press the "Change Logo" button.</p>
1097 login_insert_csrf_secret();
1098 @ Logo Image file:
1099 @ <input type="file" name="im" size="60" accepts="image/*"><br>
1100 @ <input type="submit" name="set" value="Change Logo">
1101
1102 DDED src/skins.c
+27
--- a/src/skins.c
+++ b/src/skins.c
@@ -0,0 +1,27 @@
1
+);
2
+ VALUES('css'606060,);
3
+ baseurllogo">
4
+@ <img src="$baseurlbaseurl baseurl baseurl obaseurl/leaves''>Leaves</a> baseurl baseurl baseGNU General Public
5
+** License as published by the Free Software Foundation; either
6
+** version 2 of the License, or (at your option) any later version.
7
+**VALUES('footer',' VALUES('css' {);
8
+ baseurlbaseurl baseurl baseurl obaseWITHOUT ANY WARRANTY)baseurl/wiki''MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9
+** General Public License for more details.
10
+**
11
+** You should have received a copy of the GNU General Public
12
+** License along with this library; if not, write to the
13
+** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
14
+** Boston, MA 02111-1307, USA VALUES('css'606060,);
15
+ baseurllogo">
16
+@ <img src="$baseurlbaseurl baseurl baseurl obaseurl/leaves''>Leaves</a> baseurl baseurl baseurl)baseurl/wiki''>Wiki</a> sbaseurl baseurl)baseurl) VALUES('footer',' VALUES('css' {);
17
+ baseurlbaseurl baseurl baseurl obaseurl/leaves''>Leaves</a> baseurl baseurlbaseurl baseurl)baseurl/wiki''>Wiki</a> sbaseurl baseurl)baseurl) VALUES('footer',' VALUES('css'sub float);
18
+ baseurl!-- <img src="$baseurl --<ul><th1>
19
+@ h</li>li><a href=''$baseurl</li>li><a href=''$baseurl</li>oli><a href=''$baseurl/leaves''>Leaves</a></li>"
20
+@ html "<l);
21
+ VALUlef
22
+@ hascap hdir''>Filehr
23
+@ hascap hdir''>Filehrhascap h/dirhr POST">
24
+>
25
+ and POST"POST " "$<project_namezBuiltinSkin1 VALUES('css');
26
+ VALUES('css'606060,);
27
+
--- a/src/skins.c
+++ b/src/skins.c
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/skins.c
+++ b/src/skins.c
@@ -0,0 +1,27 @@
1 );
2 VALUES('css'606060,);
3 baseurllogo">
4 @ <img src="$baseurlbaseurl baseurl baseurl obaseurl/leaves''>Leaves</a> baseurl baseurl baseGNU General Public
5 ** License as published by the Free Software Foundation; either
6 ** version 2 of the License, or (at your option) any later version.
7 **VALUES('footer',' VALUES('css' {);
8 baseurlbaseurl baseurl baseurl obaseWITHOUT ANY WARRANTY)baseurl/wiki''MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9 ** General Public License for more details.
10 **
11 ** You should have received a copy of the GNU General Public
12 ** License along with this library; if not, write to the
13 ** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
14 ** Boston, MA 02111-1307, USA VALUES('css'606060,);
15 baseurllogo">
16 @ <img src="$baseurlbaseurl baseurl baseurl obaseurl/leaves''>Leaves</a> baseurl baseurl baseurl)baseurl/wiki''>Wiki</a> sbaseurl baseurl)baseurl) VALUES('footer',' VALUES('css' {);
17 baseurlbaseurl baseurl baseurl obaseurl/leaves''>Leaves</a> baseurl baseurlbaseurl baseurl)baseurl/wiki''>Wiki</a> sbaseurl baseurl)baseurl) VALUES('footer',' VALUES('css'sub float);
18 baseurl!-- <img src="$baseurl --<ul><th1>
19 @ h</li>li><a href=''$baseurl</li>li><a href=''$baseurl</li>oli><a href=''$baseurl/leaves''>Leaves</a></li>"
20 @ html "<l);
21 VALUlef
22 @ hascap hdir''>Filehr
23 @ hascap hdir''>Filehrhascap h/dirhr POST">
24 >
25 and POST"POST " "$<project_namezBuiltinSkin1 VALUES('css');
26 VALUES('css'606060,);
27
+1 -16
--- src/style.c
+++ src/style.c
@@ -360,11 +360,11 @@
360360
@ text-align: right;
361361
@ background-color: #558195;
362362
@ color: white;
363363
@ }
364364
@
365
-@ /* Make the links in the footer less ugly... */
365
+@ /* Hyperlink colors */
366366
@ div.footer a { color: white; }
367367
@ div.footer a:link { color: white; }
368368
@ div.footer a:visited { color: white; }
369369
@ div.footer a:hover { background-color: white; color: #558195; }
370370
@
@@ -378,25 +378,10 @@
378378
@ table.label-value th {
379379
@ vertical-align: top;
380380
@ text-align: right;
381381
@ padding: 0.2ex 2ex;
382382
@ }
383
-@
384
-@ /* For marking important UI elements which shouldn't be
385
-@ lightly dismissed. I mainly use it to mark "not yet
386
-@ implemented" parts of a page. Whether or not to have
387
-@ a 'border' attribute set is arguable. */
388
-@ .achtung {
389
-@ color: #ff0000;
390
-@ background: #ffff00;
391
-@ border: 1px solid #ff0000;
392
-@ }
393
-@
394
-@ div.miniform {
395
-@ font-size: smaller;
396
-@ margin: 8px;
397
-@ }
398383
;
399384
400385
/*
401386
** WEBPAGE: style.css
402387
*/
403388
--- src/style.c
+++ src/style.c
@@ -360,11 +360,11 @@
360 @ text-align: right;
361 @ background-color: #558195;
362 @ color: white;
363 @ }
364 @
365 @ /* Make the links in the footer less ugly... */
366 @ div.footer a { color: white; }
367 @ div.footer a:link { color: white; }
368 @ div.footer a:visited { color: white; }
369 @ div.footer a:hover { background-color: white; color: #558195; }
370 @
@@ -378,25 +378,10 @@
378 @ table.label-value th {
379 @ vertical-align: top;
380 @ text-align: right;
381 @ padding: 0.2ex 2ex;
382 @ }
383 @
384 @ /* For marking important UI elements which shouldn't be
385 @ lightly dismissed. I mainly use it to mark "not yet
386 @ implemented" parts of a page. Whether or not to have
387 @ a 'border' attribute set is arguable. */
388 @ .achtung {
389 @ color: #ff0000;
390 @ background: #ffff00;
391 @ border: 1px solid #ff0000;
392 @ }
393 @
394 @ div.miniform {
395 @ font-size: smaller;
396 @ margin: 8px;
397 @ }
398 ;
399
400 /*
401 ** WEBPAGE: style.css
402 */
403
--- src/style.c
+++ src/style.c
@@ -360,11 +360,11 @@
360 @ text-align: right;
361 @ background-color: #558195;
362 @ color: white;
363 @ }
364 @
365 @ /* Hyperlink colors */
366 @ div.footer a { color: white; }
367 @ div.footer a:link { color: white; }
368 @ div.footer a:visited { color: white; }
369 @ div.footer a:hover { background-color: white; color: #558195; }
370 @
@@ -378,25 +378,10 @@
378 @ table.label-value th {
379 @ vertical-align: top;
380 @ text-align: right;
381 @ padding: 0.2ex 2ex;
382 @ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
383 ;
384
385 /*
386 ** WEBPAGE: style.css
387 */
388

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button