<target name="JobEngine" sequenceNumber="486">\r
<locations>\r
<location path="${workspace_loc}/-dependencies/target/repository/plugins" type="Directory"/>\r
+ <location path="${workspace_loc}/hu.user.theme.userdark/target/" type="Directory"/>\r
</locations>\r
<includeBundles>\r
<plugin id="cglib"/>\r
<plugin id="org.objectweb.asm.commons"/>\r
<plugin id="com.sun.jna.platform"/>\r
<plugin id="user.theme.userdark"/>\r
+ <plugin id="org.apache.felix.fileinstall"/>\r
</includeBundles>\r
<environment>\r
<os>win32</os>\r
<packaging>jar</packaging>\r
</configuration>\r
</execution>\r
- <execution>\r
- <id>install3</id>\r
- <phase>package</phase>\r
- <goals>\r
- <goal>install-file</goal>\r
- </goals>\r
- <configuration>\r
- <file>libs/userdark-1.0.0.jar</file>\r
- <groupId>user.theme</groupId>\r
- <artifactId>userdark</artifactId>\r
- <version>1.0.0</version>\r
- <packaging>jar</packaging>\r
- </configuration>\r
- </execution>\r
</executions>\r
</plugin>\r
<plugin>\r
<id>default-cli</id>\r
<configuration>\r
<artifacts>\r
- <artifact>\r
- <id>user.theme:userdark:1.0.0</id>\r
+ <artifact>\r
+ <id>org.apache.felix:org.apache.felix.fileinstall:3.7.4</id>\r
</artifact>\r
<artifact>\r
<id>org.apache.felix:org.apache.felix.gogo.command:0.12.0</id>\r
<layout>p2</layout>\r
<url>file:${project.basedir}/../-dependencies/target/repository/</url>\r
</repository>\r
+ <repository>\r
+ <id>theme</id>\r
+ <layout>p2</layout>\r
+ <url>file:${project.basedir}/../hu.user.theme.userdark/target/repository/</url>\r
+ </repository>\r
</repositories>\r
\r
<build>\r
<plugin id="org.apache.commons.io"/>\r
<plugin id="org.apache.commons.lang"/>\r
<plugin id="org.apache.commons.net"/>\r
+ <plugin id="org.apache.felix.fileinstall"/>\r
<plugin id="org.apache.felix.gogo.command" version="0.12.0"/>\r
<plugin id="org.apache.felix.gogo.runtime" version="0.12.0"/>\r
<plugin id="org.apache.felix.gogo.shell" version="0.12.0"/>\r
datasource:\r
mediacube:\r
- url: jdbc:db2://localvm:50000/testmc\r
+ url: jdbc:db2://localvm:50000/mc\r
user: db2admin\r
password: password\r
external-indexer: true\r
login-timeout: 5\r
pool-size: 10\r
mediacube-nosql:\r
- url: jdbc:db2://localvm:50000/testmc\r
+ url: jdbc:db2://localvm:50000/mc\r
user: db2admin\r
password: password\r
schema: test\r
</executions>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.7</version>
- <extensions>true</extensions>
- <configuration>
- <excludeDependencies>*;scope=provided|compile|runtime</excludeDependencies>
- <instructions>
- <_include>${project.basedir}/src/archive/META-INF/MANIFEST.MF</_include>
- <Bundle-Version>${project.version}</Bundle-Version>
- <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
- <Export-Package>*</Export-Package>
- <Import-Package>*</Import-Package>
- </instructions>
- </configuration>
+ <groupId>org.reficio</groupId>
+ <artifactId>p2-maven-plugin</artifactId>
+ <version>1.7.0</version>
+ <executions>
+ <execution>
+ <id>default-cli</id>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <id>user.theme:userdark:1.0.0</id>
+ <transitive>false</transitive>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.3.1</version>
- <configuration>
- <outputDirectory>../-dependencies/libs</outputDirectory>
- </configuration>
- </plugin>
+
</plugins>
</build>
</project>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>user.theme</groupId>
+ <artifactId>userdark</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0.0</version>
+ <name>ZK User Dark</name>
+ <description>ZK User Dark Theme</description>
+ <properties>
+ <zk.version>8.0.3</zk.version>
+ </properties>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>zkmaven</id>
+ <name>ZK Maven Plugin Repository</name>
+ <url>http://mavensync.zkoss.org/maven2</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>maven-bundle-plugin</id>
+ <name>bnd maven plugin</name>
+ <url>http://repo1.maven.org/maven2</url>
+ </pluginRepository>
+ </pluginRepositories>
+ <dependencies>
+ <dependency>
+ <groupId>org.zkoss.zk</groupId>
+ <artifactId>zk</artifactId>
+ <version>${zk.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.zkoss.zk</groupId>
+ <artifactId>zul</artifactId>
+ <version>${zk.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.zkoss.zk</groupId>
+ <artifactId>zkmax</artifactId>
+ <version>${zk.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <sourceDirectory>${project.basedir}/src/</sourceDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/archive</directory>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.zkoss.maven</groupId>
+ <artifactId>zkless-engine-maven-plugin</artifactId>
+ <version>1.0.0</version>
+ <executions>
+ <execution>
+ <id>compile-less</id>
+ <goals>
+ <goal>lessc</goal>
+ </goals>
+ <configuration>
+ <sourceDirectory>${project.basedir}/src/archive</sourceDirectory>
+ <outputDirectory>${project.basedir}/target/classes</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.3.7</version>
+ <extensions>true</extensions>
+ <configuration>
+ <excludeDependencies>*;scope=provided|compile|runtime</excludeDependencies>
+ <instructions>
+ <_include>${project.basedir}/src/archive/META-INF/MANIFEST.MF</_include>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3.1</version>
+ <configuration>
+ <outputDirectory>../-dependencies/libs</outputDirectory>
+ </configuration>
+ </plugin>
+<!--
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.7</version>
+ <executions>
+ <execution>
+ <id>copy-resources-1</id>
+ <phase>install</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>../-dependencies/target/repository/plugins</outputDirectory>
+ <resources>
+ <resource>
+ <directory>../-dependencies/libs/</directory>
+ <includes>user.theme.userdark-1.0.0.jar</includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ -->
+ </plugins>
+ </build>
+</project>
Manifest-Version: 1.0
-
+Bundle-ManifestVersion: 2
+Bundle-Name: user.theme.userdark
+Bundle-SymbolicName: user.theme.userdark
+Bundle-Version: 1.0.0
+Created-By: 1.8.0_202 (Oracle Corporation)
+Export-Package: metainfo.zk,org.zkoss.theme.___THEME_NAME___;uses:="or
+ g.zkoss.zk.ui,org.zkoss.zk.ui.util",org.zkoss.theme.userdark;uses:="o
+ rg.zkoss.zk.ui,org.zkoss.zk.ui.util",web.userdark.js.zkex.grid.css,we
+ b.userdark.js.zkex.inp.css,web.userdark.js.zkex.layout.css,web.userda
+ rk.js.zkex.menu.css,web.userdark.js.zkmax.big.css,web.userdark.js.zkm
+ ax.inp.css,web.userdark.js.zkmax.inp.ext,web.userdark.js.zkmax.layout
+ .css,web.userdark.js.zkmax.nav.css,web.userdark.js.zkmax.wgt.css,web.
+ userdark.js.zul.box.css,web.userdark.js.zul.db.css,web.userdark.js.zu
+ l.grid.css,web.userdark.js.zul.inp.css,web.userdark.js.zul.layout.css
+ ,web.userdark.js.zul.menu.css,web.userdark.js.zul.mesh.css,web.userda
+ rk.js.zul.sel.css,web.userdark.js.zul.tab.css,web.userdark.js.zul.wgt
+ .css,web.userdark.js.zul.wnd.css,web.userdark.zkex.img.colorbox,web.u
+ serdark.zkmax.css,web.userdark.zkmax.img.big,web.userdark.zkmax.img.i
+ np,web.userdark.zkmax.img.tablet,web.userdark.zkmax.img.tablet.big,we
+ b.userdark.zkmax.img.tablet.colorbox,web.userdark.zkmax.img.tablet.gr
+ id,web.userdark.zkmax.img.tablet.inp,web.userdark.zkmax.img.tablet.la
+ yout,web.userdark.zkmax.img.tablet.menu,web.userdark.zkmax.img.tablet
+ .paging,web.userdark.zkmax.img.tablet.popup,web.userdark.zkmax.img.ta
+ blet.tab,web.userdark.zkmax.img.tablet.tree,web.userdark.zkmax.img.ta
+ blet.wnd,web.userdark.zul.css,web.userdark.zul.img,web.userdark.zul.i
+ mg.button,web.userdark.zul.img.colorbox,web.userdark.zul.img.common,w
+ eb.userdark.zul.img.errbox,web.userdark.zul.img.grid,web.userdark.zul
+ .img.input,web.userdark.zul.img.layout,web.userdark.zul.img.menu,web.
+ userdark.zul.img.misc,web.userdark.zul.img.msgbox,web.userdark.zul.im
+ g.paging,web.userdark.zul.img.popup,web.userdark.zul.img.slider,web.u
+ serdark.zul.img.splt,web.userdark.zul.img.tab,web.userdark.zul.img.tr
+ ee,web.userdark.zul.img.wnd
+Import-Package: org.zkoss.zk.ui;resolution:=optional,org.zkoss.zk.ui.u
+ til;resolution:=optional,org.zkoss.zul.theme;resolution:=optional
+Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
\ No newline at end of file
.z-footer-content {
font-family: @baseContentFontFamily;
font-size: @fontSizeMedium;
+ font-weight: normal;
color: @textColorGrayLight;
padding: 4px 5px;
line-height: @baseButtonHeight;
overflow: hidden;
}
.z-column-content {
- font-weight: bold;
+//@@@
+ //font-weight: bold;
padding: 4px 5px 3px;
}
.z-group-content,
font-weight: bold;
}
}
+
+.z-grid-body {
+ background: @textColorDark;
+}
+
+.z-grid-emptybody table {
+ height: 100%;
+}
+
//Cell Content
.z-grid-body .z-cell {
font-family: @baseContentFontFamily;
background: @meshGroupFooterBackgroundColorIE8;
}
}
+
+.z-paging-input {
+ color: @baseTextColor;
+ background: @textColorDark;
+}
\ No newline at end of file
display: block;\r
padding: 3px 2px;\r
position: relative;\r
- text-shadow: 0 1px #FFFFFF;\r
+//@@@ \r
+// text-shadow: 0 1px #FFFFFF;\r
+//@@@\r
+ color: @baseTextColor;\r
min-height: 20px; //ZK-2783: give default height to empty item\r
}\r
.z-comboitem-inner,\r
.z-comboitem a:visited {\r
font-size: @fontSizeMedium;\r
font-weight: normal;\r
- color: @baseTextColor;\r
text-decoration: none;\r
}\r
.z-comboitem:hover {\r
border: 0;\r
padding: 0;\r
margin: 0;\r
- background: transparent none repeat 0 0;\r
+//@@@ \r
+// background: transparent none repeat 0 0;\r
+ background: @popupBackgroundColor;\r
position: relative;\r
list-style-image: none;\r
list-style-position: outside;\r
font-weight: normal;\r
display: inline-block;\r
line-height: @baseIconHeight;\r
- text-shadow: 0 1px #FFFFFF;\r
+//@@@ \r
+/* text-shadow: 0 1px #FFFFFF;*/\r
\r
// align for img + text\r
img ~ & {\r
margin-right: 3px;\r
}\r
&-content {\r
- color: @textColorGray;\r
+ color: @baseTextColor;\r
display: block;\r
border: 1px solid transparent;\r
.borderRadius(@baseBorderRadius);\r
&-body {
position: relative;
overflow: hidden;
+ background: @meshStripeBackgroundColor;
.resetTable();
}
+ &-emptybody {
+ height: 100%;
+ }
&-emptybody td {
.fontStyle(@baseContentFontFamily, @fontSizeMedium, normal, @disabledColor);
font-style: italic;
overflow: hidden;
}
.z-listheader-content {
- font-weight: bold;
+//@@@
+//font-weight: bold;
padding: 4px 5px 3px;
position: relative;
}
}\r
\r
.z-tab-text {\r
- font-weight: bold;\r
+//@@@ \r
+// font-weight: bold;\r
cursor: default;\r
white-space: nowrap;\r
}\r
width: 100%;\r
border-collapse: separate;\r
border-spacing: 0;\r
- border-bottom: 1px solid @baseBorderColor;\r
+//@@@ \r
+// border-bottom: 1px solid @baseBorderColor;\r
margin: 0;\r
padding-left: 0;\r
padding-top: 0;\r
position: relative;\r
cursor: pointer;\r
float: left;\r
- \r
+//@@@\r
+ background: @textColorDark;\r
\r
&-content {\r
display: block;\r
}\r
&-selected {\r
.resetGradient();\r
- background: @tabSelectedBackgroundColor;\r
+//@@@\r
+ \r
+// background: @tabSelectedBackgroundColor;\r
.boxShadow('0 1px 0 #FFFFFF');\r
- &:hover {\r
- .resetGradient();\r
- background: @tabSelectedBackgroundColor;\r
- }\r
+//@@@\r
+// &:hover {\r
+// .resetGradient();\r
+// background: @tabSelectedBackgroundColor;\r
+// }\r
.z-tab-button {\r
.opacity(1);\r
}\r
@import "~./zul/less/_header.less";\r
\r
.z-button {\r
+ //@@@\r
.fontStyle(@baseTitleFontFamily, @fontSizeMedium, normal, @baseTextColor);\r
min-height: @baseButtonHeight;\r
- border: 1px solid @buttonBorderColor;\r
+ //@@@\r
+ border: 1px solid transparent;\r
.borderRadius(@baseBorderRadius);\r
- padding: 3px 12px;\r
- line-height: @baseLineHeight;\r
+ //@@@\r
+ padding: 3px 6px 3px;\r
+ //@@@\r
+ //line-height: @baseLineHeight;\r
.verGradient(@buttonGradientStart, @buttonGradientEnd);\r
- text-shadow: 0 1px #FFFFFF;\r
+ //@@@\r
+ //text-shadow: 0 1px #FFFFFF;\r
cursor: pointer;\r
white-space: nowrap;\r
\r
.z-toolbar-tabs .z-toolbar-content,\r
.z-toolbar-tabs .z-toolbar-content span,\r
.z-toolbar-content, .z-toolbar-content span {\r
- font-size: @fontSizeSmall;\r
+ font-size: @fontSizeMedium;\r
+// font-size: @fontSizeSmall;\r
}\r
.z-toolbar-panel .z-toolbar-content,\r
.z-toolbar-panel .z-toolbar-content span {\r
display: inline-block;\r
border: 1px solid transparent;\r
.borderRadius(@borderRadiusSmall);\r
- margin: 0 2px;\r
- padding: 1px 0;\r
- line-height: @baseLineHeight;\r
+// @@@\r
+// margin: 0 2px;\r
+ padding: 3px 6px 3px;\r
+// @@@\r
+// line-height: @baseLineHeight;\r
position: relative;\r
cursor: pointer;\r
\r
.verGradient(@checkedGradientStart, @checkedGradientEnd);\r
}\r
.z-toolbarbutton-content {\r
- .fontStyle(@baseTitleFontFamily, @fontSizeSmall, normal, @baseTextColor);\r
- padding: 2px;\r
- line-height: @baseLineHeight + 6; // 20px for IE to v-align center\r
+ //@@@\r
+ .fontStyle(@baseTitleFontFamily, @fontSizeMedium, normal, @baseTextColor);\r
+ //@@@\r
+ //padding: 2px;\r
+ //@@@\r
+ //line-height: @baseLineHeight + 6; // 20px for IE to v-align center\r
+ //line-height: @baseButtonHeight;\r
+\r
vertical-align: middle;\r
position: relative;\r
- text-shadow: 0 1px #FFFFFF;\r
+//@@@ \r
+/* text-shadow: 0 1px #FFFFFF;*/\r
white-space:nowrap;\r
}\r
\r
.z-window {\r
// ZK-2115: the style should apply [overflow: hidden]\r
.defaultOverflowZoom();\r
- border: 1px solid @windowBorderColor;\r
+ //@@@\r
+ //border: 1px solid @windowBorderColor;\r
.borderRadius(@baseBorderRadius);\r
padding: @windowFramePadding;\r
background: @windowBackgroundColor;\r
.z-center-header,
.z-east-header {
font-size: @baseFontSize;
+ color: @textColorGray;
+ border-bottom: 0;
line-height: 20px;
}
.z-east-splitter,
// -------------------------------------
// Typography
// -------------------------------------
-@baseFontSize: 14px;
+@baseFontSize: 12px;
@baseTitleFontFamily: Verdana;
@baseContentFontFamily: Verdana;
@baseLineHeight: 14px;
// Component Basic Coloring for userdark (all gray colors are changed to blue)
// -------------------------------------
// Font color
-@baseTextColor: #e3e3e3;
-@textColorGray: #e3e3e3;
-@textColorGrayDark: #e3e3e3;
-@textColorGrayLight: #e3e3e3;
-@textColorBlue: #e3e3e3;
-@textColorGreen: #e3e3e3;
-@textColorOrange: #e3e3e3;
+@baseTextColor: #e3e3e3;
+@textColorGray: #808080;
+//@@@
+@textColorDark: #212121;
+@textColorGrayDark: #e3e3e3;
+@textColorGrayLight: #e3e3e3;
+@textColorBlue: #e3e3e3;
+@textColorGreen: #e3e3e3;
+@textColorOrange: #e3e3e3;
// Border color
@baseBorderColor: #1d1d1d;
// Background color
-@baseBackgroundColor: #303030;
-//@baseBackgroundColor: red;
+//#2c3135;//1c1f22 //333333 //#0d1117
+//@@@
+@baseBackgroundColor: #333333;
+//2c3135 dracula
// Gradient background
@baseGradientStart: @baseBackgroundColor;
// Button (used for button, combobutton)
// -------------------------------------
@buttonBorderColor: @baseBorderColor;
-@buttonGradientStart: #1c1c1c;
-@buttonGradientEnd: #1c1c1c;
+//@@@ button color
+@buttonGradientStart: @baseBackgroundColor;
+@buttonGradientEnd: @baseBackgroundColor;
// -------------------------------------
// Input (used for textbox, intbox, spinner, ...)
// -------------------------------------
@inputBorderColor: @baseBorderColor;
-@inputBackgroundColor: #ffffff;
+@inputBackgroundColor: @textColorDark;
// -------------------------------------
// Mesh Table (used for grid, listbox, tree, biglistbox)
// -------------------------------------
@meshTitleBorderColor: @baseBorderColor;
@meshContentBorderColor: @baseBorderColor;
-@meshBackgroundColor: transparent;
-@meshStripeBackgroundColor: #1d1d1d;
+//@@@ list, grid bg
+@meshBackgroundColor: @textColorDark;
+//@@@ odd color
+@meshStripeBackgroundColor: @textColorDark;
@meshFootBackgroundColor: #FAFAFA;
//grid fejlec
@meshTitleHoverStart: #000000;
@meshTitleHoverEnd: #000000;
@meshContentHoverStart: transparent;
@meshContentHoverEnd: transparent;
-@meshContentFocusStart: #82B1C7;
-@meshContentFocusEnd: #82B1C7;
+@meshContentFocusStart: #315463;
+@meshContentFocusEnd: #315463;
@meshAutoPagingRowHeight: 32px;
// -------------------------------------
@hoverColor: #FFFFFF;
@hoverBorderColor: #131313;
@hoverBackgroundColor: transparent;
-@hoverGradientStart: #000000;
-@hoverGradientEnd: #000000;
+@hoverGradientStart: #315463;
+@hoverGradientEnd: #315463;
// Disabled
@disabledColor: #AAAAAA;
@selectedHoverColor: #FFFFFF;
@selectedHoverBorderColor: @baseBorderColor;
@selectedHoverBackgroundColor: darken(@selectedGradientEnd, 3%);
-@selectedHoverGradientStart: #548DA7;
-@selectedHoverGradientEnd: #548DA7;
+//@selectedHoverGradientStart: #548DA7;
+//@selectedHoverGradientEnd: #548DA7;
+//@@@
+@selectedHoverGradientStart: #315463;
+//@@@
+@selectedHoverGradientEnd: #315463;
// Selected Focus (used on listbox, tree, comboitem)
@selectedFocusColor: @selectedColor;
@selectedFocusGradientEnd: #315463;
// Checked (used on menuitem, listbox, tree, toolbarbutton)
-@checkedColor: #000000;
+@checkedColor: @baseTextColor;
@checkedBorderColor: #8E8F8F;
-@checkedBackgroundColor: #000000;
-@checkedGradientStart: #000000;
-@checkedGradientEnd: #000000;
+@checkedBackgroundColor: transparent;
+
+//@@@ checked toolbox button
+//@checkedGradientStart: @baseTextColor;
+@checkedGradientStart: transparent;
+//@checkedGradientEnd: @baseTextColor;
+@checkedGradientEnd: transparent;
// Collapsed (used on Borderlayout)
@collapsedBorderColor: @baseBorderColor;
@calendarSelectedColor: #FFFFFF;
@calendarSelectedHoverColor: #FFFFFF;
@weekendColor: @textColorOrange;
-@weekendBackgroundColor: #F2F2F2;
+@weekendBackgroundColor: @baseBorderColor;
@weekColor: @textColorGrayLight;
@weekofyearColor: #FFFFFF;
@weekofyearBackgroundColor: #636363;
// popup
@popupBorderColor: @baseBorderColor;
-@popupBackgroundColor: @baseBackgroundColor;
-@popupGradientStart: @baseBackgroundColor;
-@popupGradientEnd: @baseBackgroundColor;
+//@@@
+//@popupBackgroundColor: @baseBackgroundColor;
+@popupBackgroundColor: @textColorDark;
+//@@@
+//@popupGradientStart: @baseBackgroundColor;
+@popupGradientStart: @textColorDark;
+//@@@
+//@popupGradientEnd: @baseBackgroundColor;
+@popupGradientEnd: @textColorDark;
// group (group, listgroup)
@groupGradientStart: #E7F6FD;
@menuPopupBackground: @baseBackgroundColor;
@menuSeparatorBorderColor: #838383;
@menuSeparatorBackgroundColor: #B8B8B8;
-@menuPopupSeparatorBorder: #D9F0FC;
-@menuPopupSeparatorBackground: #A2C0CE;
+//@@@
+@menuPopupSeparatorBorder: transparent;
+//@@@
+@menuPopupSeparatorBackground: transparent;
// navbar
@navImageSize: 16px;
}\r
}\r
\r
-<c:if test="${empty c:property('org.zkoss.zul.theme.browserDefault')}">\r
+//@@@\r
+//<c:if test="${empty c:property('org.zkoss.zul.theme.browserDefault')}">\r
+//body {\r
+// margin: 0;\r
+// padding: 0 5px;\r
+//}\r
+//</c:if>\r
body {\r
margin: 0;\r
padding: 0 5px;\r
+ background: @baseBackgroundColor;\r
}\r
-</c:if>\r
\r
//mobile\r
.mobile * {\r
//label\r
.z-label {\r
line-height: normal;\r
- color: green;\r
+//@@@ \r
+ color: @baseTextColor;\r
}\r
.z-label,\r
.z-radio-content,\r
font-family: @baseContentFontFamily;\r
font-size: @fontSizeMedium;\r
font-weight: normal;\r
+//@@@ \r
+ color: @baseTextColor;\r
}\r
\r
.z-temp,\r
.z-selectbox {\r
font-family: @baseContentFontFamily;\r
font-size: @fontSizeMedium;\r
+ background-color: @textColorDark;\r
}\r
\r
//scrollbar\r
.z-macro {\r
display: inline-block;\r
min-width: 1px;\r
-}
\ No newline at end of file
+}\r
\r
</executions>\r
</plugin>\r
- \r
<plugin>\r
<groupId>org.apache.maven.plugins</groupId>\r
<artifactId>maven-resources-plugin</artifactId>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- \r
+\r
+https://www.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml\r
+\r
+ -->\r
+<!DOCTYPE xml>\r
+\r
+<zk>\r
+ <system-config>\r
+ <disable-zscript>false</disable-zscript>\r
+ </system-config>\r
+ <!-- show debug information -->\r
+ <client-config>\r
+ <debug-js>true</debug-js>\r
+ </client-config>\r
+ <library-property>\r
+ <name>org.zkoss.zk.ui.versionInfo.enabled</name>\r
+ <value>true</value>\r
+ </library-property>\r
+ <!-- disable various caches -->\r
+ <library-property>\r
+ <name>org.zkoss.zk.ZUML.cache </name>\r
+ <value>false</value>\r
+ </library-property>\r
+ <library-property>\r
+ <name>org.zkoss.zk.WPD.cache</name>\r
+ <value>false</value>\r
+ </library-property>\r
+ <library-property>\r
+ <name>org.zkoss.zk.WCS.cache</name>\r
+ <value>false</value>\r
+ </library-property>\r
+ <library-property>\r
+ <name>org.zkoss.web.classWebResource.cache</name>\r
+ <value>false</value>\r
+ </library-property>\r
+ <library-property>\r
+ <name>org.zkoss.util.label.cache</name>\r
+ <value>false</value>\r
+ </library-property>\r
+</zk>
\ No newline at end of file
<!DOCTYPE xml>\r
\r
<zk>\r
+ <library-property>\r
+ <name>org.zkoss.zk.config.path</name>\r
+ <value>/WEB-INF/zk-dev.xml</value>\r
+ </library-property>\r
<!-- \r
<library-property>\r
<name>org.zkoss.theme.preferred</name>\r
background-image: none;\r
}\r
\r
-.RED100 .z-toolbarbutton-content {\r
- background: #FFCDD2;\r
-}\r
-\r
-.RED200 .z-toolbarbutton-content {\r
- background: #EF9A9A;\r
-}\r
-\r
-.BROWN100 .z-toolbarbutton-content {\r
-/* background: #D7CCC8; */\r
- background: none;\r
- background-image: none;\r
-}\r
-\r
-.YELLOW200 .z-toolbarbutton-content {\r
- background: #FFF59D;\r
-}\r
-\r
-.INDIGO100 .z-toolbarbutton-content {\r
- background: #C5CAE9; \r
-}\r
-\r
-.INDIGO200 .z-toolbarbutton-content {\r
- background: #9FA8DA;\r
-}\r
-\r
-.BLUE100 .z-toolbarbutton-content {\r
- background: #BBDEFB;\r
-}\r
-\r
-.BLUE200 .z-toolbarbutton-content {\r
- background: #90CAF9;\r
-}\r
-\r
-.TEAL100 .z-toolbarbutton-content {\r
- background: #B2DFDB;\r
-}\r
-\r
-.TEAL200 .z-toolbarbutton-content {\r
- background: #80CBC4;\r
-}\r
\r
.typefilter {\r
font-size: 9px;\r
z-index: 2;\r
}\r
\r
+\r
+\r
+/*\r
+.RED100 .z-toolbarbutton-content {\r
+ background: #FFCDD2;\r
+}\r
+\r
+.RED200 .z-toolbarbutton-content {\r
+ background: #EF9A9A;\r
+}\r
+\r
+.BROWN100 .z-toolbarbutton-content {\r
+ background: #D7CCC8; \r
+}\r
+\r
+.YELLOW200 .z-toolbarbutton-content {\r
+ background: #FFF59D;\r
+}\r
+\r
+.INDIGO100 .z-toolbarbutton-content {\r
+ background: #C5CAE9; \r
+}\r
+\r
+.INDIGO200 .z-toolbarbutton-content {\r
+ background: #9FA8DA;\r
+}\r
+\r
+.BLUE100 .z-toolbarbutton-content {\r
+ background: #BBDEFB;\r
+}\r
+\r
+.BLUE200 .z-toolbarbutton-content {\r
+ background: #90CAF9;\r
+}\r
+\r
+.TEAL100 .z-toolbarbutton-content {\r
+ background: #B2DFDB;\r
+}\r
+\r
+.TEAL200 .z-toolbarbutton-content {\r
+ background: #80CBC4;\r
+}\r
+\r
+*/
\ No newline at end of file
.z-notification-pointer ~ .z-notification-content {\r
height: 50px;\r
}\r
+.details {\r
+ padding: 5px;\r
+ line-height: 1.5em;\r
+ font-size: 10px;\r
+}\r
+.resultTitle {\r
+ font-size:20px; \r
+ font-weight:bold;\r
+ color: navy; \r
+}\r
+.relevant {\r
+ padding: 8px;\r
+ font-size: 10px;\r
+}\r
+++ /dev/null
-.toastjs-container {
- position: absolute; /* Fallback */
- position: fixed;
- top: 5px;
- left: 300px;
- width: calc(100% - 60px);
- max-width: 400px;
-
- transform: translateX(-150%);
- transition: transform 0.3s;
-
- z-index: 100; /* */
-}
-
-.toastjs-container[aria-hidden="false"] {
- transform: translateX(0%);
-}
-
-.toastjs {
- background: #fff;
- padding: 10px 15px 0; /* No bottom padding because the buttons have a margin-bottom */
- border-left-style: solid;
- border-left-width: 5px;
- border-radius: 4px;
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.2);
-}
-
-.toastjs.default {
- border-left-color: #AAAAAA;
-}
-
-.toastjs.success {
- border-left-color: #2ECC40;
-}
-.toastjs.warning {
- border-left-color: #FF851B;
-}
-.toastjs.danger {
- border-left-color: #FF4136;
-}
-
-
-.toastjs-btn {
- background: rgb(240,240,240);
- padding: 5px 10px;
- border: 0;
- border-radius: 4px;
-
- font-family: 'Source Sans Pro', sans-serif;
- font-size: 14px;
-
- display: inline-block;
- margin-right: 10px;
- margin-bottom: 10px;
- cursor: pointer;
-}
-
-.toastjs-btn--custom {
- background: rgb(50,50,50);
- color: #fff;
-}
-
-
-.toastjs-btn:hover,
-.toastjs-btn:focus {
- outline: none;
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.2);
-}
.z-notification-pointer ~ .z-notification-content {\r
height: 50px;\r
}\r
-\r
+.hljs {\r
+ color: #e3e3e3;\r
+ background: #212121;\r
+}\r
+.details {\r
+ padding: 5px;\r
+ line-height: 1.5em;\r
+ font-size: 10px;\r
+}\r
+.resultTitle {\r
+ font-size:20px; \r
+ font-weight:bold;\r
+ color: white; \r
+}\r
+.relevant {\r
+ padding: 8px;\r
+ font-size: 10px;\r
+ color: #e3e3e3; \r
+}\r
--- /dev/null
+@charset "UTF-8";\r
+\r
+:root{\r
+ --tagify-dd-color-primary:#315463;\r
+ --tagify-dd-bg-color: #212121;\r
+}\r
+\r
+.tagify{\r
+/* --tags-border-color:#DDD;*/\r
+/*dark --tags-border-color: #1d1d1d;*/\r
+ --tags-border-color: #1d1d1d;\r
+ --tags-disabled-bg:#F1F1F1;\r
+/* --tags-hover-border-color:#CCC;*/\r
+ --tags-hover-border-color: #cfcfcf;\r
+/* --tags-focus-border-color:#3595f6;*/\r
+ --tags-focus-border-color: #cfcfcf;\r
+\r
+ --tag-bg:#1d1d1d;\r
+ --tag-hover:#D3E2E2;\r
+/*\r
+ --tag-text-color:black;\r
+ --tag-text-color--edit:black;\r
+*/ \r
+ --tag-text-color: white;\r
+ --tag-text-color--edit: white;\r
+/* --tag-pad:0.3em 0.5em;*/\r
+ --tag-inset-shadow-size:1.1em;\r
+ --tag-invalid-color:#D39494;\r
+ --tag-invalid-bg:rgba(211, 148, 148, 0.5);\r
+ --tag-remove-bg:rgba(211, 148, 148, 0.3);\r
+ --tag-remove-btn-color:black;\r
+ --tag-remove-btn-bg:none;\r
+ --tag-remove-btn-bg--hover:#c77777;\r
+ --input-color: #e3e3e3;\r
+ --tag--min-width:1ch;\r
+ --tag--max-width:auto;\r
+ --tag-hide-transition:0.3s;\r
+ --placeholder-color:rgba(0, 0, 0, 0.4);\r
+ --placeholder-color-focus:rgba(0, 0, 0, 0.25);\r
+ --loader-size:.8em;\r
+ --readonly-striped:1;\r
+ display:flex;\r
+ align-items:flex-start;\r
+ flex-wrap:wrap;\r
+ border:1px solid lightgray;\r
+ border:1px solid var(--tags-border-color);\r
+ border-radius: 3px 3px 3px 3px;\r
+ background: #212121;\r
+ padding:0;\r
+ line-height:0;\r
+ cursor:text;\r
+ outline:0;position:relative;\r
+ box-sizing:border-box;\r
+ transition:.1s;\r
+ font: 12px Verdana;\r
+ margin: 3px;\r
+}\r
+\r
+@keyframes tags--bump{\r
+ 30%{\r
+ transform:scale(1.2)\r
+ }\r
+}\r
+\r
+@keyframes rotateLoader{\r
+ to{\r
+ transform:rotate(1turn)\r
+ }\r
+}\r
+\r
+.tagify:hover{\r
+ border-color:#ccc;\r
+ border-color:var(--tags-hover-border-color)\r
+}\r
+\r
+.tagify.tagify--focus{\r
+ transition:0s;\r
+ border: 1px solid ;\r
+/* border-color:#3595f6; */\r
+ border-color: #1d1d1d;\r
+ border-color:var(--tags-focus-border-color)\r
+}\r
+\r
+.tagify[disabled]{\r
+ background:var(--tags-disabled-bg);\r
+ filter:saturate(0);\r
+ opacity:.5;\r
+ pointer-events:none\r
+}\r
+ \r
+.tagify[readonly].tagify--select{\r
+ pointer-events:none\r
+}\r
+\r
+.tagify[readonly]:not(.tagify--mix):not(.tagify--select){\r
+ cursor:default\r
+}\r
+\r
+.tagify[readonly]:not(.tagify--mix):not(.tagify--select)>.tagify__input{\r
+ visibility:hidden;\r
+ width:0;\r
+ margin:2px 0;\r
+}\r
+\r
+.tagify[readonly]:not(.tagify--mix):not(.tagify--select) \r
+.tagify__tag>div{\r
+ padding:.3em .5em;\r
+ padding:var(--tag-pad)\r
+}\r
+\r
+.tagify[readonly]:not(.tagify--mix):not(.tagify--select) \r
+.tagify__tag>div::before{\r
+ animation:readonlyStyles 1s calc(-1s * (var(--readonly-striped) - 1)) paused\r
+}\r
+\r
+@keyframes readonlyStyles{\r
+ 0%{\r
+ background:linear-gradient(45deg,var(--tag-bg) 25%,transparent 25%,transparent 50%,var(--tag-bg) 50%,var(--tag-bg) 75%,transparent 75%,transparent) 0/5px 5px;\r
+ box-shadow:none;\r
+ filter:brightness(.95)\r
+ }\r
+}\r
+\r
+.tagify[readonly]\r
+.tagify__tag__removeBtn{\r
+ display:none\r
+}\r
+ \r
+.tagify--loading \r
+.tagify__input>br:last-child{\r
+ display:none\r
+}\r
+\r
+.tagify--loading \r
+.tagify__input::before{\r
+ content:none\r
+}\r
+\r
+.tagify--loading \r
+.tagify__input::after{\r
+ content:"";\r
+ vertical-align:middle;\r
+ opacity:1;\r
+ width:.7em;\r
+ height:.7em;\r
+ width:var(--loader-size);\r
+ height:var(--loader-size);\r
+ border:3px solid;\r
+ border-color:#eee #bbb #888 transparent;\r
+ border-radius:50%;\r
+ animation:rotateLoader .4s infinite linear;\r
+ content:""!important;\r
+ margin:-2px 0 -2px .5em\r
+}\r
+ \r
+.tagify--loading \r
+.tagify__input:empty::after{\r
+ margin-left:0\r
+}\r
+ \r
+.tagify+input,.tagify+textarea{\r
+ position:absolute!important;\r
+ left:-9999em!important;\r
+ transform:scale(0)!important\r
+}\r
+ \r
+.tagify__tag{\r
+ display:inline-flex;\r
+ align-items:center;\r
+ margin:2px 0 2px 2px;\r
+ position:relative;\r
+ z-index:1;\r
+ outline:0;\r
+ line-height:normal;\r
+ cursor:default;\r
+ transition:.13s ease-out\r
+}\r
+ \r
+.tagify__tag>div{\r
+ vertical-align:top;\r
+ box-sizing:border-box;\r
+ max-width:100%;\r
+ padding:.3em .5em;\r
+ padding:var(--tag-pad,.3em .5em);\r
+ color:#000;\r
+ color:var(--tag-text-color,#000);\r
+ line-height:inherit;\r
+ border-radius:3px;\r
+ white-space:nowrap;\r
+ transition:.13s ease-out\r
+}\r
+ \r
+.tagify__tag>div>*{\r
+ white-space:pre-wrap;\r
+ overflow:hidden;\r
+ text-overflow:ellipsis;\r
+ display:inline-block;\r
+ vertical-align:top;\r
+ min-width:1ch;\r
+ max-width:auto;\r
+ min-width:var(--tag--min-width,1ch);\r
+ max-width:var(--tag--max-width,auto);\r
+ transition:.8s ease,.1s color\r
+}\r
+\r
+.tagify__tag>div>[contenteditable]{\r
+ outline:0;\r
+ -webkit-user-select:text;\r
+ user-select:text;\r
+ cursor:text;\r
+ margin:-2px;\r
+ padding:2px;\r
+ max-width:350px\r
+}\r
+\r
+.tagify__tag>div::before{\r
+ content:"";\r
+ position:absolute;\r
+ border-radius:inherit;\r
+ left:0;\r
+ top:0;\r
+ right:0;\r
+ bottom:0;\r
+ z-index:-1;\r
+ pointer-events:none;\r
+ transition:120ms ease;\r
+ animation:tags--bump .3s ease-out 1;\r
+ box-shadow:0 0 0 1.1em #1d1d1d inset;\r
+ box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-bg,#1d1d1d) inset\r
+}\r
+\r
+.tagify__tag:focus div::before,.tagify__tag:hover:not([readonly]) div::before{\r
+ top:-2px;\r
+ right:-2px;\r
+ bottom:-2px;\r
+ left:-2px;\r
+ box-shadow:0 0 0 1.1em #d3e2e2 inset;\r
+ box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-hover,#d3e2e2) inset\r
+}\r
+\r
+.tagify__tag--loading{\r
+ pointer-events:none\r
+}\r
+\r
+.tagify__tag--loading \r
+.tagify__tag__removeBtn{\r
+ display:none\r
+}\r
+\r
+.tagify__tag--loading::after{\r
+ --loader-size:.4em;\r
+ content:"";\r
+ vertical-align:middle;\r
+ opacity:1;\r
+ width:.7em;\r
+ height:.7em;\r
+ width:var(--loader-size);\r
+ height:var(--loader-size);\r
+ border:3px solid;\r
+ border-color:#eee #bbb #888 transparent;\r
+ border-radius:50%;\r
+ animation:rotateLoader .4s infinite linear;\r
+ margin:0 .5em 0 -.1em\r
+}\r
+\r
+.tagify__tag--flash div::before{\r
+ animation:none\r
+}\r
+\r
+.tagify__tag--hide{\r
+ width:0!important;\r
+ padding-left:0;\r
+ padding-right:0;\r
+ margin-left:0;\r
+ margin-right:0;\r
+ opacity:0;\r
+ transform:scale(0);\r
+ transition:.3s;\r
+ transition:var(--tag-hide-transition,.3s);\r
+ pointer-events:none\r
+}\r
+\r
+.tagify__tag--hide>div>*{\r
+ white-space:nowrap\r
+}\r
+\r
+.tagify__tag.tagify--noAnim>div::before{\r
+ animation:none\r
+}\r
+\r
+.tagify__tag.tagify--notAllowed:not(.tagify__tag--editable) div>span{\r
+ opacity:.5\r
+}\r
+\r
+.tagify__tag.tagify--notAllowed:not(.tagify__tag--editable) div::before{\r
+ box-shadow:0 0 0 1.1em rgba(211,148,148,.5) inset!important;\r
+ box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) \r
+ var(--tag-invalid-bg,rgba(211,148,148,.5)) inset!important;\r
+ transition:.2s\r
+}\r
+ \r
+.tagify__tag[readonly] \r
+.tagify__tag__removeBtn{\r
+ display:none\r
+}\r
+\r
+.tagify__tag[readonly]>div::before{\r
+ animation:readonlyStyles 1s calc(-1s * (var(--readonly-striped) - 1)) paused\r
+}\r
+ \r
+@keyframes readonlyStyles{\r
+ 0%{\r
+ background:linear-gradient(45deg,var(--tag-bg) 25%,transparent 25%,transparent 50%,var(--tag-bg) 50%,var(--tag-bg) 75%,transparent 75%,transparent) 0/5px 5px;\r
+ box-shadow:none;\r
+ filter:brightness(.95)\r
+ }\r
+}\r
+\r
+.tagify__tag--editable>div{\r
+ color:#000;\r
+ color:var(--tag-text-color--edit,#000)\r
+}\r
+ \r
+.tagify__tag--editable>div::before{\r
+ box-shadow:0 0 0 2px #d3e2e2 inset!important;\r
+ box-shadow:0 0 0 2px var(--tag-hover,#d3e2e2) inset!important\r
+}\r
+ \r
+.tagify__tag--editable>.tagify__tag__removeBtn{\r
+ pointer-events:none\r
+}\r
+\r
+.tagify__tag--editable>.tagify__tag__removeBtn::after{\r
+ opacity:0;\r
+ transform:translateX(100%) translateX(5px)\r
+}\r
+ \r
+.tagify__tag--editable.tagify--invalid>div::before{\r
+ box-shadow:0 0 0 2px #d39494 inset!important;\r
+ box-shadow:0 0 0 2px var(--tag-invalid-color,#d39494) inset!important\r
+}\r
+\r
+.tagify__tag__removeBtn{\r
+ order:5;\r
+ display:inline-flex;\r
+ align-items:center;\r
+ justify-content:center;\r
+ border-radius:50px;\r
+ cursor:pointer;\r
+ font:14px/1 Verdana;\r
+ background: #FFFFFF;\r
+/* background:0 0;*/\r
+/* background:var(--tag-remove-btn-bg,none);*/\r
+ color:#000;\r
+ color:var(--tag-remove-btn-color,#000);\r
+ width:14px;\r
+ height:14px;\r
+ margin-right:4.6666666667px;\r
+ margin-left:auto;\r
+ overflow:hidden;\r
+ transition:.2s ease-out\r
+}\r
+\r
+.tagify__tag__removeBtn::after{\r
+ content:"×";\r
+ transition:.3s,color 0s\r
+}\r
+\r
+.tagify__tag__removeBtn:hover{\r
+ color:#fff;\r
+ background:#c77777;\r
+ background:var(--tag-remove-btn-bg--hover,#c77777)\r
+}\r
+\r
+.tagify__tag__removeBtn:hover+div>span{\r
+ opacity:.5\r
+}\r
+\r
+.tagify__tag__removeBtn:hover+div::before{\r
+ box-shadow:0 0 0 1.1em rgba(211,148,148,.3) inset!important;\r
+ box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-remove-bg,rgba(211,148,148,.3)) inset!important;\r
+ transition:box-shadow .2s\r
+}\r
+ \r
+.tagify:not(.tagify--mix)\r
+.tagify__input br{\r
+ display:none\r
+}\r
+\r
+.tagify:not(.tagify--mix)\r
+.tagify__input *{\r
+ display:inline;\r
+ white-space:nowrap\r
+}\r
+\r
+.tagify__input{\r
+ flex-grow:1;\r
+ display:inline-block;\r
+ min-width:110px;\r
+/* margin:5px;*/\r
+ padding:.3em .5em;\r
+ padding:var(--tag-pad,.3em .5em);\r
+ line-height:normal;\r
+ position:relative;\r
+ white-space:pre-wrap;\r
+ color:inherit;\r
+ color:var(--input-color,inherit);\r
+ box-sizing:inherit\r
+}\r
+\r
+.tagify__input:focus{\r
+ outline:0\r
+}\r
+ \r
+.tagify__input:focus::before{\r
+ transition:.2s ease-out;\r
+ opacity:0;\r
+ transform:translatex(6px)\r
+}\r
+\r
+@supports (-ms-ime-align:auto){\r
+ .tagify__input:focus::before{\r
+ display:none\r
+ }\r
+}\r
+\r
+.tagify__input:focus:empty::before{\r
+ transition:.2s ease-out;\r
+ opacity:1;\r
+ transform:none;\r
+ color:rgba(0,0,0,.25);\r
+ color:var(--placeholder-color-focus)\r
+}\r
+ \r
+@-moz-document url-prefix(){\r
+ .tagify__input:focus:empty::after{\r
+ display:none\r
+ }\r
+}\r
+ \r
+.tagify__input::before{\r
+ content:attr(data-placeholder);\r
+ height:1em;\r
+ line-height:1em;\r
+ margin:auto 0;\r
+ z-index:1;\r
+ color:rgba(0,0,0,.4);\r
+ color:var(--placeholder-color);\r
+ white-space:nowrap;\r
+ pointer-events:none;\r
+ opacity:0;\r
+ position:absolute\r
+}\r
+\r
+.tagify__input::after{\r
+ content:attr(data-suggest);\r
+ display:inline-block;\r
+ white-space:pre;\r
+ color:#000;\r
+ opacity:.3;\r
+ pointer-events:none;\r
+ max-width:100px\r
+}\r
+ \r
+.tagify__input \r
+.tagify__tag{\r
+ margin:0 1px\r
+}\r
+ \r
+.tagify--mix{\r
+ display:block\r
+}\r
+ \r
+.tagify--mix .tagify__input{\r
+ padding:5px;\r
+ margin:0;\r
+ width:100%;\r
+ height:100%;\r
+ line-height:1.5;\r
+ display:block\r
+}\r
+\r
+.tagify--mix \r
+.tagify__input::before{\r
+ height:auto;\r
+ display:none;\r
+ line-height:inherit\r
+}\r
+\r
+.tagify--mix\r
+.tagify__input::after{\r
+ content:none\r
+}\r
+\r
+.tagify--select::after{\r
+ content:">";\r
+ opacity:.5;\r
+ position:absolute;\r
+ top:50%;\r
+ right:0;\r
+ bottom:0;\r
+ font:16px monospace;\r
+ line-height:8px;\r
+ height:8px;\r
+ pointer-events:none;\r
+ transform:translate(-150%,-50%) scaleX(1.2) rotate(90deg);\r
+ transition:.2s ease-in-out;\r
+}\r
+\r
+.tagify--select[aria-expanded=true]::after{\r
+ transform:translate(-150%,-50%) rotate(270deg) scaleY(1.2)\r
+}\r
+ \r
+.tagify--select\r
+.tagify__tag{\r
+ position:absolute;\r
+ top:0;\r
+ right:1.8em;\r
+ bottom:0\r
+}\r
+\r
+.tagify--select\r
+.tagify__tag div{\r
+ display:none\r
+}\r
+\r
+.tagify--select \r
+.tagify__input{\r
+ width:100%\r
+}\r
+\r
+.tagify--empty \r
+.tagify__input::before{\r
+ transition:.2s ease-out;\r
+ opacity:1;\r
+ transform:none;\r
+ display:inline-block;\r
+ width:auto\r
+}\r
+ \r
+.tagify--mix \r
+.tagify--empty \r
+.tagify__input::before{\r
+ display:inline-block\r
+}\r
+\r
+.tagify--invalid{\r
+ --tags-border-color:#D39494\r
+}\r
+\r
+.tagify__dropdown{\r
+ position:absolute;\r
+ z-index:9999;\r
+ transform:translateY(1px);\r
+ overflow:hidden\r
+}\r
+ \r
+.tagify__dropdown[placement=top]{\r
+ margin-top:0;\r
+ transform:translateY(-100%)\r
+}\r
+\r
+.tagify__dropdown[placement=top]\r
+.tagify__dropdown__wrapper{\r
+ border-top-width:1.1px;\r
+ border-bottom-width:0\r
+}\r
+ \r
+.tagify__dropdown[position=text]{\r
+ box-shadow:0 0 0 3px rgba(var(--tagify-dd-color-primary),.1);\r
+ font-size:.9em\r
+}\r
+\r
+.tagify__dropdown[position=text] \r
+.tagify__dropdown__wrapper{\r
+ border-width:1px\r
+}\r
+\r
+.tagify__dropdown__wrapper{\r
+ max-height:300px;\r
+ overflow:auto;\r
+ color: #e3e3e3;\r
+ font: 12px Verdana;\r
+ background:var(--tagify-dd-bg-color);\r
+ border:1px solid #3595f6;\r
+ border-color:var(--tagify-dd-color-primary);\r
+ border-bottom-width:1.33px;\r
+ border-top-width:0;\r
+ box-shadow:0 2px 4px -2px rgba(0,0,0,.2);\r
+ transition:.25s cubic-bezier(0,1,.5,1)\r
+}\r
+\r
+.tagify__dropdown--initial \r
+.tagify__dropdown__wrapper{\r
+ max-height:20px;\r
+ transform:translateY(-1em)\r
+}\r
+\r
+.tagify__dropdown--initial[placement=top]\r
+.tagify__dropdown__wrapper{\r
+ transform:translateY(2em)\r
+}\r
+\r
+.tagify__dropdown__item{\r
+ box-sizing:inherit;\r
+ padding:.3em .5em;\r
+ margin:1px;\r
+ cursor:pointer;\r
+ border-radius:2px;\r
+ position:relative;\r
+ outline:0\r
+}\r
+ \r
+.tagify__dropdown__item--active{\r
+ background:#3595f6;\r
+ background:var(--tagify-dd-color-primary);\r
+ color:#fff\r
+}\r
+\r
+.tagify__dropdown__item:active{\r
+ filter:brightness(105%)\r
+}
\ No newline at end of file
<?init class="user.jobengine.zk.util.AuthInitiator"?>\r
<?component name="sidewindow" inline="true" macroURI="pages/sidewindow.zul"?>\r
<zk xmlns:w="http://www.zkoss.org/2005/zk/client">\r
- <style src="/css/mediacube-${sessionScope.theme}.css"/>\r
- <style src="/css/toast.css" />\r
- <script src="/js/toast.min.js" />\r
- <script>\r
- function showToast(m) {\r
- var toast = new Toast({message: m, type: 'danger' });\r
- setTimeout(function(){ toast._close(); }, 4000);\r
- }\r
- </script>\r
+ <style src="/css/${sessionScope.theme}/mediacube.css"/>\r
<zscript>\r
<![CDATA[\r
// Chrome F5 bug workaround (miscalculates 100% width on second refresh)\r
}\r
]]>\r
</zscript>\r
- <!-- ZKOSS chrome listbox scroll bug workaround: http://tracker.zkoss.org/browse/ZK-3263 -->\r
<script>\r
window.onpopstate = function(event) {\r
//console.log("location: " + document.location + ", state: " + JSON.stringify(event.state));\r
}\r
</script>\r
\r
-<!-- onClientInfo="onClientInfo(event)" -->\r
-\r
<window id="zkwindow" viewModel="@id('im') @init('user.jobengine.zk.model.IndexModel')" border="none" \r
width="100%" height="100%" contentStyle="padding:0;" onClientInfo="@command('onClientInfo', evt=event)">\r
<custom-attributes org.zkoss.zul.image.preload="true"/>\r
<borderlayout>\r
<north border="0">\r
- <div id="divMenu" onPopHistory="@command('popHistory')">\r
- <borderlayout height="50px">\r
- <variables backcolor="#212121"/>\r
- <west border="0" style="background: ${backcolor}">\r
- <hbox id="appTitle" height="100%" width="100%" align="center" pack="left">\r
- <image src="/img/mediacube_logo_v2_50x50.png" />\r
- <label style="color:#008AC8;font-size:26px;font-weight:bold" value="MediaCube" />\r
- <label style="color:#e3e3e3;font-size:12px;font-weight:bold" value="v${labels.version}" /> \r
- </hbox>\r
- </west>\r
- <center border="0" style="background: ${backcolor}" />\r
- <east border="0" style="background: ${backcolor}">\r
- <hbox height="100%" width="100%" align="bottom" pack="center">\r
- <div style="margin-right: 10px">\r
- <label style="color:#e3e3e3; font-size:12px; font-weight:bold; cursor: help;" value="Bejelentkezve: ${sessionScope.userPrincipal.displayName}" /> \r
- <attribute name="tooltip" if="${not empty sessionScope.userPrincipal.email}">\r
- emailPopup, at_pointer\r
- </attribute> \r
- <popup id="emailPopup">\r
- <vlayout>\r
- <label value="${sessionScope.userPrincipal.email}"/>\r
- </vlayout>\r
- </popup> \r
- </div>\r
- </hbox>\r
- </east>\r
- </borderlayout>\r
+ <div id="divMenu" onPopHistory="@command('popHistory')" style="background: #212121">\r
+ <hbox id="appTitle" align="end" pack="start" width="100%">\r
+ <image style="width: 24px; height: 24px;" src="/img/mediacube_logo_v2_50x50.png" />\r
+ <label style="color:#008AC8;font: bold 22px Verdana;" value="MEDIACUBE" />\r
+ <label style="color:#e3e3e3;font: bold 10px Verdana;" value="v${labels.version}" /> \r
+ </hbox>\r
<include src="/pages/menu.zul" />\r
</div>\r
</north>\r
<center border="0">\r
- <include id="includeContent" src="@load(im.page)" />\r
+ <include id="includeContent" src="@load(im.page)" width="100%" />\r
</center>\r
<east>\r
<!-- <sidewindow /> -->\r
+++ /dev/null
-'use strict';
-
-function Toast(options) {
-
- if (!options.message) {
- throw new Error('Toast.js - You need to set a message to display');
- return;
- }
-
- this.options = options;
- this.options.type = options.type || 'default';
-
- this.toastContainerEl = document.querySelector('.toastjs-container');
- this.toastEl = document.querySelector('.toastjs');
-
- this._init();
-}
-
-Toast.prototype._createElements = function () {
- var _this = this;
-
- return new Promise(function (resolve, reject) {
-
- _this.toastContainerEl = document.createElement('div');
- _this.toastContainerEl.classList.add('toastjs-container');
- _this.toastContainerEl.setAttribute('role', 'alert');
- _this.toastContainerEl.setAttribute('aria-hidden', true);
-
- _this.toastEl = document.createElement('div');
- _this.toastEl.classList.add('toastjs');
-
- _this.toastContainerEl.appendChild(_this.toastEl);
- document.body.appendChild(_this.toastContainerEl);
-
- setTimeout(function () {
- return resolve();
- }, 500);
- });
-};
-
-Toast.prototype._addEventListeners = function () {
- var _this2 = this;
-
- document.querySelector('.toastjs-btn--close').addEventListener('click', function () {
- _this2._close();
- });
-
- if (this.options.customButtons) {
- var customButtonsElArray = Array.prototype.slice.call(document.querySelectorAll('.toastjs-btn--custom'));
- customButtonsElArray.map(function (el, index) {
- el.addEventListener('click', function (event) {
- return _this2.options.customButtons[index].onClick(event);
- });
- });
- }
-};
-
-Toast.prototype._close = function () {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
- _this3.toastContainerEl.setAttribute('aria-hidden', true);
- setTimeout(function () {
-
- _this3.toastEl.innerHTML = '';
- _this3.toastEl.classList.remove('default', 'success', 'warning', 'danger');
-
- if (_this3.focusedElBeforeOpen) {
- _this3.focusedElBeforeOpen.focus();
- }
-
- resolve();
- }, 1000);
- });
-};
-
-Toast.prototype._open = function () {
-
- this.toastEl.classList.add(this.options.type);
- this.toastContainerEl.setAttribute('aria-hidden', false);
-
- var customButtons = '';
- if (this.options.customButtons) {
- customButtons = this.options.customButtons.map(function (customButton, index) {
- return '<button type="button" class="toastjs-btn toastjs-btn--custom">' + customButton.text + '</button>';
- });
- customButtons = customButtons.join('');
- }
-
- this.toastEl.innerHTML = '\n <p>' + this.options.message + '</p>\n <button type="button" class="toastjs-btn toastjs-btn--close">Close</button>\n ' + customButtons + '\n ';
-
- this.focusedElBeforeOpen = document.activeElement;
- document.querySelector('.toastjs-btn--close').focus();
-};
-
-Toast.prototype._init = function () {
- var _this4 = this;
-
- Promise.resolve().then(function () {
- if (_this4.toastContainerEl) {
- return Promise.resolve();
- }
- return _this4._createElements();
- }).then(function () {
- if (_this4.toastContainerEl.getAttribute('aria-hidden') == 'false') {
- return _this4._close();
- }
- return Promise.resolve();
- }).then(function () {
- _this4._open();
- _this4._addEventListeners();
- });
-};
\ No newline at end of file
+++ /dev/null
-"use strict";function Toast(t){if(!t.message)throw new Error("Toast.js - You need to set a message to display");this.options=t,this.options.type=t.type||"default",this.toastContainerEl=document.querySelector(".toastjs-container"),this.toastEl=document.querySelector(".toastjs"),this._init()}Toast.prototype._createElements=function(){var t=this;return new Promise(function(e,o){t.toastContainerEl=document.createElement("div"),t.toastContainerEl.classList.add("toastjs-container"),t.toastContainerEl.setAttribute("role","alert"),t.toastContainerEl.setAttribute("aria-hidden",!0),t.toastEl=document.createElement("div"),t.toastEl.classList.add("toastjs"),t.toastContainerEl.appendChild(t.toastEl),document.body.appendChild(t.toastContainerEl),setTimeout(function(){return e()},500)})},Toast.prototype._addEventListeners=function(){var t=this;if(document.querySelector(".toastjs-btn--close").addEventListener("click",function(){t._close()}),this.options.customButtons){var e=Array.prototype.slice.call(document.querySelectorAll(".toastjs-btn--custom"));e.map(function(e,o){e.addEventListener("click",function(e){return t.options.customButtons[o].onClick(e)})})}},Toast.prototype._close=function(){var t=this;return new Promise(function(e,o){t.toastContainerEl.setAttribute("aria-hidden",!0),setTimeout(function(){t.toastEl.innerHTML="",t.toastEl.classList.remove("default","success","warning","danger"),t.focusedElBeforeOpen&&t.focusedElBeforeOpen.focus(),e()},1e3)})},Toast.prototype._open=function(){this.toastEl.classList.add(this.options.type),this.toastContainerEl.setAttribute("aria-hidden",!1);var t="";this.options.customButtons&&(t=this.options.customButtons.map(function(t,e){return'<button type="button" class="toastjs-btn toastjs-btn--custom">'+t.text+"</button>"}),t=t.join("")),this.toastEl.innerHTML="\n <p>"+this.options.message+'</p>\n <button type="button" class="toastjs-btn toastjs-btn--close">Close</button>\n '+t+"\n ",this.focusedElBeforeOpen=document.activeElement,document.querySelector(".toastjs-btn--close").focus()},Toast.prototype._init=function(){var t=this;Promise.resolve().then(function(){return t.toastContainerEl?Promise.resolve():t._createElements()}).then(function(){return"false"==t.toastContainerEl.getAttribute("aria-hidden")?t._close():Promise.resolve()}).then(function(){t._open(),t._addEventListeners()})};
\ No newline at end of file
-webkit-box-shadow: 0 0 0 30px yellow inset !important;\r
}\r
</style>\r
- <style src="/css/mediacube-${sessionScope.theme}.css"/>\r
+ <style src="/css/${sessionScope.theme}/mediacube.css"/>\r
<hbox self="@define(content)" vflex="1" hflex="1" align="center" pack="center" spacing="20px">\r
<vlayout>\r
<window id="loginWin" viewModel="@id('jlm') @init('user.jobengine.zk.model.LoginModel')"\r
<?init class="user.jobengine.zk.util.AuthInitiator"?>\r
<zk>\r
<!-- <style src="/css/menu.css"/> -->\r
- <div viewModel="@id('lm') @init('user.jobengine.zk.model.MenuModel')">\r
- <menubar id="menubar" hflex="max">\r
+ <div viewModel="@id('lm') @init('user.jobengine.zk.model.MenuModel')" style="background:red">\r
+ <popup id="logoutPopup">\r
+ <vlayout>\r
+ <label value="Kijelentkezés" />\r
+ <label value="${sessionScope.userPrincipal.displayName}" />\r
+ <label value="${sessionScope.userPrincipal.email}" />\r
+ </vlayout>\r
+ </popup>\r
+\r
+ <menubar id="menubar">\r
<menuitem label="Keresés" onClick="@command('navigate', action='/')" disabled="false" />\r
<menuitem label="Folyamatok" onClick="@command('navigate', action='jobs')" \r
disabled="${(not sessionScope.userPrincipal.pooler and not sessionScope.userPrincipal.submitter) or sessionScope.userPrincipal.anonymous}" />\r
</menupopup>\r
</menu>\r
<menuitem label="Mini monitor" onClick="@command('createFloatingJobMonitor')" />\r
- <menu label="Megjelenés" visible="false">\r
+ <menu label="Megjelenés" visible="true">\r
<menupopup>\r
<menuitem label="Világos" onClick="@command('applyTheme', name='silvertail')" />\r
<menuitem label="Sötét" onClick="@command('applyTheme', name='userdark')" />\r
</menupopup>\r
</menu>\r
-\r
- <menuitem id="basketIMenuItem" label="@load(lm.basketMenuLabel)" iconSclass="z-icon-shopping-cart" \r
- style="float: right" onClick="@command('showBasket')" disabled="false" />\r
- <menuitem id="logoutMenuItem" label="Kilépés" style="float: right" onClick="@command('doLogout')" disabled="false" />\r
- </menubar>\r
+ <menuitem id="logoutMenuItem" iconSclass="z-icon-user" onClick="@command('doLogout')" tooltip="logoutPopup, position=after_start" style="float: right" />\r
+ <menuitem id="basketIMenuItem" label="@load(lm.basketMenuLabel)" iconSclass="z-icon-shopping-cart" onClick="@command('showBasket')" style="float: right" />\r
+ </menubar>\r
</div>\r
</zk>\r
<!-- <h:script src="https://vjs.zencdn.net/7.18.1/video.min.js"/> -->\r
\r
<style src="/css/video-js.css" />\r
- <style src="/css/searchitems.css" />\r
- <style src="/css/tagify.css" />\r
+<!-- <style src="/css/searchitems.css" /> -->\r
+ <style src="/css/${sessionScope.theme}/tagify.css" />\r
\r
<h:script src="/js/tagify.min.js" />\r
<h:script src="/js/video.js" />\r
<zk xmlns:w="http://www.zkoss.org/2005/zk/client" xmlns:h="xhtml" xmlns:c="client">\r
<div height="100%" width="100%">\r
- <style>\r
-<!--\r
-dark \r
- #detail-tagify-chdex > tags {\r
- border: 1px solid lightgray;\r
- background: #303030;\r
- color: #e3e3e3;\r
- }\r
- -->\r
- </style>\r
- <toolbar width="100%" style="min-height:40px; border-bottom:1px solid darkgray">\r
+ <toolbar width="100%" style="min-height:40px; border-bottom:1px solid #808080">\r
<toolbarbutton iconSclass="z-icon-reply" autodisable="self" onClick="@command('showInResults')"\r
disabled="@load(vm.selectedObject eq null)" label="Szinkronizálás" />\r
<toolbarbutton iconSclass="z-icon-shopping-cart" autodisable="self" onClick="@command('downloadMedia')"\r
<vlayout>\r
<h:textarea id="detail-tagify" name='mediaTags'></h:textarea>\r
</vlayout>\r
- <hlayout style="border-bottom: 1px solid lightgray">\r
- <vlayout style="width: 120px; border-right: 1px solid lightgray; padding-right: 10px">\r
- <label style="font-size:8pt; color: gray" value="Gyűjtő azonosító" />\r
+ <hlayout style="border-bottom: 1px solid #808080">\r
+ <vlayout style="width: 120px; border-right: 1px solid #808080; padding-right: 10px">\r
+ <label style="font-size:8pt; color: #808080" value="Gyűjtő azonosító" />\r
<label value="@load(vm.selectedObject.item.houseId)" />\r
</vlayout>\r
<vlayout>\r
- <label style="font-size:8pt; color: gray" value="Gyűjtő címe" />\r
+ <label style="font-size:8pt; color: #808080" value="Gyűjtő címe" />\r
<label value="@load(vm.selectedObject.item.title)" />\r
</vlayout>\r
</hlayout>\r
<vlayout>\r
- <label style="font-size:8pt; color: gray" value="Gyűjtő leírása" />\r
+ <label style="font-size:8pt; color: #808080" value="Gyűjtő leírása" />\r
<label value="@load(vm.selectedObject.item.description)" />\r
</vlayout>\r
- <hlayout style="border-bottom: 1px solid lightgray">\r
- <vlayout style="width: 120px; border-right: 1px solid lightgray; padding-right: 10px">\r
- <label style="font-size:8pt; color: gray" value="Média azonosító" />\r
+ <hlayout style="border-bottom: 1px solid #808080">\r
+ <vlayout style="width: 120px; border-right: 1px solid #808080; padding-right: 10px">\r
+ <label style="font-size:8pt; color: #808080" value="Média azonosító" />\r
<label value="@load(vm.selectedObject.media.houseId)" />\r
</vlayout>\r
<vlayout>\r
- <label style="font-size:8pt; color: gray" value="Média címe" />\r
+ <label style="font-size:8pt; color: #808080" value="Média címe" />\r
<label value="@load(vm.selectedObject.media.title)" />\r
</vlayout>\r
</hlayout>\r
<vlayout>\r
- <label style="font-size:8pt; color: gray" value="Média leírása" />\r
+ <label style="font-size:8pt; color: #808080" value="Média leírása" />\r
<label multiline="true" value="@load(vm.selectedObject.media.description)" />\r
</vlayout>\r
</vlayout>\r
\r
<vlayout>\r
\r
- <h:textarea name='filterTags' placeholder='Címkék'/>\r
+ <h:textarea name='filterTags' />\r
</vlayout>\r
<toolbar id="filterToolbar" width="100%">\r
<toolbarbutton id="toggleShowTypeFilters" iconSclass="z-icon-caret-down" mode="toggle" onCheck="@command('toggleTypeFiltersCheck')"/> \r
Hlayout hlayout = (Hlayout) detail.getChildren().get(0);\r
if (highlight) {\r
selectedRowIndex = i;\r
- row.setStyle("background: #F1F8E9;");\r
- hlayout.setStyle("border-bottom: 1px solid #C5E1A5; background: #F1F8E9;");\r
+ row.setStyle("background: #315463;");\r
+ hlayout.setStyle("border-bottom: 1px solid #808080; background: #315463;");\r
} else {\r
row.setStyle("background: none;");\r
- hlayout.setStyle("border-bottom: 1px solid #ebebeb; background: none;");\r
+ hlayout.setStyle("border-bottom: 1px solid #808080; background: none;");\r
}\r
}\r
break;\r
sb.append("]);");\r
\r
String js = sb.toString();\r
- logger.info(js);\r
+ // logger.info(js);\r
Clients.evalJavaScript(js);\r
}\r
}\r
import org.zkoss.zk.ui.select.Selectors;\r
import org.zkoss.zk.ui.select.annotation.Wire;\r
import org.zkoss.zk.ui.util.Clients;\r
-import org.zkoss.zul.Hbox;\r
\r
import com.ibm.nosql.json.api.BasicDBObject;\r
\r
"newshistory", "edithistory", "edithistory", "statistics", "statistics", "maestro", "maestro", "pwdgen", "pwdgen");\r
\r
@Wire\r
- Hbox appTitle;\r
+ Component appTitle;\r
\r
@AfterCompose\r
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
import org.zkoss.bind.annotation.Command;\r
import org.zkoss.bind.annotation.ContextParam;\r
import org.zkoss.bind.annotation.ContextType;\r
+import org.zkoss.lang.Strings;\r
import org.zkoss.zk.ui.Component;\r
import org.zkoss.zk.ui.Executions;\r
import org.zkoss.zk.ui.select.Selectors;\r
import org.zkoss.zk.ui.util.Clients;\r
import org.zkoss.zul.Menuitem;\r
import org.zkoss.zul.Window;\r
-import org.zkoss.zul.theme.Themes;\r
\r
import user.jobengine.db.ArchivedMedia;\r
import user.jobengine.zk.util.SessionUtil;\r
private static final Logger logger = LogManager.getLogger();\r
private static final String PAGES_RETRIEVEBATCHSELECTOR_ZUL = "/pages/retrievebatchselector.zul";\r
private static final String PAGES_ALTERNATE_RETRIEVEBATCHSELECTOR_ZUL = "/pages/alternate_retrievebatchselector.zul";\r
- private String basketMenuLabel = "(0)";\r
+ private String basketMenuLabel = Strings.EMPTY;\r
private List<ArchivedMedia> basketItems = new ArrayList<>();\r
private Window floatingMonitorWindow;\r
\r
\r
@Command\r
public void doLogout() {\r
+\r
+// try {\r
+// Bundle bundle = FrameworkUtil.getBundle(Class.forName("org.zkoss.theme.userdark.UserdarkThemeWebAppInit"));\r
+//\r
+// bundle.stop();\r
+// bundle.start();\r
+// } catch (Exception e) {\r
+// e.printStackTrace();\r
+// }\r
+\r
SessionUtil.logout();\r
Executions.sendRedirect("/");\r
}\r
\r
@Command\r
public void applyTheme(@BindingParam("name") String name) {\r
- Themes.setTheme(Executions.getCurrent(), name);\r
- SessionUtil.setAttribute("theme", name);\r
+ SessionUtil.applyTheme(name);\r
Executions.sendRedirect("");\r
}\r
\r
package user.jobengine.zk.util;\r
\r
+import java.util.Arrays;\r
import java.util.Map;\r
+import java.util.Optional;\r
+\r
+import javax.servlet.http.Cookie;\r
+import javax.servlet.http.HttpServletRequest;\r
\r
import org.zkoss.zk.ui.Executions;\r
import org.zkoss.zk.ui.Page;\r
import org.zkoss.zk.ui.util.Initiator;\r
-import org.zkoss.zul.theme.Themes;\r
\r
/**\r
* Ellenorzi, hogy van e beloginelt user, ha nincs, akkor -> login.zul Minden oldal belinkeli ezt az ellenorzest.\r
@Override\r
public void doInit(Page page, Map<String, Object> args) throws Exception {\r
if (!SessionUtil.isAuthenticated()) {\r
- String theme = SessionUtil.getMediaCubeConfig().getTheme() == null ? "silvertail" : SessionUtil.getMediaCubeConfig().getTheme();\r
- Themes.setTheme(Executions.getCurrent(), theme);\r
- SessionUtil.setAttribute("theme", theme);\r
+\r
+ Cookie[] cookies = ((HttpServletRequest) Executions.getCurrent().getNativeRequest()).getCookies();\r
+ Optional<Cookie> clientTheme = Arrays.stream(cookies).filter(c -> "mediacube-theme".equals(c.getName())).findFirst();\r
+ String theme = null;\r
+ if (clientTheme.isPresent()) {\r
+ theme = clientTheme.get().getValue();\r
+ } else {\r
+ theme = SessionUtil.getMediaCubeConfig().getTheme() == null ? "silvertail" : SessionUtil.getMediaCubeConfig().getTheme();\r
+ }\r
+ SessionUtil.applyTheme(theme);\r
SessionUtil.redirect("/pages/login.zul");\r
}\r
}\r
import java.util.List;\r
import java.util.Map;\r
\r
+import javax.servlet.http.Cookie;\r
import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
import javax.servlet.http.HttpSession;\r
import javax.xml.bind.DatatypeConverter;\r
\r
import org.zkoss.zk.ui.event.EventListener;\r
import org.zkoss.zk.ui.event.EventQueues;\r
import org.zkoss.zk.ui.util.Clients;\r
+import org.zkoss.zul.theme.Themes;\r
\r
import com.ibm.nosql.json.api.BasicDBList;\r
import com.ibm.nosql.json.api.BasicDBObject;\r
Map<String, Object> params = ListUtils.asMap("msg", String.format(FMT_NOTIF, msg), "type", "warning");\r
BindUtils.postGlobalCommand(null, null, "showMessage", params);\r
}\r
+\r
+ public static void applyTheme(String theme) {\r
+ HttpServletResponse response = (HttpServletResponse) Executions.getCurrent().getNativeResponse();\r
+ Cookie themeCookie = new Cookie("mediacube-theme", theme);\r
+ response.addCookie(themeCookie);\r
+ Themes.setTheme(Executions.getCurrent(), theme);\r
+ setAttribute("theme", theme);\r
+ }\r
}
\ No newline at end of file