Created zallery pages
This commit is contained in:
parent
8d5786d458
commit
cd24ee74e3
31 changed files with 691 additions and 452 deletions
|
|
@ -76,5 +76,6 @@
|
|||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
|
||||
<orderEntry type="module" module-name="Zutil" />
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -24,9 +24,8 @@ import zall.bean.Media;
|
|||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zutil.net.smtp.Email;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
|
|
|
|||
66
src/zall/ZalleryServlet.java
Normal file
66
src/zall/ZalleryServlet.java
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
package zall;
|
||||
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.*;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public abstract class ZalleryServlet extends HttpServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
public final void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
|
||||
DBConnection db = null;
|
||||
try {
|
||||
include("header.jsp", request, response);
|
||||
doGet(request, response, db = Zallery.getDB());
|
||||
include("footer.jsp", request, response);
|
||||
} catch (ServletException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
throw new ServletException(e);
|
||||
} finally {
|
||||
if (db != null) db.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
|
||||
}
|
||||
|
||||
public final void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException {
|
||||
DBConnection db = null;
|
||||
try {
|
||||
include("header.jsp", request, response);
|
||||
doPost(request, response, db = Zallery.getDB());
|
||||
include("footer.jsp", request, response);
|
||||
} catch (ServletException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
throw new ServletException(e);
|
||||
} finally {
|
||||
if (db != null) db.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
|
||||
doGet(request, response, db);
|
||||
}
|
||||
|
||||
|
||||
public void include(String url, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/" + url);
|
||||
if (dispatcher != null)
|
||||
dispatcher.include(request, response);
|
||||
}
|
||||
|
||||
public void forward(String url, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/" + url);
|
||||
if (dispatcher != null)
|
||||
dispatcher.forward(request, response);
|
||||
}
|
||||
}
|
||||
|
|
@ -9,18 +9,19 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import zall.bean.User;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
public class LoginAction extends ZalleryAction{
|
||||
|
||||
private static final Logger logger = LogUtil.getLogger();
|
||||
|
||||
private static final Logger logger = LogUtil.getLogger();
|
||||
|
||||
public LoginAction() {
|
||||
super("login");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void handleRequest(DBConnection db, HttpServletRequest request, HttpServletResponse response, HttpSession session,
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import javax.servlet.http.HttpSession;
|
|||
|
||||
import zall.bean.User;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import zall.bean.User;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.UserMessage;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public abstract class ZalleryAction {
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
|
|||
import zall.bean.Comment;
|
||||
import zall.bean.Media;
|
||||
import zall.bean.User;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class CommentAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import javax.servlet.http.HttpSession;
|
|||
import zall.action.ZalleryAction;
|
||||
import zall.bean.Folder;
|
||||
import zall.bean.User;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
|
|||
import zall.bean.Media;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class ModifyMediaAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
|
|||
import zall.bean.Folder;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class RemoveFolderAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
|
|||
import zall.bean.Media;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class RemoveMediaAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -11,12 +11,11 @@ import javax.servlet.http.HttpSession;
|
|||
import zall.action.ZalleryAction;
|
||||
import zall.bean.Folder;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class TogglePrivateAction extends ZalleryAction{
|
||||
public class TogglePrivateAction extends ZalleryAction {
|
||||
|
||||
public TogglePrivateAction() {
|
||||
super("mkprivate", true);
|
||||
|
|
@ -26,31 +25,14 @@ public class TogglePrivateAction extends ZalleryAction{
|
|||
public void handleRequest(DBConnection db, HttpServletRequest request, HttpServletResponse response, HttpSession session,
|
||||
PrintWriter out, User user, UserMessage msgs) throws SQLException, IOException {
|
||||
|
||||
// Toggle folder private
|
||||
if( request.getParameter("id") == null){
|
||||
if(out != null) out.println("{ \"error\": \"Missing parameters!\"}");
|
||||
else msgs.add(MessageType.ERROR, "Missing parameters!");
|
||||
return;
|
||||
}
|
||||
long id = Long.parseLong(request.getParameter("id"));
|
||||
Folder folder = Folder.load(db, id);
|
||||
|
||||
if( folder != null ){
|
||||
if( AuthenticationManager.canEdit(user, folder) ){
|
||||
folder.setPrivate( !folder.isPrivate() );
|
||||
folder.save(db);
|
||||
if(out != null) out.println("{}");
|
||||
else{
|
||||
if(folder.isPrivate()) msgs.add(MessageType.INFO, "Folder is now private (not visible to other users).");
|
||||
else msgs.add(MessageType.INFO, "Folder is now public (can be viewed by other users).");
|
||||
}
|
||||
}
|
||||
else if(out != null) out.println("{ \"error\": \"You are not authorize to edit this folder!\"}");
|
||||
else msgs.add(MessageType.ERROR, "You are not authorize to edit this folder!");
|
||||
}
|
||||
else if(out != null) out.println("{ \"error\": \"No such folder!\"}");
|
||||
else msgs.add(MessageType.ERROR, "The folder does not exist!");
|
||||
|
||||
}
|
||||
// Toggle folder private
|
||||
if (request.getParameter("id") == null) {
|
||||
if (out != null) out.println("{ \"error\": \"Missing parameters!\"}");
|
||||
else msgs.add(MessageType.ERROR, "Missing parameters!");
|
||||
return;
|
||||
}
|
||||
long id = Long.parseLong(request.getParameter("id"));
|
||||
Folder folder = Folder.load(db, id);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,14 +8,11 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import zall.Zallery;
|
||||
import zall.action.ZalleryAction;
|
||||
import zall.bean.User;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zutil.net.smtp.Email;
|
||||
import zutil.net.smtp.Email.ContentType;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class ModifyUserAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
|
|||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class ModifyUserStatusAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import javax.servlet.http.HttpSession;
|
|||
|
||||
import zall.action.ZalleryAction;
|
||||
import zall.bean.User;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class RemoveUserAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import javax.servlet.http.HttpSession;
|
|||
import zall.action.ZalleryAction;
|
||||
import zall.bean.User;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import javax.servlet.http.HttpSession;
|
|||
import zall.action.ZalleryAction;
|
||||
import zall.bean.User;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zall.util.UserMessage;
|
||||
import zall.util.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
public class VerifyEmailAction extends ZalleryAction{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import zall.ZalleryConstant;
|
|||
import zall.bean.Folder;
|
||||
import zall.bean.Media;
|
||||
import zall.bean.User;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zutil.Hasher;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
|
|
|||
83
src/zall/page/GalleryServlet.java
Executable file
83
src/zall/page/GalleryServlet.java
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.Folder;
|
||||
import zall.bean.Media;
|
||||
import zall.util.UserMessage;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@WebServlet("/gallery")
|
||||
public class GalleryServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
|
||||
Folder folder;
|
||||
if (request.getParameter("folder") != null && !request.getParameter("folder").equalsIgnoreCase("null"))
|
||||
folder = Folder.load(db, Long.parseLong(request.getParameter("folder")));
|
||||
else {
|
||||
folder = Folder.loadRoot(db, user);
|
||||
// Setup new root folder
|
||||
if (folder == null) {
|
||||
folder = Folder.genRoot();
|
||||
folder.save(db);
|
||||
}
|
||||
}
|
||||
List<Media> list = Media.load(db, folder);
|
||||
List<Folder> subFolders = Folder.loadSubFolders(db, folder, user);
|
||||
|
||||
//session.setAttribute("user", user);
|
||||
request.setAttribute("folder", folder);
|
||||
request.setAttribute("subfolders", subFolders);
|
||||
request.setAttribute("media", list);
|
||||
|
||||
include("header.jsp", request, response);
|
||||
include("gallery.jsp", request, response);
|
||||
include("footer.jsp", request, response);
|
||||
}
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
|
||||
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
|
||||
long id = Long.parseLong(request.getParameter("id"));
|
||||
|
||||
if (request.getParameter("id") == null) {
|
||||
msgs.add(UserMessage.MessageType.ERROR, "Missing parameters!");
|
||||
return;
|
||||
}
|
||||
|
||||
long id = Long.parseLong(request.getParameter("id"));
|
||||
Folder folder = Folder.load(db, id);
|
||||
|
||||
switch (request.getParameter("action")) {
|
||||
|
||||
// -----------------------------------------
|
||||
// Toggle private mode
|
||||
// -----------------------------------------
|
||||
|
||||
case "private":
|
||||
if (folder != null) {
|
||||
if (user.canEdit(folder)) {
|
||||
folder.setPrivate(!folder.isPrivate());
|
||||
folder.save(db);
|
||||
if (folder.isPrivate())
|
||||
msgs.add(UserMessage.MessageType.INFO, "Folder is now private (not visible to other users).");
|
||||
else
|
||||
msgs.add(UserMessage.MessageType.INFO, "Folder is now public (can be viewed by other users).");
|
||||
} else
|
||||
msgs.add(UserMessage.MessageType.ERROR, "You are not authorize to edit this folder!");
|
||||
} else
|
||||
msgs.add(UserMessage.MessageType.ERROR, "The folder does not exist!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
48
src/zall/page/LoginServlet.java
Executable file
48
src/zall/page/LoginServlet.java
Executable file
|
|
@ -0,0 +1,48 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import static zall.ZalleryConstant.SESSION_KEY_USER;
|
||||
|
||||
@WebServlet("/login")
|
||||
public class LoginServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
private static final String JSP_FILE = "register.jsp";
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException {
|
||||
include(JSP_FILE, request, response);
|
||||
}
|
||||
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, ServletException, IOException {
|
||||
User user = AuthenticationManager.authenticate(db,
|
||||
request.getParameter("email"),
|
||||
request.getParameter("password"));
|
||||
|
||||
// Successfull login
|
||||
if (user != null) {
|
||||
user.registerOnHost(request, response, db, true );
|
||||
request.getSession().setAttribute(SESSION_KEY_USER, user);
|
||||
|
||||
forward("/", request, response);
|
||||
}
|
||||
// Failed login
|
||||
else {
|
||||
include(JSP_FILE, request, response);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
package zall.servlet;
|
||||
package zall.page;
|
||||
|
||||
import zall.ZalleryConstant;
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.DbHttpServlet;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
|
|
@ -18,9 +17,9 @@ import static zall.ZalleryConstant.SESSION_KEY_USER;
|
|||
*
|
||||
*/
|
||||
@WebServlet(urlPatterns = "/logout")
|
||||
public class LogoutServlet extends DbHttpServlet {
|
||||
public class LogoutServlet extends ZalleryServlet {
|
||||
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws SQLException, IOException {
|
||||
public void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws SQLException, IOException {
|
||||
User user = (User) req.getSession().getAttribute(SESSION_KEY_USER);
|
||||
|
||||
AuthenticationManager.reset(db, user);
|
||||
93
src/zall/page/MediaServlet.java
Executable file
93
src/zall/page/MediaServlet.java
Executable file
|
|
@ -0,0 +1,93 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.Comment;
|
||||
import zall.bean.Media;
|
||||
import zall.util.UserMessage;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@WebServlet("/media")
|
||||
public class MediaServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
|
||||
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
|
||||
|
||||
if (request.getParameter("id") == null && request.getParameter("type") == null) {
|
||||
msgs.add(UserMessage.MessageType.ERROR, "Missing parameters!");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
int id = Integer.parseInt(request.getParameter("id"));
|
||||
Media media = Media.load(db, request.getParameter("type"), id);
|
||||
|
||||
request.setAttribute("media", media);
|
||||
} catch (NumberFormatException e) {
|
||||
logger.log(Level.FINE, "", e);
|
||||
}
|
||||
|
||||
include("header.jsp", request, response);
|
||||
include("media.jsp", request, response);
|
||||
include("footer.jsp", request, response);
|
||||
}
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException {
|
||||
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
|
||||
long id = Long.parseLong(request.getParameter("id"));
|
||||
|
||||
if (request.getParameter("id") == null || request.getParameter("type") == null) {
|
||||
msgs.add(UserMessage.MessageType.ERROR, "Missing parameters!");
|
||||
return;
|
||||
}
|
||||
|
||||
Media media = Media.load(db, request.getParameter("type"), id);
|
||||
|
||||
switch (request.getParameter("action")) {
|
||||
// -----------------------------------------
|
||||
// Comment
|
||||
// -----------------------------------------
|
||||
|
||||
case "comment":
|
||||
Comment cm = new Comment();
|
||||
cm.setUser(user);
|
||||
cm.setMessage(request.getParameter("msg"));
|
||||
media.addComment(cm);
|
||||
media.save(db);
|
||||
|
||||
msgs.add(UserMessage.MessageType.INFO, "Comment saved.");
|
||||
break;
|
||||
|
||||
// -----------------------------------------
|
||||
// Modify media
|
||||
// -----------------------------------------
|
||||
|
||||
case "modify":
|
||||
if (media != null) {
|
||||
if (user.canEdit(media)) {
|
||||
media.setTitle(request.getParameter("title"));
|
||||
media.setDescription(request.getParameter("description"));
|
||||
media.save(db);
|
||||
|
||||
msgs.add(UserMessage.MessageType.INFO, "Item edited successfully.");
|
||||
} else
|
||||
msgs.add(UserMessage.MessageType.ERROR, "You are not authorize to modify this item!");
|
||||
} else
|
||||
msgs.add(UserMessage.MessageType.ERROR, "The item does not exist!");
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
51
src/zall/page/ProfileServlet.java
Executable file
51
src/zall/page/ProfileServlet.java
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.User;
|
||||
import zall.util.UserMessage;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@WebServlet("/profile")
|
||||
public class ProfileServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException{
|
||||
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
|
||||
|
||||
try{
|
||||
if(request.getParameter("id") != null){
|
||||
User profile_user = User.load(db, Long.parseLong( request.getParameter("id") ));
|
||||
if(user.canEdit(profile_user)){
|
||||
request.setAttribute("profile_user", profile_user);
|
||||
} else {
|
||||
msgs.add(UserMessage.MessageType.ERROR, "You do not have permission to edit the user.");
|
||||
}
|
||||
} else {
|
||||
request.setAttribute("profile_user", user);
|
||||
}
|
||||
|
||||
include("header.jsp", request, response);
|
||||
include("profile.jsp", request, response);
|
||||
include("footer.jsp", request, response);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.severe(e.getMessage());
|
||||
throw new ServletException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException {
|
||||
|
||||
}
|
||||
}
|
||||
89
src/zall/page/RegisterServlet.java
Executable file
89
src/zall/page/RegisterServlet.java
Executable file
|
|
@ -0,0 +1,89 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.User;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zall.util.UserMessage;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.*;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Locale;
|
||||
import java.util.PropertyResourceBundle;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import static zall.ZalleryConstant.LANG_BASENAME;
|
||||
|
||||
@WebServlet("/register")
|
||||
public class RegisterServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
private static final String JSP_FILE = "register.jsp";
|
||||
|
||||
private static final String INPUT_ID_FIRST_NAME = "first-name";
|
||||
private static final String INPUT_ID_LAST_NAME = "last-name";
|
||||
private static final String INPUT_ID_EMAIL = "email";
|
||||
private static final String INPUT_ID_PASSWORD = "password";
|
||||
private static final String INPUT_ID_PASSWORD_REPEATE = "password-re";
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException {
|
||||
include(JSP_FILE, request, response);
|
||||
}
|
||||
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
|
||||
UserMessage msgHandler = UserMessage.getUserMessage(request.getSession());
|
||||
ResourceBundle lang = PropertyResourceBundle.getBundle(LANG_BASENAME, Locale.getDefault());
|
||||
|
||||
/*
|
||||
* Check inputs
|
||||
*/
|
||||
|
||||
String firstName = (String)request.getAttribute(INPUT_ID_FIRST_NAME);
|
||||
String lastName = (String)request.getAttribute(INPUT_ID_LAST_NAME);
|
||||
String email = (String)request.getAttribute(INPUT_ID_EMAIL);
|
||||
String password = (String)request.getAttribute(INPUT_ID_PASSWORD);
|
||||
String passwordRe = (String)request.getAttribute(INPUT_ID_PASSWORD_REPEATE);
|
||||
|
||||
if (firstName == null)
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.first_name_missing"));
|
||||
if (lastName == null)
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.last_name_missing"));
|
||||
if (email == null)
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.email_missing"));
|
||||
if (password == null)
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.password_missing"));
|
||||
if (passwordRe == null)
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.password_missing"));
|
||||
else if (passwordRe.equals(password))
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.password_not_matching"));
|
||||
|
||||
if(User.load(db, (String)request.getAttribute(INPUT_ID_EMAIL)) != null){
|
||||
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.email_exsists"));
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create new user
|
||||
*/
|
||||
|
||||
User user = new User();
|
||||
user.setName(firstName + " " + lastName);
|
||||
user.setEmail(email);
|
||||
user.setPassword(password);
|
||||
user.save(db);
|
||||
ZalleryEmail.sendVerificationEmail( user );
|
||||
request.getSession().setAttribute("user", user);
|
||||
logger.info("Registered new user: "+user.getName()+".");
|
||||
msgHandler.add(UserMessage.MessageType.INFO,
|
||||
lang.getString("info.account_created") + lang.getString("info.verification_email_sent"));
|
||||
|
||||
include(JSP_FILE, request, response);
|
||||
}
|
||||
}
|
||||
35
src/zall/page/SlideshowServlet.java
Executable file
35
src/zall/page/SlideshowServlet.java
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.Image;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@WebServlet("/slideshow")
|
||||
public class SlideshowServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
|
||||
Image image = Image.load(db, Integer.parseInt(request.getParameter("id")));
|
||||
request.setAttribute("image", image);
|
||||
List<Image> list = Image.loadFolder(db, image.getFolder());
|
||||
|
||||
request.setAttribute("image", image);
|
||||
request.setAttribute("images", list);
|
||||
|
||||
include("header.jsp", request, response);
|
||||
include("slideshow.jsp", request, response);
|
||||
include("footer.jsp", request, response);
|
||||
}
|
||||
|
||||
}
|
||||
31
src/zall/page/UserListServlet.java
Executable file
31
src/zall/page/UserListServlet.java
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
package zall.page;
|
||||
|
||||
import zall.ZalleryServlet;
|
||||
import zall.bean.User;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@WebServlet("/register")
|
||||
public class UserListServlet extends ZalleryServlet {
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
|
||||
List<User> users = User.load(db);
|
||||
request.setAttribute("users", users);
|
||||
|
||||
include("header.jsp", request, response);
|
||||
include("users.jsp", request, response);
|
||||
include("footer.jsp", request, response);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
package zall.servlet;
|
||||
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.DbHttpServlet;
|
||||
import zutil.db.DBConnection;
|
||||
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
|
||||
import static zall.ZalleryConstant.SESSION_KEY_USER;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@WebServlet(urlPatterns = "/login")
|
||||
public class LoginServlet extends DbHttpServlet {
|
||||
private static final String JSP_FILE = "login.jsp";
|
||||
|
||||
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
getServletContext().getRequestDispatcher("/" + JSP_FILE).include(req, resp);
|
||||
}
|
||||
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws ServletException, IOException, SQLException {
|
||||
User user = AuthenticationManager.authenticate(db,
|
||||
req.getParameter("email"),
|
||||
req.getParameter("password"));
|
||||
|
||||
|
||||
// Successfull login
|
||||
if (user != null) {
|
||||
user.registerOnHost(req, resp, db, true );
|
||||
req.getSession().setAttribute(SESSION_KEY_USER, user);
|
||||
|
||||
getServletContext().getRequestDispatcher("/").forward(req, resp);
|
||||
}
|
||||
// Failed login
|
||||
else {
|
||||
getServletContext().getRequestDispatcher("/" + JSP_FILE).include(req, resp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
package zall.servlet;
|
||||
|
||||
import zall.bean.User;
|
||||
import zall.util.DbHttpServlet;
|
||||
import zall.util.ZalleryEmail;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Locale;
|
||||
import java.util.PropertyResourceBundle;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import static zall.ZalleryConstant.*;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@WebServlet(urlPatterns = "/register")
|
||||
public class RegisterServlet extends DbHttpServlet {
|
||||
private static final Logger logger = LogUtil.getLogger();
|
||||
|
||||
private static final String JSP_FILE = "register.jsp";
|
||||
|
||||
private static final String INPUT_ID_FIRST_NAME = "first-name";
|
||||
private static final String INPUT_ID_LAST_NAME = "last-name";
|
||||
private static final String INPUT_ID_EMAIL = "email";
|
||||
private static final String INPUT_ID_PASSWORD = "password";
|
||||
private static final String INPUT_ID_PASSWORD_REPEATE = "password-re";
|
||||
|
||||
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
getServletContext().getRequestDispatcher("/"+JSP_FILE).include(req, resp);
|
||||
}
|
||||
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws ServletException, IOException, SQLException {
|
||||
UserMessage msgHandler = UserMessage.getUserMessage(req.getSession());
|
||||
ResourceBundle lang = PropertyResourceBundle.getBundle(LANG_BASENAME, Locale.getDefault());
|
||||
|
||||
/*
|
||||
* Check inputs
|
||||
*/
|
||||
|
||||
String firstName = (String)req.getAttribute(INPUT_ID_FIRST_NAME);
|
||||
String lastName = (String)req.getAttribute(INPUT_ID_LAST_NAME);
|
||||
String email = (String)req.getAttribute(INPUT_ID_EMAIL);
|
||||
String password = (String)req.getAttribute(INPUT_ID_PASSWORD);
|
||||
String passwordRe = (String)req.getAttribute(INPUT_ID_PASSWORD_REPEATE);
|
||||
|
||||
if (firstName == null)
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.first_name_missing"));
|
||||
if (lastName == null)
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.last_name_missing"));
|
||||
if (email == null)
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.email_missing"));
|
||||
if (password == null)
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.password_missing"));
|
||||
if (passwordRe == null)
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.password_missing"));
|
||||
else if (passwordRe.equals(password))
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.password_not_matching"));
|
||||
|
||||
if(User.load(db, (String)req.getAttribute(INPUT_ID_EMAIL)) != null){
|
||||
msgHandler.add(MessageType.ERROR, lang.getString("error.email_exsists"));
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create new user
|
||||
*/
|
||||
|
||||
User user = new User();
|
||||
user.setName(firstName + " " + lastName);
|
||||
user.setEmail(email);
|
||||
user.setPassword(password);
|
||||
user.save(db);
|
||||
ZalleryEmail.sendVerificationEmail( user );
|
||||
req.getSession().setAttribute("user", user);
|
||||
logger.info("Registered new user: "+user.getName()+".");
|
||||
msgHandler.add(MessageType.INFO,
|
||||
lang.getString("info.account_created") + lang.getString("info.verification_email_sent"));
|
||||
|
||||
getServletContext().getRequestDispatcher("/"+JSP_FILE).include(req, resp);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
package zall.util;
|
||||
|
||||
import zall.bean.Folder;
|
||||
import zall.bean.Image;
|
||||
import zall.bean.Media;
|
||||
import zall.bean.User;
|
||||
import zall.manager.AuthenticationManager;
|
||||
import zall.util.msg.UserMessage;
|
||||
import zall.util.msg.UserMessage.MessageType;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.InitialContext;
|
||||
import javax.naming.NamingException;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public abstract class DbHttpServlet extends HttpServlet{
|
||||
private static Logger logger = LogUtil.getLogger();
|
||||
|
||||
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
DBConnection db = null;
|
||||
try{
|
||||
doGet(request, response, db = getDB());
|
||||
} catch (SQLException e) {
|
||||
throw new IOException(e);
|
||||
} finally{
|
||||
if(db != null) db.close();
|
||||
}
|
||||
}
|
||||
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db)
|
||||
throws ServletException, IOException, SQLException { }
|
||||
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
DBConnection db = null;
|
||||
try{
|
||||
doPost(request, response, db = getDB());
|
||||
} catch (SQLException e) {
|
||||
throw new IOException(e);
|
||||
} finally{
|
||||
if(db != null) db.close();
|
||||
}
|
||||
}
|
||||
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db)
|
||||
throws ServletException, IOException, SQLException { }
|
||||
|
||||
|
||||
public static DBConnection getDB() throws ServletException{
|
||||
try {
|
||||
return new DBConnection("jdbc/mysql");
|
||||
} catch (Exception e) {
|
||||
throw new ServletException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,147 +1,147 @@
|
|||
package zall.util.msg;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
/**
|
||||
* This class represents all the messages to a single user.
|
||||
* The class is implemented as an Iterator.
|
||||
*
|
||||
* <XMP>
|
||||
* Example HTML:
|
||||
*
|
||||
<SCRIPT type="text/javascript">
|
||||
jQuery(document).ready(function(){
|
||||
jQuery(".message").click(function(){
|
||||
jQuery(this).animate({
|
||||
opacity: 0
|
||||
}, 300).animate({
|
||||
height: 0,
|
||||
border: 0
|
||||
}, 300, function(){
|
||||
jQuery(this).css("display","none");
|
||||
});
|
||||
});
|
||||
});
|
||||
</SCRIPT>
|
||||
<div class="menu">
|
||||
<div class="message" style="border: 2px solid #E6E600; padding: 0px; margin: 5px; background: #FFFF99 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
|
||||
<center><b>Warning:</b></center>
|
||||
</div>
|
||||
<div class="message" style="border: 2px solid #FF0000; padding: 0px; margin: 5px; background: #FFDDCC none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
|
||||
<center><b>Error:</b></center>
|
||||
</div>
|
||||
<div class="message" style="border: 2px solid #039C00; padding: 0px; margin: 5px; background: #9BFB66 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
|
||||
<center><b>Info:</b></center>
|
||||
</div>
|
||||
</div>
|
||||
*
|
||||
* </XMP>
|
||||
*
|
||||
* @author Ziver
|
||||
*/
|
||||
public class UserMessage{
|
||||
public static final Logger logger = LogUtil.getLogger();
|
||||
public static final String SESSION_USERMESSAGE_KEY = "AJAX_USER_MESSAGES";
|
||||
|
||||
/**
|
||||
* Is the different types of messages
|
||||
*/
|
||||
public enum MessageType{
|
||||
ERROR, WARNING, INFO
|
||||
}
|
||||
/**
|
||||
* This class represents a single message to a user
|
||||
*/
|
||||
protected class Message{
|
||||
MessageType type;
|
||||
String msg;
|
||||
}
|
||||
/** is the queue that contains the messages **/
|
||||
private Queue<Message> msg_queue;
|
||||
/** is the current message **/
|
||||
private Message current;
|
||||
|
||||
|
||||
public UserMessage(){
|
||||
msg_queue = new LinkedList<Message>();
|
||||
}
|
||||
|
||||
//******** Queue methods
|
||||
|
||||
/**
|
||||
* Adds a new message to the queue
|
||||
*
|
||||
* @param type is the type of the message
|
||||
* @param msg is the message itself
|
||||
*/
|
||||
public void add(MessageType type, String msg){
|
||||
Message m = new Message();
|
||||
m.type = type;
|
||||
m.msg = msg;
|
||||
msg_queue.add( m );
|
||||
logger.finer("Queueing(Size: "+msg_queue.size()+") user message: "+type+"= \""+msg+"\"");
|
||||
}
|
||||
|
||||
/**
|
||||
* @return if there is more messages in the queue
|
||||
*/
|
||||
public boolean hasNext(){
|
||||
return msg_queue.size() != 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Polls a new message from the Queue
|
||||
*
|
||||
* @return if the poll was successful
|
||||
*/
|
||||
public boolean next(){
|
||||
boolean tmp = hasNext();
|
||||
current = msg_queue.poll();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
public int size(){
|
||||
return msg_queue.size();
|
||||
}
|
||||
|
||||
public void clear(){
|
||||
msg_queue.clear();
|
||||
}
|
||||
|
||||
//******** Message Methods
|
||||
|
||||
/**
|
||||
* @return the type of the current message
|
||||
*/
|
||||
public MessageType getType(){
|
||||
return current.type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the message of the current one
|
||||
*/
|
||||
public String getMessage(){
|
||||
return current.msg;
|
||||
}
|
||||
|
||||
//******** Static methods
|
||||
|
||||
public static UserMessage getUserMessage(HttpSession session){
|
||||
if( session.getAttribute(SESSION_USERMESSAGE_KEY) == null ){
|
||||
UserMessage msg = new UserMessage();
|
||||
msg.setSession( session );
|
||||
return msg;
|
||||
}
|
||||
return (UserMessage) session.getAttribute(SESSION_USERMESSAGE_KEY);
|
||||
}
|
||||
|
||||
public void setSession(HttpSession session) {
|
||||
session.setAttribute(SESSION_USERMESSAGE_KEY, this);
|
||||
}
|
||||
}
|
||||
package zall.util;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
/**
|
||||
* This class represents all the messages to a single user.
|
||||
* The class is implemented as an Iterator.
|
||||
*
|
||||
* <XMP>
|
||||
* Example HTML:
|
||||
*
|
||||
<SCRIPT type="text/javascript">
|
||||
jQuery(document).ready(function(){
|
||||
jQuery(".message").click(function(){
|
||||
jQuery(this).animate({
|
||||
opacity: 0
|
||||
}, 300).animate({
|
||||
height: 0,
|
||||
border: 0
|
||||
}, 300, function(){
|
||||
jQuery(this).css("display","none");
|
||||
});
|
||||
});
|
||||
});
|
||||
</SCRIPT>
|
||||
<div class="menu">
|
||||
<div class="message" style="border: 2px solid #E6E600; padding: 0px; margin: 5px; background: #FFFF99 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
|
||||
<center><b>Warning:</b></center>
|
||||
</div>
|
||||
<div class="message" style="border: 2px solid #FF0000; padding: 0px; margin: 5px; background: #FFDDCC none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
|
||||
<center><b>Error:</b></center>
|
||||
</div>
|
||||
<div class="message" style="border: 2px solid #039C00; padding: 0px; margin: 5px; background: #9BFB66 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
|
||||
<center><b>Info:</b></center>
|
||||
</div>
|
||||
</div>
|
||||
*
|
||||
* </XMP>
|
||||
*
|
||||
* @author Ziver
|
||||
*/
|
||||
public class UserMessage{
|
||||
public static final Logger logger = LogUtil.getLogger();
|
||||
public static final String SESSION_USERMESSAGE_KEY = "AJAX_USER_MESSAGES";
|
||||
|
||||
/**
|
||||
* Is the different types of messages
|
||||
*/
|
||||
public enum MessageType{
|
||||
ERROR, WARNING, INFO
|
||||
}
|
||||
/**
|
||||
* This class represents a single message to a user
|
||||
*/
|
||||
protected class Message{
|
||||
MessageType type;
|
||||
String msg;
|
||||
}
|
||||
/** is the queue that contains the messages **/
|
||||
private Queue<Message> msg_queue;
|
||||
/** is the current message **/
|
||||
private Message current;
|
||||
|
||||
|
||||
public UserMessage(){
|
||||
msg_queue = new LinkedList<>();
|
||||
}
|
||||
|
||||
//******** Queue methods
|
||||
|
||||
/**
|
||||
* Adds a new message to the queue
|
||||
*
|
||||
* @param type is the type of the message
|
||||
* @param msg is the message itself
|
||||
*/
|
||||
public void add(MessageType type, String msg){
|
||||
Message m = new Message();
|
||||
m.type = type;
|
||||
m.msg = msg;
|
||||
msg_queue.add( m );
|
||||
logger.finer("Queueing(Size: "+msg_queue.size()+") user message: "+type+"= \""+msg+"\"");
|
||||
}
|
||||
|
||||
/**
|
||||
* @return if there is more messages in the queue
|
||||
*/
|
||||
public boolean hasNext(){
|
||||
return msg_queue.size() != 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Polls a new message from the Queue
|
||||
*
|
||||
* @return if the poll was successful
|
||||
*/
|
||||
public boolean next(){
|
||||
boolean tmp = hasNext();
|
||||
current = msg_queue.poll();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
public int size(){
|
||||
return msg_queue.size();
|
||||
}
|
||||
|
||||
public void clear(){
|
||||
msg_queue.clear();
|
||||
}
|
||||
|
||||
//******** Message Methods
|
||||
|
||||
/**
|
||||
* @return the type of the current message
|
||||
*/
|
||||
public MessageType getType(){
|
||||
return current.type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the message of the current one
|
||||
*/
|
||||
public String getMessage(){
|
||||
return current.msg;
|
||||
}
|
||||
|
||||
//******** Static methods
|
||||
|
||||
public static UserMessage getUserMessage(HttpSession session){
|
||||
if( session.getAttribute(SESSION_USERMESSAGE_KEY) == null ){
|
||||
UserMessage msg = new UserMessage();
|
||||
msg.setSession( session );
|
||||
return msg;
|
||||
}
|
||||
return (UserMessage) session.getAttribute(SESSION_USERMESSAGE_KEY);
|
||||
}
|
||||
|
||||
public void setSession(HttpSession session) {
|
||||
session.setAttribute(SESSION_USERMESSAGE_KEY, this);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
package zall.util.msg;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* This class reads a get request and returns all messages
|
||||
* to that user as JSON.
|
||||
*
|
||||
* @author Ziver
|
||||
*/
|
||||
public class AjaxUserMessageServlet extends HttpServlet{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Ajax request
|
||||
*/
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue