<%@language="javascript"%> <% /* $Revision$ $Id$ File: fac_user_messages.asp (formerly news/news.asp) Description: Toont de gebruikersberichten (statusinfo) in een grid Note: Functioneel is de noodzaak voor deze info veel minder geworden vanwege fac_list die veel meer info toont. Toch maar eens via resulttable */ %> <% FCLTHeader.Requires({ plugins: ["jQuery"], js: ["./fac_user_messages.js"] }); var showall = getQParamInt("showall", 0) == 1; var outputmode = getQParamInt("outputmode", 0); function fnrowClass(oRs) { var lclass = ""; // zo was het, gewoon overgenomen if (oRs("web_user_mess_action_status").Value == 1) { if (oRs("web_user_mess_prioriteit").value==1) lclass = "newstextFreshRed"; else lclass = "newstextFresh"; } else lclass = "newstext"; return lclass; } function fnrowData(oRs) { var data = {}; if (oRs("fac_srtnotificatie_url").Value) { data.action = oRs("fac_srtnotificatie_url").Value + oRs("web_user_mess_action_params").Value; data.action = data.action.replace(/\#/g, "&"); if (data.action.indexOf("&urole") < 0) data.action += "&urole=fe"; } return JSON.stringify(data); } function fnrowActionEnabler(oRs) { var data = { eDefault: oRs("fac_srtnotificatie_url").Value != null }; return data; } %> <% FCLTHeader.Generate({outputmode:outputmode}) %> <% var buttons = []; buttons.push({title: L("lcl_mark_as_read_all"), icon: "bin_closed.png", action: "MarkAsReadAll()"}); buttons.push({title: L("lcl_refresh"), icon: "page_refresh.png", action: "FcltMgr.reload()" }); if (user_key != -1) { function fncolReceiver(oRs) { var receiver = (oRs("prs_perslid_key_receiver").Value == user_key ? "" : oRs("receiver_name").Value); return safe.html(receiver); } var prsKeys = (user.hasCollegas() ? user.collegakeylist() : user_key); var sql = "SELECT m.web_user_mess_dsc" + ", sn.fac_srtnotificatie_url" + ", COALESCE(m.web_user_mess_action_params, ' ') web_user_mess_action_params" + ", m.web_user_mess_action_status" + ", m.web_user_mess_action_datum" + ", m.web_user_message_key" + ", m.prs_perslid_key_receiver" + ", web_user_mess_prioriteit" + ", " + S("prs_pers_string") + " receiver_name" + " FROM web_user_messages m, fac_srtnotificatie sn, prs_perslid p" + " WHERE (m.prs_perslid_key_receiver IN (" + prsKeys + ")" + " OR m.prs_perslid_key_receiver IS NULL) " // General messages + " AND sn.fac_srtnotificatie_key(+)=m.fac_srtnotificatie_key" + " AND m.prs_perslid_key_receiver = p.prs_perslid_key" + " ORDER BY m.web_user_mess_action_datum DESC, m.web_user_message_key DESC"; // Tweeledig: beperken, maar tevens zorgen dat de sortering goed blijft! // Dat is: de nieuwste berichten bovenaan sql = "SELECT * FROM (" + sql + ") WHERE ROWNUM < " + S("portalnewsmax"); var rst = new ResultsetTable({ sql: sql, keyColumn: "web_user_message_key", ID: "usermess", rowData: fnrowData, rowClass: fnrowClass, rowActionEnabler: fnrowActionEnabler, title: L("lcl_recent_news"), showAll: showall, outputmode: outputmode, buttons: buttons }); if (user.hasCollegas()) rst.addColumn(new Column({caption: L("lcl_name"), content: fncolReceiver, nowrap: true })); rst.addColumn(new Column({caption: L("lcl_date"), content: "web_user_mess_action_datum", datatype: "datetime", prettydate: true, nowrap: true })); rst.addColumn(new Column({caption: L("lcl_message"), content: "web_user_mess_dsc"})); rst.addAction({ action: "DoAction", caption: "", enabler:"eDefault", isDefault: true }); rst.addAction({ action: "facDelete", caption: L("lcl_mark_as_read") }); var cnt = rst.processResultset(); } %>