プロジェクト

全般

プロフィール

Bug(バグ) #3532

opLikePluginとopUploadFilePluginを同時使用すると,ファイルアップロード用ダイアログが表示されなくなる。

誠二 天重ほぼ4年前に追加. 7ヶ月前に更新.

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

100%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)

説明

現象

opLikePluginとopUploadFilePluginを同時使用すると,ファイルアップロード用ダイアログが表示されなくなる。

原因

bootstrap参考URL
http://getbootstrap.com/javascript/#modals

原因としては,opUploadFilePlugin と opLikePlugin のどちらもが bootstrap-modal.js を呼び出しており,かつ,どちらもが bootstrap-modal.js に用意されているAPIを利用しているため,二重にイベントが登録されている模様。

具体的には,opUploadFilePlugin の apps/pc_frontend/modules/f/templates/_fMenu.php の35行目

    <li><a href="#file-uploadmodal" data-toggle="modal">アップロード</a></li>

上記の data-toggle=modal が bootstrap-modal.js の以下の箇所で,クリックイベントとして登録される。
  $(function () {
    $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
      var $this = $(this)
        , href = $this.attr('href')
        , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
        , option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())

      e.preventDefault()

      $target
        .modal(option)
        .one('hide', function () {
          $this.focus()
        })
    })
  })

opLikePluginを入れている場合,(おそらく)opUploadFilePluginで一度イベント登録されたあと,opLikePluginの読み込みのタイミングで再度イベント登録され(どちらが先に読まれているかは不明),一つのクリックイベントに対して二度toggle処理される結果として表示されない,という筋になっていそう。

修正方針

opUploadFilePlugin, opLikePluginともに,bootstrap-modal.js に用意されたapi(data-toggle="modal")を利用せず,自前でイベント登録する,という方針。

修正箇所

data/patches/opCommunityTopicPlugin.patch
15:+<a class="like-list" href="#likeModal" data-toggle="modal"></a>
61:+<a class="like-list" href="#likeModal" data-toggle="modal"></a>

data/patches/opDiaryPlugin.patch
15:+<a class="like-list" href="#likeModal" data-toggle="modal"></a>
61:+<a class="like-list" href="#likeModal" data-toggle="modal"></a>

data/patches/opTimelinePlugin.patch
171:+             <a class="like-list" href="#likeModal" data-toggle="modal"></a>
189:+            <a class="like-list" href="#likeModal" data-toggle="modal"></a>

関連するチケット

関連している opUploadFilePlugin - Bug(バグ) #3531: opLikePluginと同時使用するとアップロードダイアログが表示されない Pending Review(レビュー待ち) 2013-12-24

履歴

#1 誠二 天重ほぼ4年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

#2 誠二 天重ほぼ4年前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更
  • 3.8 で発生するかUnknown (未調査) から Yes (はい) に変更

#3 kaoru nishizoe8ヶ月前に更新

merged commit 65817c7 into tejimaya:master on 23 Jul 2014

#4 Shinichi Urabe7ヶ月前に更新

  • ステータスPending Review(レビュー待ち) から Fixed(完了) に変更
  • 対象バージョンv1.2.2 alpha にセット
  • 進捗率50 から 100 に変更

マージ済みですので閉じておきます

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