Fossil

Check-in [51935f265a]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add Étienne Deparis's GitHub-like skin to the set of built-ins.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 51935f265afe0afbac0e8276a94e63703e60d1d0
User & Date: drh 2015-01-22 15:47:50.678
Context
2015-01-22
19:16
Allow "with" as well as "select" to be used in ticket report queries, as suggested by Sean Woods on the ML. check-in: ae72a652a7 user: jan.nijtmans tags: trunk
15:47
Add Étienne Deparis's GitHub-like skin to the set of built-ins. check-in: 51935f265a user: drh tags: trunk
15:40
Dockerfile: build "trunk" in stead of "release" by default. No need for installing tcl-devel when building fossil with --with-tcl-private-stubs, just tcl is enough. check-in: 53a295489e user: jan.nijtmans tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Added skins/etienne1/README.md.


>
1
This skin was contributed by Étienne Deparis.
Added skins/etienne1/css.txt.




















































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
body {
    margin: 0 auto;
    width: 960px;
    font-family: sans-serif;
    font-size:14pt;
}

a {
    color: #4183C4;
    text-decoration: none;
}
a:hover {
    color: #4183C4;
    text-decoration: underline;
}

hr {
    border: 0px;
}

.title {
    color: #4183C4;
    float:left;
    padding-top: 30px;
    padding-bottom: 10px;
}
.title h1 {
    display:inline;
}
.title h1:after {
    content: " / ";
    color: #777;
    font-weight: normal;
}

.status {
    float:right;
    font-size:.7em;
    padding-top:50px;
}

.mainmenu {
    font-size:.8em;
    clear:both;
    padding:10px;
    background:#eaeaea linear-gradient(#fafafa, #eaeaea) repeat-x;
    border:1px solid #eaeaea;
    border-radius:5px;
}

.mainmenu a {
    padding: 10px 20px;
    text-decoration:none;
    color: #777;
    border-right:1px solid #eaeaea;
}
.mainmenu a.active,
.mainmenu a:hover {
    color: #000;
    border-bottom:2px solid #D26911;
}

.submenu {
    font-size: .75em;
    margin-top: 10px;
    padding: 10px;
    border-bottom: 1px solid #ccc;
}

.submenu a {
    padding: 10px 20px;
    text-decoration:none;
    color: #777;
}

