diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..dcdf4906 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/build/ +/dist/ +/nbproject/project.properties +/nbproject/private +/build.xml +/nbproject/private/private.properties \ No newline at end of file diff --git a/build.xml b/build.xml new file mode 100644 index 00000000..ec29b4ea --- /dev/null +++ b/build.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + Builds, tests, and runs the project IF3110-02-Simple-Blog-Java. + + + diff --git a/nbproject/ant-deploy.xml b/nbproject/ant-deploy.xml new file mode 100644 index 00000000..2d5f8778 --- /dev/null +++ b/nbproject/ant-deploy.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml new file mode 100644 index 00000000..b3b847c9 --- /dev/null +++ b/nbproject/build-impl.xml @@ -0,0 +1,1444 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set build.web.dir + Must set build.generated.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.war + + + + + + + + + +The Java EE server classpath is not correctly set up - server home directory is missing. +Either open the project in the IDE and assign the server or setup the server classpath manually. +For example like this: + ant -Dj2ee.server.home=<app_server_installation_directory> + + +The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}. +Either open the project in the IDE and assign the server or setup the server classpath manually. +For example like this: + ant -Duser.properties.file=<path_to_property_file> (where you put the property "j2ee.platform.classpath" in a .properties file) +or ant -Dj2ee.platform.classpath=<server_classpath> (where no properties file is used) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The libs.CopyLibs.classpath property is not set up. +This property must point to +org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part +of NetBeans IDE installation and is usually located at +<netbeans_installation>/java<version>/ant/extra folder. +Either open the project in the IDE and make sure CopyLibs library +exists or setup the property manually. For example like this: + ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.jsp.includes + + + + + + + + + + + + + + + + + + + + + + + + + + Must select a file in the IDE or set jsp.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable. + + + Launching ${browse.url} + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nbproject/faces-config.NavData b/nbproject/faces-config.NavData new file mode 100644 index 00000000..d04fee8a --- /dev/null +++ b/nbproject/faces-config.NavData @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties new file mode 100644 index 00000000..fbc88875 --- /dev/null +++ b/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=12eac0a2 +build.xml.script.CRC32=a9410f96 +build.xml.stylesheet.CRC32=651128d4@1.43.0.1 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=12eac0a2 +nbproject/build-impl.xml.script.CRC32=9106d273 +nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.67.1.1 diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties new file mode 100644 index 00000000..cfd3be5a --- /dev/null +++ b/nbproject/private/private.properties @@ -0,0 +1,7 @@ +deploy.ant.properties.file=C:\\Users\\Mario\\AppData\\Roaming\\NetBeans\\8.0\\config\\GlassFishEE6\\Properties\\gfv3614672000.properties +j2ee.platform.is.jsr109=true +j2ee.server.domain=C:/Program Files/glassfish-4.0/glassfish/domains/domain1 +j2ee.server.home=C:/Program Files/glassfish-4.0/glassfish +j2ee.server.instance=[C:\\Program Files\\glassfish-4.0\\glassfish;C:\\Program Files\\glassfish-4.0\\glassfish\\domains\\domain1]deployer:gfv3ee6:localhost:4848 +j2ee.server.middleware=C:/Program Files/glassfish-4.0 +user.properties.file=C:\\Users\\Mario\\AppData\\Roaming\\NetBeans\\8.0\\build.properties diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml new file mode 100644 index 00000000..03633b8b --- /dev/null +++ b/nbproject/private/private.xml @@ -0,0 +1,10 @@ + + + + + + file:/D:/Project/GitHub/IF3110-02-Simple-Blog-Java/src/java/paket/ViewPost.java + file:/D:/Project/GitHub/IF3110-02-Simple-Blog-Java/web/index.xhtml + + + diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 00000000..9d4afbe7 --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,89 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=true +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +auxiliary.org-netbeans-modules-projectapi.jsf_2e_language=Facelets +build.classes.dir=${build.web.dir}/WEB-INF/classes +build.classes.excludes=**/*.java,**/*.form +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +build.web.dir=${build.dir}/web +build.web.excludes=${build.classes.excludes} +client.urlPart= +compile.jsps=false +conf.dir=${source.root}/conf +debug.classpath=${build.classes.dir}:${javac.classpath} +debug.test.classpath=\ + ${run.test.classpath} +display.browser=true +dist.dir=dist +dist.ear.war=${dist.dir}/${war.ear.name} +dist.javadoc.dir=${dist.dir}/javadoc +dist.war=${dist.dir}/${war.name} +endorsed.classpath=\ + ${libs.javaee-endorsed-api-6.0.classpath} +excludes= +includes=** +j2ee.compile.on.save=true +j2ee.copy.static.files.on.save=true +j2ee.deploy.on.save=true +j2ee.platform=1.7-web +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar +j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar +j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar +j2ee.platform.wsimport.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar +j2ee.platform.wsit.classpath= +j2ee.server.type=gfv3ee6 +jar.compress=false +javac.classpath=\ + ${libs.MySQLDriver.classpath} +# Space-separated list of extra javac options +javac.compilerargs= +javac.debug=true +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.7 +javac.target=1.7 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.preview=true +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +lib.dir=${web.docbase.dir}/WEB-INF/lib +no.dependencies=false +persistence.xml.dir=${conf.dir} +platform.active=default_platform +resource.dir=setup +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +# Space-separated list of JVM arguments used when running a class with a main method or a unit test +# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value): +runmain.jvmargs= +source.encoding=UTF-8 +source.root=src +src.dir=${source.root}/java +test.src.dir=test +war.content.additional= +war.ear.name=${war.name} +war.name=IF3110-02-Simple-Blog-Java.war +web.docbase.dir=web +webinf.dir=web/WEB-INF diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 00000000..dc3be17e --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,23 @@ + + + org.netbeans.modules.web.project + + + IF3110-02-Simple-Blog-Java + 1.6.5 + + + ${libs.MySQLDriver.classpath} + WEB-INF/lib + + + + + + + + + + + + diff --git a/src/conf/MANIFEST.MF b/src/conf/MANIFEST.MF new file mode 100644 index 00000000..59499bce --- /dev/null +++ b/src/conf/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/src/java/paket/CookieCheck.java b/src/java/paket/CookieCheck.java new file mode 100644 index 00000000..59ceec62 --- /dev/null +++ b/src/java/paket/CookieCheck.java @@ -0,0 +1,86 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package paket; + +import java.util.Map; +import javax.faces.context.FacesContext; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; + +/** + * + * @author TOSHIBA + */ +public class CookieCheck { + + FacesContext facesContext = FacesContext.getCurrentInstance(); + HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest(); + + /** + * Creates a new instance of CookieCheck + */ + public String CookieCheck() { + String cValue = null; + Cookie[] cookies = request.getCookies(); + if (cookies!= null && cookies.length>0){ + for (Cookie cookie : cookies){ + if("role".equals(cookie.getName())){ + cValue = cookie.getValue(); + } + } + } + return cValue; + } + + public boolean isLoggedIn(){ + return CookieCheck()!=null; + } + + public boolean isAdmin(){ + return "admin".equals(CookieCheck()); + } + + public boolean isOwner(){ + return "owner".equals(CookieCheck()); + } + + public boolean isEditor(){ + return "editor".equals(CookieCheck()); + } + + public String getUName(){ + String UName="Guest"; + Cookie[] cookies = request.getCookies(); + if (cookies!= null && cookies.length>0){ + for (Cookie cookie : cookies){ + if("user".equals(cookie.getName())){ + UName = cookie.getValue(); + } + } + } + return UName; + } + + public String getUsrName(){ + String UsrName="Guest"; + Cookie[] cookies = request.getCookies(); + if (cookies!= null && cookies.length>0){ + for (Cookie cookie : cookies){ + if("username".equals(cookie.getName())){ + UsrName = cookie.getValue(); + } + } + } + return UsrName; + } + + public boolean adminORowner(){ + return (isLoggedIn() && (isAdmin() || isOwner())); + } + + public boolean adminOReditor(){ + return (isLoggedIn() && (isAdmin() || isEditor())); + } +} diff --git a/src/java/paket/Login.java b/src/java/paket/Login.java new file mode 100644 index 00000000..1ef67060 --- /dev/null +++ b/src/java/paket/Login.java @@ -0,0 +1,115 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package paket; + +import java.io.IOException; +import java.io.Serializable; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import javax.faces.context.ExternalContext; +import javax.faces.context.FacesContext; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author TOSHIBA + */ +public class Login implements Serializable{ + + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + String usrname; + String passwrd; + + public String getUsrname() { + return usrname; + } + + public void setUsrname(String usrname) { + this.usrname = usrname; + } + + public String getPasswrd() { + return passwrd; + } + + public void setPasswrd(String passwrd) { + this.passwrd = passwrd; + } + + /** + * Creates a new instance of Login + */ + public void login() throws IOException { + Connection conn = null; + Statement stmnt = null; + FacesContext facesContext = FacesContext.getCurrentInstance(); + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM `usr` WHERE usrname ='" + usrname+ "'"; + + ResultSet rset = stmnt.executeQuery(sqlStr); + + if(!rset.first()){ + System.out.print("username tidak ada"); + }else{ + String passwrd1 = rset.getString("passwrd"); + String role = rset.getString("role"); + if (passwrd1.equals(passwrd)){ + + HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); + String name = rset.getString("nama_usr"); + //create cookies + Cookie cookie = new Cookie("user", name); + cookie.setMaxAge(3600); + Cookie cookie2 = new Cookie("role", role); + cookie2.setMaxAge(3600); + Cookie cookie3 = new Cookie("username", usrname); + cookie.setMaxAge(3600); + + + response.addCookie(cookie); + response.addCookie(cookie2); + response.addCookie(cookie3); + + FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); + + }else{ + System.out.print("password salah"); + } + } + } catch (SQLException ex) { + ex.printStackTrace(); + System.out.print("Unable to connect database"); + System.out.print(ex.toString()); + }finally{ + try { + // Step 5: Close the Statement and Connection + if (stmnt != null) { + stmnt.close(); + } + if (conn != null) { + conn.close(); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } + } + + } +} diff --git a/src/java/paket/Logout.java b/src/java/paket/Logout.java new file mode 100644 index 00000000..8df2e5b5 --- /dev/null +++ b/src/java/paket/Logout.java @@ -0,0 +1,43 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package paket; + +import java.io.IOException; +import java.io.Serializable; +import javax.faces.context.FacesContext; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +/** + * + * @author TOSHIBA + */ +public class Logout implements Serializable{ + + /** + * Creates a new instance of Logout + */ + public void Logout() throws IOException { + FacesContext facesContext = FacesContext.getCurrentInstance(); + HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest(); + + //clean cookies + HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); + Cookie[] cookies = request.getCookies(); + if(cookies != null){ + for(Cookie cookie : cookies){ + cookie.setMaxAge(0); + response.addCookie(cookie); + } + } + //ivalidate session + HttpSession session = request.getSession(); + session.invalidate(); + + FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); + } +} diff --git a/src/java/paket/ManUser.java b/src/java/paket/ManUser.java new file mode 100644 index 00000000..09492386 --- /dev/null +++ b/src/java/paket/ManUser.java @@ -0,0 +1,277 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package paket; + +import java.io.IOException; +import java.io.Serializable; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.faces.context.FacesContext; + +/** + * + * @author TOSHIBA + */ + +public class ManUser implements Serializable{ + + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + String usrname; + String passwrd; + String nama_usr; + String email_usr; + String role; + + public String getUsrname() { + return usrname; + } + + public void setUsrname(String usrname) { + this.usrname = usrname; + } + + public String getPasswrd() { + return passwrd; + } + + public void setPasswrd(String passwrd) { + this.passwrd = passwrd; + } + + public String getNama_usr() { + return nama_usr; + } + + public void setNama_usr(String nama_usr) { + this.nama_usr = nama_usr; + } + + public String getEmail_usr() { + return email_usr; + } + + public void setEmail_usr(String email_usr) { + this.email_usr = email_usr; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public static class User{ + String usrname; + String passwrd; + String nama_usr; + String email_usr; + + public String getEmail_usr() { + return email_usr; + } + + public void setEmail_usr(String email_usr) { + this.email_usr = email_usr; + } + String role; + + public User(String usrname, String passwrd, String nama_usr, String email_usr, String role) { + this.usrname = usrname; + this.passwrd = passwrd; + this.nama_usr = nama_usr; + this.email_usr = email_usr; + this.role = role; + } + + public String getUsrname() { + return usrname; + } + + public void setUsrname(String usrname) { + this.usrname = usrname; + } + + public String getPasswrd() { + return passwrd; + } + + public void setPasswrd(String passwrd) { + this.passwrd = passwrd; + } + + public String getNama_usr() { + return nama_usr; + } + + public void setNama_usr(String nama_usr) { + this.nama_usr = nama_usr; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + + + } + private ArrayList users; + + public ArrayList getUsers() throws SQLException{ + + Connection conn = null; + Statement stmnt = null; + + ArrayList users = new ArrayList(); + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (Exception e) { + System.out.println("Unable to load Driver"); + + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM `usr`"; + ResultSet rSet = stmnt.executeQuery(sqlStr); + while (rSet.next()){ + + String usrname = rSet.getString("usrname"); + String nama_usr = rSet.getString("nama_usr"); + String email_usr = rSet.getString("email_usr"); + String role = rSet.getString("role"); + User user = new User(usrname, passwrd, nama_usr, email_usr, role); + if (!"admin".equals(role)){ + users.add(user); + } + + System.out.println(users); + } + } catch (SQLException ex) { + // Step 1: Create a database "Connection" object + ex.printStackTrace(); + System.out.println("Unable to connect to database"); + + } + return users; + } + + public String addAction() { + +// User user = new User(this.usrname, this.passwrd, +// this.nama_usr, this.email_usr, this.role); +// +// users.add(user); + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "INSERT INTO `usr` (`usrname`, `passwrd`, `nama_usr`, `email_usr`, `role`) VALUES ( '" + usrname + "', '" + passwrd + "', '" + nama_usr + "', '" + email_usr + "', '" + role + "')"; + + stmnt.executeUpdate(sqlStr); + //clean field + setUsrname(""); + setEmail_usr(""); + setNama_usr(""); + } catch (SQLException ex) { + ex.printStackTrace(); + System.out.println("Unable to connect to database"); + System.out.print(ex.toString()); + }finally { + System.out.close(); + try { + // Step 5: Close the Statement and Connection + if (stmnt != null) { + stmnt.close(); + } + if (conn != null) { + conn.close(); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } + } + return null; + } + + public String delAction(User user) { + +// User user = new User(this.usrname, this.passwrd, +// this.nama_usr, this.email_usr, this.role); +// +// users.add(user); + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "DELETE FROM `usr` WHERE `usrname`='"+user.usrname+"'"; + + stmnt.executeUpdate(sqlStr); + } catch (SQLException ex) { + ex.printStackTrace(); + System.out.println("Unable to connect to database"); + System.out.print(ex.toString()); + }finally { + System.out.close(); + try { + // Step 5: Close the Statement and Connection + if (stmnt != null) { + stmnt.close(); + } + if (conn != null) { + conn.close(); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } + } +// users.remove(user); + return null; + } + + public String editAction(User user) throws IOException { + + FacesContext.getCurrentInstance().getExternalContext().redirect("editUser.xhtml?param="+user.usrname); + + return null; + } +} + + diff --git a/src/java/paket/SoftDelete.java b/src/java/paket/SoftDelete.java new file mode 100644 index 00000000..49577eb8 --- /dev/null +++ b/src/java/paket/SoftDelete.java @@ -0,0 +1,147 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package paket; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; + +/** + * + * @author Mario + */ +public class SoftDelete { + + private String idpost, judul, konten, tanggal, status, del_stat; + private ArrayList sdel = new ArrayList(); + + public String getIdpost() { + return idpost; + } + + public void setIdpost(String idpost) { + this.idpost = idpost; + } + + public String getJudul() { + return judul; + } + + public void setJudul(String judul) { + this.judul = judul; + } + + public String getKonten() { + return konten; + } + + public void setKonten(String konten) { + this.konten = konten; + } + + public String getTanggal() { + return tanggal; + } + + public void setTanggal(String tanggal) { + this.tanggal = tanggal; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDel_stat() { + return del_stat; + } + + public void setDel_stat(String del_stat) { + this.del_stat = del_stat; + } + /** + * Creates a new instance of SoftDelete + */ + public SoftDelete() { + } + + public ArrayList ambilPostList(){ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM post"; + ResultSet rs = stmnt.executeQuery(sqlStr); + + while (rs.next()){ + SoftDelete view = new SoftDelete(); + view.setIdpost(rs.getString("id_post")); + view.setJudul(rs.getString("judul")); + view.setKonten(rs.getString("konten")); + view.setTanggal(rs.getString("tanggal_post")); + view.setStatus(rs.getString("status")); + view.setDel_stat(rs.getString("del_stat")); + if (!"0".equals(view.getDel_stat().toString())){ + sdel.add(view); + } + } + + } catch (SQLException e){ + + } + return sdel; + } + + public void clear(){ + sdel.clear(); + } + + public void restorePost(){ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "UPDATE post SET del_stat=0 WHERE id_post=" +idpost; + ResultSet rs = stmnt.executeQuery(sqlStr); + + } catch (SQLException e){ + + } + } +} diff --git a/src/java/paket/Unpublished.java b/src/java/paket/Unpublished.java new file mode 100644 index 00000000..f042f184 --- /dev/null +++ b/src/java/paket/Unpublished.java @@ -0,0 +1,150 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package paket; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import javax.faces.context.FacesContext; + +/** + * + * @author Mario + */ +public class Unpublished { + + private String idpost, judul, konten, tanggal, status, del_stat; + private ArrayList unpub = new ArrayList(); + + public String getDel_stat() { + return del_stat; + } + + public void setDel_stat(String del_stat) { + this.del_stat = del_stat; + } + + public String getIdpost() { + return idpost; + } + + public void setIdpost(String idpost) { + this.idpost = idpost; + } + + public String getJudul() { + return judul; + } + + public void setJudul(String judul) { + this.judul = judul; + } + + public String getKonten() { + return konten; + } + + public void setKonten(String konten) { + this.konten = konten; + } + + public String getTanggal() { + return tanggal; + } + + public void setTanggal(String tanggal) { + this.tanggal = tanggal; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + /** + * Creates a new instance of Unpublished + */ + public Unpublished() { + } + + public ArrayList ambilPostList(){ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM post"; + ResultSet rs = stmnt.executeQuery(sqlStr); + + while (rs.next()){ + Unpublished view = new Unpublished(); + view.setIdpost(rs.getString("id_post")); + view.setJudul(rs.getString("judul")); + view.setKonten(rs.getString("konten")); + view.setTanggal(rs.getString("tanggal_post")); + view.setStatus(rs.getString("status")); + view.setDel_stat(rs.getString("del_stat")); + if ("unpublished".equals(view.getStatus().toString())){ + unpub.add(view); + } + } + + } catch (SQLException e){ + + } + return unpub; + } + + public void clear(){ + unpub.clear(); + } + + public void jadikanPublish(String id) throws IOException{ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + System.out.print("id disini"+id); + String sqlStr = "UPDATE post SET status='published' WHERE id_post="+id; + stmnt.executeUpdate(sqlStr); + + } catch (SQLException e){ + + } + } +} diff --git a/src/java/paket/ViewPost.java b/src/java/paket/ViewPost.java new file mode 100644 index 00000000..95573299 --- /dev/null +++ b/src/java/paket/ViewPost.java @@ -0,0 +1,292 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package paket; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.faces.context.FacesContext; + +/** + * + * @author Mario + */ +public class ViewPost { + + private String idpost, judul, konten, tanggal, status, del_stat, tgl_komen; + private String komen, nama, email; + private ResultSet rs; + private ArrayList listpost = new ArrayList(); + private ArrayList listkomen = new ArrayList(); + + public String getTgl_komen() { + return tgl_komen; + } + + public void setTgl_komen(String tgl_komen) { + this.tgl_komen = tgl_komen; + } + + public ArrayList getListpost() { + return listpost; + } + + public void setListpost(ArrayList listpost) { + this.listpost = listpost; + } + + public ArrayList getListkomen() { + return listkomen; + } + + public void setListkomen(ArrayList listkomen) { + this.listkomen = listkomen; + } + + public String getDel_stat() { + return del_stat; + } + + public void setDel_stat(String del_stat) { + this.del_stat = del_stat; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getKomen() { + return komen; + } + + public void setKomen(String komen) { + this.komen = komen; + } + + public String getNama() { + return nama; + } + + public void setNama(String nama) { + this.nama = nama; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getIdpost() { + return idpost; + } + + public void setIdpost(String idpost) { + this.idpost = idpost; + } + + public String getJudul() { + return judul; + } + + public void setJudul(String judul) { + this.judul = judul; + } + + public String getKonten() { + return konten; + } + + public void setKonten(String konten) { + this.konten = konten; + } + + public String getTanggal() { + return tanggal; + } + + public void setTanggal(String tanggal) { + this.tanggal = tanggal; + } + /** + * Creates a new instance of ViewPost + */ + public ViewPost() { + } + + public void ambilPostdanComment(){ + clear(); + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + FacesContext context = FacesContext.getCurrentInstance(); + Map requestMap = context.getExternalContext().getRequestParameterMap(); + String peta = requestMap.toString(); + + Pattern pattern = Pattern.compile( "id=(\\d+)" ); + Matcher matcher = pattern.matcher( peta ); + if ( matcher.find() ) + idpost = matcher.group( 1 ); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM `post` WHERE id_post='" +idpost +"'"; + rs = stmnt.executeQuery(sqlStr); + + if (rs.next()){ + tanggal = rs.getString("tanggal_post"); + judul = rs.getString("judul"); + konten = rs.getString("konten"); + } + + sqlStr = "SELECT * FROM `komen` WHERE id_post=" +idpost; + rs = stmnt.executeQuery(sqlStr); + + while (rs.next()){ + ViewPost view = new ViewPost(); + view.setKomen(rs.getString("isi")); + view.setNama(rs.getString("nama")); + view.setTgl_komen(rs.getString("tangggal_kom")); + listkomen.add(view); + } + + } catch (SQLException e){ + + } + } + + public ArrayList ambilPostList(){ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM post"; + ResultSet rs = stmnt.executeQuery(sqlStr); + + while (rs.next()){ + ViewPost view = new ViewPost(); + view.setIdpost(rs.getString("id_post")); + view.setJudul(rs.getString("judul")); + view.setKonten(rs.getString("konten")); + view.setTanggal(rs.getString("tanggal_post")); + view.setStatus(rs.getString("status")); + view.setDel_stat(rs.getString("del_stat")); + if ("published".equals(view.getStatus().toString())&&("0".equals(view.getDel_stat().toString()))){ + listpost.add(view); + } + } + + } catch (SQLException e){ + + } + return listpost; + } + + public void executeComment() throws IOException{ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + System.out.print("commentid"+idpost); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "INSERT INTO `komen`(`nama`, `email`, `isi`, `id_post`) VALUE('" +nama +"', '" +email +"', '" +komen +"', '" +idpost +"')"; + stmnt.executeUpdate(sqlStr); + + FacesContext.getCurrentInstance().getExternalContext().redirect("post.xhtml?id="+idpost); + + } catch (SQLException e){ + + } + } + + public void clear(){ + listpost.clear(); + listkomen.clear(); + } + + public void executeSoftDelete() throws IOException{ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + System.out.print("commentid"+idpost); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "UPDATE post SET del_stat=1 WHERE id_post="+idpost; + stmnt.executeUpdate(sqlStr); + + FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); + + } catch (SQLException e){ + + } + } + +} diff --git a/src/java/paket/addPost.java b/src/java/paket/addPost.java new file mode 100644 index 00000000..cd5a9849 --- /dev/null +++ b/src/java/paket/addPost.java @@ -0,0 +1,100 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package paket; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.RequestScoped; +import javax.faces.context.FacesContext; + +/** + * + * @author Mario + */ +@ManagedBean +@RequestScoped +public class addPost { + + private String tanggal, konten, judul; + private String username; + + public String getTanggal() { + return tanggal; + } + + public void setTanggal(String tanggal) { + this.tanggal = tanggal; + } + + public void ambilTanggal(){ + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + this.tanggal = dateFormat.format(date); + } + + public String getKonten() { + return konten; + } + + public void setKonten(String konten) { + this.konten = konten; + } + + public String getJudul() { + return judul; + } + + public void setJudul(String judul) { + this.judul = judul; + } + + public String addPost() throws IOException{ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + CookieCheck cookie = new CookieCheck(); + username = cookie.getUsrName(); + + System.out.print(username); + System.out.print("username sebelah sini <<"); + System.out.print(tanggal); + System.out.print(judul); + System.out.print(konten); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "INSERT INTO `post`(`judul`,`konten`,`tanggal_post`,`usrname`) VALUE('" +judul +"', '" +konten +"', '" +tanggal +"', '" +username +"')"; + stmnt.executeUpdate(sqlStr); + + FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); + + } catch (SQLException e){ + + } + return null; + } + +} diff --git a/src/java/paket/deletePost.java b/src/java/paket/deletePost.java new file mode 100644 index 00000000..3834bedd --- /dev/null +++ b/src/java/paket/deletePost.java @@ -0,0 +1,68 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package paket; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import javax.faces.context.FacesContext; + +/** + * + * @author TOSHIBA + */ +public class deletePost { + + private String idpost, judul, konten, tanggal, status, del_stat; + + public String getIdpost() { + return idpost; + } + + public void setIdpost(String idpost) { + this.idpost = idpost; + } + + public String getDel_stat() { + return del_stat; + } + + public void setDel_stat(String del_stat) { + this.del_stat = del_stat; + } + + /** + * Creates a new instance of deletePost + */ + public void deletePost() throws IOException { + FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); +// String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; +// String uName = "root"; +// String pass = ""; +// +// Connection conn = null; +// Statement stmnt = null; +// +// try { +// try { +// Class.forName("com.mysql.jdbc.Driver"); +// } catch (ClassNotFoundException e) { +// e.printStackTrace(); +// System.out.println("Unable to load Driver"); +// } +// conn = DriverManager.getConnection(dbURL, uName, pass); +// stmnt = conn.createStatement(); +// +// String sqlStr = "UPDATE post SET del_stat=1 WHERE id_post=" +idpost; +// ResultSet rs = stmnt.executeQuery(sqlStr); +// +// } catch (SQLException e){ +// +// } + } +} diff --git a/src/java/paket/editPost.java b/src/java/paket/editPost.java new file mode 100644 index 00000000..42a6fe9d --- /dev/null +++ b/src/java/paket/editPost.java @@ -0,0 +1,151 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package paket; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.faces.context.FacesContext; +import javax.servlet.http.HttpServletRequest; + +/** + * + * @author Mario + */ +public class editPost { + + private String tanggal, konten, judul; + private String username, idpost; + + public String getIdpost() { + return idpost; + } + + public void setIdpost(String idpost) { + this.idpost = idpost; + } + + public String getTanggal() { + return tanggal; + } + + public void setTanggal(String tanggal) { + this.tanggal = tanggal; + } + + public String getKonten() { + return konten; + } + + public void setKonten(String konten) { + this.konten = konten; + } + + public String getJudul() { + return judul; + } + + public void setJudul(String judul) { + this.judul = judul; + } + + /** + * Creates a new instance of editPost + */ + public editPost() { + } + + public void ambilTanggal(){ + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + this.tanggal = dateFormat.format(date); + } + + public void getPost(){ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + FacesContext context = FacesContext.getCurrentInstance(); + Map requestMap = context.getExternalContext().getRequestParameterMap(); + String peta = requestMap.toString(); + + Pattern pattern = Pattern.compile( "id=(\\d+)" ); + Matcher matcher = pattern.matcher( peta ); + if ( matcher.find() ) + idpost = matcher.group( 1 ); + + System.out.print(idpost); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM `post` WHERE id_post='" +idpost +"'"; + ResultSet rs = stmnt.executeQuery(sqlStr); + + if (rs.next()){ + tanggal = rs.getString("tanggal_post"); + judul = rs.getString("judul"); + konten = rs.getString("konten"); + username = rs.getString("usrname"); + } + + } catch (SQLException e){ + + } + } + + public void saveEditPost() throws IOException { + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + System.out.print(idpost); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "UPDATE post SET judul='" +judul +"', konten='" +konten +"', tanggal_post='" +tanggal +"' WHERE id_post=" +idpost; + stmnt.executeUpdate(sqlStr); + + FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); + + } catch (SQLException e){ + + } + } + +} diff --git a/src/java/paket/editUser.java b/src/java/paket/editUser.java new file mode 100644 index 00000000..bfdc0182 --- /dev/null +++ b/src/java/paket/editUser.java @@ -0,0 +1,146 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package paket; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.faces.context.FacesContext; + +/** + * + * @author TOSHIBA + */ +public class editUser { + + private String usrname, passwrd, nama_usr, email_usr, role; + + public String getUsrname() { + return usrname; + } + + public void setUsrname(String usrname) { + this.usrname = usrname; + } + + public String getPasswrd() { + return passwrd; + } + + public void setPasswrd(String passwrd) { + this.passwrd = passwrd; + } + + public String getNama_usr() { + return nama_usr; + } + + public void setNama_usr(String nama_usr) { + this.nama_usr = nama_usr; + } + + public String getEmail_usr() { + return email_usr; + } + + public void setEmail_usr(String email_usr) { + this.email_usr = email_usr; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + /** + * Creates a new instance of editUser + */ + public editUser() { + } + + public void ambilUser(){ + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + + FacesContext context = FacesContext.getCurrentInstance(); + Map requestMap = context.getExternalContext().getRequestParameterMap(); + String peta = requestMap.toString(); + + Pattern pattern = Pattern.compile( "param=(\\w+)" ); + Matcher matcher = pattern.matcher( peta ); + if ( matcher.find() ) + usrname = matcher.group( 1 ); + + System.out.print(usrname); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "SELECT * FROM `usr` WHERE usrname='" +usrname +"'"; + ResultSet rSet = stmnt.executeQuery(sqlStr); + + if (rSet.next()){ + usrname = rSet.getString("usrname"); + passwrd = rSet.getString("passwrd"); + nama_usr = rSet.getString("nama_usr"); + email_usr = rSet.getString("email_usr"); + role = rSet.getString("role"); + } + + } catch (SQLException e){ + + } + } + + public void updateUser() throws IOException { + String dbURL = "jdbc:mysql://localhost:3306/simple_blog"; + String uName = "root"; + String pass = ""; + + Connection conn = null; + Statement stmnt = null; + +// System.out.print(idpost); + + try { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.println("Unable to load Driver"); + } + conn = DriverManager.getConnection(dbURL, uName, pass); + stmnt = conn.createStatement(); + + String sqlStr = "UPDATE usr SET passwrd='" +passwrd +"', nama_usr='" +nama_usr +"','"+email_usr+"','"+role+"' WHERE usrname=" +usrname; + stmnt.executeUpdate(sqlStr); + + FacesContext.getCurrentInstance().getExternalContext().redirect("ManageUser.xhtml"); + + } catch (SQLException e){ + + } + } +} diff --git a/web/ManageUser.xhtml b/web/ManageUser.xhtml new file mode 100644 index 00000000..e28d12bd --- /dev/null +++ b/web/ManageUser.xhtml @@ -0,0 +1,109 @@ + + + + + + Simple Blog | Manage User + + +
+ +
+
+

