Download the PHP package lastdino/approval-flow without Composer
On this page you can find all versions of the php package lastdino/approval-flow. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download lastdino/approval-flow
More information about lastdino/approval-flow
Files in lastdino/approval-flow
Package approval-flow
Short Description This is my package approval-flow
License MIT
Homepage https://github.com/lastdino/approva-flow
Informations about the package approval-flow
Laravel Approval Flow
Laravel Approval Flowは、Laravelアプリケーションに承認フローと段階的な承認プロセスを追加するためのパッケージです。
特徴
- 段階的承認プロセス: 複数のステップからなる承認フローを設定可能
- Livewire統合: リアルタイムUIコンポーネントでの承認管理
- 通知システム: 承認リクエストと状態変更の自動通知
- 柔軟な設定: カスタマイズ可能な承認ルールとワークフロー
- モデル統合: Eloquentモデルとの簡単な統合
インストール
Composerを使ってインストールしてください:
下記のコマンドで必要なマイグレーションファイルの出力とマイグレーションを実行します:
Configファイルは下記のコマンドで出力可能です:
出力されたConfigファイルの中身は次のような感じです:
オプションとして次のコマンドを実行するとViewファイルも出力可能です:
言語ファイルを出力する場合は以下のコマンドを実行してください:
CSSアセットファイルを出力する場合は以下のコマンドを実行してください:
基本的な使用方法
1. Livewireレイアウトの設定
使用しているLivewireレイアウトファイルの<body>
タグの上部に以下のスタックディレクティブを追加してください:
2. モデルの設定
承認フローを使用したいモデルに必要なトレイトを追加します:
3. 承認フロータスクの登録
registerApprovalFlowTask
メソッドを使用して承認フロータスクを登録します:
registerApprovalFlowTask
メソッドは、以下のパラメータを受け取ります:
flowId
: 使用する承認フローのIDauthorId
: 申請者のユーザーIDcomment
: 申請時のコメント(オプション)systemRoles
: 承認者のロールid配列(オプション)
承認フロータスクが作成されると、設定されたフローデータに基づいて自動的に処理が開始されます。
申請のキャンセル
申請者は、承認プロセスが完了する前に申請をキャンセルすることができます。キャンセルは、cancelApprovalFlowTask
メソッドを使用して行います:
注意事項:
- キャンセルは、タスクが完了(承認または拒否)される前にのみ実行できます
- デフォルトでは、申請者本人のみがキャンセル可能です(ただし、管理者権限を持つユーザーにも許可するように設定可能)
- キャンセルされたタスクは、履歴として保存されます
4. 承認時と拒否時の振る舞いのカスタマイズ
デフォルトでは、モデルが承認されたとき・拒否されたときにstatus
フィールドが更新されますが、これらの振る舞いはモデル側でオーバーライドできます:
5. ルート設定
パッケージは自動的に /flow
プレフィックスでルートを登録します。設定ファイルでカスタマイズ可能です。
デフォルトで使用可能な主要なルート:
/flow/task_list
- 承認タスク一覧の表示/flow/flow_list
- 承認フロー一覧の表示/flow/edit/{id}
- 承認フローの編集/flow/detail/{id}
- タスクの詳細表示
設定
必要な依存関係
このパッケージは以下のパッケージと連携します:
- jerosoler/Drawflow: フロー図作成ライブラリ(フローエディタに使用)
- Laravel: フレームワーク基盤 (
illuminate/support
) - Laravel Livewire: リアルタイムUI (
livewire/livewire
) - Flux: UIコンポーネントライブラリ (
livewire/flux
) - ロール管理システム:
Spatie Laravel Permission
または独自のロール管理システム
ユーザーモデルの設定
設定ファイルでユーザーモデルとロールモデルを指定してください。roles_model
にはSpatie Laravel Permission
のRoleモデルでも、独自のロールモデルでも指定可能です:
独自のロールモデルを使用する場合、そのモデルには少なくともid
とname
プロパティが必要です。
表示名の設定
ユーザーの表示名に使用するカラムを設定できます:
フロントエンド要件
フローエディタはjerosoler/Drawflow
を使用します。ビューファイルをpublishすると、自動的に必要なCDNリンクが含まれます:
また、アセットファイルを公開するとCSSも追加されます:
アセットの変更を反映するには、必ず以下のコマンドを実行してアセットをビルドしてください:
または開発中は以下のコマンドを使用できます:
これにより、フロー編集画面で必要なCSSとJavaScriptが正しく読み込まれます。
貢献
バグ報告や機能リクエストは、GitHubのIssuesでお願いします。
プルリクエストも歓迎します:
- フォークしてください
- フィーチャーブランチを作成してください (
git checkout -b feature/amazing-feature
) - 変更をコミットしてください (
git commit -m 'Add amazing feature'
) - ブランチにプッシュしてください (
git push origin feature/amazing-feature
) - プルリクエストを開いてください
ライセンス
このパッケージはMIT Licenseの下で公開されています。
サポート
質問やサポートが必要な場合は、以下の方法でお問い合わせください:
- GitHub Issues
- Email: [email protected]
変更履歴
詳細な変更履歴はCHANGELOG.mdをご確認ください。
All versions of approval-flow with dependencies
illuminate/support Version ^12.0
livewire/livewire Version ^3.0
livewire/flux Version ^2.0