Compare commits

..

No commits in common. "master" and "BUILD-54" have entirely different histories.

13 changed files with 138 additions and 375 deletions

7
Jenkinsfile vendored
View file

@ -27,14 +27,9 @@ node {
}
stage('Deploy') {
timeout(time:2, unit:'HOURS') {
input message: 'Deploy?', submitter: 'ziver'
}
node {
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: '46f1d99b-2037-47b9-a7b7-57a1066337fc',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh 'ant -Dtomcat.user=${USERNAME} -Dtomcat.pass=${PASSWORD} deploy'
}
sh 'ant deploy'
}
}

View file

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Zallery</display-name>
<welcome-file-list>
<welcome-file>gallery</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Zallery</servlet-name>
<servlet-class>zall.Zallery</servlet-class>
<init-param>
<param-name>WEBSITE_NAME</param-name>
<param-value>Koc.se Gallery</param-value>
</init-param>
<init-param>
<param-name>WEBSITE_URL</param-name>
<param-value>http://koc.se/Zallery/</param-value>
</init-param>
<init-param>
<param-name>SMTP_HOST</param-name>
<param-value>192.168.0.10</param-value>
</init-param>
<init-param>
<param-name>THEME</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DATA_PATH</param-name>
<param-value>C:\\Users\\Ziver\\Desktop\\Downloads\\temp\\album</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Zallery</servlet-name>
<url-pattern>/gallery</url-pattern>
<url-pattern>/media</url-pattern>
<url-pattern>/slideshow</url-pattern>
<url-pattern>/login</url-pattern>
<url-pattern>/logout</url-pattern>
<url-pattern>/upload</url-pattern>
<url-pattern>/profile</url-pattern>
<url-pattern>/users</url-pattern>
<url-pattern>/register</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Content</servlet-name>
<servlet-class>zall.ZalleryContent</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Content</servlet-name>
<url-pattern>/content</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Ajax</servlet-name>
<servlet-class>zall.ZalleryAjax</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ajax</servlet-name>
<url-pattern>/ajax</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>zall.UploadServlet</servlet-class>
<init-param>
<param-name>TEMP_PATH</param-name>
<param-value>C:\\Users\\Ziver\\Desktop\\Downloads\\temp\\</param-value>
</init-param>
<init-param>
<param-name>ALLOWED_EXTENSIONS</param-name>
<param-value>png,jpg,jpeg,gif,tif,bmp,avi,wmv,mov,mp4,mpeg,flv,m4v,divx,xvid</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/uploadserv</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>transcoder</servlet-name>
<servlet-class>zall.ZalleryTranscoder</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<welcome-file-list>
<welcome-file>gallery</welcome-file>
</welcome-file-list>
</web-app>

View file

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Zallery</display-name>
<welcome-file-list>
<welcome-file>gallery</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Zallery</servlet-name>
<servlet-class>zall.Zallery</servlet-class>
<init-param>
<param-name>WEBSITE_NAME</param-name>
<param-value>Koc.se Gallery</param-value>
</init-param>
<init-param>
<param-name>WEBSITE_URL</param-name>
<param-value>http://koc.se/Zallery/</param-value>
</init-param>
<init-param>
<param-name>SMTP_HOST</param-name>
<param-value>192.168.0.10</param-value>
</init-param>
<init-param>
<param-name>THEME</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DATA_PATH</param-name>
<param-value>/home/tomcat/ZalleryData/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Zallery</servlet-name>
<url-pattern>/gallery</url-pattern>
<url-pattern>/media</url-pattern>
<url-pattern>/slideshow</url-pattern>
<url-pattern>/login</url-pattern>
<url-pattern>/logout</url-pattern>
<url-pattern>/upload</url-pattern>
<url-pattern>/profile</url-pattern>
<url-pattern>/users</url-pattern>
<url-pattern>/register</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Content</servlet-name>
<servlet-class>zall.ZalleryContent</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Content</servlet-name>
<url-pattern>/content</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Ajax</servlet-name>
<servlet-class>zall.ZalleryAjax</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ajax</servlet-name>
<url-pattern>/ajax</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>zall.UploadServlet</servlet-class>
<init-param>
<param-name>ALLOWED_EXTENSIONS</param-name>
<param-value>png,jpg,jpeg,gif,tif,bmp,avi,wmv,mov,mp4,mpeg,flv,m4v,divx,xvid</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/uploadserv</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>transcoder</servlet-name>
<servlet-class>zall.ZalleryTranscoder</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<welcome-file-list>
<welcome-file>gallery</welcome-file>
</welcome-file-list>
</web-app>

