フォーラム

GroupSession

フォーラム
GroupSessionについての自由な情報交換の場としてご利用ください

GroupSessionフォーラム:投稿一覧

 
フォーラム:03_プラグイン開発フォーラム
在籍ステータス変更画面の機能強化
[ 5948 ] 在籍ステータス変更画面の機能強化

プラグイン開発ではありません。カスタマイズです。

在籍ステータス変更画面の機能強化(カスタマイズ)を少量のJavaScript追加でできましたのでご報告です。

1.それはどこか?

「在籍管理」画面に一覧表示される人員リストにある「変更」ボタンを押したときに表示されるアレ。
在籍状況/在籍コメントを入力するためのアレです。(以降この画面を「アレ」で統一)
ソースは「~ドラ猫\webapps\gsession3\WEB-INF\plugin\zaiseki\jsp\zsk011.jsp」です。

2.開発の経緯(説明の順番が逆だけど許して)

在籍管理には潜在的な問題点がある
(1)自発的に自分の在籍状況を更新してくれない人が必ず発生する(グループウェア運用の性)
(2)「アレ」が面倒,使いにくいと感じてしまえば(1)の人数が増大する
(3)代理で定期的に更新したりする一部の人員の負担が増える(又は更新できなくなる)
(4)在籍管理機能の運用が破綻する(運用できなくなる)

へっぽこユーザーは考えた。
(1)はそもそもどうしようもないから放置だね。(2)はなんとかできるんじゃね?
というわけでそのへんを少しでも解決しようとした結果この開発を行いました。

(つづく)

投稿者へっぽこユーザー
最新書き込み2014/09/26 15:20:49
[ 5950 ] 在籍ステータス変更画面の機能強化(2)

3.カスタマイズ内容

「アレ」内の在籍状況選択,コメント記入等をワンボタンでできるようファンクション化する。

まず前提としてへっぽこユーザーの社内では以下の認識があるということを考慮してください。
「在籍」は社内に居て(折り返しも含めて比較的すぐに)電話に出れるような状態(トイレ・タバコ休憩等も含む)
「不在」は社内に居ない状態(外出・出張・休暇など)
「その他」は社内には居るが電話に出れない状態(会議中・来客中など)
「その他」の扱いについては会社によってまちまちだからその点は機能インプリメント時には考慮する必要があります。

そしてへっぽこユーザーの社内では、コメントは帰社時間を入れておけという価値観があります。
「携帯電話のあるこの時代、誰が何処へ行っているかなんてどうでもいい。(それはスケジュールへ入れろ。)
行き先掲示板にとって大切なのはいつ帰ってくるかということだ。」ということです。

で、以下機能を実現します。

■「休」ボタンを設け、押すと在籍状況が「不在」になり、コメント欄に「休み」が入る
■「NR」ボタンを設け、押すと在籍状況が「不在」になり、コメント欄に「N.R」が入る
■「帰宅」ボタンを設け、押すと在籍状況が「不在」になり、コメント欄に「帰宅」が入る
■「会議」ボタンを設け、押すと在籍状況が「その他」になり、コメント欄に「会議中」が入る
■「来客」ボタンを設け、押すと在籍状況が「その他」になり、コメント欄に「来客中」が入る
■在籍状況の「在籍」ラジオボタンを選択すると、コメント欄をクリアする
■在籍状況の「不在」ラジオボタンを選択すると、コメント欄に「戻:」が入る
■在籍状況の「その他」ラジオボタンを選択すると、コメント欄に「戻:」が入る
ユーザーは上記選択後、必要ならコメント修正をして「登録」ボタンを押すだけになる。

(心の声:「休」「NR」「帰宅」「会議」「来客」「在籍」に関しては、選択時にいきなりPOSTしても
良かったんだが、間違ってしまったとき元に戻せなくなるのを嫌って採用しなかった。
コメントが自動的に上書きされてしまい、前に何が書いてあったかわからなくなってしまうのだ。)

(つづく)

投稿者へっぽこユーザー
最新書き込み2014/09/26 15:22:07
[ 5951 ] 在籍ステータス変更画面の機能強化(3)

4.ソースのカスタマイズ

「~ドラ猫\webapps\gsession3\WEB-INF\plugin\zaiseki\jsp\zsk011.jsp」の以下部分を変更
【】の部分を読むべし

----ファイル先頭


<title>[Group Session] 在席管理</title>
【ここにAを挿入】
</head>


