[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search
 

Ignore:
Location:
trunk/tools/cldr-apps
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/cldr-apps/WebContent

  • trunk/tools/cldr-apps/WebContent/dojoroot/surveyTool/nls/stui.js

    r11625 r11627  
    261261                special_mail: "Notifications (SMOKETEST ONLY)", 
    262262                special_statistics: "Statistics", 
     263                special_users: "Users", 
    263264                special_r_compact: "Numbers", 
    264265                special_r_datetime: "Datetime", 
  • trunk/tools/cldr-apps/src

  • trunk/tools/cldr-apps/src/org/unicode/cldr/web/MailSender.java

    r11625 r11627  
    168168            } else { 
    169169                int firstTime = SurveyMain.isUnofficial() ? 5 : 60; // for official use, give some time for ST to settle before starting on mail s ending. 
    170                 int eachTime = 6; /* Check for outbound mail every 6 seconds */// SurveyMain.isUnofficial()?6:45; // 63; 
     170                int eachTime = 60; /* Check for outbound mail every minute */// SurveyMain.isUnofficial()?6:45; // 63; 
    171171                periodicThis = SurveyMain.getTimer().scheduleWithFixedDelay(this, firstTime, eachTime, TimeUnit.SECONDS); 
    172172                System.out.println("Set up mail thread every " + eachTime + "s starting in " + firstTime + "s - waiting count = " 
  • trunk/tools/cldr-apps/src/org/unicode/cldr/web/SurveyAjax.java

    r11625 r11627  
    44import java.io.PrintWriter; 
    55import java.io.Reader; 
     6import java.sql.Connection; 
     7import java.sql.PreparedStatement; 
    68import java.sql.ResultSet; 
    79import java.sql.SQLException; 
     
    4749import org.unicode.cldr.util.SupplementalDataInfo; 
    4850import org.unicode.cldr.util.VoteResolver; 
     51import org.unicode.cldr.util.Organization; 
    4952import org.unicode.cldr.util.XMLSource; 
    5053import org.unicode.cldr.web.BallotBox.InvalidXPathException; 
     
    238241    public static final String WHAT_REVIEW_GET_POST = "get_post"; 
    239242    public static final String WHAT_PARTICIPATING_USERS = "participating_users"; 
     243    public static final String WHAT_USER_LIST = "user_list"; 
     244    public static final String WHAT_USER_OLDVOTES = "user_oldvotes"; 
     245    public static final String WHAT_USER_XFEROLDVOTES = "user_xferoldvotes"; 
    240246 
    241247    String settablePrefsList[] = { SurveyMain.PREF_CODES_PER_PAGE, SurveyMain.PREF_COVLEV, 
     
    12721278                        addGeneralStats(r); 
    12731279                        send(r, out); 
     1280                    } else if(mySession.user != null) { 
     1281                        mySession.userDidAction(); 
     1282                        switch(what) { 
     1283                        case WHAT_USER_LIST: 
     1284                        { 
     1285                            if(mySession.user.isAdminForOrg(mySession.user.org)) { // for now- only admin can do these 
     1286                                try { 
     1287                                    Connection conn = null; 
     1288                                    ResultSet rs = null; 
     1289                                    JSONArray users = new JSONArray(); 
     1290                                    final String forOrg = (UserRegistry.userIsAdmin(mySession.user))?null:mySession.user.org; 
     1291                                    try { 
     1292                                        conn = DBUtils.getInstance().getDBConnection(); 
     1293                                        rs = sm.reg.list(forOrg, conn); 
     1294                                        // id,userlevel,name,email,org,locales,intlocs,lastlogin 
     1295                                        while(rs.next()) { 
     1296                                            int id = rs.getInt("id"); 
     1297                                            UserRegistry.User them = sm.reg.getInfo(id); 
     1298                                            users.put(JSONWriter.wrap(them) 
     1299                                                .put("locales", rs.getString("locales")) 
     1300                                                .put("lastlogin", rs.getTimestamp("lastlogin")) 
     1301                                                .put("intlocs", rs.getString("intlocs"))); 
     1302                                        } 
     1303                                    } finally { 
     1304                                        DBUtils.close(rs, conn); 
     1305                                    } 
     1306                                    final JSONWriter r = newJSONStatusQuick(sm); 
     1307                                    r.put("what", what); 
     1308                                    r.put("users", users); 
     1309                                    r.put("org", forOrg); 
     1310                                    JSONObject userPerms = new JSONObject(); 
     1311                                    final boolean userCanCreateUsers = sm.reg.userCanCreateUsers(mySession.user); 
     1312                                    userPerms.put("canCreateUsers", userCanCreateUsers); 
     1313                                    if(userCanCreateUsers) { 
     1314                                        final org.unicode.cldr.util.VoteResolver.Level myLevel = mySession.user.getLevel(); 
     1315                                        final Organization myOrganization = mySession.user.getOrganization(); 
     1316                                        JSONObject forLevel = new JSONObject();   
     1317                                        for(VoteResolver.Level v : VoteResolver.Level.values()) { 
     1318                                            JSONObject jo = new JSONObject();   
     1319                                            jo.put("canCreateOrSetLevelTo", myLevel.canCreateOrSetLevelTo(v)); 
     1320                                            jo.put("isManagerFor", myLevel.isManagerFor(myOrganization, v, myOrganization)); 
     1321                                            forLevel.put(v.name(), jo); 
     1322                                        } 
     1323                                        userPerms.put("forLevel",forLevel); 
     1324                                    } 
     1325                                    r.put("userPerms", userPerms); 
     1326                                    send(r, out);                                     
     1327                                } catch(SQLException e) { 
     1328                                    SurveyLog.logException(e, "listing users for " + mySession.user.toString()); 
     1329                                    throw new SurveyException(ErrorCode.E_INTERNAL, "Internal error listing users: " + e.toString()); 
     1330                                } 
     1331                            } else { 
     1332                                throw new SurveyException(ErrorCode.E_NO_PERMISSION, "You do not have permission to list users."); 
     1333                            } 
     1334                        } 
     1335                        break; 
     1336                        case WHAT_USER_OLDVOTES: 
     1337                        { 
     1338                            String u = request.getParameter("old_user_id"); 
     1339                            if(u == null)    throw new SurveyException(ErrorCode.E_INTERNAL, "Missing parameter 'u'"); 
     1340                            Integer userid = Integer.parseInt(u); 
     1341 
     1342                            if(mySession.user.isAdminForOrg(mySession.user.org) && mySession.user.isAdminFor(sm.reg.getInfo(userid))) { 
     1343                                final String lastVoteTable = sm.getSTFactory().getLastVoteTable(); 
     1344                                JSONObject o = DBUtils.queryToJSON("select COUNT(xpath), locale from " + lastVoteTable + " where submitter=? group by locale order by locale", userid);  
     1345                                final JSONWriter r = newJSONStatusQuick(sm); 
     1346                                r.put("user_oldvotes", o); 
     1347                                r.put("old_user_id", userid); 
     1348                                r.put("lastVoteTable", lastVoteTable); 
     1349                                send(r, out);                                     
     1350                            } else { 
     1351                                throw new SurveyException(ErrorCode.E_NO_PERMISSION, "You do not have permission to list users."); 
     1352                            } 
     1353                        } 
     1354                        break; 
     1355                        case WHAT_USER_XFEROLDVOTES: 
     1356                        { 
     1357                            // // what=user_xferoldvotes&from_user_id=182&from_locale=de&to_user_id=105&to_locale=de_CH" 
     1358                            Integer from_user_id = getIntParameter(request, "from_user_id"); 
     1359                            Integer to_user_id = getIntParameter(request, "to_user_id"); 
     1360                            String from_locale = request.getParameter("from_locale"); 
     1361                            String to_locale = request.getParameter("to_locale"); 
     1362                            if(from_user_id == null || to_user_id == null || from_locale == null || to_locale == null)    throw new SurveyException(ErrorCode.E_INTERNAL, "Missing parameter"); 
     1363                            final User toUser = sm.reg.getInfo(to_user_id); 
     1364                            final User fromUser = sm.reg.getInfo(from_user_id); 
     1365                            if(toUser==null || fromUser == null)   throw new SurveyException(ErrorCode.E_INTERNAL, "Invalid user parameter"); 
     1366                            if(mySession.user.isAdminForOrg(mySession.user.org) && mySession.user.isAdminFor(sm.reg.getInfo(to_user_id))) { 
     1367                                final String lastVoteTable = sm.getSTFactory().getLastVoteTable(); 
     1368                                Connection conn = null; 
     1369                                PreparedStatement ps = null; 
     1370                                try { 
     1371                                    conn = DBUtils.getInstance().getDBConnection(); 
     1372                                    ps = DBUtils.prepareStatementWithArgs(conn, "INSERT INTO " + lastVoteTable + " (locale, xpath, submitter, value, last_mod) " + 
     1373                                            " SELECT ? as locale, "+lastVoteTable+".xpath as xpath, ? as submitter, "+lastVoteTable+".value as value, "+lastVoteTable+".last_mod as last_mod "+ 
     1374                                        "FROM "+lastVoteTable+" WHERE ?="+lastVoteTable+".submitter AND "+lastVoteTable+".locale=?", 
     1375                                        to_locale, to_user_id, from_user_id,from_locale); 
     1376                                    int rv = ps.executeUpdate(); 
     1377                                    conn.commit(); 
     1378                                    // remind the user again to look at their votes. 
     1379                                    toUser.settings().set(getOldVotesPref(), (String)null); 
     1380                                    final JSONWriter r = newJSONStatusQuick(sm); 
     1381                                    final JSONObject o = new JSONObject(); 
     1382                                    o.put("from_user_id", from_user_id); 
     1383                                    o.put("from_locale", from_locale); 
     1384                                    o.put("to_user_id", to_user_id); 
     1385                                    o.put("to_locale", to_locale); 
     1386                                    o.put("result_count", rv); 
     1387                                    o.put("lastVoteTable", lastVoteTable); 
     1388                                    r.put(WHAT_USER_XFEROLDVOTES, o); 
     1389                                    send(r, out);                                     
     1390                                } finally { 
     1391                                    DBUtils.close(ps, conn); 
     1392                                } 
     1393                            } else { 
     1394                                throw new SurveyException(ErrorCode.E_NO_PERMISSION, "You do not have permission to do this."); 
     1395                            } 
     1396                        } 
     1397                        break; 
     1398                        default:  
     1399                            sendError(out, "Unknown User Session-based Request: " + what, ErrorCode.E_INTERNAL); 
     1400                        } 
    12741401                    } else { 
    12751402                        sendError(out, "Unknown Session-based Request: " + what, ErrorCode.E_INTERNAL); 
     
    16981825        send(r, out); 
    16991826    } 
     1827    private void sendError(PrintWriter out, SurveyException e) throws IOException { 
     1828        JSONWriter r = newJSON(); 
     1829        r.put("SurveyOK", "0"); 
     1830        r.put("err", e.getMessage()); 
     1831        r.put("err_code", e.getErrCode()); 
     1832        try { 
     1833            e.addDataTo(r); 
     1834        } catch (JSONException e1) { 
     1835            SurveyLog.logException(e1, "While processing " + e.toString()); 
     1836            r.put("err", e.getMessage()+ " - and JSON error " + e1.toString()); 
     1837        } 
     1838        send(r, out); 
     1839    } 
    17001840 
    17011841    private void sendError(PrintWriter out, Throwable e) throws IOException { 
     
    17111851    } 
    17121852 
    1713     private void sendError(PrintWriter out, SurveyException e) throws IOException { 
    1714         JSONWriter r = newJSON(); 
    1715         r.put("SurveyOK", "0"); 
    1716         r.put("err", e.getMessage()); 
    1717         r.put("err_code", e.getErrCode()); 
    1718         try { 
    1719             e.addDataTo(r); 
    1720         } catch (JSONException e1) { 
    1721             // TODO Auto-generated catch block 
    1722             e1.printStackTrace(); 
    1723         } 
    1724         send(r, out); 
    1725     } 
    1726  
    17271853    private static void send(JSONWriter r, PrintWriter out) throws IOException { 
    17281854        out.print(r.toString()); 
Note: See TracChangeset for help on using the changeset viewer.