4
WebContent/footer.jsp Executable file → Normal file
View file

@ -1,4 +1,4 @@
<%@ page import="zall.*" %>
<div class="push"></div>
@ -17,7 +17,7 @@
Powered by
Java2EE And Tomcat. Zallery Gallery(v<%=Zallery.VERSION %>) created by Ziver Koc.
Java2EE And Tomcat. Zallery Gallery created by Ziver Koc.
<br>Built on the
<a href="http://upthemes.com/themes/gallery/" title="Gallery Wordpress Theme" rel="designer">Gallery WordPress Theme</a>
by

View file

@ -11,12 +11,7 @@
<property name="outputRoot" value="${gitRoot}/build" />
<property name="buildDir" value="${outputRoot}/production" />
<property name="releaseDir" value="${outputRoot}/release" />
<!-- Deployment properties -->
<property name="tomcat.url" value="http://localhost:8080/manager/text" />
<property name="tomcat.user" value="" />
<property name="tomcat.pass" value="" />
<property name="catalina.home" value="/usr/share/tomcat7"/>
<property name="deployPath" value="/var/lib/tomcat7/webapps/Zallery.war" />
<!--define standard arguments for javac-->
<presetdef name="javac">
@ -68,19 +63,11 @@
</war>
</target>
<import file="${catalina.home}/bin/catalina-tasks.xml" optional="true"/>
<target name="deploy" depends="package">
<deploy url="${tomcat.url}"
username="${tomcat.user}"
password="${tomcat.pass}"
path="/Zallery"
update="true"
war="file:${releaseDir}/Zallery.war" />
<!-- Workaround as tomcat deletes the webapp context file from conf dir -->
<copy file="/var/lib/tomcat7/conf/Catalina/localhost/Zallery.xml_orig"
toFile="/var/lib/tomcat7/conf/Catalina/localhost/Zallery.xml" />
<delete file="${deployPath}" quiet="true" />
<copy
file="${releaseDir}/Zallery.war"
toFile="${deployPath}" />
</target>
</project>

View file