Manage User

+
+ + + + + + Username + #{o.usrname} + + + + + + Nama + #{o.nama_usr} + + + + + + Email + #{o.email_usr} + + + + + + Role + #{o.role} + + + + + + Action + + + + + + + + +
Tambah User
+ + + + + + + + + + + + + + + + + + + + + +
Username :
Password :
Nama :
Email : + + +
Role : + + + +
+ + + +
+ +
+
+
+ +
+ +
+ + \ No newline at end of file diff --git a/web/WEB-INF/beans.xml b/web/WEB-INF/beans.xml new file mode 100644 index 00000000..ba9b1015 --- /dev/null +++ b/web/WEB-INF/beans.xml @@ -0,0 +1,6 @@ + + + diff --git a/web/WEB-INF/faces-config.xml b/web/WEB-INF/faces-config.xml new file mode 100644 index 00000000..8a406920 --- /dev/null +++ b/web/WEB-INF/faces-config.xml @@ -0,0 +1,56 @@ + + + + manUser + paket.ManUser + request + + + login + paket.Login + session + + + logout + paket.Logout + request + + + cookieCheck + paket.CookieCheck + request + + + editPost + paket.editPost + request + + + viewPost + paket.ViewPost + session + + + editUser + paket.editUser + request + + + unpublished + paket.Unpublished + request + + + softDelete + paket.SoftDelete + request + + + deletePost + paket.deletePost + request + + diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml new file mode 100644 index 00000000..507eb9bb --- /dev/null +++ b/web/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + javax.faces.PROJECT_STAGE + Development + + + JDBC-DRIVER + com.mysql.jdbc.Driver + + + DB-SERVER + jdbc:mysql://localhost:3306/simple_blog + + + DB-USER + root + + + DB-PASSWORD + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + logout + paket.logout + + + Faces Servlet + /faces/* + + + logout + /logout + + + + 30 + + + + faces/index.xhtml + + diff --git a/web/editUser.xhtml b/web/editUser.xhtml new file mode 100644 index 00000000..85ab019c --- /dev/null +++ b/web/editUser.xhtml @@ -0,0 +1,79 @@ + + + + + + Simple Blog | Manage User + + +
+ +
+
+

