以前から思っていたのですが、グループセッションの回覧機能に返信機能があるといいなと考え、Jqueryなど使い実装してみた。けっこう時間はかかったが、なんとか完成した。コンパイルせず、JSPだけでなんとかできた。
ただし、ユーザーIDの扱い方がよくわからず、全角の氏名を使ってデータを扱うことにした。簡易的な方法なので、同じ職場にまったく同じ漢字の氏名の人がいると使えません。なんらかの形で文字を微妙に調整するとかする必要があります。
でも、よく考えたら、同一漢字のままでグループウエアを運用することはないでしょう、おそらく運用上は部署名をつけるとかすると思うので、あまり関係ないかもしれませんが。
cir020.jsp
以下抜粋です。HTMLタグに必要なID属性なども追加必要です
<!-- 追加2022.9.19 -->
<html:form styleId="cir010Form" action="/circular/cir010">
<input type="hidden" name="CMD" value="search">
<input type="hidden" name="reply_name" id="reply_name" value="">
<input type="hidden" name="reply_title" id="reply_title" value="">
<input type="hidden" name="reply_naiyo" id="reply_naiyo" value="">
</html:form>
<!-- 追加2022.9.19 -->
<script>
$(document).ready( function(){
setTimeout(function(){
document.getElementById( "reply_name" ).value=document.getElementById( "hassin_name" ).textContent;
document.getElementById( "reply_title" ).value=document.getElementById( "reply_title_src" ).textContent;
document.getElementById( "reply_naiyo" ).value=document.getElementById( "reply_naiyo_src" ).textContent;
},100);
});
</script>
cir040.jsp
<%
String reply_title = "RE:"+request.getParameter("reply_title");
String reply_naiyo = "\n*********************Original Message*****************"+request.getParameter("reply_naiyo");
%>
<span id="reply_name2">
<%=request.getParameter("reply_name")%>
</span>
<!-- 追加2022.9.20 -->
<script>
$(document).ready( function(){
setTimeout(function(){
var functinBtnName = $(".cir_send_sel_btn").attr('id');
var paramStr = "CMD=getInitData";
paramStr += getNowSelUsr();
getSelAtesakiData(paramStr, functinBtnName, 0);
},100);
setTimeout(function(){
/* テンプレートポップアップ */
$('#atesakiSelPop').dialog({
autoOpen: false, // hide dialog
bgiframe: false, // for IE6
resizable: false,
height: 0,
width: 0,
modal: true,
overlay: {
backgroundColor: '#000000',
opacity: 0.0
},
buttons: {
閉じる: function() {
$(this).dialog('close');
}
}
});
},100);
setTimeout(function(){
const list = document.getElementById('cmn120SelectLeftUser')
const options = list.options
Array.from(options).forEach(function(option) {
if (option.label.trim() == $('#reply_name2').text().trim() ){
option.selected=true
}
});
},300);
setTimeout(function(){
var paramStr = "CMD=addUserData&";
paramStr += getFormData($('#atesakiSelForm'));
getSelAtesakiData(paramStr, $('#funcBtnName').val(), $('#funcBtnKbn').val());
},400);
setTimeout(function(){
drawPopUsr();
},500);
});
</script>
以下抜粋です。HTMLタグに必要なID属性なども追加必要です
<!-- 追加2022.9.19 -->
<html:form styleId="cir010Form" action="/circular/cir010">
<input type="hidden" name="CMD" value="search">
<input type="hidden" name="reply_name" id="reply_name" value="">
<input type="hidden" name="reply_title" id="reply_title" value="">
<input type="hidden" name="reply_naiyo" id="reply_naiyo" value="">
</html:form>
<!-- 追加2022.9.19 -->
<script>
$(document).ready( function(){
setTimeout(function(){
document.getElementById( "reply_name" ).value=document.getElementById( "hassin_name" ).textContent;
document.getElementById( "reply_title" ).value=document.getElementById( "reply_title_src" ).textContent;
document.getElementById( "reply_naiyo" ).value=document.getElementById( "reply_naiyo_src" ).textContent;
},100);
});
</script>
cir040.jsp
<%
String reply_title = "RE:"+request.getParameter("reply_title");
String reply_naiyo = "\n*********************Original Message*****************"+request.getParameter("reply_naiyo");
%>
<span id="reply_name2">
<%=request.getParameter("reply_name")%>
</span>
<!-- 追加2022.9.20 -->
<script>
$(document).ready( function(){
setTimeout(function(){
var functinBtnName = $(".cir_send_sel_btn").attr('id');
var paramStr = "CMD=getInitData";
paramStr += getNowSelUsr();
getSelAtesakiData(paramStr, functinBtnName, 0);
},100);
setTimeout(function(){
/* テンプレートポップアップ */
$('#atesakiSelPop').dialog({
autoOpen: false, // hide dialog
bgiframe: false, // for IE6
resizable: false,
height: 0,
width: 0,
modal: true,
overlay: {
backgroundColor: '#000000',
opacity: 0.0
},
buttons: {
閉じる: function() {
$(this).dialog('close');
}
}
});
},100);
setTimeout(function(){
const list = document.getElementById('cmn120SelectLeftUser')
const options = list.options
Array.from(options).forEach(function(option) {
if (option.label.trim() == $('#reply_name2').text().trim() ){
option.selected=true
}
});
},300);
setTimeout(function(){
var paramStr = "CMD=addUserData&";
paramStr += getFormData($('#atesakiSelForm'));
getSelAtesakiData(paramStr, $('#funcBtnName').val(), $('#funcBtnKbn').val());
},400);
setTimeout(function(){
drawPopUsr();
},500);
});
</script>
0 件のコメント:
コメントを投稿