@ -6,9 +6,6 @@ body{
margin-top: 40px;
margin-bottom: 40px;
}
.navbar .action a, .navbar .action span{
color: #5a5ada !important;
}
.photo-thumb, .photo {
padding: 0px;
@ -22,19 +19,3 @@ body{
float: none;
margin: 0 auto;
}
.navbar .divider-vertical {
height: 40px;
margin: 5px 14px;
border-right: 2px solid #ffffff;
border-left: 2px solid #f2f2f2;
}
.navbar-inverse .divider-vertical {
border-right-color: #222222;
border-left-color: #111111;
}
@media (max-width: 767px) {
.navbar-collapse .nav > .divider-vertical {
display: none;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

View file

@ -46,7 +46,6 @@
</button>
<a class="navbar-brand" href="#">Project name</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Gallery</a></li>
@ -55,14 +54,6 @@
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="action">
<a href="#"><span class="glyphicon glyphicon-folder-open"></span> Create Folder</a>
</li>
<li class="action">
<a href="#"><span class="glyphicon glyphicon-open-file"></span> Upload</a>
</li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-user"></span>
@ -86,44 +77,25 @@
<div class="content">
<div class="gallery col-center col-md-11">
<div class="row">
<div class="gallery">
<div class="row col-center col-md-11">
<div class="grid folder-grid">
<div class="grid-item folder-thumb col-md-2 col-sm-3 col-xs-4"><img class="img-responsive"
src="img/folder2.jpg"/></div>
<div class="grid-item folder-thumb col-md-2 col-sm-3 col-xs-4"><img class="img-responsive"
src="img/folder2.jpg"/></div>
<div class="grid-item folder-thumb col-md-2 col-sm-3 col-xs-4"><img class="img-responsive"
src="img/folder2.jpg"/></div>
<div class="grid-item folder-thumb col-md-2 col-sm-3 col-xs-4"><img class="img-responsive" src="http://koc.se/Zallery/img/folder.png" /></div>
<div class="grid-item folder-thumb col-md-2 col-sm-3 col-xs-4"><img class="img-responsive" src="http://koc.se/Zallery/img/folder.png" /></div>
<div class="grid-item folder-thumb col-md-2 col-sm-3 col-xs-4"><img class="img-responsive" src="http://koc.se/Zallery/img/folder.png" /></div>
</div>
<hr>
</div>
<div class="row">
<div class="row col-center col-md-11">
<div class="grid image-grid">
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/200"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/400"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/200"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/200"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/800"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/200"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/300"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive"
src="http://lorempixel.com/400/400"/>
</div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/200" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/400" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/200" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/200" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/800" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/200" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/300" /></div>
<div class="grid-item photo-thumb col-md-3 col-sm-6 col-xs-12"><img class="img-responsive" src="http://lorempixel.com/400/400" /></div>
</div>
</div>
</div> <!-- /gallery -->

View file

@ -30,8 +30,9 @@ public class UploadServlet extends AjaxFileUpload{
private static final Logger logger = LogUtil.getLogger();
private static final long serialVersionUID = 1L;
private static final Set<String> VIDEO_EXT = Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(
"avi","mp4","mpeg","mpeg","divx","xvid","wmv","mov","flv","m4v")));
public static final Set<String> VIDEO_EXT = Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(new String[]{
"avi","mp4","mpeg","mpeg","divx","xvid","wmv","mov","flv","m4v"
})));
@Override
public String getProgressHTML() {
@ -75,7 +76,6 @@ public class UploadServlet extends AjaxFileUpload{
vid.setUser( user );
vid.setFile( item );
vid.save(db);
logger.info("Video upload successful: "+vid.getFolder().getPath());
}
else{
Image img = new Image();
@ -84,7 +84,6 @@ public class UploadServlet extends AjaxFileUpload{
img.setUser( user );
img.setFile( item );
img.save(db);
logger.info("Image upload successful: "+img.getFolder().getPath());
}
} catch (Exception e) {
logger.log(Level.WARNING, "Error: Creating new Media(\""+item.getName()+"\")", e);

View file

@ -31,8 +31,7 @@ import zutil.log.LogUtil;
public class Zallery extends HttpServlet{
private static Logger logger = LogUtil.getLogger();
public static final String VERSION = "1.0.2";
private static final long serialVersionUID = 1L;
public static String WEBSITE_NAME = "Example.com";
public static String WEBSITE_URL = "http://example.com";
@ -54,7 +53,7 @@ public class Zallery extends HttpServlet{
Context context = new InitialContext();
// Check if Zallery has been properly configured
if ("C:\\\\data".equals(context.lookup("java:comp/env/DATA_PATH")))
throw new ServletException("Zallery has not been properly configured, set proper configuration in Zallery.xml context file.");
throw new ServletException("Zallery has not been properly configured, set proper configuration in Zaller.xml context file.");
WEBSITE_NAME = (String)context.lookup("java:comp/env/WEBSITE_NAME");
WEBSITE_URL = (String)context.lookup("java:comp/env/WEBSITE_URL");
@ -211,7 +210,7 @@ public class Zallery extends HttpServlet{
}
}
List<Media> list = Media.load(db, folder);
List<Folder> subFolders = Folder.loadSubFolders(db, folder, user);
List<Folder> subFolders = Folder.loadSubFolders(db, folder.getId(), user);
//session.setAttribute("user", user);
request.setAttribute("folder", folder);

View file

@ -4,10 +4,8 @@ import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
@ -23,24 +21,25 @@ import zall.Zallery;
public class Folder extends DBBean{
private static final Logger logger = LogUtil.getLogger();
private transient String name;
protected long user = -1;
protected transient User userInstance;
private String path;
protected transient String name;
protected User user;
protected String path;
protected Folder parent;
protected Timestamp date;
private boolean isPrivate;
protected boolean isPrivate;
//@DBLinkTable(name="FolderTree", beanClass=Folder.class, idColumn="parent")
//protected LinkedList<Folder> subFolders;
public static Folder load(DBConnection db, Long id) throws SQLException{
return load(db, Folder.class, id);
}
public static List<Folder> loadSubFolders(DBConnection db, Folder folder, User requestingUser) throws SQLException{
public static List<Folder> loadSubFolders(DBConnection db, Long id, User user) throws SQLException{
PreparedStatement sql = db.getPreparedStatement("SELECT * FROM Folder WHERE parent=? AND (isPrivate=0 OR user=? OR ?)");
sql.setLong(1, folder.getId());
sql.setLong(2, folder.user);
sql.setBoolean(3, requestingUser.isSuperUser());
sql.setLong(1, id);
sql.setLong(2, user.getId());
sql.setBoolean(3, user.isSuperUser());
return DBConnection.exec(sql, DBBeanSQLResultHandler.createList(Folder.class, db));
}
@ -61,13 +60,14 @@ public class Folder extends DBBean{
public static List<Folder> load(DBConnection db, User user) throws SQLException{
if( user.getId() == null )
return Collections.emptyList();
return new LinkedList<Folder>();
PreparedStatement sql = db.getPreparedStatement("SELECT * FROM Folder WHERE user=?");
sql.setLong(1, user.getId() );
return DBConnection.exec(sql, DBBeanSQLResultHandler.createList(Folder.class, db));
}
public Folder(){
//subFolders = new LinkedList<Folder>();
date = new Timestamp( System.currentTimeMillis() );
}
@ -76,25 +76,20 @@ public class Folder extends DBBean{
String[] tmp = path.split("/");
name = tmp[tmp.length-1];
}
String userName = getUser() != null ? getUser().getName() : "UNKNOWN";
String userName = user != null ? user.getName() : "UNKNOWN";
String tmp = name.replaceAll("\\{NAME\\}", userName);
return tmp;
}
public String getUnModName(){
if(name == null)
getName();
return name;
}
public User getUser(){
if (userInstance == null) {
try {
DBConnection db = Zallery.getDB();
userInstance = User.load(db, user);
db.close();
} catch (Exception e) {
logger.log(Level.WARNING, null, e);
}
}
return userInstance;
return user;
}
public void setUser(User user){
this.user = user.getId();
this.userInstance = null;
this.user = user;
}
public boolean isPrivate(){
return isPrivate;
@ -103,9 +98,12 @@ public class Folder extends DBBean{
this.isPrivate = priv;
}
public String getPath(){
String tmp = path.replaceAll("\\{NAME\\}", getUser().getName());
String tmp = path.replaceAll("\\{NAME\\}", user.getName());
return tmp;
}
public String getUnModPath(){
return path;
}
public void setName(String name){
this.name = name;
if( parent.path.endsWith("/") )
@ -127,11 +125,21 @@ public class Folder extends DBBean{
return parent;
}
/*public void addSubFolder(Folder f){
if( !subFolders.contains(f) ){
subFolders.add( f );
f.setParent( this );
}
}*/
/*public List<Folder> getSubFolders(){
return subFolders;
}*/
public Timestamp getDate(){
return date;
}
/**
* @param filename is the name of the file
* @param size specifies the size of the image
@ -145,7 +153,7 @@ public class Folder extends DBBean{
return null;
}
if( user < 0 || filename == null )
if( user == null || filename == null )
return null;
StringBuilder tmp = new StringBuilder();
@ -158,7 +166,7 @@ public class Folder extends DBBean{
tmp.append( File.separatorChar );
// Add UserID and this folders path
String tmp_path = path.replaceAll("\\{NAME\\}", ""+user);
String tmp_path = path.replaceAll("\\{NAME\\}", ""+user.getId());
tmp_path = tmp_path.replaceAll("/", Matcher.quoteReplacement(File.separator));
tmp.append( tmp_path );
@ -187,6 +195,6 @@ public class Folder extends DBBean{
}
public boolean isEmpty(DBConnection db) throws SQLException {
return Folder.loadSubFolders(db, this, getUser()).isEmpty() && Media.load(db, this).isEmpty();
return Folder.loadSubFolders(db, this.getId(), user).isEmpty() && Media.load(db, this).isEmpty();
}
}