Manage User

+
+ + + + + + + + + + + + + + + + + + + + + + + +
Username :
Password :
Nama :
Email :
Role : + + + +
+ + +
+ +
+
+
+ +
+ +
+ + \ No newline at end of file diff --git a/web/edit_post.xhtml b/web/edit_post.xhtml new file mode 100644 index 00000000..67025cad --- /dev/null +++ b/web/edit_post.xhtml @@ -0,0 +1,61 @@ + + + + + + Simple Blog | Edit Post + + +
+ + +
+ + +

-

+ +
+
+

Edit Post

+ +
+ + + Judul : + + + + + Tanggal : + + + + + + + + Konten : + + + + + + +
+
+
+ +
+ + +
+ +
+ + \ No newline at end of file diff --git a/web/footer-script.xhtml b/web/footer-script.xhtml new file mode 100644 index 00000000..0579dc81 --- /dev/null +++ b/web/footer-script.xhtml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + diff --git a/web/footer.xhtml b/web/footer.xhtml new file mode 100644 index 00000000..a1380219 --- /dev/null +++ b/web/footer.xhtml @@ -0,0 +1,26 @@ + + + + + + + + + \ No newline at end of file diff --git a/web/header-script.xhtml b/web/header-script.xhtml new file mode 100644 index 00000000..b97d707c --- /dev/null +++ b/web/header-script.xhtml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/header.xhtml b/web/header.xhtml new file mode 100644 index 00000000..9da60856 --- /dev/null +++ b/web/header.xhtml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/web/index.xhtml b/web/index.xhtml new file mode 100644 index 00000000..45121cbc --- /dev/null +++ b/web/index.xhtml @@ -0,0 +1,49 @@ + + + + + + + Simple Blog + + +
+ + +
+
+ +
+
+ + +
+ + + +
+ + diff --git a/web/login.xhtml b/web/login.xhtml new file mode 100644 index 00000000..22e969db --- /dev/null +++ b/web/login.xhtml @@ -0,0 +1,23 @@ + + + + + + Login + + + + + + diff --git a/web/new_post.xhtml b/web/new_post.xhtml new file mode 100644 index 00000000..de234226 --- /dev/null +++ b/web/new_post.xhtml @@ -0,0 +1,60 @@ + + + + + + Simple Blog | Tambah Post + + +
+ + +
+ + +

