Counter: 2220, today: 1, yesterday: 0

出勤状況を座席表で確認できるツールのバグを管理するページです。

■・・・完了
□・・・継続
▲・・・暫定対処完了

spamがひどいので、しばらく投稿欄消しておきます。(2011/10/30 日向充)

■Bug#24 出勤状況を更新するとある島が全て同じ人になってしまう。

日向充 (2009-10-28 (水) 13:07:50)

2009年10月20日、F田様より
2009年10月28日改修

■問題
zaseki2を更新すると全ての座席が
9101,name,locate,bikou,yyyymmddHHMM
になってしまう。

■原因
座席データ更新時、zasekix.txtを開き更新対象の内線番号がヒットする行を
新しい情報で上書く処理を実施しいたが、zasekixの
9102,name2,locate2,bikou2,200910191758
の日付の箇所に9101が含まれていたため、全ての行を内線番号9101の
更新データで上書きしてしまっていた。


■対処内容
上記原因欄の
zasekix.txtを開き更新対象の内線番号がヒットする
の処理を
zasekix.txtを開き更新対象の内線番号が行頭にヒットする
に変更する。

■具体的改修箇所
zaseki_dataset.cgi

line52
-		if($_=~/$naisen,([0-9\-]*),(\S*),\S*,[\S\s]*,[0-9]*/){
+		if($_=~/^$naisen,([0-9\-]*),(\S*),\S*,[\S\s]*,[0-9]*/){

line56
-		if($_=~/$naisen,(\S*),\S*,[\S\s]*,[0-9]*/){
+		if($_=~/^$naisen,(\S*),\S*,[\S\s]*,[0-9]*/){

line68
-		if($_=~/$naisen/){print TMP $updated_line;}else{print TMP $_;}
+		if($_=~/^$naisen/){print TMP $updated_line;}else{print TMP $_;}

※line68が該当箇所。
  line52とline56は念のため。

□Bug#23 今日のお知らせを表示して欲しい。

日向充 (2009-07-30 (木) 18:42:57)

2009/7/29 I藤様より。
今日のお知らせを座席表上部に流れる文字で表示して欲しい。


□Bug#22 備考の文字が小さくて読みづらい。

日向充 (2009-07-30 (木) 18:41:24)

2009/7/28 I藤様より。
======================
 出勤状況について、その日のスケジュールとか、入れていただいている
方もいる様ですが、字が小さくて見えない。

カーソルを合わせた際に、ポップUPするウィンドウにスケジュールも
追加できると良いのだが。
============================


□Bug#21 memberinfo.txtにフル情報を入れないとPC ON/OFF情報が表示されない。

日向充 (2009-07-27 (月) 18:20:11)

2009/7/27 F田様より。

http://hinata.la.coocan.jp/tool/zaseki_data/memberinfo.txt

内線番号,URL,メールアドレス,IPアドレス

内線番号,,メールアドレス,IPアドレス
等とするとIPアドレスが拾えず、PC ON/OFF情報が表示されなくなる。


■Bug#20 高速化のため、表示のみのときはcgiではなくhtmlを表示するようにして欲しい。

日向充 (2009-05-08 (金) 15:23:29)

2009/5/8 Yまだ様より
曰く > cgiで処理したデータを一度 aaa.html に出力しておく。
曰く > ....cgiにアクセスしたときには、
曰く > Location: aaa.html\n
曰く > \n
曰く > と出力する。
曰く > 更新するときのみ aaa.html を変更する。


■Bug#19 部長も表示したい。

日向充 (2009-04-29 (水) 15:16:15)

2009/4/22 I藤様より。

  • 090422版にて対処。 -- 日向充 2009-04-29 (水) 15:16:34
  • 1島(一つのtxt)に課長(外線番号ありメンバー。部長も同じ。)を2人まで表示できるようにした。 -- 日向充 2009-04-29 (水) 15:19:14

■Bug#18 zaseki_data配下に不正なファイルがあると個別更新が行えない。

日向充 (2009-04-29 (水) 15:05:51)

2009/4/22 自分で発見。

  • Bug#1と同様にカウントで制御している箇所がzaseki_hyouji.cgiにもあり、zaseki.txt等の不正なファイルがあると個別更新が行えない問題があった。090422版で対処。Bug#1の水平展開漏れなり。。カウントではなく、ファイル名のzaseki1.txtなどから1などの数字を取得するに修正。 -- 日向充 2009-04-29 (水) 15:06:45

□Bug#17 FireFox、Safariだとポップアップテキストが表示されない。

日向充 (2009-04-26 (日) 02:04:55)

2009/4/25 自分で発見


■Bug#16 座席を表示すると不正なファイルzaseki_data/zaseki.txtが生成される。

日向充 (2009-04-26 (日) 01:35:24)

2009/4/25 自分で発見

2009年4月29日対処(版)。
□[原因]
元々POSTが情報で送られてくるのはデータの更新時のみであるという想定で作成していたため、

 すべて更新か
   →NO→チェックしたチームをすべて更新か
   →NO→クリックしたチームをすべて更新
   →NO→個別更新

という風に判断してしまっていた。
しかしBug#2の対処後はデータの更新が行われていなくても逆向きフラグをPOSTで送信するようになっているため、個別更新でなくても個別更新のルートに入るようになってしまっていた。 個別更新のボタンが押されずにこのルートに入ると、ボタンの情報が送られていないため、空の島番号、座席番号で個別更新処理を実施しようとするため、空ファイルが作成されてしまっていた。
□[対処]

 すべて更新か
   →NO→チェックしたチームをすべて更新か
   →NO→クリックしたチームをすべて更新
   →NO→押されたボタンを解析して得られた内線番号を格納する変数に4桁の番号が入っているか
   →YES→個別更新

というフローに変更した。 ソースイメージはline156を

-	}else{
+	}elsif($naisen =~/[0-9]{4}/){

■Bug#15 各座席から電子社員録の個人URLにリンクして欲しい。

日向充 (2009-04-23 (木) 21:08:18)

2009/4/23 I藤様より

  • 090423版で対処。 -- 日向充 2009-04-29 (水) 15:29:33
  • 内線番号と各人にURLをくくりつけるためのurl.txtを新設。 -- 日向充 2009-04-29 (水) 15:30:16

■Bug#14 座席表に顔写真を載せて欲しい。

日向充 (2009-04-23 (木) 21:07:08)

2009/4/23 I藤様より

  • 090423版で対処。顔写真ON/OFFのボタンも合わせて追加。ON/OFFの情報は座席の向きと同様にhiddenフラグで受け渡されるため、更新ページや朝ミページに行って帰って来ても設定は元のままとなる。 -- 日向充 2009-04-29 (水) 15:31:32

□Bug#13 更新フォームも座席表の形にして欲しい。

日向充 (2009-04-22 (水) 16:34:11)

2009/4/21 K下様より

  • 4月21日にイメージは作成したが、色が様々に入り乱れて目がちかちかするため、導入するかどうか思案中。
    また、現在のフォームと座席表での更新はどちらも長所があり使い分けをするのがよいのではという意見も頂いたため、導入する場合はどちらの機能も残すのがよいと考えている。そうすると機能変更時など2重メンテが必要になるためこれまた考え物。 -- 日向充 2009-04-29 (水) 15:02:16

▲Bug#12 チームごとの識別も色で行いたい。

日向充 (2009-04-22 (水) 14:04:55)

2009/4/22 I藤様より

  • 090423版で暫定対処。
    島ごとに座席の枠の色を区別するように修正。
    本格対処では、各人にチームのカラムをもうけ、それを取得して枠の色を表示するようにする。 -- 日向充 2009-04-29 (水) 15:27:29

■Bug#11 課長席の空箱を表示しないようにして欲しい。

日向充 (2009-04-22 (水) 13:57:01)

2009/4/22 I藤様より

  • 20090422版にて対処。<table align="left">を使用することでテーブルを横に2つ並べて課長席と島席を表示していたため、空席においても座席を表示させる必要があった。border=0にするとその分ずれるため、やはりborder=1で空箱を表示する必要が会った。
    090422版にて対処。
    tableの中にtableを入れることにより、的確な位置に表示するようにした。 -- 日向充 2009-04-29 (水) 15:13:04
  • Bug#9と関連。 -- 日向充 2009-04-29 (水) 15:14:20

■Bug#10 逆向きをブックマークに保存したい。

日向充 (2009-04-22 (水) 13:54:26)

2009/4/22 S藤様より


■Bug#9 備考欄が2行のとき逆向きの座席表の表示がずれる。

日向充 (2009-04-21 (火) 10:34:31)

2009/4/20 S藤様より

  • 2009/4/20 brを2つ入れることで暫定対処実施。 -- 日向充 2009-04-29 (水) 15:08:19
  • 20090422版にて対処。<table align="left">を使用することでテーブルを横に2つ並べて課長席と島席を表示していたが、tableの中にtableを入れることにより、的確な位置に表示するようにした。 -- 日向充 2009-04-29 (水) 15:11:07
  • Bug#11と関連。 -- 日向充 2009-04-29 (水) 15:11:39

■Bug#8 FireFoxで表示するとHTMLのソースが表示されてしまう。

日向充 (2009-04-21 (火) 10:33:10)

2009/4/21 N村様より

  • 社内でのみ発生。環境問題か?? -- 日向充 2009-04-26 (日) 02:05:43
  • 原因不明(キャプチャまではとったのですが、詳しく比較とかはしていないかったです)が、Bug#20の修正によりなぜかなおりました。formのactionで飛ばした先がLocationでhtmlだと問題が起きないってことかしら。。以前はzaseki_hyouji.cgiで表示したHTMLがなぜかplain/txtになっていたので。。 -- 日向充 2009-05-12 (火) 14:14:26
  • 090622版からまた元に戻ってしまった。。(FireFoxだとHTMLソースが表示されるようになってしまった。) -- 日向充 2009-06-30 (火) 15:26:11
  • Content-typeの前にタブがあるとNGだったということがわかった。(やっと原因判明)。2009年6月30日対処。 -- 日向充 2009-06-30 (火) 15:26:53

□Bug#7 HTML::Template等を使用してプログラムとHTMLを分けたほうが良い。

日向充 (2009-04-19 (日) 14:47:27)

2009/4/17 yusuketsuiki様より
こちら


□Bug#6 社内システムと連動し、事前に投入している年休などは自動取得するようにして欲しい。

日向充 (2009-04-19 (日) 14:39:58)

2009/4/15 I藤様より

  • 2009年4月22日検討開始。(社内システムを表示したHTMLソースから情報を取得し、ツールのデータを更新するようにする。) -- 日向充 2009-04-29 (水) 15:22:42

■Bug#5 個人PCの電源ON/OFF監視もして座席の色を灰色に変えて欲しい。

日向充 (2009-04-19 (日) 14:38:42)

2009/4/16 N木様より

  • これは難しいのでは。。優先度下げさせてください。。 -- 日向充 2009-04-29 (水) 15:23:07
  • はっ!と夜中に思い付いて携帯から書き込み。pingの応答で判断なら行けるかもですね。全メンバーにpingしてその応答でデータを更新するモジュールを作って5分おきにタスクスケジューラに登録。 -- 日向充 2009-05-04 (月) 03:51:17
  • perl pingを飛ばしてホストの稼動を確認する。 http://www.site-cooler.com/tips/perl_netping.htm -- 日向充 2009-05-04 (月) 06:32:42
  • Net::Ping - ネットワークの疎通確認 http://www.ksknet.net/perl/netping.html -- 日向充 2009-05-04 (月) 06:35:04
  • ぬぅ。Linuxで実行するとICMPではroot権限が必要といわれ、TCP/UDPはポートが開けないといわれる。WindowsではNetライブラリ自体ないような雰囲気のエラーが出る。。バッチでpingした方がよいのかしら。。Windows使えねー。。 -- 日向充 2009-05-04 (月) 06:58:54
  • Net::Ping - ネットワークの疎通確認 http://itpro.nikkeibp.co.jp/article/COLUMN/20060628/241979/ -- 日向充 2009-05-04 (月) 06:59:36
  • Pingコマンドの戻り値 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18227&forum=11&6 -- 2009-05-04 (月) 07:03:16
  • おっと。Windows2000で試験したらだめだったけど、XPならいけるのか→http://it-is-it.net/CMD/%A5%B3%A5%DE%A5%F3%A5%C9%CA%CC/ping/ -- 2009-05-04 (月) 07:12:57
  • 2009年5月4日対処実施。
    090507版でリリース予定。
    1.url.txtにIPアドレス情報も追加。ファイル名をmemberinfo.txtに変更。
    2.memberinfo.txtを元にpingを各PCに送り結果をonoff.txtに吐き出すモジュールを作成。(list_koushin.bat、makebat.pl、onoffcheck.bat)
     これをタスクスケジューラに登録し5分置きなどで実行する予定。
    3.内線番号とON/OFFがカンマ区切りで保存されているonoff.txtを読み込みonoffのgif画像を内線番号の横に表示するようにzaseki_hyouji.cgiを変更。 -- 日向充 2009-05-04 (月) 20:27:15
  • gif画像作成に結構時間かかった。。→http://hinata.la.coocan.jp/tool/zaseki_data/img/pcon.GIFhttp://hinata.la.coocan.jp/tool/zaseki_data/img/pcoff.GIF -- 日向充 2009-05-04 (月) 20:28:05

■Bug#4 半日年休などにも対応して欲しい。

日向充 (2009-04-19 (日) 14:35:44)

2009/4/16 M松様より

現在その他欄に記入しているが、色を変えて欲しい。

  • その他欄に現在のように自由に入れられるテキストボックスと、プルダウンメニューで選べる半日年休などをどちらも入れられるようにしたい思います。
    できればその時間が過ぎたら灰色→緑等とか、緑等→灰色と変わるようにしたいと思います。
    メモメモ/2009-04-16 -- 日向充 2009-04-19 (日) 14:37:48
  • 2009年5月3日深夜というか4日早朝盛り込み完了。
    備考欄のキーワード午前/am/AM及び午後/pm/PMが含まれている場合さらにそのそれぞれに対して半/休及び2h/2H/2h/2H/2h/2H/2h/2H/2時間/2時間が含まれていたら現在の時刻と比較して灰色もしくはロケーションの色に自動で変化するようにした。
    090507版でリリース予定。 -- 日向充 2009-05-04 (月) 06:14:25
  • 備考欄も選択できるようにしたほうがよいですかね。書くのめんどくさいですかね。書き込みもできてプルダウンもあるのが↑の4月16日のメモなんですが。。 -- 日向充 2009-05-04 (月) 06:17:50
  • AM/am、PM/pmの全角を漏らしていたため、これにも反応するように修正。 -- 日向充 2009-05-07 (木) 04:24:14
  • 0.5、0.5にも反応するように修正。 -- 日向充 2009-05-07 (木) 13:40:14

■Bug#3 全チーム一括更新したい。

日向充 (2009-04-19 (日) 14:34:14)

2009/4/16 M松様より

  • 20日に対処版をリリースできるよう頑張ります。 -- 日向充 2009-04-19 (日) 14:34:42
  • 090419版で対処。
    「全チームを一括更新」ボタンを作成。 -- 日向充 2009-04-29 (水) 14:57:04
  • 全チーム一括更新を使用するとすべての採集更新日時が現在となってしまうため、090421版にてチェックしたチームをすべて更新する機能を追加。 -- 日向充 2009-04-29 (水) 14:58:47

■Bug#2 座席表を反転させた状態で更新した場合、反転させた座席表に戻るようにして欲しい。

日向充 (2009-04-19 (日) 14:32:47)

2009/4/15 S藤様より

  • 20日に対処版をリリースできるよう頑張ります。 -- 日向充 2009-04-19 (日) 14:33:23
  • 090419版で対処。
    逆向き表示用ページzaseki_gyaku.cgiを廃止し、zaseki_hyouji.cgiにどちら向きであるかのパラメータを渡すよう修正。パラメータはhiddenで更新ページ、朝ミページにも受け渡されるため、一度設定した向きはずっと保存されることになる。 -- 日向充 2009-04-29 (水) 14:55:51

■Bug#1 zaseki_data配下に不正な.txtがあるとデータが壊れる。

日向充 (2009-04-19 (日) 00:26:27)

2009年4月17日発生。
□[発生事象]
zaseki_data配下にzaseki1.txt等座席データ以外に不正なtxtデータがある状態で更新を実施すると座席データが壊れる。
□[原因]
zaseki_data配下にzaseki1.txt等の座席データのみが存在する想定で中身を作っていたため、formのname欄のlocate1_2354等の(チーム番号)_(内線番号)のチーム番号をファイル名から取得せずにカウンターをインクリメントすることで付与していたため、不正なファイル、例えばzaseki.txtが存在するとzaseki1.txtのname欄のチーム番号が2となってしまい、ずれてしまう。この状態で更新を行うと、更新formとtxtデータのくくりつけがずれているためデータが壊れる。
□[対処内容]
2009年4月17日対処。
formのname欄に与えるチーム名はカウンタの値ではなくファイル名から取得したチーム番号にする。これにより、zaseki1のnameは必ずlocate1_xxxx等になるため、不正なtxtデータが存在してもnameとtxtのくくりつけはできているため、データが壊れることはない。
また、zaseki([0-9])\.txtに合致しないtxtファイルの場合はフォームを出力する処理をせずにreturnするように修正。



  • 「チェックしたチームを」のボタンを各チームに。一つもチェックしないで押した場合の動作。 -- 日向充 2009-06-02 (火) 12:19:20
  • 更新日時が一日前は赤に -- 2009-06-02 (火) 12:20:45
  • ページの自動更新 -- 日向充 2009-07-27 (月) 18:20:35
  • 朝定期的にデフォルトに戻す機能 -- 日向充 2009-07-27 (月) 18:20:56
  • 画像を元サイズに合わせて縮小 -- 日向充 2009-08-11 (火) 10:18:52
  • チームごとの更新において、下のデフォルトメニューを削除 -- 日向充 2009-08-11 (火) 10:26:38
  • zasekixx.txtの2桁 -- 日向充 2009-08-14 (金) 14:53:21
  • bodyタグが2つあります。(H沼さんより) -- 日向充 2009-08-27 (木) 15:34:51


sub shima{
        my $filename=$_[0];
        my $count=0;
        my $k_count=100;
        my @line;
        my $teamcolor="";
        my $team_name="";

        $filename=~/zaseki([0-9])\.txt/;
        my $teamnum=$1;

        open(F,$filename);
        while(<F>){

                if($_=~/teamname=([\S\s]+),gaisen=([0-9\-\/\s]+),color=(\#[a-zA-Z0-9]+)/){
                        if($gyaku==0){
                                $team_name= &setteamname("$1","$2","$teamnum");
                                $teamcolor=$3;
                        }elsif($gyaku==1){
                                $team_name=$_;

                        }
                }
                if($_=~/^color=(\#[a-zA-Z0-9]+)/){
                        if($gyaku==0){
                                $teamcolor=$1;
                        }elsif($gyaku==1){
                                $line[$linecnt]=$_;
                                $linecnt++;
                        }
                }
                elsif($_=~/^([A-Z_]+)/){
                        if($gyaku==0){
                                $team_name=&make_sotowaku("$1","$team_name");
                        }elsif($gyaku==1){
                                $line[$linecnt]=$_;
                                $linecnt++;
                                if($_=~/^SHIMA_END/){
                                        $line[$linecnt]=$team_name;
                                        $linecnt++;
                                }
                        }
                }
                elsif($_=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),([0-9]*)/){
                        if($gyaku==0){
                                &zaseki_print("$1","$3","$4","$5","$6","$2","$teamcolor","1");
                        }elsif($gyaku==1){
                                $line[$linecnt]=$_;
                                $linecnt++;
                        }
                next;
                }
                elsif($_=~/([0-9]*),(\S*),(\S*),([\S\s]*),([0-9]*)/){
                        if($gyaku==0){
                                &zaseki_print("$1","$2","$3","$4","$5","","$teamcolor","0");
                        }elsif($gyaku==1){
                                $line[$linecnt]=$_;
                                $linecnt++;
                        }
                }
        }
        close(F);

        $team_name="<font size = \"$fontsize{name}\"> </font>";

        if($gyaku==1){
                my $team_name_tmp="";
                for ($index=$linecnt;$index>=0;$index--){
                        if($line[$index]=~/teamname=([\S\s]+),gaisen=([0-9\-\/\s]+),color=(\#[a-zA-Z0-9]+)/){
                                if($line[$index] ne $team_name_tmp){
                                        $team_name= &setteamname("$1","$2","$teamnum");
                                        $teamcolor=$3;
                                        $team_name_tmp=$line[$index];
                                }else{
                                        $team_name="<font size = \"$fontsize{name}\"> </font>";
                                }
                        }
                        if($line[$index]=~/^color=(\#[a-zA-Z0-9]+)/){
                                        $teamcolor=$1;
                        }
                        elsif($line[$index]=~/^([A-Z_]+)/){
                                $team_name=&make_sotowaku("$1","$team_name");
                        }
                        elsif($line[$index]=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),([0-9]*)/){
                                &zaseki_print("$1","$3","$4","$5","$6","$2","$teamcolor","1");
                                next;
                        }
                        elsif($line[$index]=~/([0-9]*),(\S*),(\S*),([\S\s]*),([0-9]*)/){
                                &zaseki_print("$1","$2","$3","$4","$5","","$teamcolor","0");
                        }
                }
        }
}
			<meta http-equiv=Refresh content=300>
sub print_marquee{
        require "zaseki_data/jcode.pl";

        my $marqueeline="";
        my @hidden=("=================================",
                        "------------------------------",
                        "※座席表:",);
        my $shukkinflg=0;
        my $today = sprintf("%04d.%02d.%02d", $year + 1900, $mon +1, $mday);
        my $filename="C:/Inetpub/ftproot/asami/asami\($today\).txt";
        if( -f $filename){
                open(ASAMI,"$filename");
                while(<ASAMI>){
                        jcode::convert(\$_, "euc");
                        my $hiddenflg=0;
                        foreach $hiddenline (@hidden){
                                if($_=~/$hiddenline/){$hiddenflg=1;}
                        }
                        if($_=~/◆出勤状況/){
                                $shukkinflg=1;
                                $marqueeline .= " ◆出勤状況 ↓座席表を見てください。";
                        }
                        if($_=~/◆部長・課長/){ $shukkinflg=0;}
                        if($hiddenflg==0 && $shukkinflg==0){
                                chomp($_);
                                $marqueeline .= " $_";
                        }
                }
                close(ASAMI);
                $marqueeline .= " ※まずはSSC/ISCチームでお試し表示しています。軌道に乗ったらASチームの朝ミ内容も表示したいと考えています。";
        }else{
                $marqueeline .= " ※本日未更新です。";
        }
        return <<EOL;
                <table><tr>
                        <td width="80" align="center"><b>朝ミより</b></td>
                        <td width="900"><marquee scrolldelay="100">$marqueeline</marquee></td>
                </tr></table>
        <hr>
EOL

}
	print ZASEKIHTML<<"EOL";
	<hr>
	$maraueeline
	$irosetsumei

>> >> >> > data_reset_2.pl

>> >> >> > の30行目

>> >> >> > print FW "\n$time $REMOTE_HOST $REMOTE_ADDR\n";

>> >> >> > を

>> >> >> > print FW "\n$time auto_reset\n";

# if($name=~/BU/ || $name=~/部長/ ){

# $bordercolor="";

# }


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-30 (日) 11:51:42 (2063d)