Ticket #4343 (closed defect: fixed)

Opened 8 years ago

Last modified 8 years ago

日記・アルバムの編集確認で「修正」を選択した場合、遷移先の編集フォームに編集内容が保持されていない

Reported by: pnetan Assigned to: kiwa
Priority: minor Milestone: OpenPNE2.14.2
Component: 指定しない Version: 2.14.x
Keywords: Cc:

Description (Last modified by kiwa)

■現象

日記編集確認画面(pc_page_h_diary_edit_confirm)・アルバム編集確認画面(pc_page_h_album_cover_edit_confirm)にて、「修正」ボタンを押して編集フォームに戻ると、フォームの内容が編集前の状態に戻っている。

携帯版日記編集画面(ktai_page_h_diary_edit)でも必須項目が空欄だった場合などで「コメント許可設定」に限りこの現象が発生

■原因

#3784: フォームの内容に不備がありリダイレクトされた場合、フォームに編集内容が保持されない場所がある

上のバグ修正時に確認画面からの遷移だった場合の判定を消していた。

■修正内容

フォーム内容をリクエスト値に入れる条件を以下の2点に変更。フォーム内容に不備が合った場合・修正からの遷移の場合共に編集後の値を表示するようにした。

  • エラーメッセージが存在する場合
  • リクエスト値にタイトル・本文(説明文) の両方が存在する場合

■関連情報

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=22114より転記

質問トピとどっちに書くべきかなーと思いつつ…

日記を書いて投稿して→修正の時、
記事編集してから確認画面に行って、
そこで投稿しないでもう1回書き直そうとすると、
さきほどの編集内容がリセットされてしまうのですが…
これってバグなんでしょうか??

ver2.13.5の時はちゃんと動いていたように思うのですが、
少なくともver2.13.8以降は上記挙動になってしまっています…
(この公式SNSって結局バージョンいくつのものなんでしょう…このSNSではちゃんと編集内容リセットされずに残るんですが)

web_app\modules\pc\page\h_diary_edit.php見たら、
2.13.5ではsubjectかbodyが入っていれば再セットになってるのですが、
2.13.8ではmsgが入っていなければ再セットされないように処理変更されているようで…え、これ一体なんのためにこんな仕様に…;;;;
confirm画面からボタンで戻った場合はmsgセットされないので、
結局DB呼び出し時の記事情報でリセットされてしまっているようです。

最新日記一面に表示されないよう最初は非公開でダミー記事上げて、後日記事編集して投稿・なんて利用方法の方もいらっしゃるので、 2.13.5→2.14.0へのバージョンアップ後、「めっちゃ頑張って書いてた記事消えたーーー!!><」な嘆きの記事をちらほら見かけるのは何でかと思っていたら…まさかこんな落とし穴が…orz


> // 内容の不備によるリダイレクト時は値を上書き
> if ($requests['msg']) {
> $c_diary['subject'] = $subject;
> $c_diary['body'] = $body;
> $c_diary['public_flag'] = util_cast_public_flag_diary($public_flag);
> }

とあるんですが、
多分やりたい事は、「編集初回(と言うのか?)DBデータを優先したい」だと思うので、画面表示しない&DBに保存しない記事編集フラグ見たいなのを持って、それでDBのデータとフォームの送信値どっちをセットするか判定するしか無いんじゃないの?と思うんですが…
(とりあえずメッセージは表示用データだからダメっしょ…)


まぁ自SNSは自分の思うまま変更加えるので良いんですが、
DLしてそのまま使ってる他の方は大丈夫かなぁと。
結構利用者的にストレス溜まる部分だと思うのでー;


---

今過去のチケット?を見てたんですが、
なんかこの辺りの挙動で四苦八苦されてる様が…(苦笑)
不備投稿時の編集内容保持を確保して、
正常戻り時の編集内容保持が壊れてちゃ意味無い気がするですよー

---

そう言えば先日のあしあとが保存されなくなる件は、何故かあしあとテーブルのオートインクリメントがうまくいかなくなっていたようで、一旦別数値にしてから再設定してやったら直りました… スクリプトいじったせいかと必死に追ってたのにorz まぁなんにせよ解決して良かったv 

■関連チケット

  • #4313 日記編集画面にコメント許可設定が反映されない

Change History

10/15/09 18:30:36 changed by kiwa

  • keywords deleted.
  • milestone set to OpenPNE2.14.2.

現象確認しました。対応しましょう。

10/15/09 18:31:18 changed by kiwa

  • owner changed from nobody to kiwa.
  • status changed from new to assigned.

やります。

10/15/09 18:45:37 changed by imamura623

  • description changed.

(follow-up: ↓ 7 ) 10/15/09 21:45:48 changed by kiwa

  • keywords set to 確認中.
  • description changed.
  • summary changed from 日記編集時に修正途中の記事がリセットされる to 日記・アルバムの編集確認で「修正」を選択した場合、遷移先の編集フォームに編集内容が保持されていない.