.submenu a:hover {
    border: 1px solid #ccc;
    border-bottom: 1px solid #fff;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}

.content {
    padding-top: 10px;
    font-size:.9em;
    color: #444;
}

.udiff, .sbsdiff,
.content blockquote {
    font-size: .85em !important;
    overflow: auto;
    border: 1px solid #ccc;
    border-radius: 5px;
}
.content blockquote {
    padding: 0 15px;
}

table.report {
    cursor: auto;
    border-radius: 5px;
    border: 1px solid #ccc;
    margin: 1em 0;
}
.report td, .report th {
   border: 0;
   font-size: .8em;
   padding: 10px;
}
.report td:first-child {
    border-top-left-radius: 5px;
}
.report tbody tr:last-child td:first-child {
    border-bottom-left-radius: 5px;
}
.report td:last-child {
    border-top-right-radius: 5px;
}
.report tbody tr:last-child {
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}
.report tbody tr:last-child td:last-child {
    border-bottom-right-radius: 5px;
}
.report th {
    cursor: pointer;
}
.report thead+tbody tr:hover {
    background-color: #f5f9fc !important;
}

td.tktDspLabel {
    max-width: 70px;
    text-align: right;
}
td.tktDspValue {
    max-width: 800px;
    text-align: left;
    vertical-align: top;
    background-color: #f5f9fc;
}
td.tktDspValue pre {
    white-space: pre-wrap;
}

.footer {
    border-top: 1px solid #ccc;
    padding: 10px;
    font-size:.7em;
    margin-top: 10px;
    color: #ccc;
}
Added skins/etienne1/footer.txt.












>
>
>
>
>
>
1
2
3
4
5
6
<div class="footer">
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
Fossil version $manifest_version $manifest_date
</div>
</body></html>
Added skins/etienne1/header.txt.
















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
<html>
  <head>
    <base href="$baseurl/$current_page" />
    <title>$<project_name>: $<title></title>
      <link rel="alternate" type="application/rss+xml" title="RSS Feed"
            href="$home/timeline.rss" />
      <link rel="stylesheet" href="$home/style.css?default" type="text/css"
            media="screen" />
  </head>

  <body>
    <div class="header">
      <div class="title"><h1>$<project_name></h1>$<title></div>
        <div class="status"><th1>
     if {[info exists login]} {
       html "$login — <a href='$home/login'>Logout</a>\n"
     } else {
       html "<a href='$home/login'>Login</a>\n"
     }
        </th1></div>
    </div>

    <div class="mainmenu">
      <th1>
proc isin {val lst} {
    set tot [llength $lst]
    for {set i 0} {$i < $tot} {set i [expr {$i + 1}]} {
        set cur [lindex $lst $i]
        if {$val eq $cur} {
            return 0
        }
    }
    return 1
}

proc menulink {pagename url name} {
    upvar current_page current
    upvar home home

    set compsetup [string compare [string range $current 0 4] setup]
    set comphome [string compare [string range $current 0 3] home]
    set comptag [string compare $current tagtimeline]
    set compbr [string compare $current brtimeline]
    set compdir [isin $current "artifact ci finfo hexdump"]
    set comptl [string compare $current info]
    set comptkt [isin $current "modreq rptedit tktnew rptsql rptview"]

    html "<a href='$home$url'"

    if {$pagename eq $current
        || ($pagename eq "home" && $comphome == 0)
        || ($pagename eq "setup" && $compsetup == 0)
        || ($pagename eq "taglist" && $comptag == 0)
        || ($pagename eq "dir" && $compdir == 0)
        || ($pagename eq "timeline" && $comptl == 0)
        || ($pagename eq "reportlist" && $comptkt == 0)
        || ($pagename eq "brlist" && $compbr == 0)
    } {
        html " class='active' "
    }

    html ">$name</a>"
}

menulink "home" $index_page Home

if {[anycap jor]} {
    menulink "timeline" "/timeline" Timeline
}
if {[hascap oh]} {
    menulink "dir" "/dir?ci=tip" Files
}
if {[hascap o]} {
    menulink "brlist" "/brlist" Branches
    menulink "taglist" "/taglist" Tags
}
if {[hascap r]} {
    menulink "reportlist" "/reportlist" Tickets
}
if {[hascap j]} {
    menulink "wiki" "/wiki" Wiki
}
if {[hascap s]} {
    menulink "setup" "/setup" Admin
} elseif {[hascap a]} {
    menulink "setup_ulist" "/setup_ulist" Users
}
</th1></div>
Changes to src/main.mk.
138
139
140
141
142
143
144



145
146
147
148
149
150
151
  $(SRCDIR)/../skins/black_and_white/header.txt \
  $(SRCDIR)/../skins/default/css.txt \
  $(SRCDIR)/../skins/default/footer.txt \
  $(SRCDIR)/../skins/default/header.txt \
  $(SRCDIR)/../skins/enhanced1/css.txt \
  $(SRCDIR)/../skins/enhanced1/footer.txt \
  $(SRCDIR)/../skins/enhanced1/header.txt \



  $(SRCDIR)/../skins/khaki/css.txt \
  $(SRCDIR)/../skins/khaki/footer.txt \
  $(SRCDIR)/../skins/khaki/header.txt \
  $(SRCDIR)/../skins/plain_gray/css.txt \
  $(SRCDIR)/../skins/plain_gray/footer.txt \
  $(SRCDIR)/../skins/plain_gray/header.txt \
  $(SRCDIR)/../skins/rounded1/css.txt \







>
>
>







138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
  $(SRCDIR)/../skins/black_and_white/header.txt \
  $(SRCDIR)/../skins/default/css.txt \
  $(SRCDIR)/../skins/default/footer.txt \
  $(SRCDIR)/../skins/default/header.txt \
  $(SRCDIR)/../skins/enhanced1/css.txt \
  $(SRCDIR)/../skins/enhanced1/footer.txt \
  $(SRCDIR)/../skins/enhanced1/header.txt \
  $(SRCDIR)/../skins/etienne1/css.txt \
  $(SRCDIR)/../skins/etienne1/footer.txt \
  $(SRCDIR)/../skins/etienne1/header.txt \
  $(SRCDIR)/../skins/khaki/css.txt \
  $(SRCDIR)/../skins/khaki/footer.txt \
  $(SRCDIR)/../skins/khaki/header.txt \
  $(SRCDIR)/../skins/plain_gray/css.txt \
  $(SRCDIR)/../skins/plain_gray/footer.txt \
  $(SRCDIR)/../skins/plain_gray/header.txt \
  $(SRCDIR)/../skins/rounded1/css.txt \
Changes to src/skins.c.
43
44
45
46
47
48
49

50
51
52
53
54
55
56
} aBuiltinSkin[] = {
  { "Default",                           "default",           0 },
  { "Plain Gray, No Logo",               "plain_gray",        0 },
  { "Khaki, No Logo",                    "khaki",             0 },
  { "Black & White, Menu on Left",       "black_and_white",   0 }, 
  { "Shadow boxes & Rounded Corners",    "rounded1",          0 },
  { "Enhanced Default",                  "enhanced1",         0 },

};