-

+ +
+
+

Tambah Post

+ +
+ + + Judul : + + + + + Tanggal : + + + + + + + + Konten : + + + + + +
+
+
+ +
+ + +
+ +
+ + \ No newline at end of file diff --git a/web/post.xhtml b/web/post.xhtml new file mode 100644 index 00000000..637c7c1e --- /dev/null +++ b/web/post.xhtml @@ -0,0 +1,68 @@ + + + + + + Simple Blog | <h:outputText value="#{viewPost.judul}"></h:outputText> + + +
+ + +
+
+
+ +

#{viewPost.judul}

+

+
+
+
+
+
+ #{viewPost.konten} +
+ +

Komentar

+ +
+ + Nama: + + + Email: + + + Komentar:
+ + + +
+
+ +
    +
    +

    #{list.nama}

    +
    #{list.tgl_komen}
    +
    +

    + #{list.komen} +

    +
+
+
+
+
+ + +
+ +
+ + \ No newline at end of file diff --git a/web/resource/css/login.css b/web/resource/css/login.css new file mode 100644 index 00000000..c8f7ecaf --- /dev/null +++ b/web/resource/css/login.css @@ -0,0 +1,195 @@ +.liquid-container-315{width:100%;float:left;margin-right:-315px;}.liquid-content-315{margin-right:315px;}.liquid-sidebar-315{width:315px;float:right;}.liquid-side-315{width:300px;margin:0 0 0 15px;}@media screen and (max-width:768px){.liquid-container-315{width:100%;float:none;margin-right:0;}.liquid-content-315{margin-right:0;}.liquid-sidebar-315{width:100%;float:none;}.liquid-side-315{width:100%;margin:0 0 0 0;}}#blavatardiv .submit, #avatardiv .submit{padding:0;}#avatardiv h3, #personal-options h3, .profile-side h3{margin-top:0;}table#general-top{width:630px;}table#general-bottom{clear:both;}#profpic, .profile-side-box{margin-top:10px;padding:10px;background:#fff;border:none !important;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.13);box-shadow:0 1px 3px rgba(0,0,0,0.13);}#profpic{text-align:center;}#profpic img{border:8px solid #fff;}#profpic p{text-align:left;}#personal-options{margin-right:300px;padding:1em 3em 0 0;border:1px solid #fff;}#profile-page .form-table input[type=text]{width:300px;}#current-theme .current-premium-theme{background:#cfdfe9;font-size:15px;font-weight:300;margin:20px 0;padding:15px 20px;}#current-theme .current-premium-theme a{font-weight:bold;text-decoration:none;}#availablethemes{clear:both;}.available-theme .action-links{margin:0;}.available-theme h3 .flag{background:#000;-moz-border-radius:2px;border-radius:2px;color:#daf8cd;font-size:12px;font-weight:normal;left:20px;padding:2px 8px;position:relative;top:-2px;}.available-theme h3 .flag.premium{background:#f0a000;color:#fff;border:1px solid #c87800;}.available-theme h3 .flag.vip{background:#f1831e;color:#fff;}.available-theme h3 .highlight1, +.available-theme .themedetaildiv .highlight1{background:#fcfcbe;}.subsubsub{margin:0 0 8px 0;}.tablenav.themes .tablenav-pages{float:none;width:100%;}.themes .tablenav-pages .displaying-info{color:#777;display:block;float:left;font:italic 12px/30px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;width:75%;}body.mp6 .themes .tablenav-pages .displaying-info{font-family:"Open Sans", sans-serif;}.themes .tablenav-pages .displaying-num{display:block;float:right;margin-right:0;text-align:right;width:25%;}#current-theme{background:#eaf3fa;border:1px solid #cfdfe9;border-radius:3px;margin:1em 0 1.5em;min-height:227px;padding:20px;position:relative;}body.mp6 #current-theme{background:#fff;border:none;border-radius:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);}#current-theme.has-screenshot{padding-left:350px;}#current-theme.premium-theme.has-screenshot{min-height:250px;}#current-theme img{max-width:300px;width:auto;}@media only screen and (max-width:1200px){#current-theme img{margin-left:-330px;}}#current-theme h3{display:none;}#current-theme h4{font-size:24px;font-weight:bold;margin-top:10px;}#current-theme .theme-description{color:#535353;font-size:13px;line-height:22px;margin-top:5px;}#current-theme .theme-info, +#current-theme .theme-info a{color:#575757;font-size:14px;font-weight:300;}#current-theme .theme-options a{background:#fff;background-image:-moz-linear-gradient( #fff, #f1f1f1 );background-image:-webkit-linear-gradient( #fff, #f1f1f1 );background-image:linear-gradient( #fff, #eee );box-shadow:inset 0 -1px 0 #ddd, inset -1px 0 0 #ddd;border-radius:3px;color:#666;display:inline-block;font-size:13px;height:20px;margin:5px 10px 0 0;padding:9px 16px 3px;text-decoration:none;}body.mp6 #current-theme .theme-options a{background:#fafafa;background:rgb(250,250,250);background:-moz-linear-gradient(top, rgba(250,250,250,1) 0%, rgba(233,233,233,1) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(250,250,250,1)), color-stop(100%,rgba(233,233,233,1)));background:-webkit-linear-gradient(top, rgba(250,250,250,1) 0%,rgba(233,233,233,1) 100%);background:-o-linear-gradient(top, rgba(250,250,250,1) 0%,rgba(233,233,233,1) 100%);background:linear-gradient(to bottom, rgba(250,250,250,1) 0%,rgba(233,233,233,1) 100%);border:1px solid #adadad;color:#333;line-height:14px;}#current-theme .theme-options a:hover{color:#21759B;}body.mp6 #current-theme .theme-options a:hover{background:#f3f3f3;background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3));background-image:-webkit-linear-gradient(top, #fff, #f3f3f3);background-image:-moz-linear-gradient(top, #fff, #f3f3f3);background-image:-o-linear-gradient(top, #fff, #f3f3f3);background-image:linear-gradient(to bottom, #fff, #f3f3f3);border-color:#999;}.no-customize-support #current-theme .hide-if-no-customize, +.customize-support #current-theme .hide-if-customize{display:none;}#current-theme .theme-options li{border:0;margin-right:0;padding-right:0;}#current-theme .theme-options span, +#current-theme .theme-options .sep, +#current-theme .theme-options .current-theme-tags, +#current-theme .theme-options .item-nav-menus, +#current-theme .theme-options .item-mobile-options, +#current-theme .theme-options .item-ipad, +#current-theme .theme-options .item-custom-header, +#current-theme .theme-options .item-custom-background{display:none;}#current-theme .current-premium-theme{background:#2ea2cc;color:#fff;color:rgba(255,255,255,0.8);font-size:15px;font-weight:300;margin:60px 0 0 -330px;padding:15px 20px;}#current-theme .current-premium-theme a{color:#fff;font-weight:bold;text-decoration:none;}#current-theme .current-premium-theme a:hover{text-decoration:underline;}#current-theme .theme-options .load-customize, +body.mp6 #current-theme .theme-options .load-customize{background-color:#2ea2cc;background-image:-moz-linear-gradient(#1e8cbe, #0074a2);background-image:-webkit-linear-gradient(#1e8cbe, #0074a2);background-image:-ms-linear-gradient(#1e8cbe, #0074a2);background-image:-o-linear-gradient(#1e8cbe, #0074a2);background-image:linear-gradient(#1e8cbe, #0074a2);-moz-box-shadow:inset 0 1px 0 #1e8cbe, inset 0 2px 0 rgba(120,200,230,0.3);-webkit-box-shadow:inset 0 1px 0 #1e8cbe, inset 0 2px 0 rgba(120,200,230,0.3);-o-box-shadow:inset 0 1px 0 #1e8cbe, inset 0 2px 0 rgba(120,200,230,0.3);-ms-box-shadow:inset 0 1px 0 #1e8cbe, inset 0 2px 0 rgba(120,200,230,0.3);box-shadow:inset 0 1px 0 #1e8cbe, inset 0 2px 0 rgba(120,200,230,0.3);color:#fff;border:none;}body.mp6 #current-theme .theme-options .load-customize{border:1px solid #0074a2;-moz-box-shadow:inset 0 1px 0 rgba(120,200,230,0.3);-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,0.3);-o-box-shadow:inset 0 1px 0 rgba(120,200,230,0.3);-ms-box-shadow:inset 0 1px 0 rgba(120,200,230,0.3);box-shadow:inset 0 1px 0 rgba(120,200,230,0.3);}#current-theme .theme-options .load-customize:hover, +body.mp6 #current-theme .theme-options .load-customize:hover{color:#fff;text-decoration:underline;background-image:-moz-linear-gradient(#2ea2cc, #0074a2);background-image:-webkit-linear-gradient(#2ea2cc, #0074a2);background-image:-o-linear-gradient(#2ea2cc, #0074a2);background-image:-ms-linear-gradient(#2ea2cc, #0074a2);background-image:linear-gradient(#2ea2cc, #0074a2);-moz-box-shadow:inset 0 1px 0 #2ea2cc, inset 0 2px 0 rgba(120,200,230,0.5);-webkit-box-shadow:inset 0 1px 0 #2ea2cc, inset 0 2px 0 rgba(120,200,230,0.5);-o-box-shadow:inset 0 1px 0 #2ea2cc, inset 0 2px 0 rgba(120,200,230,0.5);-ms-box-shadow:inset 0 1px 0 #2ea2cc, inset 0 2px 0 rgba(120,200,230,0.5);box-shadow:inset 0 1px 0 #2ea2cc, inset 0 2px 0 rgba(120,200,230,0.5);}body.mp6 #current-theme .theme-options .load-customize:hover{text-decoration:none;-moz-box-shadow:inset 0 1px 0 rgba(120,200,230,0.5);-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,0.5);-o-box-shadow:inset 0 1px 0 rgba(120,200,230,0.5);box-shadow:inset 0 1px 0 rgba(120,200,230,0.5);}#contextual-help-wrap h5{padding-left:0px !important;}#new-feedback{padding-top:14px;}.supportcats{list-style:none;clear:both;text-indent:0;}.supportcats li{display:block;float:left;min-width:14em;white-space:nowrap;}.supportcats a{text-transform:capitalize;cursor:pointer;}#quicklookup a{cursor:pointer;}#quicklookup strong{display:block;margin-top:1em;}#quicklookup ul{float:left;list-style-type:disc;}#quicklookup .list{clear:both;float:left;width:100%;margin-bottom:10px;}#quicklookup .list ul{min-width:14em;}#quicklookup .list ul li{margin-left:2em;}#quicklookup p.submit{margin:0;padding:0;}#contextual-help-wrap input[type="text"], +#contextual-help-wrap textarea{border:1px solid #dfdfdf;}#dashboard_stats .inside{margin:10px 0 0 0 !important;}#dashboard_stats #stats-graph{margin:0;}#dashboard_stats a.button{float:right;margin:5px 0 10px 0;}.main-stats{border-top:1px solid #dfdfdf;margin:0 -10px;padding:10px;background:#fcfcfc;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;overflow:hidden;}body.admin-color-classic .main-stats{background:#fff;border-top:1px solid #d0dfe9;}.main-stats #top-posts, .main-stats #top-search{float:left;width:50%;}#top-posts .stats-section-inner p{white-space:nowrap;overflow:hidden;}#top-posts .stats-section-inner p a{overflow:hidden;text-overflow:ellipsis;}#stats-info div#active{border-top:1px solid #dfdfdf;margin:0 -10px;padding:10px 10px 0 10px;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;overflow:hidden;}body.admin-color-classic #stats-info div#active{border-top:1px solid #d0dfe9;}#top-search p{color:#999;}#stats-info h4{font-size:1em;margin:0 0 .5em 0 !important;}#stats-info p{margin:0 0 .25em;color:#999;}#stats-info p.widget-loading{margin:1em 0 0;color:#333;}#stats-info p a{display:block;}#stats-info p a.button{display:inline;}fieldset.options{margin:1em auto;border:1px solid #dadada;}body#media-upload{padding-top:0;}p.upload-filetypes, p.upload-quota, p.upload-flash-bypass, p.upload-html-bypass{color:#999;font-size:0.9em;max-width:90%;}.upload-quota span{display:block;}#flash-upload-ui p.howto{display:none;}#content_media{display:none;}ul.short-code-list{margin:0 1.5ex;padding:3px 0 0;list-style:none;text-indent:0;}.tablenav a.checkforspam{float:left;}.ui-tabs-loading{outline:none;background:url(../images/loading.gif) no-repeat 0 50%;}#thumbnail_crop, label[for=thumbnail_crop]{display:none;}.widefat th.column-stats{text-align:center;}.column-stats{width:5em;}.column-stats a{width:16px;margin:0 auto;}.message{line-height:1.75em;}#change-permalinks{display:none;}p.custom-css-help{float:right;border:1px solid #000;width:200px;margin:0 0 0 10px;padding:6px;}textarea#safecss{background:#f9f9f9;color:#444;font-family:Consolas, Monaco, Courier, monospace;font-size:12px;line-height:16px;outline:none;padding:16px;}#hotdiv h4{color:#999;line-height:1.4em;margin-top:-0.2em;}#hotdiv li{margin-bottom:.75em;color:#333;}#hotdiv ol{margin:1em 0 1.5em 20px;}#hotdiv .imglist{list-style:none;margin:1em 0 1.5em 6px;}.imglist img{padding-right:6px;vertical-align:middle;background:#fff;}.product-expirations{margin-bottom:8px;}.product-expirations td{padding:0 8px 2px 0;}p.post-post, li.post-post, .post-post-right-column p{font-size:13px;}.post-post a{text-decoration:none;}a.ppbtn{font-size:13px;border-radius:3px;text-decoration:none;text-shadow:#ffffff 0 1px 0;background-color:#eee;padding:2px 8px;display:inline-block;margin:0 1px;width:auto;}a.ppbtn:hover{}a.ppbtn:active{background-color:#f2f2f2;}p.post-post-meta, p.post-post-comments{font-size:15px;}.post-post-column{width:450px;float:left;margin-top:10px;margin-right:30px;}.getmorereaders{border-top:1px solid #eee;}.post-post-links{font-size:15px;line-height:1.5em;padding-bottom:20px;border-bottom:1px solid #eee;margin-right:20px;margin-top:0;margin:0 0 12px 0;padding:2px 0 16px;}.post-post-right-column{width:250px;background:#fbfbfb;padding:5px 18px 15px;}.post-post-right-column h3{margin-bottom:0;}.post-post-column ul{list-style:disc;padding-left:15px;}.post-post-column ul li.post-post{color:#333;line-height:1.25em;padding:0 0 2px;}#tos-warning{background:#dd3d36;color:#fff;border-left:4px solid #fff;}#tos-warning a{color:#fff;text-decoration:underline;}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%;}#wpbody #wpbody-content #dashboard-widgets.columns-2 .postbox-container{width:49.5%;}#wpbody #wpbody-content #dashboard-widgets.columns-3 .postbox-container{width:33.5%;}#wpbody #wpbody-content #dashboard-widgets.columns-4 .postbox-container{width:25%;}#wpcom-tip{position:relative;border-left-color:#2EA2CC;}#wpcom-tip a#hide-tip{display:none;margin:8px 8px 0 0;}#wpcom-tip.tip-email-verify strong{margin-bottom:0.5em;display:block;}#icann_verification_container{overflow:auto;}#icann_verification_container #notice{float:left;width:65%;margin-right:5%;}#icann_verification_container #notice p#icann_instructions_lead{border-top:1px solid #eee;padding-top:20px;margin-top:20px;}#icann_verification_container #notice p.icann_instructions{color:#666;}#icann_verification_container #example{width:30%;float:right;background-color:#f1f1f1;padding:20px;}#icann_verification_container #example p{margin-top:0;font-size:14px;color:#555;} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans Light'), local('OpenSans-Light'), url(https://fonts.gstatic.com/s/opensans/v10/DXI1ORHCpsQm3Vp6mXoaTRa1RVmPjeKy21_GQJaLlJI.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url(https://fonts.gstatic.com/s/opensans/v10/u-WUoqrET9fUeobQW7jkRT8E0i7KZn-EPnyo3HZu7kw.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(https://fonts.gstatic.com/s/opensans/v10/MTP_ySUJH_bn48VBG8sNSha1RVmPjeKy21_GQJaLlJI.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(https://fonts.gstatic.com/s/opensans/v10/PRmiXeptR36kaC0GEAetxrsuoFAk0leveMLeqYtnfAY.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans Italic'), local('OpenSans-Italic'), url(https://fonts.gstatic.com/s/opensans/v10/xjAJXh38I15wypJXxuGMBtIh4imgI8P11RFo6YPCPC0.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(https://fonts.gstatic.com/s/opensans/v10/PRmiXeptR36kaC0GEAetxmWeb5PoA5ztb49yLyUzH1A.woff) format('woff'); +} + +@font-face{font-family:dashicons;src:url(/wp-includes/css/../fonts/dashicons.eot)}@font-face{font-family:dashicons;src:url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'),url(/wp-includes/css/../fonts/dashicons.ttf) format("truetype"),url(/wp-includes/css/../fonts/dashicons.svg#dashicons) format("svg");font-weight:400;font-style:normal}.dashicons,.dashicons-before:before{display:inline-block;width:20px;height:20px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashicons-menu:before{content:"\f333"}.dashicons-admin-site:before{content:"\f319"}.dashicons-dashboard:before{content:"\f226"}.dashicons-admin-media:before{content:"\f104"}.dashicons-admin-page:before{content:"\f105"}.dashicons-admin-comments:before{content:"\f101"}.dashicons-admin-appearance:before{content:"\f100"}.dashicons-admin-plugins:before{content:"\f106"}.dashicons-admin-users:before{content:"\f110"}.dashicons-admin-tools:before{content:"\f107"}.dashicons-admin-settings:before{content:"\f108"}.dashicons-admin-network:before{content:"\f112"}.dashicons-admin-generic:before{content:"\f111"}.dashicons-admin-home:before{content:"\f102"}.dashicons-admin-collapse:before{content:"\f148"}.dashicons-admin-links:before,.dashicons-format-links:before{content:"\f103"}.dashicons-admin-post:before,.dashicons-format-standard:before{content:"\f109"}.dashicons-format-image:before{content:"\f128"}.dashicons-format-gallery:before{content:"\f161"}.dashicons-format-audio:before{content:"\f127"}.dashicons-format-video:before{content:"\f126"}.dashicons-format-chat:before{content:"\f125"}.dashicons-format-status:before{content:"\f130"}.dashicons-format-aside:before{content:"\f123"}.dashicons-format-quote:before{content:"\f122"}.dashicons-welcome-edit-page:before,.dashicons-welcome-write-blog:before{content:"\f119"}.dashicons-welcome-add-page:before{content:"\f133"}.dashicons-welcome-view-site:before{content:"\f115"}.dashicons-welcome-widgets-menus:before{content:"\f116"}.dashicons-welcome-comments:before{content:"\f117"}.dashicons-welcome-learn-more:before{content:"\f118"}.dashicons-image-crop:before{content:"\f165"}.dashicons-image-rotate-left:before{content:"\f166"}.dashicons-image-rotate-right:before{content:"\f167"}.dashicons-image-flip-vertical:before{content:"\f168"}.dashicons-image-flip-horizontal:before{content:"\f169"}.dashicons-undo:before{content:"\f171"}.dashicons-redo:before{content:"\f172"}.dashicons-editor-bold:before{content:"\f200"}.dashicons-editor-italic:before{content:"\f201"}.dashicons-editor-ul:before{content:"\f203"}.dashicons-editor-ol:before{content:"\f204"}.dashicons-editor-quote:before{content:"\f205"}.dashicons-editor-alignleft:before{content:"\f206"}.dashicons-editor-aligncenter:before{content:"\f207"}.dashicons-editor-alignright:before{content:"\f208"}.dashicons-editor-insertmore:before{content:"\f209"}.dashicons-editor-spellcheck:before{content:"\f210"}.dashicons-editor-distractionfree:before,.dashicons-editor-expand:before{content:"\f211"}.dashicons-editor-contract:before{content:"\f506"}.dashicons-editor-kitchensink:before{content:"\f212"}.dashicons-editor-underline:before{content:"\f213"}.dashicons-editor-justify:before{content:"\f214"}.dashicons-editor-textcolor:before{content:"\f215"}.dashicons-editor-paste-word:before{content:"\f216"}.dashicons-editor-paste-text:before{content:"\f217"}.dashicons-editor-removeformatting:before{content:"\f218"}.dashicons-editor-video:before{content:"\f219"}.dashicons-editor-customchar:before{content:"\f220"}.dashicons-editor-outdent:before{content:"\f221"}.dashicons-editor-indent:before{content:"\f222"}.dashicons-editor-help:before{content:"\f223"}.dashicons-editor-strikethrough:before{content:"\f224"}.dashicons-editor-unlink:before{content:"\f225"}.dashicons-editor-rtl:before{content:"\f320"}.dashicons-editor-break:before{content:"\f474"}.dashicons-editor-code:before{content:"\f475"}.dashicons-editor-paragraph:before{content:"\f476"}.dashicons-align-left:before{content:"\f135"}.dashicons-align-right:before{content:"\f136"}.dashicons-align-center:before{content:"\f134"}.dashicons-align-none:before{content:"\f138"}.dashicons-lock:before{content:"\f160"}.dashicons-calendar:before{content:"\f145"}.dashicons-calendar-alt:before{content:"\f508"}.dashicons-visibility:before{content:"\f177"}.dashicons-post-status:before{content:"\f173"}.dashicons-edit:before{content:"\f464"}.dashicons-post-trash:before,.dashicons-trash:before{content:"\f182"}.dashicons-external:before{content:"\f504"}.dashicons-arrow-up:before{content:"\f142"}.dashicons-arrow-down:before{content:"\f140"}.dashicons-arrow-left:before{content:"\f141"}.dashicons-arrow-right:before{content:"\f139"}.dashicons-arrow-up-alt:before{content:"\f342"}.dashicons-arrow-down-alt:before{content:"\f346"}.dashicons-arrow-left-alt:before{content:"\f340"}.dashicons-arrow-right-alt:before{content:"\f344"}.dashicons-arrow-up-alt2:before{content:"\f343"}.dashicons-arrow-down-alt2:before{content:"\f347"}.dashicons-arrow-left-alt2:before{content:"\f341"}.dashicons-arrow-right-alt2:before{content:"\f345"}.dashicons-leftright:before{content:"\f229"}.dashicons-sort:before{content:"\f156"}.dashicons-randomize:before{content:"\f503"}.dashicons-list-view:before{content:"\f163"}.dashicons-exerpt-view:before{content:"\f164"}.dashicons-grid-view:before{content:"\f509"}.dashicons-hammer:before{content:"\f308"}.dashicons-art:before{content:"\f309"}.dashicons-migrate:before{content:"\f310"}.dashicons-performance:before{content:"\f311"}.dashicons-universal-access:before{content:"\f483"}.dashicons-universal-access-alt:before{content:"\f507"}.dashicons-tickets:before{content:"\f486"}.dashicons-nametag:before{content:"\f484"}.dashicons-clipboard:before{content:"\f481"}.dashicons-heart:before{content:"\f487"}.dashicons-megaphone:before{content:"\f488"}.dashicons-schedule:before{content:"\f489"}.dashicons-wordpress:before{content:"\f120"}.dashicons-wordpress-alt:before{content:"\f324"}.dashicons-pressthis:before{content:"\f157"}.dashicons-update:before{content:"\f463"}.dashicons-screenoptions:before{content:"\f180"}.dashicons-info:before{content:"\f348"}.dashicons-cart:before{content:"\f174"}.dashicons-feedback:before{content:"\f175"}.dashicons-cloud:before{content:"\f176"}.dashicons-translation:before{content:"\f326"}.dashicons-tag:before{content:"\f323"}.dashicons-category:before{content:"\f318"}.dashicons-archive:before{content:"\f480"}.dashicons-tagcloud:before{content:"\f479"}.dashicons-text:before{content:"\f478"}.dashicons-media-archive:before{content:"\f501"}.dashicons-media-audio:before{content:"\f500"}.dashicons-media-code:before{content:"\f499"}.dashicons-media-default:before{content:"\f498"}.dashicons-media-document:before{content:"\f497"}.dashicons-media-interactive:before{content:"\f496"}.dashicons-media-spreadsheet:before{content:"\f495"}.dashicons-media-text:before{content:"\f491"}.dashicons-media-video:before{content:"\f490"}.dashicons-playlist-audio:before{content:"\f492"}.dashicons-playlist-video:before{content:"\f493"}.dashicons-yes:before{content:"\f147"}.dashicons-no:before{content:"\f158"}.dashicons-no-alt:before{content:"\f335"}.dashicons-plus:before{content:"\f132"}.dashicons-plus-alt:before{content:"\f502"}.dashicons-minus:before{content:"\f460"}.dashicons-dismiss:before{content:"\f153"}.dashicons-marker:before{content:"\f159"}.dashicons-star-filled:before{content:"\f155"}.dashicons-star-half:before{content:"\f459"}.dashicons-star-empty:before{content:"\f154"}.dashicons-flag:before{content:"\f227"}.dashicons-share1:before,.dashicons-share:before{content:"\f237"}.dashicons-share-alt:before{content:"\f240"}.dashicons-share-alt2:before{content:"\f242"}.dashicons-twitter:before{content:"\f301"}.dashicons-rss:before{content:"\f303"}.dashicons-email:before{content:"\f465"}.dashicons-email-alt:before{content:"\f466"}.dashicons-facebook:before{content:"\f304"}.dashicons-facebook-alt:before{content:"\f305"}.dashicons-networking:before{content:"\f325"}.dashicons-googleplus:before{content:"\f462"}.dashicons-location:before{content:"\f230"}.dashicons-location-alt:before{content:"\f231"}.dashicons-camera:before{content:"\f306"}.dashicons-images-alt:before{content:"\f232"}.dashicons-images-alt2:before{content:"\f233"}.dashicons-video-alt:before{content:"\f234"}.dashicons-video-alt2:before{content:"\f235"}.dashicons-video-alt3:before{content:"\f236"}.dashicons-vault:before{content:"\f178"}.dashicons-shield:before{content:"\f332"}.dashicons-shield-alt:before{content:"\f334"}.dashicons-sos:before{content:"\f468"}.dashicons-search:before{content:"\f179"}.dashicons-slides:before{content:"\f181"}.dashicons-analytics:before{content:"\f183"}.dashicons-chart-pie:before{content:"\f184"}.dashicons-chart-bar:before{content:"\f185"}.dashicons-chart-line:before{content:"\f238"}.dashicons-chart-area:before{content:"\f239"}.dashicons-groups:before{content:"\f307"}.dashicons-businessman:before{content:"\f338"}.dashicons-id:before{content:"\f336"}.dashicons-id-alt:before{content:"\f337"}.dashicons-products:before{content:"\f312"}.dashicons-awards:before{content:"\f313"}.dashicons-forms:before{content:"\f314"}.dashicons-testimonial:before{content:"\f473"}.dashicons-portfolio:before{content:"\f322"}.dashicons-book:before{content:"\f330"}.dashicons-book-alt:before{content:"\f331"}.dashicons-download:before{content:"\f316"}.dashicons-upload:before{content:"\f317"}.dashicons-backup:before{content:"\f321"}.dashicons-clock:before{content:"\f469"}.dashicons-lightbulb:before{content:"\f339"}.dashicons-microphone:before{content:"\f482"}.dashicons-desktop:before{content:"\f472"}.dashicons-tablet:before{content:"\f471"}.dashicons-smartphone:before{content:"\f470"}.dashicons-smiley:before{content:"\f328"}.dashicons-index-card:before{content:"\f510"}.dashicons-carrot:before{content:"\f511"}input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;outline:0;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}input[type=text].ui-autocomplete-loading{background:url(/wp-admin/css/../images/loading.gif) no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-left:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-left:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-left:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{background:#f1f1f1;min-width:0;color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:dotted thin}p{line-height:1.5}.login .message{border-left:4px solid #7ad03a;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-left:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0} +.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;font-weight:400;overflow:hidden;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(/wp-admin/css/../images/w-logo-blue.png?ver=20131202);background-image:none,url(/wp-admin/css/../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#999;height:84px;font-size:20px;font-weight:400;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#login{width:320px;padding:8% 0 0;margin:auto}#login_error,.login .message{margin-left:0;padding:12px}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#999}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#2ea2cc}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login #pass-strength-result{width:250px;font-weight:600;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login .message,.mobile #login form,.mobile #login_error{margin-left:0}.mobile #login #backtoblog,.mobile #login #nav{margin-left:8px}.mobile #login h1 a{width:auto}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}} + +.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-core-ui button::-moz-focus-inner,.wp-core-ui input[type=button]::-moz-focus-inner,.wp-core-ui input[type=reset]::-moz-focus-inner,.wp-core-ui input[type=submit]::-moz-focus-inner{border-width:0;border-style:none;padding:0}.wp-core-ui .button-group.button-large .button,.wp-core-ui .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}.wp-core-ui .button-group.button-small .button,.wp-core-ui .button.button-small{height:24px;line-height:22px;padding:0 8px 1px;font-size:11px}.wp-core-ui .button-group.button-hero .button,.wp-core-ui .button.button-hero{font-size:14px;height:46px;line-height:44px;padding:0 36px}.wp-core-ui .button:active,.wp-core-ui .button:focus{outline:0}.wp-core-ui .button.hidden{display:none}.wp-core-ui input[type=reset],.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:focus,.wp-core-ui input[type=reset]:hover{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding:0 2px 1px;width:auto}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.wp-core-ui p .button{vertical-align:baseline}.wp-core-ui .button-secondary:focus,.wp-core-ui .button-secondary:hover,.wp-core-ui .button.focus,.wp-core-ui .button.hover,.wp-core-ui .button:focus,.wp-core-ui .button:hover{background:#fafafa;border-color:#999;color:#222}.wp-core-ui .button-secondary:focus,.wp-core-ui .button.focus,.wp-core-ui .button:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-secondary:active,.wp-core-ui .button.active,.wp-core-ui .button.active:hover,.wp-core-ui .button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button.active:focus{-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-disabled,.wp-core-ui .button-secondary.disabled,.wp-core-ui .button-secondary:disabled,.wp-core-ui .button-secondary[disabled],.wp-core-ui .button.disabled,.wp-core-ui .button:disabled,.wp-core-ui .button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}.wp-core-ui .button-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary.hover,.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.wp-core-ui .button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#94cde7!important;background:#298cba!important;border-color:#1b607f!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.wp-core-ui .button-group{position:relative;display:inline-block;white-space:nowrap;font-size:0;vertical-align:middle}.wp-core-ui .button-group>.button{display:inline-block;-webkit-border-radius:0;border-radius:0;margin-right:-1px;z-index:10}.wp-core-ui .button-group>.button-primary{z-index:100}.wp-core-ui .button-group>.button:hover{z-index:20}.wp-core-ui .button-group>.button:first-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.wp-core-ui .button-group>.button:last-child{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.wp-core-ui .button-group>.button:focus{position:relative;z-index:1}@media screen and (max-width:782px){.wp-core-ui .button,.wp-core-ui .button.button-large,.wp-core-ui .button.button-small,a.preview,input#publish,input#save-post{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#media-upload.wp-core-ui .button{padding:0 10px 1px;height:24px;line-height:22px;font-size:13px}.media-frame.mode-grid .bulk-select .button{margin-bottom:0}.wp-core-ui .save-post-status.button{position:relative;margin:0 14px 0 10px}.press-this a.preview,.press-this input#publish,.press-this input#save-post,.press-this.wp-core-ui .button,.wp-core-ui.wp-customizer .button{padding:0 10px 1px;font-size:13px;line-height:26px;height:28px;margin:0;vertical-align:inherit}.interim-login .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}} + +body, form .input { + font-family: "Open Sans", "Helvetica Neue", "Arial", sans; + } + + body.login.recover-password, + body.login.recover-password-success { + height: auto; + min-height: 100%; + } + + + .recover-password #recovery, + .recover-password-success #recovery, + .recover-password #login_error { + width: 500px; + } + + #recovery { + padding-bottom: 24px; + } + + .recover-password #login_error { + width: auto; + } + + #login_error ul { + list-style: square outside none; + margin-left: 15px; + } + + #login_error ol { + margin-left: 25px; + } + + .message ol { + margin: 10px 0px 10px 20px; + } + + #login_error h2, #recovery h2 { + padding-bottom: 10px; + } + + #login_error h3 { + padding-bottom: 5px; + } + + #login_error h3 { + margin-top: 10px; + } + + .recover-password #recovery h2 { + margin-bottom: 5px; + } + .recover-password-success #recovery h2 { + margin-bottom: .5em; + } + + .recover-password #recovery p { + line-height: 1.6; + padding-bottom: 10px; + border-top: none; + } + .recover-password-success #recovery p { + line-height: 1.6; + padding-bottom: 1em; + } + + .recovery-stage { + margin: 14px 0px 27px 0px; + } + .login .recovery-stage input[type="text"] { + margin-bottom: 5px; + } + + .recovery-ownership-message { + background-color: #fff; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1); + box-shadow: 0 1px 2px rgba(0,0,0,0.1); + padding: 7px 15px 0 15px; + margin: 1em 0; + background: #ffffe0; + } + + .recovery-error-message { + display: none; + background-color: #f1831e; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1); + box-shadow: 0 1px 2px rgba(0,0,0,0.1); + padding: 7px 15px 0 15px; + margin: 1em 0; + background: #f1831e; + } + + .recover-password #recovery textarea { + width: 100%; + box-sizing: border-box; + -moz-box-sizing:border-box; + -webkit-box-sizing:border-box; + -ms-box-sizing:border-box; + } + + .recover-password #recovery .recovery-ownership-title { + position: relative; + padding-bottom: 0; + } + + .recovery-ownership-help { + float: right; + font-size: 11px; + margin-top: -10px; + margin-bottom: 5px; + } + + .recovery-ownership { + clear: both; + } + + .recovery-ownership-help { + margin: 3px 0 0 0; + } + + .recovery-ownership-help-text { + display: none; + position: absolute; + top: 25px; + right: 0; + z-index: 100; + border: 1px solid #e6db55; + background-color: lightyellow; + width: 250px; + padding: 8px; + box-shadow: 0 4px 10px -1px rgba(200, 200, 200, 0.7); + } + + .account-recovery-link { + float: left; + margin-top: 4px; + } \ No newline at end of file diff --git a/web/resource/css/screen.css b/web/resource/css/screen.css new file mode 100644 index 00000000..30f44d75 --- /dev/null +++ b/web/resource/css/screen.css @@ -0,0 +1,891 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans); +@import url(http://fonts.googleapis.com/css?family=Questrial); + +/* Reset & Basics (Inspired by E. Meyers) +================================================== */ +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, address, cite, code, em, img, small, strong, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, embed, figure, figcaption, footer, header, hgroup, menu, nav, section, summary, time, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; } +article, aside, details, figcaption, figure, footer, header, hgroup, menu, time, nav, section { + display: block; } +html, body, .wrapper { + min-height: 100%; +} + + +/* Body +================================================== */ +html, body { + height: 100%; +} +.wrapper { + min-height: 100%; +} +body { + overflow-x: hidden; + font: 17px/28px ff-meta-serif-web-pro, "Georgia", serif; + color: #333; + background: #fff; +} + + +/* Typography +================================================== */ +h1, h2, h3, h4, h5, h6 { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-weight: normal; + text-transform: uppercase; + font-weight: 700; + color: #000; + text-rendering: optimizeLegibility; +} + +h1 { + font-size: 50px; + padding-bottom: 30px; +} + +h2 { + font-size: 45px; + padding-bottom: 25px; +} + +h3 { + font-size: 40px; + padding-bottom: 20px; +} + +h4 { + font-size: 35px; + padding-bottom: 15px; +} + +h5 { + font-size: 30px; + padding-bottom: 10px; +} + +p { + margin: 0 0 28px 0; +} + +strong { + font-weight: bold; +} +em { + font-style: italic; +} +sup { + line-height: 0; +} + +small { + font-size: 70%; +} + +cite { + font-size: 80%; + font-style: italic; + } + +/* Teaser +================================================== */ + +header#teaser h1 { + text-transform: none !important; + color: #333; + font-size: 28px !important; + font-weight: 300 !important; +} + + +/* Links +================================================== */ +a { + color: #F40034; + text-decoration: none; + -webkit-transition: color .2s ease-in-out; + -moz-transition: color .2s ease-in-out; + transition: color .2s ease-in-out; +} +a:hover { + color: #F40034; +} + +/* Layout +================================================== */ +/* White container that is the "page" */ +.wrapper { + max-width: 1500px; + margin: 0 auto; + background: #fff; +} + +/* Containers to keep content to a set width */ +.nav, +.art-header-inner, +.footer, +.art-list, +.abt, +.fourohfour { + width: 980px; +} +.nav, +.art-body-inner, +.footer, +.art-list, +.abt, +.fourohfour { + position: relative; + margin: 0 auto; +} + +/* Nav +================================================== */ +.nav { + position: absolute; + top: 0; + left: 50%; + height: 70px; + padding-top: 40px; + margin-left: -490px; /* Half width of nav */ + border-bottom: 1px solid #333; + z-index: 2; +} +.nav.fixed { + position: fixed; +} +#logo { + float: left; +} +.nav-primary { + float: right; +} +.nav-primary li { + display: inline-block; + margin-left: 10px; + font-weight: 500; +} +#logo h1, +.nav-primary li, +.nav-primary li a { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-weight: 700; + font-size: 13px; + line-height: 30px; + color: #000; + text-transform: uppercase; +} + +#logo h1 { + height: 30px; + margin-left: 0px; + letter-spacing: 1px; + font-family: 'Questrial', sans-serif; + font-size: 30px; +} + +#logo h1 span{ + color: #F40034 !important; +} + +.nav li:first-child { + margin-left: 0; /* Remove left margin from the first nav li */ +} + +/* Home Page +================================================== */ + +div#home {} + +#home > div.cover { + max-width: 980px; + margin: 0px auto; + /*padding-top: 110px;*/ +} + +div.cover { + +} + +div.cover > img { + width: 100%; + height: 100%; +} + + +/* Article +================================================== */ +.art { + margin-top: -131px; +} +/* Header */ +.art-header { + height: 900px; + /* Background image is defined in the post */ + background-position: top center; + background-attachment: fixed; + overflow: hidden; +} +/* Contains the time, title and subtitle for an article */ +.art-header-inner { + /*position: fixed;*/ + position: absolute; + top: 300px; + left: 50%; + margin-left: -490px; +} +.art-time, +.art-title, +.art-subtitle { + text-align: center; + text-transform: uppercase; +} +.art-time { + font-size: 14px; + line-height: 1.8; + letter-spacing: 4px; +} +.art-title { + font-size: 100px; + line-height: .9; + letter-spacing: -2px; + width: 100%; +} +.art-subtitle { + margin-top: 4px; + font-size: 14px; + line-height: 1.3; + letter-spacing: 4px; +} + +/* If small header, make few adjustments */ +.small .art-title { + font-size: 70px; + line-height: 65px; +} +.small.art-header-inner { + top: 320px; +} + +/* Body */ +.art-body { + /*position: relative;*/ + width: 100%; + background: #fff; + z-index: 100; + -webkit-box-shadow: 0 -3px 3px rgba(0,0,0,.2); + -moz-box-shadow: 0 -3px 3px rgba(0,0,0,.2); + box-shadow: 0 -3px 3px rgba(0,0,0,.2); +} +.art-body-inner { + font-family: Georgia,Cambria,"Times New Roman",Times,serif; + max-width: 640px; + padding: 100px 0 50px; + letter-spacing: 0.01rem; + font-weight: 400; + font-style: normal; + font-size: 21px; + line-height: 1.5; +} +.art-body-inner a:hover { + border-bottom: 1px solid #F40034; + padding-bottom:2px; +} +.art-body-inner ul, +.art-body-inner ol { /* For lists in the article body */ + margin-bottom: 26px; +} +.art-body-inner ul li { + list-style: disc; +} + +.art-body-inner mark { + background-color: #fdffb6; + padding: 2px; + -webkit-box-shadow: #fdffb6 0 0 5px; + -moz-box-shadow: #fdffb6 0 0 5px; + box-shadow: #fdffb6 0 0 5px; +} + +.art-body-inner blockquote { + font-size: 16px; + background: #f9f9f9; + border-left: 10px solid #ccc; + margin: 1.5em 10px; + padding: 0.5em 10px; + quotes: "\201C""\201D""\2018""\2019"; +} + +.art-body-inner blockquote p:first-child:before { + color: #ccc; + content: "“"; + font-size: 4em; + line-height: 0.1em; + margin-right: 0.25em; + vertical-align: -0.4em; +} + +.art-body-inner blockquote p { + margin-bottom: 1.5em; +} + +.art-body-inner blockquote p:last-child { + margin-bottom: 0; +} + + +.dropcap { /* First character on articles */ + float: left; + margin: 47px 10px 20px 0; + font-size: 100px; + line-height: 0; +} +.art-subhead { /* Subheads are used to break up sections of an article */ + margin: 60px 0 15px; + font-size: 20px; + line-height: 28px; + letter-spacing: 3px; +} +.callout { /* Callouts are like large pullquotes */ + font-weight: bold; +} +.art-body-inner img { + max-width: 100%; + max-height: 600px; + margin-bottom: 26px; +} +.art-body-inner img.center { + display: block; + margin-left: auto; + margin-right: auto; +} +.art-body-inner .art-reference { + font-size: 80%; + color: #999; + margin-top: 50px; +} + +/* For simple, white background posts */ +.simple .art-body { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + + +/* List of Articles +================================================== */ +.art-list { + padding: 120px 0 0; +} +.art-list-body { + position: relative; + overflow: hidden; +} +.art-list-item { + padding: 40px 0; + list-style: none; + overflow: hidden; + border-bottom: 1px solid #ccc; +} +.art-list-item:last-child { + border-bottom: none; +} +.art-list-title { + font-size: 26px; + line-height: 26px; + font-weight: 700; +} +.art-list-item-title-and-time { + float: left; + width: 30%; + margin-bottom: 10px; +} +.art-list-time { + font-size: 12px; + line-height: 20px; + letter-spacing: 2px; + text-transform: uppercase; + color: #999; +} +.art-list-title a { + color: #000; +} +.art-list-title a:hover { + color: #F40034; +} +.art-list-item p { + width: 65%; + float: left; + margin-left: 5%; + margin-bottom: 0; + font-size: 16px; + line-height: 24px; +} + + +/* Footer +================================================== */ +.footer { + padding: 30px 0 40px; + overflow: hidden; + border-top: 1px solid #ccc; +} +.footer, +.footer a { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-size: 13px; + text-transform: uppercase; + color: #777; +} +.footer a:hover { + color: #000; +} +.back-to-top, +.footer-nav, +.offsite-links { + width: 45%; + float: left; +} +.psi { + width:10%; + float:left; + text-align: center; +} +.footer-nav { + text-align: center; +} +.offsite-links { + text-align: right; +} +.footer .twitter-link:hover { + color: #0084B4; +} +.footer .instagram-link:hover { + color: #3F729B; +} +.footer .github-link:hover { + color: #c5376d; +} +.footer .caffein8-link:hover{ + color: black; +} +.footer .rss-link:hover { + color: #e85d24; +} +/* Remove prev & next links on loop */ +.art-list + .footer .footer-nav, +.abt + .footer .footer-nav { + text-indent: -9999px; + text-align: left; +} + + +/* White Reverse Theme +================================================== */ +/* Nav */ +.nav.white { + border-bottom-color: #fff; + border-bottom-color: rgba(255,255,255,.3); +} +.nav.white li a, +.nav.white li, +.nav.white #logo h1 { + color: #fff; + text-shadow: 0 0 8px rgba(0,0,0,.5); +} +.nav.white #logo h1 { + background-position: top center; +} + +nav.pagination{ + text-align: right; + padding-bottom: 25px; +} +/* Art header */ +.art-header.white { + background-color: #111; +} +.art-header.white .art-time, +.art-header.white .art-title, +.art-header.white .art-subtitle { + color: #fff; + text-shadow: 0 0 8px rgba(0,0,0,.5); +} + + +/* About page +================================================== */ +.abt { + padding: 200px 0 100px; + list-style: none; +} +.abt .abt-header { + font-size: 140px; + line-height: 1; + text-transform: none; +} +.abt .abt-subheader { + font-size: 24px; + font-style: italic; + text-transform: none; + color: #777; +} +.abt-body { + -moz-column-count: 2; + -moz-column-gap: 20px; + -webkit-column-count: 2; + -webkit-column-gap: 20px; + margin-bottom: 28px; +} +.abt-signoff { + line-height: 1.3; + font-style: italic; + color: #777; +} + +/* 404 page +================================================== */ +.fourohfour { + padding: 240px 0 100px; + text-align: center; +} + +/* Code +================================================== */ + +code, tt { +background: #ededee; +color: #3C4043; +font-size: 90%; +padding: 1px 3px; +} + +pre { + width: 92%; + overflow: auto; + margin: 2rem 0; + padding: 1rem 0.8rem 1rem 1.2rem; + color: #3f3b36; + border: 1px solid #ccc; + border-left: 1rem solid #ccc; + font: lighter 1.2rem/2rem monospace; + background: url(/assets/img/pre.png) repeat 0 -0.9rem; + background-size: 1px 4rem; +} + +pre code, tt { +font-size: inherit; +white-space: -moz-pre-wrap; +white-space: pre-wrap; +background: transparent; +border: none; +padding: 0; +} + + +.gist { + font-size: 14px; +} + + +/* Responsive +================================================== */ +@media only screen and (max-width: 1080px) { + /* Set all of the 980 containers to flexible width */ + .nav, + .art-body-inner, + .art-header-inner, + .footer, + .art-list, + .abt, + .fourohfour { + width: 90%; + } + .nav, + .art-header-inner { + margin-left: -45%; + } +} + +@media only screen and (max-width: 1024px) { + /* Everything becomes scrolling and non-fading */ + .nav, + .nav.fixed { + position: relative; + opacity: 1 !important; /* Important to override JS values */ + display: inline-block; + } + .art-header-inner { + position: relative; + top: 0 !important; /* Important to override JS values */ + margin-top: 240px !important; /* Important to override JS values */ + opacity: 1 !important; /* Important to override JS values */ + } + /* Articles no longer have fixed heights */ + .art-header { + height: auto; + padding-bottom: 100px; + background-size: cover !important; + background-attachment: scroll; + } + /* Remove bottom space out if articles doesn't have a background */ + .simple .art-header { + padding-bottom: 0; + } + .art-list { + padding-top: 0; + } + .abt { + padding: 40px 0; + } + .fourohfour { + padding: 80px 0 60px; + } +} + +@media only screen and (max-width: 780px) { + .art-body-inner ul, + .art-body-inner ol { + margin-left: 20px; + } + .art-title { + letter-spacing: 0; + } + .art-subtitle, + .art-time { + font-size: 12px; + } + .nav { + padding-top: 25px; + height: 55px; + } + .art-list-item-title-and-time, + .art-list-item p { + float: none; + width: auto; + margin-left: 0; + } + .abt-body { + -moz-column-count: 1; + -webkit-column-count: 1; + } +} + +@media only screen and (max-width: 500px) { + .nav-primary li { + margin-left: 10px; + } + .nav #logo h1 { + font-size: 16px; + letter-spacing: -1px; + } + .nav li a { + font-size: 12px; + } + .art-header { + padding-bottom: 50px; + } + .art-header-inner { + margin-top: 190px !important; + } + .art-body-inner { + padding-top: 30px; + } + body { + font-size: 15px; + line-height: 24px; + } + p { + margin-bottom: 24px; + } + .footer { + padding: 10px 0 20px; + } + .back-to-top, + .footer-nav { + width: 50%; + } + .back-to-top { + text-align: left; + } + .footer-nav { + text-align: right; + } + .offsite-links { + float: left; + width: 100%; + text-align: left; + } + .offsite-links a { + font-size: 12px; + } + .art-list + .footer .footer-nav { + display: none; + } + .abt .abt-header { + font-size: 80px; + } + .abt .abt-subheader { + font-size: 18px; + } +} + + +/* Misc +================================================== */ +::selection { + background: #000; + color: #fff; +} +::-moz-selection { + background: #000; + color: #fff; +} +img.left { + float: left; + margin-right: 20px; +} +img.right { + float: right; + margin-left: 20px; +} +/* Clearfixing pile */ +.nav:before, +.art-body-inner:before, +.footer:before, +.art-list:before { + content:""; + display:table; +} +.nav:after, +.art-body-inner:after, +.footer:after, +.art-list:after { + clear:both; +} +.nav, +.art-body-inner, +.footer, +.art-list { + zoom:1; /* For IE 6/7 (trigger hasLayout) */ +} + + +@-webkit-keyframes le-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-moz-keyframes le-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.art-header-inner { + -webkit-animation: le-fade .5s 0 1 ease-out; + -moz-animation: le-fade .5s 0 1 ease-out; +} + +.art-list, +.nav, +.abt, +.art-body { + -webkit-animation: le-fade .5s 0s 1 ease-out; + -moz-animation: le-fade .5s 0s 1 ease-out; +} + +hr.featured-article { + padding: 0; + border: none; + border-top: medium double #bbb; + color: #bbb; + text-align: center; +} +hr.featured-article:after { + content: "✭ Featured Article ✭"; + display: inline-block; + position: relative; + top: -0.8em; + font-size: 1.2em; + padding: 0 0.6em; + background: white; +} + +/* FORM */ + +#contact-area { + width: 600px; + margin-top: 25px; +} + +#contact-area input, #contact-area textarea { + padding: 5px; + width: 471px; + font-family: Helvetica, sans-serif; + margin: 0px 0px 10px 0px; + border: 2px solid #ccc; +} + +#contact-area textarea { + height: 90px; +} + +#contact-area textarea:focus, #contact-area input:focus { + border: 2px solid #900; +} + +#contact-area input.submit-button { + width: 100px; + +} + +label { + float: left; + text-align: right; + margin-right: 15px; + width: 100px; + padding-top: 5px; +} + +/*tambahan*/ +.order-table{ + border-collapse:collapse; +} + +.order-table-header{ + text-align:center; + background:none repeat scroll 0 0 #E5E5E5; + border-bottom:1px solid #BBBBBB; + padding:16px; +} + +.order-table-odd-row{ + text-align:center; + background:none repeat scroll 0 0 #FFFFFFF; + border-top:1px solid #BBBBBB; +} + +.order-table-even-row{ + text-align:center; + background:none repeat scroll 0 0 #F9F9F9; + border-top:1px solid #BBBBBB; +} + + +/*login style*/ + + diff --git a/web/resource/css/style.css b/web/resource/css/style.css new file mode 100644 index 00000000..5cacb58f --- /dev/null +++ b/web/resource/css/style.css @@ -0,0 +1,105 @@ +@import url(http://fonts.googleapis.com/css?family=Roboto:400,100); + +body { + background: no-repeat center center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + font-family: 'Roboto', sans-serif; +} + +.login-card { + padding: 40px; + width: 274px; + background-color: #F7F7F7; + margin: 0 auto 10px; + border-radius: 2px; + box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); + overflow: hidden; +} + +.login-card h1 { + font-weight: 100; + text-align: center; + font-size: 2.3em; +} + +.login-card input[type=submit] { + width: 100%; + display: block; + margin-bottom: 10px; + position: relative; +} + +.login-card input[type=text], input[type=password] { + height: 44px; + font-size: 16px; + width: 100%; + margin-bottom: 10px; + -webkit-appearance: none; + background: #fff; + border: 1px solid #d9d9d9; + border-top: 1px solid #c0c0c0; + /* border-radius: 2px; */ + padding: 0 8px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +.login-card input[type=text]:hover, input[type=password]:hover { + border: 1px solid #b9b9b9; + border-top: 1px solid #a0a0a0; + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); +} + +.login { + text-align: center; + font-size: 14px; + font-family: 'Arial', sans-serif; + font-weight: 700; + height: 36px; + padding: 0 8px; +/* border-radius: 3px; */ +/* -webkit-user-select: none; + user-select: none; */ +} + +.login-submit { + /* border: 1px solid #3079ed; */ + border: 0px; + color: #fff; + text-shadow: 0 1px rgba(0,0,0,0.1); + background-color: #4d90fe; + /* background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#4d90fe), to(#4787ed)); */ +} + +.login-submit:hover { + /* border: 1px solid #2f5bb7; */ + border: 0px; + text-shadow: 0 1px rgba(0,0,0,0.3); + background-color: #357ae8; + /* background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#4d90fe), to(#357ae8)); */ +} + +.login-card a { + text-decoration: none; + color: #666; + font-weight: 400; + text-align: center; + display: inline-block; + opacity: 0.6; + transition: opacity ease 0.5s; +} + +.login-card a:hover { + opacity: 1; +} + +.login-help { + width: 100%; + text-align: center; + font-size: 12px; +} \ No newline at end of file diff --git a/web/resource/img/DeleteRed.png b/web/resource/img/DeleteRed.png new file mode 100644 index 00000000..e2c1a059 Binary files /dev/null and b/web/resource/img/DeleteRed.png differ diff --git a/web/resource/img/favicon.ico b/web/resource/img/favicon.ico new file mode 100644 index 00000000..40b40ed3 Binary files /dev/null and b/web/resource/img/favicon.ico differ diff --git a/web/resource/img/pre.png b/web/resource/img/pre.png new file mode 100644 index 00000000..7f48517b Binary files /dev/null and b/web/resource/img/pre.png differ diff --git a/web/resource/js/cookie.js b/web/resource/js/cookie.js new file mode 100644 index 00000000..8af53893 --- /dev/null +++ b/web/resource/js/cookie.js @@ -0,0 +1,40 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +function greet(){ + var cvalue=getCookie("user"); + if (cvalue!=""){ + document.getElementById("user").innerHTML= "Howdy, " + cvalue; + document.getElementById("log_stat").href= "Logout"; + document.getElementById("log_stat").innerHTML= "Logout"; + if (cvalue!="admin"){ + document.getElementById("user").innerHTML= ""; + } + }else{ + //document.getElementById("user").innerHTML = cvalue; + } +} + + function checkCookie() { + var username=getCookie("role"); + if (username!="") { + alert("Welcome again "+ username); + }else{ + alert("no cokie"); + } + } + + function getCookie(cname) { + var name = cname + "="; + var ca = document.cookie.split(';'); + for(var i=0; i + + + + + Simple Blog | Soft Delete + + +
+ + +
+
+ +
+
+ + +
+ +
+ + \ No newline at end of file diff --git a/web/unpublished.xhtml b/web/unpublished.xhtml new file mode 100644 index 00000000..b0d30ab0 --- /dev/null +++ b/web/unpublished.xhtml @@ -0,0 +1,50 @@ + + + + + + Simple Blog | Unpublished Post + + +
+ + +
+
+ +
+
+ + +
+ +
+ + \ No newline at end of file