davin-bao/workflow

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

this is a workflow package for laravel5

dev-master 2016-08-19 06:25 UTC

This package is auto-updated.

Last update: 2021-11-21 14:03:51 UTC


README

thanks tao2581, If you need use to laravel 4, please add

"davin-bao/workflow": "v1.0"

Workflow package provides a simple way to add audit flow to Laravel5.

Quick start

Required setup

In the require key of composer.json file add the following

"davin-bao/workflow": "dev-master"

Run the Composer update comand

$ composer update

In your config/app.php add 'DavinBao\Workflow\WorkflowServiceProvider' to the end of the $providers array

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'DavinBao\Workflow\WorkflowServiceProvider',

),

At the end of config/app.php add 'Workflow' => 'DavinBao\Workflow\WorkflowFacade' to the $aliases array

'aliases' => array(

    'App'        => 'Illuminate\Support\Facades\App',
    'Artisan'    => 'Illuminate\Support\Facades\Artisan',
    ...
    'Workflow'       => 'DavinBao\Workflow\WorkflowFacade',

),

Configuration

Create Table

Now generate the Workflow migration

$ php artisan workflow:migration

It will generate the <timestamp>_workflow_setup_tables.php migration. You may now run it with the artisan migrate command: Open: <timestamp>_workflow_setup_tables.php change " {{ '<?php' }} " to " <?php " $ php artisan migrate

After the migration, workflow tables will be present.

Create Controllers

$ php artisan workflow:controllers

Create Routes

$ php artisan workflow:routes

Link the Model

    class Entry extends Eloquent {
      use \DavinBao\Workflow\HasFlowForResource;
    }

Add two function for audit log,Audit Flow will record this resource's title and content

		public function getLogTitle()
		{
			return $this->entry_title;
		}
		
		public function getLogContent()
		{
			return $this->entry_content;
		}

Link the Controller

		class AdminEntryController extends AdminController {
				use \DavinBao\Workflow\HasFlowForResourceController;
		}

Add roles for this controller

		Route::get('entrys/{entry}/binding', 'AdminEntrysController@getBindingFlow');
		Route::post('entrys/{entry}/binding', 'AdminEntrysController@postBindingFlow');
		Route::get('entrys/{entry}/audit', 'AdminEntrysController@getAudit');
		Route::post('entrys/{entry}/audit', 'AdminEntrysController@postAudit');

Modify config

Set the propertly values to the config/auth.php and davin-bao/workflow/src/config/config.php .

Functions

Get is binding audit flow

    if(isset($entry->isBinding)) {///is binding, do something }

Get resource audit status

    $entry->status()

Show flow Graph, show this resource audit flow status

@if(isset($entry->isBinding))
{{ Workflow::makeFlowGraph($entry->flow(), $entry->orderID()) }}
@endif

Show audit flow all details

 @if(isset($entry->isBinding))
{{ Workflow::makeAuditDetail($entry) }}
@endif

Need I audit, show audit button

    if(isset($entry->isBinding) && $entry->isMeAudit()) { /// show audit button }