/*
** For a skin named zSkinName, compute the name of the CONFIG table
** entry where that skin is stored and return it.
**
** Return NULL if zSkinName is NULL or an empty string.







>







43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
} aBuiltinSkin[] = {
  { "Default",                           "default",           0 },
  { "Plain Gray, No Logo",               "plain_gray",        0 },
  { "Khaki, No Logo",                    "khaki",             0 },
  { "Black & White, Menu on Left",       "black_and_white",   0 }, 
  { "Shadow boxes & Rounded Corners",    "rounded1",          0 },
  { "Enhanced Default",                  "enhanced1",         0 },
  { "Similar to GitHub",                 "etienne1",          0 },
};

/*
** For a skin named zSkinName, compute the name of the CONFIG table
** entry where that skin is stored and return it.
**
** Return NULL if zSkinName is NULL or an empty string.
Changes to win/Makefile.mingw.
491
492
493
494
495
496
497



498
499
500
501
502
503
504
  $(SRCDIR)/../skins/black_and_white/header.txt \
  $(SRCDIR)/../skins/default/css.txt \
  $(SRCDIR)/../skins/default/footer.txt \
  $(SRCDIR)/../skins/default/header.txt \
  $(SRCDIR)/../skins/enhanced1/css.txt \
  $(SRCDIR)/../skins/enhanced1/footer.txt \
  $(SRCDIR)/../skins/enhanced1/header.txt \



  $(SRCDIR)/../skins/khaki/css.txt \
  $(SRCDIR)/../skins/khaki/footer.txt \
  $(SRCDIR)/../skins/khaki/header.txt \
  $(SRCDIR)/../skins/plain_gray/css.txt \
  $(SRCDIR)/../skins/plain_gray/footer.txt \
  $(SRCDIR)/../skins/plain_gray/header.txt \
  $(SRCDIR)/../skins/rounded1/css.txt \







>
>
>







491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
  $(SRCDIR)/../skins/black_and_white/header.txt \
  $(SRCDIR)/../skins/default/css.txt \
  $(SRCDIR)/../skins/default/footer.txt \
  $(SRCDIR)/../skins/default/header.txt \
  $(SRCDIR)/../skins/enhanced1/css.txt \
  $(SRCDIR)/../skins/enhanced1/footer.txt \
  $(SRCDIR)/../skins/enhanced1/header.txt \
  $(SRCDIR)/../skins/etienne1/css.txt \
  $(SRCDIR)/../skins/etienne1/footer.txt \
  $(SRCDIR)/../skins/etienne1/header.txt \
  $(SRCDIR)/../skins/khaki/css.txt \
  $(SRCDIR)/../skins/khaki/footer.txt \
  $(SRCDIR)/../skins/khaki/header.txt \
  $(SRCDIR)/../skins/plain_gray/css.txt \
  $(SRCDIR)/../skins/plain_gray/footer.txt \
  $(SRCDIR)/../skins/plain_gray/header.txt \
  $(SRCDIR)/../skins/rounded1/css.txt \
Changes to win/Makefile.msc.
329
330
331
332
333
334
335



336
337
338
339
340
341
342
        $(SRCDIR)\../skins/black_and_white/header.txt \
        $(SRCDIR)\../skins/default/css.txt \
        $(SRCDIR)\../skins/default/footer.txt \
        $(SRCDIR)\../skins/default/header.txt \
        $(SRCDIR)\../skins/enhanced1/css.txt \
        $(SRCDIR)\../skins/enhanced1/footer.txt \
        $(SRCDIR)\../skins/enhanced1/header.txt \



        $(SRCDIR)\../skins/khaki/css.txt \
        $(SRCDIR)\../skins/khaki/footer.txt \
        $(SRCDIR)\../skins/khaki/header.txt \
        $(SRCDIR)\../skins/plain_gray/css.txt \
        $(SRCDIR)\../skins/plain_gray/footer.txt \
        $(SRCDIR)\../skins/plain_gray/header.txt \
        $(SRCDIR)\../skins/rounded1/css.txt \







>
>
>







329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
        $(SRCDIR)\../skins/black_and_white/header.txt \
        $(SRCDIR)\../skins/default/css.txt \
        $(SRCDIR)\../skins/default/footer.txt \
        $(SRCDIR)\../skins/default/header.txt \
        $(SRCDIR)\../skins/enhanced1/css.txt \
        $(SRCDIR)\../skins/enhanced1/footer.txt \
        $(SRCDIR)\../skins/enhanced1/header.txt \
        $(SRCDIR)\../skins/etienne1/css.txt \
        $(SRCDIR)\../skins/etienne1/footer.txt \
        $(SRCDIR)\../skins/etienne1/header.txt \
        $(SRCDIR)\../skins/khaki/css.txt \
        $(SRCDIR)\../skins/khaki/footer.txt \
        $(SRCDIR)\../skins/khaki/header.txt \
        $(SRCDIR)\../skins/plain_gray/css.txt \
        $(SRCDIR)\../skins/plain_gray/footer.txt \
        $(SRCDIR)\../skins/plain_gray/header.txt \
        $(SRCDIR)\../skins/rounded1/css.txt \