r13004 にて修正しました。

  • #3784 の修正内容に携帯版も含まれますが、携帯版に確認画面はないという前提で確認していません。あった場合は差し戻しをお願いします。
  • #3784 の修正内容にPC版下書きメッセージ送信時も含まれますが、軽く動作を確認したところこのアクションについては問題なかったので今回の修正には含まれていません
  • PC版下書きメッセージ編集時、フォーム内容に不備があった場合、送信先がID1になり、件名・本文が返信扱いになる現象が2.14のみ発生していますが、今回の現象とは別なのでこのチケットでは対応していません
  • 日記・アルバム共に、編集確認時に何らかのかたちで件名・本文が空欄になりリダイレクトされた場合、フォームの値が保持されずエラーメッセージも表示されませんが、この件は2.12も同様の現象が発生しているので今回のコミットでは対応していません。このチケットでまとめて対応する場合は差し戻してください

10/16/09 11:22:11 changed by imamura623

  • keywords changed from 確認中 to 差し戻し.

trunkにもコミットをお願いします

10/16/09 12:28:32 changed by kiwa

  • keywords changed from 差し戻し to 確認中.

r13009 にてtrunkにマージしました。

(in reply to: ↑ 4 ) 10/16/09 13:13:34 changed by kiwa

Replying to kiwa:

* PC版下書きメッセージ編集時、フォーム内容に不備があった場合、送信先がID1になり、件名・本文が返信扱いになる現象が2.14のみ発生していますが、今回の現象とは別なのでこのチケットでは対応していません

チケット作成しました。

  • #4345: メッセージ下書き編集時にエラーでリダイレクトされた場合、編集内容が正しく保持されていない

(follow-up: ↓ 9 ) 10/16/09 14:48:00 changed by imamura623

  • keywords changed from 確認中 to 差し戻し.

動作テストしました。

  • ktaiの日記編集画面でエラーでリダイレクトされる際に、日記コメント許可の値が保持されません

修正をお願いいたします。

(in reply to: ↑ 8 ) 10/16/09 16:02:25 changed by kiwa

  • keywords changed from 差し戻し to 確認中.

Replying to imamura623:

動作テストしました。 * ktaiの日記編集画面でエラーでリダイレクトされる際に、日記コメント許可の値が保持されません 修正をお願いいたします。

以下のリビジョンで修正しました。ご確認ください。validateのdefault値を削除するというやり方をとりましたが、これで問題ないでしょうか?

10/16/09 16:33:10 changed by imamura623

動作テストしました。問題ありません。

(follow-up: ↓ 12 ) 10/16/09 20:34:49 changed by shingo

  • keywords changed from 確認中 to 差し戻し.
  • 2.12系では以下のようにチェックしてます。よろしいのでしょうか?
    webapp/modules/pc/page/h_album_cover_edit.php
    
     35         if (!(is_null($subject) || is_null($description)||is_null($public_flag))) {
    
  • 「Keywords」にtrunkのバージョンが記述されていません。

(in reply to: ↑ 11 ) 10/16/09 21:09:26 changed by kiwa

  • keywords changed from 差し戻し to 確認中.

Replying to shingo:

* 2.12系では以下のようにチェックしてます。よろしいのでしょうか? {{{ webapp/modules/pc/page/h_album_cover_edit.php

35 if (!(is_null($subject) is_null($description)is_null($public_flag))) { }}}

以下のリビジョンで2.12の判定に合わせました。

* 「Keywords」にtrunkのバージョンが記述されていません。

trunkからの次回のリリースは未定なので、このチケットのKeywordsに含める必要はありません。

(follow-up: ↓ 15 ) 10/16/09 21:16:35 changed by shingo

  • 2.12系の方のソースの問題でもあるのですが最後の「||」の前後に空白が有りません。修正願います。
    if ($requests['msg'] || !(is_null($subject) || is_null($description)||is_null($public_flag))) { 
    

10/16/09 21:16:44 changed by shingo

  • keywords changed from 確認中 to 差し戻し.

(in reply to: ↑ 13 ) 10/16/09 21:40:29 changed by kiwa

  • keywords changed from 差し戻し to 確認中.

Replying to shingo:

* 2.12系の方のソースの問題でもあるのですが最後の「||」の前後に空白が有りません。修正願います。 {{{

if ($requestsmsg? !(is_null($subject) is_null($description)is_null($public_flag))) { }}}

2.14, trunk のみ修正しました。

  • 2.14.x - r13019
  • trunk - r 13020

10/16/09 21:43:01 changed by shingo

  • keywords deleted.
  • status changed from assigned to closed.
  • resolution set to fixed.

確認しました。
閉じます。