<td class="table_bg_A5B4E1" width="20%" nowrap><span class="text_bb1">氏 名</span></td>
<td align="left" class="td_wt" width="80%"><span class="text_base"><bean:write name="zsk011Form" property="zsk011UpdateUserName" /></span>【ここにBを挿入】</td>
</tr>
<tr>
<td class="table_bg_A5B4E1" width="20%" nowrap><span class="text_bb1">在席状況</span></td>
<td align="left" class="td_wt" width="80%"> 【次行ラジオボタン3箇所にonclickの記述を追加】
<span class="block_color_in"><html:radio property="zsk011Status" styleId="sts_zaiseki" value="<%= sts_zaiseki %>" 【onclick="zcleardate()"】 /><span class="text_base2"><label for="sts_zaiseki" class="text_base2"><%= sts_zaiseki_str %></label></span></span>&nbsp;
<span class="block_color_leave"><html:radio property="zsk011Status" styleId="sts_huzai" value="<%= sts_huzai %>" 【onclick="zsetdate()"】 /><span class="text_base2"><label for="sts_huzai" class="text_base2"><%= sts_huzai_str %></label></span></span>&nbsp;

<span class="block_color_etc"><html:radio property="zsk011Status" styleId="sts_sonota" value="<%= sts_sonota %>" 【onclick="zsetdate()"】 /><span class="text_base2"><label for="sts_sonota" class="text_base2"><%= sts_sonota_str %></label></span></span>
</td>
</tr>


----ファイル終端

(つづく)

投稿者へっぽこユーザー
最新書き込み2014/09/26 15:24:12
[ 5952 ] 在籍ステータス変更画面の機能強化(4)

====Aのはじまり====
<script type="text/javascript">
<!--
function zcleardate() {
var oElement = document.getElementById("zcomment");
oElement.value = '';
}
function zsetdate() {
var oElement = document.getElementById("zcomment");
oElement.value = '戻:';
}
function absent() {
var oElement = document.getElementById("zcomment");
oElement.value = '休み';
var oElement = document.getElementById("sts_huzai");
oElement.checked = true;
}
function noreturn() {
var oElement = document.getElementById("zcomment");
oElement.value = 'N.R';
var oElement = document.getElementById("sts_huzai");
oElement.checked = true;
}
function gohome() {
var oElement = document.getElementById("zcomment");
oElement.value = '帰宅';
var oElement = document.getElementById("sts_huzai");
oElement.checked = true;
}
function meeting() {
var oElement = document.getElementById("zcomment");
oElement.value = '会議中';
var oElement = document.getElementById("sts_sonota");
oElement.checked = true;
}
function receivingvisitor() {
var oElement = document.getElementById("zcomment");
oElement.value = '来客中';
var oElement = document.getElementById("sts_sonota");
oElement.checked = true;
}
// -->
</script>
====Aのおわり====

(つづく)

投稿者へっぽこユーザー
最新書き込み2014/09/26 15:25:01
[ 5953 ] 在籍ステータス変更画面の機能強化(5)

====Bのはじまり====
<INPUT TYPE='button' VALUE='休' style='background-color:MediumAquamarine;width:22px;height:20px;margin:0px;padding:0px;' ONCLICK="absent();">
<INPUT TYPE='button' VALUE='NR' style='background-color:MediumAquamarine;width:26px;height:20px;margin:0px;padding:0px;' ONCLICK="noreturn();">
<INPUT TYPE='button' VALUE='帰宅' style='background-color:MediumAquamarine;width:36px;height:20px;margin:0px;padding:0px;' ONCLICK="gohome();">
<INPUT TYPE='button' VALUE='会議' style='background-color:lemonchiffon;width:36px;height:20px;margin:0px;padding:0px;' ONCLICK="meeting();">
<INPUT TYPE='button' VALUE='来客' style='background-color:lemonchiffon;width:36px;height:20px;margin:0px;padding:0px;' ONCLICK="receivingvisitor();">
====Bのおわり====

以上でござる。再起動の必要はありません。
色などは好きなように弄ってもらうといいでしょう。
ボタンのマージンとかサイズはそのままにしておいたほうが良いかもしれません。いろんな機種で表示を調整したので実績があります。
(WinXP:IE8,FireFox,Chrome/Win7:IE10,FireFox,Chrome/MacOSX:Safari,FireFox,Chrome/スマホ&タブレットもたぶんOK)

5.その他

へっぽこユーザーはVer3.0.2の環境で運用しているが、JavaScriptの追加(HMIの対応)だけなので現行のVer4以降でも問題なく適用できるでしょう。

6.謝辞

無料グループウェアをご提供頂いている日本トータルシステム株式会社様にあらためて感謝いたします。

(つづかない)

投稿者へっぽこユーザー
最新書き込み2014/09/26 15:26:00
スレッドURLhttps://groupsession.jp/wbs/bulletin/bbs080.do?bbs010forumSid=3&threadSid=2038
 


TOP