84 lines
3.2 KiB
Java
84 lines
3.2 KiB
Java
|
|
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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|