baserproject/bc-favorite

BcFavorite plugin for baserCMS

Installs: 9 546

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:cakephp-plugin

5.1.3 2024-10-24 06:40 UTC

README

Installation

You can install this plugin into your baserCMS application using composer.

The recommended way to install composer packages is:

composer require baserproject/bc-favorite
============== Next 江頭 =================
6/23 江頭コミットあり
  • API を作成する
    • コントローラー実装
    • コントローラーのテスト
  • Admin/Controller を移行する→廃止
  • View を移行
    • Vue.js と APIで作成する
    • メニューの上にイベントディスパッチャーを作る
    • BcFavoriteから上記イベントを横取りしてお気に入り一覧を表示
      • 開閉ボタンの実装
        • 開閉状態の保存処理を実装する
      • お気に入りのテンプレートを vue.js 化して読み込む
        • favorite_menu-navの中外をvue化する
      • APIでJSONを取得して vue.js でレンダリング
    • 追加
      • リアルタイムバリデーション
        • フォーム切り出し(切り分けた状態での保存は完了その他動作未確認)
        • validationの設定
          • FavoriteFormのref取得
          • form.vueでのバリデーション結果受け渡し
          • 初期値をフォームに入力した状態にする
        • タイトルを入力するとURLが消える
        • タイトルを空にしたときにバリデーションメッセージを表示する
      • ダイアログ関連をVueに移植する
        • jQueryのコードをVueに移植
        • 初期値設定
        • バリデーション
          • invalid時は保存ボタンをdisable化
        • 保存
          • 保存後、ダイアログを閉じる
          • お気に入り一覧の再表示
      • サーバーバリデーション
        • favoriteTableのvalidationDefaultにtitleを追加する
        • フロントにエラーを表示する
    • 編集
      • 方針:favorite.js はできるだけ vue.js 内に移植する
      • 右クリックメニューを表示
      • 右クリックハンドラをvueの中へ移植
      • 既存データをフォームに表示
    • 削除
    • 並び替え
      • AppTable::changeSort 実装
      • AppTable::changeSort テスト
      • plugins/bc-favorite/webroot/js/src/admin/favorite.js
        • initFavoriteList() の精査
        • favoriteSortUpdateHandler() の精査
      • plugins/bc-favorite/src/Controller/Api/FavoritesController.php
        • update_sort() 実装
          • ユニットテスト実装
            • Fixtureが読みこまれない問題でストップ
    • デザインを他のダイアログに合わせる
  • BcEventDispatcher::dispatch() の class の指定の仕様検討
    • dispatchメソッドの呼び出し側で class を指定しないように設定可能だった
  • リアルタイムバリデーションのラベルデザイン調整

baserCMS4のイベント仕様

  • プラグインのEventフォルダをチェック
  • EventListener があれば読み込む
  • $events プロパティをチェック
  • イベント登録