1 22 23 package org.cofax.cms; 24 25 import org.cofax.*; 26 import java.util.*; 27 28 34 35 public class CofaxToolsLockUnlock { 36 37 47 48 52 public static String getMyArticlesLocked(DataStore db, String pubname, String userID) { 53 StringBuffer listMyArticlesLocked = new StringBuffer (""); 54 try { 55 if ((userID != null) && !(userID.equals(""))) { 56 String tag = "select AL.itemID, A.workflow_state, A.headline from tblarticlelock AS AL, tblarticles as A "; 57 tag += "where A.itemID=AL.itemID and AL.userID='" + userID + "' and A.pubName='" + pubname + "' "; 58 tag += "and lockDate >= DATE_ADD(Now(), INTERVAL -30 minute)"; 59 HashMap htTmp = new HashMap(); 60 List lstUsers = CofaxToolsDbUtils.getPackageData(db, htTmp, tag); 61 if (lstUsers.size() <= 0) { 62 listMyArticlesLocked.append(CofaxToolsUtil.getI18NMessage(CofaxToolsServlet.lcl, "myaccount_noarticle") + "<br>\n"); 63 } 64 while (lstUsers.size() > 0) { 65 StringBuffer sbTemp = new StringBuffer (); 66 HashMap hashInfo = (HashMap) lstUsers.get(0); 67 String itemID = (String ) hashInfo.get("ITEMID"); 68 String headline = (String ) hashInfo.get("HEADLINE"); 69 String validated = (String ) hashInfo.get("WORKFLOW_STATE"); 70 String state = ""; 71 if (validated.equals("0")) 72 state = "<font color='silver'>"; 73 else if (validated.equals("1")) 74 state = "<font color='#C1C307'>"; 75 else if (validated.equals("2")) 76 state = "<font color='#0066CC'>"; 77 listMyArticlesLocked.append("> <a HREF='?mode=article_edit_article_by_itemID&ITEMID=" + itemID + "&hl=article_create_article'>" 78 + state + headline + "</font></a> "); 79 listMyArticlesLocked.append("[<a HREF='?mode=unlock_article&ITEMID=" + itemID + "'>" 80 + CofaxToolsUtil.getI18NMessage(CofaxToolsServlet.lcl, "myaccount_freearticle") + "</a>]<br>"); 81 lstUsers.remove(0); 82 } 83 } 84 } catch (Exception e) { 85 listMyArticlesLocked.append("An error occured<br>\n"); 86 } 87 return (listMyArticlesLocked.toString()); 88 } 89 90 101 public static int lockArticle(DataStore db, String userID, String itemID) { 102 if ((itemID == null) || (itemID.equals("0")) || (userID == null) || (userID.equals("0"))) { 104 return 0; 105 } 106 107 HashMap ht = new HashMap(); 110 StringBuffer v = new StringBuffer (); 111 v.append("SELECT itemID FROM tblarticlelock WHERE itemID=" + itemID + " and userID<>" + userID); 112 v.append(" and lockDate >= DATE_ADD(Now(), INTERVAL -30 minute)"); 113 Vector u_articles = CofaxToolsDbUtils.getPackageVector(db, ht, v.toString()); 114 if (u_articles.size() > 0 && u_articles != null) { 115 return (0); 116 } 117 118 StringBuffer v_lock = new StringBuffer (); 120 v_lock.append("delete from tblarticlelock where itemID=" + itemID + " and userID=" + userID); 121 List lock = CofaxToolsDbUtils.getPackageData(db, ht, v_lock.toString()); 122 123 StringBuffer v_lock2 = new StringBuffer (); 124 v_lock2.append("insert into tblarticlelock(itemID, userID, lockDate) "); 125 v_lock2.append("values(" + itemID + ", " + userID + ", now())"); 126 List lock2 = CofaxToolsDbUtils.getPackageData(db, ht, v_lock2.toString()); 127 128 return 1; 129 130 } 131 132 142 public static int unlockArticle(DataStore db, String userID, String itemID) { 143 if ((itemID == null) || (itemID.equals("0")) || (userID == null) || (userID.equals("0"))) { 145 return 0; 146 } 147 148 HashMap ht = new HashMap(); 150 StringBuffer v_lock = new StringBuffer (); 151 v_lock.append("delete from tblarticlelock "); 152 v_lock.append("where itemID=" + itemID + " "); 153 v_lock.append("and userID=" + userID + " "); 154 List lock = CofaxToolsDbUtils.getPackageData(db, ht, v_lock.toString()); 155 156 return 1; 157 158 } 159 160 170 public static int unlockArticlesByUserID(DataStore db, String userID) { 171 if ((userID == null) || (userID.equals("0"))) { 173 return 0; 174 } 175 176 HashMap ht = new HashMap(); 178 StringBuffer v_lock = new StringBuffer (); 179 v_lock.append("delete from tblarticlelock "); 180 v_lock.append("where userID=" + userID + " "); 181 List lock = CofaxToolsDbUtils.getPackageData(db, ht, v_lock.toString()); 182 183 return 1; 184 185 } 186 187 197 public static int testLockArticle(DataStore db, String userID, String itemID) { 198 if ((itemID == null) || (itemID.equals("0")) || (userID == null) || (userID.equals("0"))) { 200 return (1); 201 } 202 203 HashMap ht = new HashMap(); 205 StringBuffer v = new StringBuffer (); 206 v.append("SELECT userID FROM tblarticlelock WHERE itemID=" + itemID + " and userID<>" + userID); 207 v.append(" and lockDate >= DATE_ADD(Now(), INTERVAL -30 minute)"); 208 Vector u_articles = CofaxToolsDbUtils.getPackageVector(db, ht, v.toString()); 209 if (u_articles.size() > 0 && u_articles != null) { 210 return (0); 211 } 212 213 return (1); 214 } 215 216 224 public static String getMailLockedArticle(DataStore db, String itemID) { 225 String email = ""; 226 try { 227 if ((itemID == null) || (itemID.equals("0"))) { 229 return (""); 230 } 231 HashMap ht = new HashMap(); 232 String tag = "SELECT email FROM tblpermusers AS PU, tblarticlelock as AL "; 233 tag += "WHERE AL.itemID=" + itemID + " and AL.userID=PU.userID "; 234 tag += "and lockDate >= DATE_ADD(Now(), INTERVAL -30 minute)"; 235 HashMap hashinfo = CofaxToolsDbUtils.getNameValuePackageHash(db, ht, tag); 236 email = (String ) hashinfo.get("EMAIL"); 237 } catch (Exception e) { 238 CofaxToolsUtil.log("CofaxToolsDbUtils.getMailLockedArticle : error " + e); 239 } 240 return (email); 241 242 } 243 244 } 245 | Popular Tags |