1 package be
.nikiroo
.fanfix
.library
.web
.templates
;
5 import be
.nikiroo
.fanfix
.Instance
;
6 import be
.nikiroo
.fanfix
.bundles
.UiConfig
;
7 import be
.nikiroo
.fanfix
.library
.Template
;
8 import be
.nikiroo
.utils
.Version
;
11 * Utility class to retrieve and fill HTML templates for Fanfix web server.
15 public class WebLibraryServerTemplates
{
16 static private WebLibraryServerTemplates instance
= new WebLibraryServerTemplates();
19 * Get the (unique) instance of this {@link WebLibraryServerTemplates}.
21 * @return the (unique) instance
23 static public WebLibraryServerTemplates
getInstance() {
27 public Template
bookline(String luid
, String href
, String title
,
28 String author
, boolean cached
) {
30 String cachedClass
= "cached";
31 String cachedValue
= "◉";
33 cachedClass
= "uncached";
34 cachedValue
= "○";
37 return new Template(getClass(), "bookline.html") //
39 .set("cachedClass", cachedClass
) //
40 .set("cached", cachedValue
) //
42 .set("title", title
) //
43 .set("author", author
) //
47 public Template
index(boolean banner
, List
<Template
> content
) {
48 String favicon
= "favicon.ico";
49 String icon
= Instance
.getInstance().getUiConfig()
50 .getString(UiConfig
.PROGRAM_ICON
);
52 favicon
= "icon_" + icon
.replace("-", "_") + ".png";
55 Template index
= new Template(getClass(), "index.html") //
56 .set("title", "Fanfix") //
57 .set("favicon", favicon
) //
58 .set("content", content
) //
62 index
.set("banner", new Template(getClass(), "index.banner.html") //
63 .set("favicon", favicon
) //
64 .set("version", Version
.getCurrentVersion().toString()) //
67 index
.set("banner", "");
73 public Template
login(String url
) {
74 return new Template(getClass(), "login.html") //
79 public Template
message(String message
, boolean error
) {
80 return new Template(getClass(), "message.html") //
81 .set("class", error ?
"message error" : "message") //
82 .set("message", message
) //
86 public Template
browser(String selectedValue
, String filter
,
87 List
<Template
> selects
) {
88 return new Template(getClass(), "browser.html") //
89 .set("sourcesSelected",
90 "sources".equals(selectedValue
) ?
"selected='selected'"
92 .set("authorsSelected",
93 "authors".equals(selectedValue
) ?
"selected='selected'"
96 "tags".equals(selectedValue
) ?
"selected='selected'"
98 .set("filter", filter
) //
99 .set("selects", selects
) //
103 public Template
browserOption(String name
, String value
,
104 String selectedValue
) {
105 return new Template(getClass(), "browser.option.html") //
106 .set("value", value
) //
108 value
.equals(selectedValue
) ?
"selected='selected'"
110 .set("name", name
) //
114 public Template
browserSelect(String name
, String value
,
115 List
<Template
> options
) {
116 return new Template(getClass(), "browser.select.html") //
117 .set("name", name
) //
118 .set("value", value
) //
119 .set("options", options
) //
123 public Template
viewerDesc(String title
, String href
, String cover
,
124 List
<Template
> desclines
) {
125 return new Template(getClass(), "viewer.desc.html") //
126 .set("title", title
) //
127 .set("href", href
) //
128 .set("cover", cover
) //
129 .set("details", desclines
) //
133 public Template
viewerDescline(String key
, String value
) {
134 return new Template(getClass(), "viewer.descline.html") //
136 .set("value", value
) //
140 // href NULL means no forward link
141 public Template
viewerImage(String src
, String href
, String zoomStyle
) {
142 return new Template(getClass(),
143 href
== null ?
"viewer.image.nolink.html" : "viewer.image.html") //
145 .set("href", href
) //
146 .set("zoomStyle", zoomStyle
) //
150 public Template
viewerText(Template desc
, String content
) {
151 return new Template(getClass(), "viewer.text.html") //
152 .set("desc", desc
) //
153 .set("content", content
) //
157 public Template
viewerLink(String name
, String link
, boolean selected
) {
158 return new Template(getClass(), "viewer.link.html") //
159 .set("link", link
) //
160 .set("class", selected ?
"selected" : "") //
161 .set("name", name
) //
165 public Template
viewerNavbar(int current
, List
<Template
> links
,
166 String hrefFirst
, String hrefPrevious
, String hrefNext
,
167 String hrefLast
, boolean disabledFirst
, boolean disabledPrevious
,
168 boolean disabledNext
, boolean disabledLast
) {
169 return new Template(getClass(), "viewer.navbar.html") //
170 .set("disabledFirst",
171 disabledFirst ?
"disabled='disabled'" : "") //
172 .set("disabledPrevious",
173 disabledPrevious ?
"disabled='disabled'" : "") //
174 .set("disabledNext", disabledNext ?
"disabled='disabled'" : "") //
175 .set("disabledLast", disabledLast ?
"disabled='disabled'" : "") //
176 .set("hrefFirst", hrefFirst
) //
177 .set("hrefPrevious", hrefPrevious
) //
178 .set("hrefNext", hrefNext
) //
179 .set("hrefLast", hrefLast
) //
180 .set("current", Integer
.toString(current
)) //
181 .set("links", links
) //
185 // supported numberOfButtons = 4 or 1 or the moment
186 public Template
viewerOptionbar(int numberOfButtons
,
187 List
<Template
> buttons
) {
188 return new Template(getClass(), "viewer.optionbar.html") //
189 .set("classSize", "s" + numberOfButtons
) //
190 .set("buttons", buttons
) //
194 public Template
viewerOptionbarButton(String value
, String href
,
195 String className
, boolean disabled
) {
196 return new Template(getClass(), "viewer.optionbar.button.html") //
197 .set("disabled", disabled ?
"disabled='disabled'" : "") //
198 .set("class", className
) //
199 .set("href", href
) //
200 .set("value", value
) //