プロジェクト

全般

プロフィール

Backport(バックポート) #2263

プレビューモードの絵文字パレットの右上にスペースがある

Shinichi Urabe12年以上前に追加. 12年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2011-04-09
期日:
進捗率:

100%


説明

現象

プレビューモード時の絵文字パレットの右上(「テニスの絵文字」の右)にスペースがある(添付画像参照)。テキストモード時には絵文字パレットはインラインで表示されるためこの問題はない。

原因

  • web/js/tiny_mce/plugins/openpne/editor_plugin.js.src
    web/js/tiny_mce/plugins/openpne/editor_plugin.js.src
    55-            for (var num in s.emoji) {
    56-                var emoji = s.emoji[num];
    57-                for (var i = emoji.start; i <= emoji.end; i++) {
    58:                    if (i == emoji.start || i % 25 == 0) {
    59-                        tr = DOM.add(tb, 'tr');
    60-                    }
    

この 58 行目では (i == emoji.start || i % 25 == 0) としているが、(i <= emoji.end と等号を含んでいることからも分かるように) i は [0,len) ではなく [1,len] の値を取ることが想定されている。

58 行目が (i == emoji.start || i % 25 == 0) である場合、

  • i=1 のとき、 emoji.start なので新たな行を開始( [1, 24] がこの行に含まれる)
  • i=25 のとき、 i%25 == 0 なので新たな行を開始( [25, 49] がこの行に含まれる)
  • i=50 のとき、 i%25 == 0 なので新たな行を開始( [50, 74] がこの行に含まれる)
  • i=(25*n) のとき、...

[1, 24] では 1 から 24 までの 24 個しか含まれない。このせいで 1 行目には 25 個目の絵文字が表示されていない。

修正内容

web/js/tiny_mce/plugins/openpne/editor_plugin.js.src 58行目の if 文

if (i == emoji.start || i % 25 == 0) {

を次のように書き換える。

if ((i - 1) % 25 == 0) {

i が emoji.start と一致しているかを評価する必要はない。

  • 追記
    • for 文では i = emoji.start とループ変数を初期化しており、 i が 1 から始まることは必要条件としていない。
      for (var i = emoji.start; i <= emoji.end; i++) {
          if ((i - 1) % 25 == 0) {
              tr = DOM.add(tb, 'tr');
          }
      
    • このため、 if 文では (i - 1) ではなく (i - emoji.start) と書き換えることにする。

また、これはJSファイルであり、 js.src を修正すると同時に js ファイルを更新する必要がある。

補足

js.src から js ファイル(minimize js)を作成するのに JSMIN を用いているらしい。 jsmin.c をコンパイルし、実行時にリダイレクトでファイルを渡せば minimize js が出力できる。

$ ./jsmin.out < editor_plugin.js.src > editor_plugin.js

emoji_palette.png 表示 (35.2 KB) Minoru Takai, 2011-07-06 22:26


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #2000: プレビューモードの絵文字パレットの右上にスペースがある Fixed(完了) 2011-04-09

関係しているリビジョン

リビジョン ab1efcf5 (差分)
Minoru Takai12年以上前に追加

(fixed #2263, BP from #2000) fixed cell of emoji palette to display 25 items per line

リビジョン d246eb3c (差分)
Minoru Takai12年以上前に追加

(fixed #2263, BP from #2000) rewrote a conditional expression not to depend on emoji start-id

履歴

#1 Minoru Takai12年以上前に更新

  • 対象バージョンOpenPNE 3.7.0 から OpenPNE3.6beta13 に変更

#2 Minoru Takai12年以上前に更新

#3 Minoru Takai12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 ab1efcf558f708dc984fc49ca0468c7b7579e000 で適用されました。

#4 Naoya Tozuka12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

親チケット (#2000) note-5 と同様の理由により差し戻します。
http://redmine.openpne.jp/issues/2000#note-5

#5 Minoru Takai12年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更

#6 Minoru Takai12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更

更新履歴 d246eb3c0ac677bfcd36241baa470bd67b47221c で適用されました。

#7 Naoya Tozuka12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

レビューOKです。

#8 Maki Takahashi12年以上前に更新

  • 対象バージョンOpenPNE3.6beta13 から OpenPNE 3.6RC1 に変更

#9 Yuma Sakata12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

他の形式にエクスポート: Atom PDF