DocTreeAction.java

package sk.iway.iwcm.doc;

import javax.servlet.http.HttpServletRequest;

import sk.iway.iwcm.Constants;
import sk.iway.iwcm.DBPool;
import sk.iway.iwcm.Identity;
import sk.iway.iwcm.i18n.Prop;

/**
 *  Zobrazi dokumenty v stromovej strukture
 *
 *@Title        Interway Content Management
 *@Company      Interway s.r.o. (www.interway.sk)
 *@Copyright    Interway s.r.o. (c) 2001-2002
 *@author       $Author: jeeff $
 *@version      $Revision: 1.3 $
 *@created      $Date: 2003/06/05 16:05:53 $
 *@modified     $Date: 2003/06/05 16:05:53 $
 */
public class DocTreeAction
{

   public static String doTree(HttpServletRequest request)
   {
      //korenova skupina
      int group_id = Constants.getInt("rootGroupId");
      try
      {
      	 if (request.getAttribute("groupid") != null)
      	 {
      	 	group_id = Integer.parseInt((String) request.getAttribute("groupid"));
      	 }
      	 else
      	 {
      	 	group_id = Integer.parseInt(request.getParameter("groupid"));
      	 }
      }
      catch (Exception ex)
      {

      }

      Identity user = (Identity) request.getSession().getAttribute(Constants.USER_KEY);
      if(!GroupsDB.isGroupEditable(user, group_id))
      {
      	request.setAttribute("err_msg", Prop.getInstance().getText("admin.editor_dir.dontHavePermsForThisDir"));
			return "error_admin";
      }

      GroupsDB groupsDB = GroupsDB.getInstance();
      DocTreeDB docTreeDB = new DocTreeDB(group_id, groupsDB, DBPool.getDBName(request));
      request.setAttribute("navbar", docTreeDB.getNavbar());
      DocTreeDetails det = docTreeDB.getFirst();
      request.setAttribute("root_name", det.getName());
      request.setAttribute("root_url", det.getLink());

      //set data for group tree
      request.setAttribute("tree_list", docTreeDB.getDocs());

      GroupDetails group = groupsDB.getGroup(group_id);

      if (group != null)
      {
         TemplatesDB tempDB = TemplatesDB.getInstance(false);
         TemplateDetails temp = tempDB.getTemplate(group.getTempId());

         if (temp == null)
         {
            request.setAttribute("err_msg", "Požadovaný dokument neexistuje 3");
            return ("error");
         }

         request.setAttribute("doc_header", temp.getHeaderDocData());
         request.setAttribute("doc_footer", temp.getFooterDocData());
         request.setAttribute("doc_menu", temp.getMenuDocData());
         request.setAttribute("after_body", temp.getAfterBodyData());
         request.setAttribute("doc_title", det.getName());
         ShowDoc.updateCodes(request, Constants.getServletContext(), -1);
      }

      String forward="listing";
      String pForward = request.getParameter("forward");
      if (pForward!=null && pForward.endsWith(".jsp"))
      {
         forward = "/templates/"+pForward;
      }

      //ak sa jedna o archiv, bude to pekne v zelenom ;-)
      if (request.getParameter("archiv") != null)
      {
         return ("listing_archiv");
      }

      if (forward.endsWith(".jsp"))
      {
         return (forward);
      }
      else
      {
         return ("listing");
      }
   }
}