├── .env.example
├── .gitattributes
├── .gitignore
├── README.md
├── app
├── Console
│ └── Kernel.php
├── Dept.php
├── Emp.php
├── Entry.php
├── EntryData.php
├── Exceptions
│ └── Handler.php
├── Flow.php
├── FlowType.php
├── Flowlink.php
├── Http
│ ├── Controllers
│ │ ├── Auth
│ │ │ ├── ForgotPasswordController.php
│ │ │ ├── LoginController.php
│ │ │ ├── RegisterController.php
│ │ │ └── ResetPasswordController.php
│ │ ├── Controller.php
│ │ ├── DeptController.php
│ │ ├── EmpController.php
│ │ ├── EntryController.php
│ │ ├── FlowController.php
│ │ ├── FlowlinkController.php
│ │ ├── HomeController.php
│ │ ├── ProcController.php
│ │ ├── ProcessController.php
│ │ ├── TemplateController.php
│ │ └── TemplateFormController.php
│ ├── Kernel.php
│ └── Middleware
│ │ ├── EncryptCookies.php
│ │ ├── RedirectIfAuthenticated.php
│ │ ├── TrimStrings.php
│ │ └── VerifyCsrfToken.php
├── Notifications
│ └── Flowfy.php
├── Proc.php
├── Process.php
├── ProcessVar.php
├── Providers
│ ├── AppServiceProvider.php
│ ├── AuthServiceProvider.php
│ ├── BroadcastServiceProvider.php
│ ├── EventServiceProvider.php
│ ├── RouteServiceProvider.php
│ └── WorkflowServiceProvider.php
├── Service
│ └── Workflow
│ │ ├── Facades
│ │ └── Workflow.php
│ │ ├── Traits
│ │ └── WorkflowTrait.php
│ │ ├── Workflow.php
│ │ └── WorkflowInterface.php
├── Template.php
├── TemplateForm.php
└── helpers.php
├── artisan
├── bootstrap
├── app.php
├── autoload.php
└── cache
│ └── .gitignore
├── composer.json
├── composer.lock
├── config
├── app.php
├── auth.php
├── broadcasting.php
├── cache.php
├── database.php
├── debugbar.php
├── filesystems.php
├── mail.php
├── queue.php
├── services.php
├── session.php
└── view.php
├── database
├── .gitignore
├── factories
│ └── ModelFactory.php
├── migrations
│ ├── 2014_10_12_000000_create_users_table.php
│ └── 2014_10_12_100000_create_password_resets_table.php
├── seeds
│ └── DatabaseSeeder.php
└── sql
│ ├── workflow.sql
│ └── workflow_data.sql
├── package.json
├── phpunit.xml
├── public
├── .htaccess
├── css
│ └── app.css
├── favicon.ico
├── index.php
├── js
│ └── app.js
├── robots.txt
└── vendor
│ ├── flowchart
│ ├── .eslintignore
│ ├── .eslintrc
│ ├── .gitignore
│ ├── .gitmodules
│ ├── README.md
│ ├── bower.json
│ ├── devserver.js
│ ├── example
│ │ ├── index.html
│ │ ├── loadFile.html
│ │ └── test.txt
│ ├── index.html
│ ├── index.js
│ ├── license
│ ├── package.json
│ ├── release
│ │ ├── flowchart.js
│ │ ├── flowchart.js.map
│ │ ├── flowchart.min.js
│ │ └── flowchart.min.js.map
│ ├── releasenotes.md
│ ├── src
│ │ ├── flowchart.chart.js
│ │ ├── flowchart.defaults.js
│ │ ├── flowchart.functions.js
│ │ ├── flowchart.helpers.js
│ │ ├── flowchart.parse.js
│ │ ├── flowchart.shim.js
│ │ ├── flowchart.symbol.condition.js
│ │ ├── flowchart.symbol.end.js
│ │ ├── flowchart.symbol.inputoutput.js
│ │ ├── flowchart.symbol.js
│ │ ├── flowchart.symbol.operation.js
│ │ ├── flowchart.symbol.start.js
│ │ ├── flowchart.symbol.subroutine.js
│ │ ├── jquery-plugin.js
│ │ ├── raphael-min.js
│ │ ├── svginnerhtml.min.js
│ │ └── underscore-min.js
│ └── webpack.config.js
│ ├── flowdesign
│ ├── .gitattributes
│ ├── .gitignore
│ ├── Public
│ │ ├── css
│ │ │ ├── bootstrap
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-ie6.css
│ │ │ │ │ ├── bootstrap-ie6.min.css
│ │ │ │ │ ├── bootstrap-responsive.css
│ │ │ │ │ ├── bootstrap-responsive.min.css
│ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ ├── bootstrap.min.css
│ │ │ │ │ └── ie.css
│ │ │ │ ├── img
│ │ │ │ │ ├── glyphicons-halflings-white.png
│ │ │ │ │ └── glyphicons-halflings.png
│ │ │ │ └── js
│ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ └── bootstrap.min.js
│ │ │ ├── doc.css
│ │ │ └── site.css
│ │ ├── images
│ │ │ └── grid.png
│ │ └── js
│ │ │ ├── flowdesign
│ │ │ ├── flowdesign.css
│ │ │ └── leipi.flowdesign.v2.js
│ │ │ ├── jquery-1.7.2.min.js
│ │ │ ├── jquery-ui
│ │ │ └── jquery-ui-1.9.2-min.js
│ │ │ ├── jquery.contextmenu.r2.js
│ │ │ ├── jquery.multiselect2side
│ │ │ ├── css
│ │ │ │ ├── jquery.multiselect2side - 副本.css
│ │ │ │ └── jquery.multiselect2side.css
│ │ │ ├── img
│ │ │ │ ├── close.gif
│ │ │ │ ├── loading.gif
│ │ │ │ └── search.gif
│ │ │ ├── jmultiselect2side.html
│ │ │ ├── jmultiselect2side.php
│ │ │ └── js
│ │ │ │ ├── jquery.js
│ │ │ │ └── jquery.multiselect2side.js
│ │ │ ├── jquery.pin.min.js
│ │ │ └── jsPlumb
│ │ │ ├── jquery.jsPlumb-1.3.16-all-min.js
│ │ │ └── 各版本下载.txt
│ ├── README.md
│ └── favicon.ico
│ ├── layer
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── build
│ │ ├── layer.js
│ │ ├── mobile
│ │ │ ├── layer.js
│ │ │ └── need
│ │ │ │ └── layer.css
│ │ └── skin
│ │ │ ├── default
│ │ │ ├── icon-ext.png
│ │ │ ├── icon.png
│ │ │ ├── layer.css
│ │ │ ├── loading-0.gif
│ │ │ ├── loading-1.gif
│ │ │ └── loading-2.gif
│ │ │ └── moon
│ │ │ ├── default.png
│ │ │ └── style.css
│ ├── gulpfile.js
│ ├── package.json
│ ├── src
│ │ ├── README.md
│ │ ├── layer.js
│ │ ├── mobile
│ │ │ ├── README.md
│ │ │ ├── layer.js
│ │ │ └── need
│ │ │ │ └── layer.css
│ │ └── skin
│ │ │ └── default
│ │ │ ├── icon-ext.png
│ │ │ ├── icon.png
│ │ │ ├── layer.css
│ │ │ ├── loading-0.gif
│ │ │ ├── loading-1.gif
│ │ │ └── loading-2.gif
│ └── test
│ │ └── demo.html
│ └── toastr
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .jscsrc
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── README.md
│ ├── build
│ ├── toastr.css
│ ├── toastr.js.map
│ ├── toastr.min.css
│ └── toastr.min.js
│ ├── demo.html
│ ├── gulpfile.js
│ ├── karma.conf.js
│ ├── nuget
│ ├── content
│ │ ├── content
│ │ │ ├── toastr.css
│ │ │ ├── toastr.less
│ │ │ ├── toastr.min.css
│ │ │ └── toastr.scss
│ │ └── scripts
│ │ │ ├── toastr.js
│ │ │ ├── toastr.min.js
│ │ │ └── toastr.min.js.map
│ ├── toastr.1.0.0.nupkg
│ ├── toastr.1.0.0.nuspec
│ ├── toastr.1.0.1.nupkg
│ ├── toastr.1.0.1.nuspec
│ ├── toastr.1.0.2.nupkg
│ ├── toastr.1.0.2.nuspec
│ ├── toastr.1.0.3.nupkg
│ ├── toastr.1.0.3.nuspec
│ ├── toastr.1.1.0.nupkg
│ ├── toastr.1.1.0.nuspec
│ ├── toastr.1.1.1.nupkg
│ ├── toastr.1.1.1.nuspec
│ ├── toastr.1.1.2.nupkg
│ ├── toastr.1.1.2.nuspec
│ ├── toastr.1.1.3.nupkg
│ ├── toastr.1.1.4.1.nupkg
│ ├── toastr.1.1.4.1.nuspec
│ ├── toastr.1.1.4.2.nupkg
│ ├── toastr.1.1.4.2.nuspec
│ ├── toastr.1.1.4.nupkg
│ ├── toastr.1.1.4.nuspec
│ ├── toastr.1.1.5.nupkg
│ ├── toastr.1.1.5.nuspec
│ ├── toastr.1.2.0.nupkg
│ ├── toastr.1.2.0.nuspec
│ ├── toastr.1.2.1.nupkg
│ ├── toastr.1.2.1.nuspec
│ ├── toastr.1.2.2.nupkg
│ ├── toastr.1.2.2.nuspec
│ ├── toastr.1.3.0.nupkg
│ ├── toastr.1.3.0.nuspec
│ ├── toastr.1.3.1.nupkg
│ ├── toastr.1.3.1.nuspec
│ ├── toastr.2.0.0-rc1.nupkg
│ ├── toastr.2.0.0-rc1.nuspec
│ ├── toastr.2.0.1.nupkg
│ ├── toastr.2.0.1.nuspec
│ ├── toastr.2.0.2.nupkg
│ ├── toastr.2.0.2.nuspec
│ ├── toastr.2.0.3.nupkg
│ └── toastr.2.0.3.nuspec
│ ├── package.json
│ ├── release checklist.md
│ ├── tests
│ ├── qunit
│ │ ├── qunit.css
│ │ └── qunit.js
│ ├── toastr-tests.html
│ └── unit
│ │ ├── qunit-helper.js
│ │ ├── toastr-tests.js
│ │ └── x.js
│ ├── toastr-icon.png
│ ├── toastr.js
│ ├── toastr.less
│ └── toastr.scss
├── resources
├── assets
│ ├── js
│ │ ├── app.js
│ │ ├── bootstrap.js
│ │ └── components
│ │ │ └── Example.vue
│ └── sass
│ │ ├── _variables.scss
│ │ └── app.scss
├── lang
│ └── en
│ │ ├── auth.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
└── views
│ ├── auth
│ ├── login.blade.php
│ ├── passwords
│ │ ├── email.blade.php
│ │ └── reset.blade.php
│ └── register.blade.php
│ ├── dept
│ ├── create.blade.php
│ ├── edit.blade.php
│ └── index.blade.php
│ ├── emails
│ └── notify.blade.php
│ ├── emp
│ ├── create.blade.php
│ ├── edit.blade.php
│ └── index.blade.php
│ ├── entry
│ ├── create.blade.php
│ ├── edit.blade.php
│ └── show.blade.php
│ ├── flow
│ ├── create.blade.php
│ ├── design.blade.php
│ ├── edit.blade.php
│ ├── index.blade.php
│ └── show.blade.php
│ ├── flowlink
│ ├── dept.blade.php
│ ├── emp.blade.php
│ └── role.blade.php
│ ├── home.blade.php
│ ├── layouts
│ └── app.blade.php
│ ├── partials
│ ├── attribute.blade.php
│ └── condition.blade.php
│ ├── proc
│ ├── index.blade.php
│ └── show.blade.php
│ ├── template
│ ├── create.blade.php
│ ├── edit.blade.php
│ ├── index.blade.php
│ └── tpl.blade.php
│ ├── template_form
│ ├── create.blade.php
│ ├── edit.blade.php
│ └── index.blade.php
│ └── welcome.blade.php
├── routes
├── api.php
├── channels.php
├── console.php
└── web.php
├── screenshots
├── .DS_Store
├── 1.jpg
├── 2.jpg
├── 3.jpg
├── 4.jpg
└── 5.jpg
├── server.php
├── storage
├── app
│ ├── .gitignore
│ └── public
│ │ └── .gitignore
├── debugbar
│ └── .gitignore
├── framework
│ ├── .gitignore
│ ├── cache
│ │ └── .gitignore
│ ├── sessions
│ │ └── .gitignore
│ ├── testing
│ │ └── .gitignore
│ └── views
│ │ └── .gitignore
└── logs
│ └── .gitignore
├── tests
├── CreatesApplication.php
├── Feature
│ └── ExampleTest.php
├── TestCase.php
└── Unit
│ └── ExampleTest.php
├── webpack.mix.js
└── yarn.lock
/.env.example:
--------------------------------------------------------------------------------
1 | APP_NAME=PHP工作流
2 | APP_ENV=local
3 | APP_KEY=base64:QLdoVELWRtf46/bqu7g3Afkl7LJobRaQ/oyruzOIvNw=
4 | APP_DEBUG=true
5 | APP_LOG_LEVEL=debug
6 | APP_URL=http://localhost
7 |
8 | DB_CONNECTION=mysql
9 | DB_HOST=127.0.0.1
10 | DB_PORT=3306
11 | DB_DATABASE=workflow
12 | DB_USERNAME=root
13 | DB_PASSWORD=root
14 |
15 | BROADCAST_DRIVER=log
16 | CACHE_DRIVER=file
17 | SESSION_DRIVER=file
18 | QUEUE_DRIVER=sync
19 |
20 | REDIS_HOST=127.0.0.1
21 | REDIS_PASSWORD=null
22 | REDIS_PORT=6379
23 |
24 | MAIL_DRIVER=smtp
25 | MAIL_HOST=smtp.mailtrap.io
26 | MAIL_PORT=2525
27 | MAIL_USERNAME=null
28 | MAIL_PASSWORD=null
29 | MAIL_ENCRYPTION=null
30 |
31 | PUSHER_APP_ID=
32 | PUSHER_APP_KEY=
33 | PUSHER_APP_SECRET=
34 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.css linguist-vendored
3 | *.scss linguist-vendored
4 | *.js linguist-vendored
5 | CHANGELOG.md export-ignore
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /public/hot
3 | /public/storage
4 | /vendor
5 | /.idea
6 | /.vagrant
7 | Homestead.json
8 | Homestead.yaml
9 | .env
10 | /public/uploads
11 | .DS_Store
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## PHP工作流
2 |
3 | 
4 |
5 | 
6 |
7 | ## 功能
8 | - 1.绘制流程图
9 | - 2.条件流转支持
10 | - 3.子流程
11 |
12 | ## 使用
13 | `cp .env.example .env`
14 |
15 | `composer install`
16 |
17 | 导入数据库文件,文件地址:`database/sql/workflow_data.sql`
18 |
19 | 初始账号:
20 | `1@qq.com 2@qq.com 3@qq.com 4@qq.com 5@qq.com 6@qq.com 7@qq.com 8@qq.com 9@qq.com 10@qq.com 密码统一为:123456`
21 |
22 | 邮件发送配置(qq为例)
23 | ```
24 | MAIL_DRIVER=smtp
25 | MAIL_HOST=smtp.qq.com
26 | MAIL_PORT=465
27 | MAIL_USERNAME=xxx@qq.com
28 | MAIL_PASSWORD=zzzz(在QQ邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-生成授权码)
29 | MAIL_FROM_ADDRESS=xxx@qq.com
30 | MAIL_ENCRYPTION=ssl
31 | ```
32 |
33 | ## 感谢
34 | [流程设计前端](https://github.com/payonesmile/flowdesign)
--------------------------------------------------------------------------------
/app/Console/Kernel.php:
--------------------------------------------------------------------------------
1 | command('inspire')
28 | // ->hourly();
29 | }
30 |
31 | /**
32 | * Register the Closure based commands for the application.
33 | *
34 | * @return void
35 | */
36 | protected function commands()
37 | {
38 | require base_path('routes/console.php');
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/app/Dept.php:
--------------------------------------------------------------------------------
1 | $v){
19 | if($v['pid']==$pid){
20 | $v['html']=str_repeat($html, $level);
21 | $v['level']=$level+1;
22 | $data[]=$v;
23 | unset($depts[$k]);
24 | $data=array_merge($data,self::recursion($depts,$html,$v['id'],$level+1));
25 | }
26 | }
27 |
28 | return $data;
29 | }
30 |
31 | public function director(){
32 | return $this->belongsTo('App\Emp','director_id');
33 | }
34 |
35 | public function manager(){
36 | return $this->belongsTo('App\Emp','manager_id');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Emp.php:
--------------------------------------------------------------------------------
1 | belongsTo('App\Dept','dept_id');
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/Entry.php:
--------------------------------------------------------------------------------
1 | belongsTo("App\Flow","flow_id");
15 | }
16 |
17 | public function emp(){
18 | return $this->belongsTo("App\Emp","emp_id");
19 | }
20 |
21 | public function procs(){
22 | return $this->hasMany("App\Proc","entry_id");
23 | }
24 |
25 | public function process(){
26 | return $this->belongsTo("App\Process","process_id");
27 | }
28 |
29 | public function entry_data(){
30 | return $this->hasMany("App\EntryData","entry_id");
31 | }
32 |
33 | public function parent_entry(){
34 | return $this->belongsTo('App\Entry','pid');
35 | }
36 |
37 | public function children(){
38 | return $this->hasMany('App\Entry','pid');
39 | }
40 |
41 | public function enter_process(){
42 | return $this->belongsTo('App\Process','enter_process_id');
43 | }
44 |
45 | public function child_process(){
46 | return $this->belongsTo('App\Process','child');
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/EntryData.php:
--------------------------------------------------------------------------------
1 | expectsJson()) {
60 | return response()->json(['error' => 'Unauthenticated.'], 401);
61 | }
62 |
63 | return redirect()->guest(route('login'));
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/app/Flow.php:
--------------------------------------------------------------------------------
1 | hasMany('App\Process','flow_id');
15 | }
16 |
17 | public function process_var(){
18 | return $this->hasMany('App\ProcessVar','flow_id');
19 | }
20 |
21 | public function template(){
22 | return $this->belongsTo('App\Template','template_id');
23 | }
24 |
25 | public function flow_type(){
26 | return $this->belongsTo('App\FlowType','type_id');
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/FlowType.php:
--------------------------------------------------------------------------------
1 | hasMany('App\Flow','type_id');
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/Flowlink.php:
--------------------------------------------------------------------------------
1 | belongsTo('App\Process','process_id');
15 | }
16 |
17 | public function next_process(){
18 | return $this->belongsTo('App\Process','next_process_id');
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/ForgotPasswordController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/LoginController.php:
--------------------------------------------------------------------------------
1 | middleware('guest', ['except' => 'logout']);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/RegisterController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
40 | }
41 |
42 | /**
43 | * Get a validator for an incoming registration request.
44 | *
45 | * @param array $data
46 | * @return \Illuminate\Contracts\Validation\Validator
47 | */
48 | protected function validator(array $data)
49 | {
50 | return Validator::make($data, [
51 | 'name' => 'required|string|max:255',
52 | 'email' => 'required|string|email|max:255|unique:emp',
53 | 'password' => 'required|string|min:6|confirmed',
54 | ]);
55 | }
56 |
57 | /**
58 | * Create a new user instance after a valid registration.
59 | *
60 | * @param array $data
61 | * @return User
62 | */
63 | protected function create(array $data)
64 | {
65 | return Emp::create([
66 | 'name' => $data['name'],
67 | 'email' => $data['email'],
68 | 'password' => bcrypt($data['password']),
69 | ]);
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/ResetPasswordController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | function($query){
23 | $query->orderBy("id",'DESC')->take(1);
24 | },"process"])->where(['emp_id'=>Auth::id(),'pid'=>0])->orderBy('id','DESC')->get();
25 |
26 | // dd($entries);
27 |
28 | //我的待办
29 | $procs=Proc::with(["emp","entry"=>function($query){
30 | $query->with("emp");
31 | }])->where(['emp_id'=>Auth::id(),'status'=>0])->orderBy("is_read","ASC")->orderBy("status","ASC")->orderBy("id","DESC")->get();
32 |
33 | //工作流 分组TODO
34 | $flows=Flow::where(['is_publish'=>1,'is_show'=>1])->orderBy('id','ASC')->get();
35 | $handle_procs=Proc::with(["emp","entry"=>function($query){
36 | $query->with("emp");
37 | }])->where(['emp_id'=>Auth::id()])->where('status','!=',0)->orderBy('entry_id','DESC')->orderBy("id","ASC")->get()->groupBy('entry_id');
38 |
39 | // dd($handle_procs);
40 |
41 | return view('home')->with(compact("entries","procs","flows","handle_procs"));
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/Http/Kernel.php:
--------------------------------------------------------------------------------
1 | [
30 | \App\Http\Middleware\EncryptCookies::class,
31 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
32 | \Illuminate\Session\Middleware\StartSession::class,
33 | // \Illuminate\Session\Middleware\AuthenticateSession::class,
34 | \Illuminate\View\Middleware\ShareErrorsFromSession::class,
35 | \App\Http\Middleware\VerifyCsrfToken::class,
36 | \Illuminate\Routing\Middleware\SubstituteBindings::class,
37 | ],
38 |
39 | 'api' => [
40 | 'throttle:60,1',
41 | 'bindings',
42 | ],
43 | ];
44 |
45 | /**
46 | * The application's route middleware.
47 | *
48 | * These middleware may be assigned to groups or used individually.
49 | *
50 | * @var array
51 | */
52 | protected $routeMiddleware = [
53 | 'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
54 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
55 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
56 | 'can' => \Illuminate\Auth\Middleware\Authorize::class,
57 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
58 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
59 | ];
60 | }
61 |
--------------------------------------------------------------------------------
/app/Http/Middleware/EncryptCookies.php:
--------------------------------------------------------------------------------
1 | check()) {
21 | return redirect('/home');
22 | }
23 |
24 | return $next($request);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/Http/Middleware/TrimStrings.php:
--------------------------------------------------------------------------------
1 | proc=$proc;
25 | }
26 |
27 | /**
28 | * Get the notification's delivery channels.
29 | *
30 | * @param mixed $notifiable
31 | * @return array
32 | */
33 | public function via($notifiable)
34 | {
35 | return ['mail'];
36 | }
37 |
38 | /**
39 | * Get the mail representation of the notification.
40 | *
41 | * @param mixed $notifiable
42 | * @return \Illuminate\Notifications\Messages\MailMessage
43 | */
44 | public function toMail($notifiable)
45 | {
46 | // return (new MailMessage)->view(
47 | // 'emails.name', ['invoice' => $this->invoice]
48 | // );
49 | // 您的申请:xx 已经被审核人yy通过,进入下一步骤
50 |
51 | $entry=$this->proc->entry;
52 |
53 | $content="您的申请:{$entry->title} 已经结束,请注意查看。";
54 |
55 | return (new MailMessage)->subject('工作流邮件消息提示')->view(
56 | 'emails.notify', ['content' => $content]
57 | );
58 | }
59 |
60 | /**
61 | * Get the array representation of the notification.
62 | *
63 | * @param mixed $notifiable
64 | * @return array
65 | */
66 | public function toArray($notifiable)
67 | {
68 | return [
69 | //
70 | ];
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/app/Proc.php:
--------------------------------------------------------------------------------
1 | belongsTo("App\Emp","emp_id");
15 | }
16 |
17 | public function entry(){
18 | return $this->belongsTo("App\Entry","entry_id");
19 | }
20 |
21 | public function process(){
22 | return $this->belongsTo("App\Process","process_id");
23 | }
24 |
25 | public function flow(){
26 | return $this->belongsTo("App\Flow","flow_id");
27 | }
28 |
29 | public function procs(){
30 | return $this->hasMany('App\Proc','entry_id');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/Process.php:
--------------------------------------------------------------------------------
1 | belongsTo('App\Flow','flow_id');
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/ProcessVar.php:
--------------------------------------------------------------------------------
1 | 'App\Policies\ModelPolicy',
17 | ];
18 |
19 | /**
20 | * Register any authentication / authorization services.
21 | *
22 | * @return void
23 | */
24 | public function boot()
25 | {
26 | $this->registerPolicies();
27 |
28 | //
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/Providers/BroadcastServiceProvider.php:
--------------------------------------------------------------------------------
1 | [
17 | 'App\Listeners\EventListener',
18 | ],
19 | ];
20 |
21 | /**
22 | * Register any events for your application.
23 | *
24 | * @return void
25 | */
26 | public function boot()
27 | {
28 | parent::boot();
29 |
30 | //
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/Providers/RouteServiceProvider.php:
--------------------------------------------------------------------------------
1 | mapApiRoutes();
39 |
40 | $this->mapWebRoutes();
41 |
42 | //
43 | }
44 |
45 | /**
46 | * Define the "web" routes for the application.
47 | *
48 | * These routes all receive session state, CSRF protection, etc.
49 | *
50 | * @return void
51 | */
52 | protected function mapWebRoutes()
53 | {
54 | Route::middleware('web')
55 | ->namespace($this->namespace)
56 | ->group(base_path('routes/web.php'));
57 | }
58 |
59 | /**
60 | * Define the "api" routes for the application.
61 | *
62 | * These routes are typically stateless.
63 | *
64 | * @return void
65 | */
66 | protected function mapApiRoutes()
67 | {
68 | Route::prefix('api')
69 | ->middleware('api')
70 | ->namespace($this->namespace)
71 | ->group(base_path('routes/api.php'));
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/app/Providers/WorkflowServiceProvider.php:
--------------------------------------------------------------------------------
1 | app->bind('workflow', function ($app) {
28 | return new Workflow();
29 | });
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Service/Workflow/Facades/Workflow.php:
--------------------------------------------------------------------------------
1 | flowlink($process_id);
10 | }
11 |
12 | public function unpass($proc_id){
13 | $proc=Proc::where(['emp_id'=>Auth::id()])->where(["status"=>0])->findOrFail($proc_id);
14 |
15 | //驳回
16 | Proc::where(['entry_id'=>$proc->entry_id,'process_id'=>$proc->process_id,'circle'=>$proc->entry->circle,'status'=>0])->update([
17 | 'status'=>-1,
18 | 'auditor_id'=>Auth::id(),
19 | 'auditor_name'=>Auth::user()->name,
20 | 'auditor_dept'=>Auth::user()->dept->dept_name,
21 | 'content'=>Request::input('content',''),
22 | ]);
23 |
24 | $proc->entry()->update([
25 | 'status'=>-1
26 | ]);
27 |
28 | //判断是否存在父进程
29 | if($proc->entry->pid>0){
30 | $proc->entry->parent_entry->update([
31 | 'status'=>-1,
32 | 'child'=>$proc->process_id
33 | ]);
34 | }
35 |
36 | $proc->entry->emp->notify(new \App\Notifications\Flowfy(Proc::find($proc->id)));
37 | }
38 | }
--------------------------------------------------------------------------------
/app/Service/Workflow/WorkflowInterface.php:
--------------------------------------------------------------------------------
1 | hasMany('App\TemplateForm','template_id');
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/TemplateForm.php:
--------------------------------------------------------------------------------
1 | belongsTo('App\Template','template_id');
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/helpers.php:
--------------------------------------------------------------------------------
1 | template_form()->orderBy('sort','asc')->orderBy('id','DESC')->get();
8 | return view('template.tpl',['template_forms'=>$template_forms,'entry_data'=>$entry_data])->render();
9 | }
10 |
--------------------------------------------------------------------------------
/artisan:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | make(Illuminate\Contracts\Console\Kernel::class);
32 |
33 | $status = $kernel->handle(
34 | $input = new Symfony\Component\Console\Input\ArgvInput,
35 | new Symfony\Component\Console\Output\ConsoleOutput
36 | );
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Shutdown The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once Artisan has finished running. We will fire off the shutdown events
44 | | so that any final work may be done by the application before we shut
45 | | down the process. This is the last thing to happen to the request.
46 | |
47 | */
48 |
49 | $kernel->terminate($input, $status);
50 |
51 | exit($status);
52 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | singleton(
30 | Illuminate\Contracts\Http\Kernel::class,
31 | App\Http\Kernel::class
32 | );
33 |
34 | $app->singleton(
35 | Illuminate\Contracts\Console\Kernel::class,
36 | App\Console\Kernel::class
37 | );
38 |
39 | $app->singleton(
40 | Illuminate\Contracts\Debug\ExceptionHandler::class,
41 | App\Exceptions\Handler::class
42 | );
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Return The Application
47 | |--------------------------------------------------------------------------
48 | |
49 | | This script returns the application instance. The instance is given to
50 | | the calling script so we can separate the building of the instances
51 | | from the actual running of the application and sending responses.
52 | |
53 | */
54 |
55 | return $app;
56 |
--------------------------------------------------------------------------------
/bootstrap/autoload.php:
--------------------------------------------------------------------------------
1 | =5.6.4",
9 | "barryvdh/laravel-debugbar": "^2.3",
10 | "laravel/framework": "5.4.*",
11 | "laravel/tinker": "~1.0",
12 | "laravelcollective/html": "^5.4"
13 | },
14 | "require-dev": {
15 | "fzaninotto/faker": "~1.4",
16 | "mockery/mockery": "0.9.*",
17 | "phpunit/phpunit": "~5.7"
18 | },
19 | "autoload": {
20 | "classmap": [
21 | "database"
22 | ],
23 | "files": [
24 | "app/helpers.php"
25 | ],
26 | "psr-4": {
27 | "App\\": "app/",
28 | "Workflow\\":"app/Service/Workflow"
29 | }
30 | },
31 | "autoload-dev": {
32 | "psr-4": {
33 | "Tests\\": "tests/"
34 | }
35 | },
36 | "scripts": {
37 | "post-root-package-install": [
38 | "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
39 | ],
40 | "post-create-project-cmd": [
41 | "php artisan key:generate"
42 | ],
43 | "post-install-cmd": [
44 | "Illuminate\\Foundation\\ComposerScripts::postInstall",
45 | "php artisan optimize"
46 | ],
47 | "post-update-cmd": [
48 | "Illuminate\\Foundation\\ComposerScripts::postUpdate",
49 | "php artisan optimize"
50 | ]
51 | },
52 | "config": {
53 | "preferred-install": "dist",
54 | "sort-packages": true,
55 | "optimize-autoloader": true
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/config/broadcasting.php:
--------------------------------------------------------------------------------
1 | env('BROADCAST_DRIVER', 'null'),
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Broadcast Connections
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may define all of the broadcast connections that will be used
26 | | to broadcast events to other systems or over websockets. Samples of
27 | | each available type of connection are provided inside this array.
28 | |
29 | */
30 |
31 | 'connections' => [
32 |
33 | 'pusher' => [
34 | 'driver' => 'pusher',
35 | 'key' => env('PUSHER_APP_KEY'),
36 | 'secret' => env('PUSHER_APP_SECRET'),
37 | 'app_id' => env('PUSHER_APP_ID'),
38 | 'options' => [
39 | //
40 | ],
41 | ],
42 |
43 | 'redis' => [
44 | 'driver' => 'redis',
45 | 'connection' => 'default',
46 | ],
47 |
48 | 'log' => [
49 | 'driver' => 'log',
50 | ],
51 |
52 | 'null' => [
53 | 'driver' => 'null',
54 | ],
55 |
56 | ],
57 |
58 | ];
59 |
--------------------------------------------------------------------------------
/config/filesystems.php:
--------------------------------------------------------------------------------
1 | 'local',
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Default Cloud Filesystem Disk
21 | |--------------------------------------------------------------------------
22 | |
23 | | Many applications store files both locally and in the cloud. For this
24 | | reason, you may specify a default "cloud" driver here. This driver
25 | | will be bound as the Cloud disk implementation in the container.
26 | |
27 | */
28 |
29 | 'cloud' => 's3',
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Filesystem Disks
34 | |--------------------------------------------------------------------------
35 | |
36 | | Here you may configure as many filesystem "disks" as you wish, and you
37 | | may even configure multiple disks of the same driver. Defaults have
38 | | been setup for each driver as an example of the required options.
39 | |
40 | | Supported Drivers: "local", "ftp", "s3", "rackspace"
41 | |
42 | */
43 |
44 | 'disks' => [
45 |
46 | 'local' => [
47 | 'driver' => 'local',
48 | 'root' => storage_path('app'),
49 | ],
50 |
51 | 'public' => [
52 | 'driver' => 'local',
53 | 'root' => storage_path('app/public'),
54 | 'url' => env('APP_URL').'/storage',
55 | 'visibility' => 'public',
56 | ],
57 |
58 | 's3' => [
59 | 'driver' => 's3',
60 | 'key' => env('AWS_KEY'),
61 | 'secret' => env('AWS_SECRET'),
62 | 'region' => env('AWS_REGION'),
63 | 'bucket' => env('AWS_BUCKET'),
64 | ],
65 |
66 | ],
67 |
68 | ];
69 |
--------------------------------------------------------------------------------
/config/services.php:
--------------------------------------------------------------------------------
1 | [
18 | 'domain' => env('MAILGUN_DOMAIN'),
19 | 'secret' => env('MAILGUN_SECRET'),
20 | ],
21 |
22 | 'ses' => [
23 | 'key' => env('SES_KEY'),
24 | 'secret' => env('SES_SECRET'),
25 | 'region' => 'us-east-1',
26 | ],
27 |
28 | 'sparkpost' => [
29 | 'secret' => env('SPARKPOST_SECRET'),
30 | ],
31 |
32 | 'stripe' => [
33 | 'model' => App\User::class,
34 | 'key' => env('STRIPE_KEY'),
35 | 'secret' => env('STRIPE_SECRET'),
36 | ],
37 |
38 | ];
39 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | resource_path('views'),
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled View Path
23 | |--------------------------------------------------------------------------
24 | |
25 | | This option determines where all the compiled Blade templates will be
26 | | stored for your application. Typically, this is within the storage
27 | | directory. However, as usual, you are free to change this value.
28 | |
29 | */
30 |
31 | 'compiled' => realpath(storage_path('framework/views')),
32 |
33 | ];
34 |
--------------------------------------------------------------------------------
/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 |
--------------------------------------------------------------------------------
/database/factories/ModelFactory.php:
--------------------------------------------------------------------------------
1 | define(App\User::class, function (Faker\Generator $faker) {
16 | static $password;
17 |
18 | return [
19 | 'name' => $faker->name,
20 | 'email' => $faker->unique()->safeEmail,
21 | 'password' => $password ?: $password = bcrypt('secret'),
22 | 'remember_token' => str_random(10),
23 | ];
24 | });
25 |
--------------------------------------------------------------------------------
/database/migrations/2014_10_12_000000_create_users_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $table->string('name');
19 | $table->string('email')->unique();
20 | $table->string('password');
21 | $table->rememberToken();
22 | $table->timestamps();
23 | });
24 | }
25 |
26 | /**
27 | * Reverse the migrations.
28 | *
29 | * @return void
30 | */
31 | public function down()
32 | {
33 | Schema::dropIfExists('users');
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/database/migrations/2014_10_12_100000_create_password_resets_table.php:
--------------------------------------------------------------------------------
1 | string('email')->index();
18 | $table->string('token');
19 | $table->timestamp('created_at')->nullable();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | *
26 | * @return void
27 | */
28 | public function down()
29 | {
30 | Schema::dropIfExists('password_resets');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call(UsersTableSeeder::class);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "dev": "npm run development",
5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
7 | "watch-poll": "npm run watch -- --watch-poll",
8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
9 | "prod": "npm run production",
10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
11 | },
12 | "devDependencies": {
13 | "axios": "^0.21.1",
14 | "bootstrap-sass": "^3.3.7",
15 | "cross-env": "^3.2.3",
16 | "jquery": "^3.1.1",
17 | "laravel-mix": "0.*",
18 | "lodash": "^4.17.4",
19 | "vue": "^2.1.10"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | ./tests/Feature
14 |
15 |
16 |
17 | ./tests/Unit
18 |
19 |
20 |
21 |
22 | ./app
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Redirect Trailing Slashes If Not A Folder...
9 | RewriteCond %{REQUEST_FILENAME} !-d
10 | RewriteRule ^(.*)/$ /$1 [L,R=301]
11 |
12 | # Handle Front Controller...
13 | RewriteCond %{REQUEST_FILENAME} !-d
14 | RewriteCond %{REQUEST_FILENAME} !-f
15 | RewriteRule ^ index.php [L]
16 |
17 | # Handle Authorization Header
18 | RewriteCond %{HTTP:Authorization} .
19 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
20 |
21 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 |
8 | */
9 |
10 | /*
11 | |--------------------------------------------------------------------------
12 | | Register The Auto Loader
13 | |--------------------------------------------------------------------------
14 | |
15 | | Composer provides a convenient, automatically generated class loader for
16 | | our application. We just need to utilize it! We'll simply require it
17 | | into the script here so that we don't have to worry about manual
18 | | loading any of our classes later on. It feels great to relax.
19 | |
20 | */
21 |
22 | require __DIR__.'/../bootstrap/autoload.php';
23 |
24 | /*
25 | |--------------------------------------------------------------------------
26 | | Turn On The Lights
27 | |--------------------------------------------------------------------------
28 | |
29 | | We need to illuminate PHP development, so let us turn on the lights.
30 | | This bootstraps the framework and gets it ready for use, then it
31 | | will load up this application so that we can run it and send
32 | | the responses back to the browser and delight our users.
33 | |
34 | */
35 |
36 | $app = require_once __DIR__.'/../bootstrap/app.php';
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Run The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once we have the application, we can handle the incoming request
44 | | through the kernel, and send the associated response back to
45 | | the client's browser allowing them to enjoy the creative
46 | | and wonderful application we have prepared for them.
47 | |
48 | */
49 |
50 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
51 |
52 | $response = $kernel->handle(
53 | $request = Illuminate\Http\Request::capture()
54 | );
55 |
56 | $response->send();
57 |
58 | $kernel->terminate($request, $response);
59 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/.eslintignore:
--------------------------------------------------------------------------------
1 | **/node_modules/
2 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "defaults",
3 |
4 | "env": {
5 | "browser": true,
6 | "node": true
7 | },
8 |
9 | "globals": {
10 | "$": true
11 | },
12 |
13 | "rules": {
14 | "no-console": 0
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/.gitignore:
--------------------------------------------------------------------------------
1 | $ cat .gitignore
2 |
3 | # Can ignore specific files
4 | .settings.xml
5 | .monitor
6 | .DS_Store
7 | .idea
8 |
9 | # Use wildcards as well
10 | *~
11 | #*.swp
12 |
13 | # Can also ignore all directories and files in a directory.
14 | node_modules
15 | node_modules/**/*
16 | bin
17 | reports
18 | reports/**/*
19 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "site"]
2 | path = site
3 | url = git@github.com:adrai/flowchart.js.git
4 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "flowchart",
3 | "version": "1.6.6",
4 | "main": "./release/flowchart.min.js",
5 | "dependencies": {},
6 | "ignore": [
7 | "src/",
8 | "buildtasks/",
9 | "example/",
10 | ".gitignore",
11 | "Gruntfile.js",
12 | "package.json",
13 | "**/*.zip"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/devserver.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var express = require('express');
3 | var webpack = require('webpack');
4 | var config = require('./webpack.config');
5 |
6 | var port = 8000;
7 | var app = express();
8 | var compiler = webpack(config);
9 |
10 | app.use(express.static(process.cwd()));
11 |
12 | app.use(require('webpack-dev-middleware')(compiler, {
13 | noInfo: true,
14 | publicPath: config.output.publicPath
15 | }));
16 |
17 | app.use(require('webpack-hot-middleware')(compiler));
18 |
19 | app.get('/', function (req, res) {
20 | res.sendFile(path.join(__dirname, 'index.html'));
21 | });
22 |
23 | app.listen(port, '0.0.0.0', function (err) {
24 | if (err) {
25 | console.log(err);
26 | return;
27 | }
28 |
29 | console.log('Listening at http://0.0.0.0:%s', port);
30 | });
31 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/example/loadFile.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | flowchart.js · Playground
6 |
9 |
10 |
11 |
12 |
13 |
14 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/example/test.txt:
--------------------------------------------------------------------------------
1 | st=>start: Start:>http://www.google.com[blank]
2 | e=>end:>http://www.google.com
3 | op1=>operation: My Ooooperation
4 | sub1=>subroutine: My Subroutine
5 | cond=>condition: Yes
6 | or No?:>http://www.google.com
7 | io=>inputoutput: catch something...
8 |
9 | st->op1->cond
10 | cond(yes)->io->e
11 | cond(no)->sub1(right)->op1
--------------------------------------------------------------------------------
/public/vendor/flowchart/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Demo page
5 |
6 |
7 |
8 |
9 |
10 |
11 | st=>start: Start|past:>http://www.google.com[blank]
12 | e=>end: End:>http://www.google.com
13 | op1=>operation: My Operation|past
14 | op2=>operation: Stuff|current
15 | sub1=>subroutine: My Subroutine|invalid
16 | cond=>condition: Yes
17 | or No?|approved:>http://www.google.com
18 | c2=>condition: Good idea|rejected
19 | io=>inputoutput: catch something...|request
20 |
21 | st->op1(right)->cond
22 | cond(yes, right)->c2
23 | cond(no)->sub1(left)->op1
24 | c2(yes)->io->e
25 | c2(no)->op2->e
26 |
27 |
28 |
29 |
30 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/index.js:
--------------------------------------------------------------------------------
1 | require('./src/flowchart.shim');
2 | var parse = require('./src/flowchart.parse');
3 | require('./src/jquery-plugin');
4 |
5 | var FlowChart = {
6 | parse: parse
7 | };
8 |
9 | if (typeof window !== 'undefined') {
10 | window.flowchart = FlowChart;
11 | }
12 |
13 | module.exports = FlowChart;
14 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017 Adriano Raiano
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "author": "adrai",
3 | "name": "flowchart.js",
4 | "version": "1.6.6",
5 | "main": "./index",
6 | "private": false,
7 | "engines": {
8 | "node": ">=4.0.0"
9 | },
10 | "dependencies": {
11 | "raphael": "2.2.7"
12 | },
13 | "devDependencies": {
14 | "eslint": "^1.10.3",
15 | "eslint-config-defaults": "^8.0.2",
16 | "express": ">= 0.0.1",
17 | "jquery": "^2.2.0",
18 | "lodash": ">=0.2.1",
19 | "moment": "^2.11.1",
20 | "webpack": "^1.12.11",
21 | "webpack-dev-middleware": "^1.4.0",
22 | "webpack-hot-middleware": "^2.6.0"
23 | },
24 | "scripts": {
25 | "start": "node devserver.js",
26 | "lint": "eslint src",
27 | "build:unminified": "NODE_ENV=production webpack -d --config webpack.config.js",
28 | "build:minified": "NODE_ENV=production MINIFIED=1 webpack -d --config webpack.config.js",
29 | "build": "npm run build:unminified && npm run build:minified && cp ./release/flowchart.js ./site/flowchart-latest.js",
30 | "test": "npm run lint"
31 | },
32 | "repository": {
33 | "type": "git",
34 | "url": "https://github.com/adrai/flowchart.js.git"
35 | },
36 | "keywords": [
37 | "flowchart",
38 | "client",
39 | "script"
40 | ],
41 | "homepage": "http://flowchart.js.org/",
42 | "license": "MIT"
43 | }
44 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.defaults.js:
--------------------------------------------------------------------------------
1 | // defaults
2 | module.exports = {
3 | 'x': 0,
4 | 'y': 0,
5 | 'line-width': 3,
6 | 'line-length': 50,
7 | 'text-margin': 10,
8 | 'font-size': 14,
9 | 'font-color': 'black',
10 | // 'font': 'normal',
11 | // 'font-family': 'calibri',
12 | // 'font-weight': 'normal',
13 | 'line-color': 'black',
14 | 'element-color': 'black',
15 | 'fill': 'white',
16 | 'yes-text': 'yes',
17 | 'no-text': 'no',
18 | 'arrow-end': 'block',
19 | 'class': 'flowchart',
20 | 'scale': 1,
21 | 'symbols': {
22 | 'start': {},
23 | 'end': {},
24 | 'condition': {},
25 | 'inputoutput': {},
26 | 'operation': {},
27 | 'subroutine': {}
28 | }//,
29 | // 'flowstate' : {
30 | // 'past' : { 'fill': '#CCCCCC', 'font-size': 12},
31 | // 'current' : {'fill': 'yellow', 'font-color': 'red', 'font-weight': 'bold'},
32 | // 'future' : { 'fill': '#FFFF99'},
33 | // 'invalid': {'fill': '#444444'}
34 | // }
35 | };
36 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.helpers.js:
--------------------------------------------------------------------------------
1 | function _defaults(options, defaultOptions) {
2 | if (!options || typeof options === 'function') {
3 | return defaultOptions;
4 | }
5 |
6 | var merged = {};
7 | for (var attrname in defaultOptions) {
8 | merged[attrname] = defaultOptions[attrname];
9 | }
10 |
11 | for (attrname in options) {
12 | if (options[attrname]) {
13 | if (typeof merged[attrname] === 'object') {
14 | merged[attrname] = _defaults(merged[attrname], options[attrname]);
15 | } else {
16 | merged[attrname] = options[attrname];
17 | }
18 | }
19 | }
20 | return merged;
21 | }
22 |
23 | function _inherits(ctor, superCtor) {
24 | if (typeof(Object.create) === 'function') {
25 | // implementation from standard node.js 'util' module
26 | ctor.super_ = superCtor;
27 | ctor.prototype = Object.create(superCtor.prototype, {
28 | constructor: {
29 | value: ctor,
30 | enumerable: false,
31 | writable: true,
32 | configurable: true
33 | }
34 | });
35 | } else {
36 | // old school shim for old browsers
37 | ctor.super_ = superCtor;
38 | var TempCtor = function () {};
39 | TempCtor.prototype = superCtor.prototype;
40 | ctor.prototype = new TempCtor();
41 | ctor.prototype.constructor = ctor;
42 | }
43 | }
44 |
45 | // move dependent functions to a container so that
46 | // they can be overriden easier in no jquery environment (node.js)
47 | module.exports = {
48 | defaults: _defaults,
49 | inherits: _inherits
50 | };
51 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.shim.js:
--------------------------------------------------------------------------------
1 | // add indexOf to non ECMA-262 standard compliant browsers
2 | if (!Array.prototype.indexOf) {
3 | Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
4 | "use strict";
5 | if (this === null) {
6 | throw new TypeError();
7 | }
8 | var t = Object(this);
9 | var len = t.length >>> 0;
10 | if (len === 0) {
11 | return -1;
12 | }
13 | var n = 0;
14 | if (arguments.length > 0) {
15 | n = Number(arguments[1]);
16 | if (n != n) { // shortcut for verifying if it's NaN
17 | n = 0;
18 | } else if (n !== 0 && n != Infinity && n != -Infinity) {
19 | n = (n > 0 || -1) * Math.floor(Math.abs(n));
20 | }
21 | }
22 | if (n >= len) {
23 | return -1;
24 | }
25 | var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
26 | for (; k < len; k++) {
27 | if (k in t && t[k] === searchElement) {
28 | return k;
29 | }
30 | }
31 | return -1;
32 | };
33 | }
34 |
35 | // add lastIndexOf to non ECMA-262 standard compliant browsers
36 | if (!Array.prototype.lastIndexOf) {
37 | Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {
38 | "use strict";
39 | if (this === null) {
40 | throw new TypeError();
41 | }
42 | var t = Object(this);
43 | var len = t.length >>> 0;
44 | if (len === 0) {
45 | return -1;
46 | }
47 | var n = len;
48 | if (arguments.length > 1) {
49 | n = Number(arguments[1]);
50 | if (n != n) {
51 | n = 0;
52 | } else if (n !== 0 && n != (1 / 0) && n != -(1 / 0)) {
53 | n = (n > 0 || -1) * Math.floor(Math.abs(n));
54 | }
55 | }
56 | var k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n);
57 | for (; k >= 0; k--) {
58 | if (k in t && t[k] === searchElement) {
59 | return k;
60 | }
61 | }
62 | return -1;
63 | };
64 | }
65 |
66 | if (!String.prototype.trim) {
67 | String.prototype.trim = function() {
68 | return this.replace(/^\s+|\s+$/g, '');
69 | };
70 | }
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.symbol.end.js:
--------------------------------------------------------------------------------
1 | var Symbol = require('./flowchart.symbol');
2 | var inherits = require('./flowchart.helpers').inherits;
3 |
4 | function End(chart, options) {
5 | var symbol = chart.paper.rect(0, 0, 0, 0, 20);
6 | options = options || {};
7 | options.text = options.text || 'End';
8 | Symbol.call(this, chart, options, symbol);
9 | }
10 | inherits(End, Symbol);
11 |
12 | module.exports = End;
13 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.symbol.inputoutput.js:
--------------------------------------------------------------------------------
1 | var Symbol = require('./flowchart.symbol');
2 | var inherits = require('./flowchart.helpers').inherits;
3 | var drawAPI = require('./flowchart.functions');
4 | var drawPath = drawAPI.drawPath;
5 |
6 | function InputOutput(chart, options) {
7 | options = options || {};
8 | Symbol.call(this, chart, options);
9 | this.textMargin = this.getAttr('text-margin');
10 |
11 | this.text.attr({
12 | x: this.textMargin * 3
13 | });
14 |
15 | var width = this.text.getBBox().width + 4 * this.textMargin;
16 | var height = this.text.getBBox().height + 2 * this.textMargin;
17 | var startX = this.textMargin;
18 | var startY = height/2;
19 |
20 | var start = {x: startX, y: startY};
21 | var points = [
22 | {x: startX - this.textMargin, y: height},
23 | {x: startX - this.textMargin + width, y: height},
24 | {x: startX - this.textMargin + width + 2 * this.textMargin, y: 0},
25 | {x: startX - this.textMargin + 2 * this.textMargin, y: 0},
26 | {x: startX, y: startY}
27 | ];
28 |
29 | var symbol = drawPath(chart, start, points);
30 |
31 | symbol.attr({
32 | stroke: this.getAttr('element-color'),
33 | 'stroke-width': this.getAttr('line-width'),
34 | fill: this.getAttr('fill')
35 | });
36 | if (options.link) { symbol.attr('href', options.link); }
37 | if (options.target) { symbol.attr('target', options.target); }
38 | if (options.key) { symbol.node.id = options.key; }
39 | symbol.node.setAttribute('class', this.getAttr('class'));
40 |
41 | this.text.attr({
42 | y: symbol.getBBox().height/2
43 | });
44 |
45 | this.group.push(symbol);
46 | symbol.insertBefore(this.text);
47 |
48 | this.initialize();
49 | }
50 | inherits(InputOutput, Symbol);
51 |
52 | InputOutput.prototype.getLeft = function() {
53 | var y = this.getY() + this.group.getBBox().height/2;
54 | var x = this.getX() + this.textMargin;
55 | return {x: x, y: y};
56 | };
57 |
58 | InputOutput.prototype.getRight = function() {
59 | var y = this.getY() + this.group.getBBox().height/2;
60 | var x = this.getX() + this.group.getBBox().width - this.textMargin;
61 | return {x: x, y: y};
62 | };
63 |
64 | module.exports = InputOutput;
65 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.symbol.operation.js:
--------------------------------------------------------------------------------
1 | var Symbol = require('./flowchart.symbol');
2 | var inherits = require('./flowchart.helpers').inherits;
3 |
4 | function Operation(chart, options) {
5 | var symbol = chart.paper.rect(0, 0, 0, 0);
6 | options = options || {};
7 | Symbol.call(this, chart, options, symbol);
8 | }
9 | inherits(Operation, Symbol);
10 |
11 | module.exports = Operation;
12 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.symbol.start.js:
--------------------------------------------------------------------------------
1 | var Symbol = require('./flowchart.symbol');
2 | var inherits = require('./flowchart.helpers').inherits;
3 |
4 | function Start(chart, options) {
5 | var symbol = chart.paper.rect(0, 0, 0, 0, 20);
6 | options = options || {};
7 | options.text = options.text || 'Start';
8 | Symbol.call(this, chart, options, symbol);
9 | }
10 | inherits(Start, Symbol);
11 |
12 | module.exports = Start;
13 |
14 | // Start.prototype.render = function() {
15 | // if (this.next) {
16 | // var lineLength = this.chart.options.symbols[this.symbolType]['line-length'] || this.chart.options['line-length'];
17 |
18 | // var bottomPoint = this.getBottom();
19 | // var topPoint = this.next.getTop();
20 |
21 | // if (!this.next.isPositioned) {
22 | // this.next.shiftY(this.getY() + this.height + lineLength);
23 | // this.next.setX(bottomPoint.x - this.next.width/2);
24 | // this.next.isPositioned = true;
25 |
26 | // this.next.render();
27 | // }
28 | // }
29 | // };
30 |
31 | // Start.prototype.renderLines = function() {
32 | // if (this.next) {
33 | // this.drawLineTo(this.next);
34 | // }
35 | // };
36 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/flowchart.symbol.subroutine.js:
--------------------------------------------------------------------------------
1 | var Symbol = require('./flowchart.symbol');
2 | var inherits = require('./flowchart.helpers').inherits;
3 |
4 | function Subroutine(chart, options) {
5 | var symbol = chart.paper.rect(0, 0, 0, 0);
6 | options = options || {};
7 | Symbol.call(this, chart, options, symbol);
8 |
9 | symbol.attr({
10 | width: this.text.getBBox().width + 4 * this.getAttr('text-margin')
11 | });
12 |
13 | this.text.attr({
14 | 'x': 2 * this.getAttr('text-margin')
15 | });
16 |
17 | var innerWrap = chart.paper.rect(0, 0, 0, 0);
18 | innerWrap.attr({
19 | x: this.getAttr('text-margin'),
20 | stroke: this.getAttr('element-color'),
21 | 'stroke-width': this.getAttr('line-width'),
22 | width: this.text.getBBox().width + 2 * this.getAttr('text-margin'),
23 | height: this.text.getBBox().height + 2 * this.getAttr('text-margin'),
24 | fill: this.getAttr('fill')
25 | });
26 | if (options.key) { innerWrap.node.id = options.key + 'i'; }
27 |
28 | var font = this.getAttr('font');
29 | var fontF = this.getAttr('font-family');
30 | var fontW = this.getAttr('font-weight');
31 |
32 | if (font) innerWrap.attr({ 'font': font });
33 | if (fontF) innerWrap.attr({ 'font-family': fontF });
34 | if (fontW) innerWrap.attr({ 'font-weight': fontW });
35 |
36 | if (options.link) { innerWrap.attr('href', options.link); }
37 | if (options.target) { innerWrap.attr('target', options.target); }
38 | this.group.push(innerWrap);
39 | innerWrap.insertBefore(this.text);
40 |
41 | this.initialize();
42 | }
43 | inherits(Subroutine, Symbol);
44 |
45 | module.exports = Subroutine;
46 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/jquery-plugin.js:
--------------------------------------------------------------------------------
1 | if (typeof jQuery != 'undefined') {
2 | var parse = require('./flowchart.parse');
3 | (function( $ ) {
4 | $.fn.flowChart = function( options ) {
5 | return this.each(function() {
6 | var $this = $(this);
7 | var chart = parse($this.text());
8 | $this.html('');
9 | chart.drawSVG(this, options);
10 | });
11 | };
12 | })(jQuery); // eslint-disable-line
13 | }
14 |
--------------------------------------------------------------------------------
/public/vendor/flowchart/src/svginnerhtml.min.js:
--------------------------------------------------------------------------------
1 | (function(g){var b=["SVGSVGElement","SVGGElement"],d=document.createElement("dummy");if(!b[0]in g)return!1;if(Object.defineProperty){var e={get:function(){d.innerHTML="";Array.prototype.slice.call(this.childNodes).forEach(function(a){d.appendChild(a.cloneNode(!0))});return d.innerHTML},set:function(a){var b=this,e=Array.prototype.slice.call(b.childNodes),f=function(a,c){if(1!==c.nodeType)return!1;var b=document.createElementNS("http://www.w3.org/2000/svg",c.nodeName.toLowerCase());Array.prototype.slice.call(c.attributes).forEach(function(a){b.setAttribute(a.name,
2 | a.value)});"TEXT"===c.nodeName&&(b.textContent=c.innerHTML);a.appendChild(b);c.childNodes.length&&Array.prototype.slice.call(c.childNodes).forEach(function(a){f(b,a)})},a=a.replace(/<(\w+)([^<]+?)\/>/,"<$1$2>$1>");e.forEach(function(a){a.parentNode.removeChild(a)});d.innerHTML=a;Array.prototype.slice.call(d.childNodes).forEach(function(a){f(b,a)})},enumerable:!0,configurable:!0};try{b.forEach(function(a){Object.defineProperty(window[a].prototype,"innerHTML",e)})}catch(h){}}else Object.prototype.__defineGetter__&&
3 | b.forEach(function(a){window[a].prototype.__defineSetter__("innerHTML",e.set);window[a].prototype.__defineGetter__("innerHTML",e.get)})})(window);
--------------------------------------------------------------------------------
/public/vendor/flowchart/webpack.config.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var webpack = require('webpack');
3 | var moment = require('moment');
4 |
5 | var component = require('./package.json');
6 | var banner =
7 | '// ' + component.name + ', v' + component.version + '\n' +
8 | '// Copyright (c)' + moment().format('YYYY') + ' Adriano Raiano (adrai).\n' +
9 | '// Distributed under MIT license\n' +
10 | '// http://adrai.github.io/flowchart.js\n';
11 |
12 | var NODE_ENV = process.env.NODE_ENV || 'development';
13 | var defines = new webpack.DefinePlugin({
14 | 'process.env': {
15 | 'NODE_ENV': JSON.stringify(NODE_ENV)
16 | }
17 | });
18 |
19 | var config = {
20 | devtool: 'source-map', // always build source map
21 | entry: [
22 | 'webpack-hot-middleware/client',
23 | './index'
24 | ],
25 | output: {
26 | path: path.join(__dirname, 'release'),
27 | filename: component.name + '.js',
28 | publicPath: '/release/'
29 | },
30 | plugins: [
31 | new webpack.HotModuleReplacementPlugin(),
32 | new webpack.NoErrorsPlugin(),
33 | defines
34 | ],
35 | resolve: {
36 | extensions: ['', '.js'],
37 | modulesDirectories: ['src', 'node_modules'],
38 | alias: {
39 | 'dev/raphael.core.js': './dev/raphael.core.js',
40 | 'raphael.core': './raphael.core.js',
41 | 'raphael.svg': './dev/raphael.svg.js',
42 | 'raphael.vml': './dev/raphael.vml.js'
43 | }
44 | }
45 | };
46 |
47 | if (NODE_ENV === 'production') {
48 | var minified = process.env.MINIFIED == '1';
49 | var withoutJs = component.name;
50 | withoutJs = withoutJs.replace('.js', '');
51 | var filename = minified ? withoutJs + '.min.js' : withoutJs + '.js';
52 | var uglifyOptions = {
53 | sourceMap: true,
54 | compressor: {
55 | warnings: false,
56 | dead_code: true
57 | },
58 | output: {
59 | preamble: banner,
60 | comments: false
61 | }
62 | };
63 | if (!minified) {
64 | uglifyOptions.beautify = true;
65 | uglifyOptions.mangle = false;
66 | uglifyOptions.output.comments = 'all';
67 | }
68 | config.entry = './index';
69 | config.externals = {
70 | raphael: 'Raphael'
71 | };
72 | config.output = {
73 | devtoolLineToLine: true,
74 | sourceMapFilename: filename + '.map',
75 | path: path.join(__dirname, 'release'),
76 | filename: filename,
77 | libraryTarget: 'umd'
78 | };
79 | config.plugins = [
80 | new webpack.optimize.OccurenceOrderPlugin(),
81 | defines,
82 | new webpack.optimize.UglifyJsPlugin(uglifyOptions)
83 | ];
84 | }
85 |
86 | module.exports = config;
87 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows image file caches
2 | Thumbs.db
3 | ehthumbs.db
4 |
5 | # Folder config file
6 | Desktop.ini
7 |
8 | # Recycle Bin used on file shares
9 | $RECYCLE.BIN/
10 |
11 | # Windows Installer files
12 | *.cab
13 | *.msi
14 | *.msm
15 | *.msp
16 |
17 | # =========================
18 | # Operating System Files
19 | # =========================
20 |
21 | # OSX
22 | # =========================
23 |
24 | .DS_Store
25 | .AppleDouble
26 | .LSOverride
27 |
28 | # Icon must ends with two \r.
29 | Icon
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear on external disk
35 | .Spotlight-V100
36 | .Trashes
37 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/css/bootstrap/css/ie.css:
--------------------------------------------------------------------------------
1 | /* NAVBAR */
2 |
3 | /* !CPU HIGH, fix for IE6 shake when scroll */
4 | * html,* html body {
5 | _background-image:url(about:blank);
6 | _background-attachment:fixed;
7 | }
8 | /* !CPU HIGH, fix for IE6 not support fixed position */
9 | .navbar-fixed-top {
10 | _position:absolute;
11 | _bottom:auto;
12 | _top:expression(eval(document.documentElement.scrollTop));
13 | }
14 | /* !CPU HIGH, fix for IE6 not support fixed position */
15 | .navbar-fixed-bottom {
16 | _position:absolute;
17 | _bottom:auto;
18 | _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
19 | }
20 |
21 | /* DROPDOWN */
22 | .dropup,
23 | .dropdown {
24 | *zoom:1;
25 | }
26 |
27 | /* CLOSE */
28 | .close {
29 | _font-size: 15px;
30 | }
31 |
32 | .modal-header h3 {
33 | *display: inline;
34 | *zoom:1;
35 | }
36 |
37 | /* MODALS */
38 | .modal-backdrop {
39 | _position: absolute;
40 | _top:0;
41 | _margin-top:0;
42 | _width:expression(eval(document.documentElement.scrollWidth));
43 | _height:expression(eval(document.documentElement.scrollHeight));
44 | }
45 | .modal {
46 | _position:absolute;
47 | _top:0;
48 | _margin-top:0;
49 | _top:expression(eval(document.documentElement.scrollTop));
50 | }
51 | .modal.fade.in {
52 | _filter:alpha(opacity=100);
53 | }
54 | .modal-backdrop {
55 | _filter: alpha(opacity=80);
56 | }
57 | .modal-body {
58 | _height:expression(this.scrollHeight > 400 ? "400px" : "auto");
59 | }
60 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/css/bootstrap/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/Public/css/bootstrap/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/css/bootstrap/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/Public/css/bootstrap/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/css/site.css:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Main navigation
4 | */
5 | .bs-docs-nav {
6 | text-shadow: 0 -1px 0 rgba(0,0,0,.15);
7 | /* background-color: #563d7c;*/
8 | border-color: #463265;
9 | box-shadow: 0 1px 0 rgba(255,255,255,.1);
10 | }
11 | .bs-docs-nav .navbar-collapse {
12 | border-color: #463265;
13 | }
14 | .bs-docs-nav .navbar-brand {
15 | color: #fff;
16 | }
17 | .bs-docs-nav .navbar-nav > li > a {
18 | color: #cdbfe3;
19 | }
20 | .bs-docs-nav .navbar-nav > li > a:hover {
21 | color: #fff;
22 | }
23 | .bs-docs-nav .navbar-nav > .active > a,
24 | .bs-docs-nav .navbar-nav > .active > a:hover {
25 | color: #fff;
26 | background:none;
27 | }
28 | .bs-docs-nav .navbar-toggle {
29 | border-color: #563d7c;
30 | }
31 | .bs-docs-nav .navbar-toggle:hover {
32 | background-color: #463265;
33 | border-color: #463265;
34 | }
35 |
36 | /* Page headers */
37 | .bs-header {
38 | padding: 40px 15px 20px; /* side padding builds on .container 15px, so 30px */
39 | margin:20px 0;
40 | font-size: 16px;
41 | text-align: left;
42 | text-shadow: 0 1px 0 rgba(0,0,0,.15);
43 | background-color: #000;
44 | color: #fff;
45 | ;background-repeat:repeat-x;
46 | background-image:-webkit-linear-gradient(45deg, #020031, #563d7c);
47 | background-image:-moz-linear-gradient(45deg, #020031, #563d7c);
48 | background-image:linear-gradient(45deg, #020031, #563d7c)
49 |
50 | }
51 | .bs-header p {
52 | font-weight: 300;
53 | line-height: 1.5;
54 | }
55 | /*
56 | * Footer
57 | *
58 | * Separated section of content at the bottom of all pages, save the homepage.
59 | */
60 |
61 | .bs-footer {
62 | padding-top: 40px;
63 | padding-bottom: 30px;
64 | margin-top: 40px;
65 | color: #777;
66 | text-align: left;
67 | border-top: 1px solid #e5e5e5;
68 | background-color:#f5f5f5
69 | }
70 | .footer-links {
71 | margin: 10px 0;
72 | padding-left: 0;
73 | }
74 | .footer-links li {
75 | display: inline;
76 | padding: 0 2px;
77 | }
78 | .footer-links li:first-child {
79 | padding-left: 0;
80 | }
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/images/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/Public/images/grid.png
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.multiselect2side/css/jquery.multiselect2side - 副本.css:
--------------------------------------------------------------------------------
1 | .ms2side__div {
2 | clear: left;
3 | width: 100%;
4 | padding: 1px;
5 | float: left;
6 | background : url('') repeat-x; /* HACK FOR CHROME */
7 | }
8 |
9 | .ms2side__select {
10 | float: left;
11 | }
12 |
13 | .ms2side__header {
14 | color: #000088;
15 | background-color: #EEEEFF;
16 | margin-left: 3px;
17 | width: 220px;
18 | height: 20px;
19 | }
20 |
21 | .ms2side__options, .ms2side__updown {
22 | float: left;
23 | font-size: 10pt;
24 | margin: 0;
25 | padding: 0 8px;
26 | width: 40px;
27 | color: black;
28 | text-align: center;
29 | overflow: hidden;
30 | }
31 |
32 | .ms2side__updown {
33 | font-size: 9pt;
34 | }
35 |
36 | .ms2side__options p, .ms2side__updown p {
37 | margin: 2px 0;
38 | padding: 0;
39 | cursor: pointer;
40 | border: 1px solid black;
41 | }
42 |
43 | .ms2side__options p.ms2side_hover, .ms2side__updown p.ms2side_hover {
44 | background-color: #F0F0FF;
45 | border-color: #0000FF;
46 | cursor: pointer;
47 | }
48 |
49 | .ms2side__options p.ms2side__hide, .ms2side__updown p.ms2side__hide {
50 | cursor: default;
51 | color: gray;
52 | border: 1px solid gray;
53 | background-color: #F0F0F0;
54 | }
55 |
56 | .ms2side__div select {
57 | width: 220px;
58 | float: left;
59 | }
60 |
61 |
62 | /* INPUT FOR SEARCH */
63 | .ms2side__header input {
64 | width: 80px;
65 | height: 12px;
66 | }
67 |
68 | .ms2side__header input.wait {
69 | width: 80px;
70 | height: 12px;
71 | background: #FFFFFF url(../img/loading.gif) no-repeat center right;
72 | }
73 |
74 | .ms2side__header input.small {
75 | width: 50px;
76 | height: 12px;
77 | }
78 |
79 |
80 | /* INPUT FOR SELECT SEARCH */
81 | .ms2side__header select {
82 | width: 100px;
83 | font-size: 11px;
84 | height: 18px;
85 | float: none;
86 | }
87 |
88 | .ms2side__header select.small {
89 | width: 70px;
90 | }
91 |
92 |
93 | /* REMOVE FILTER OPTION FOR SEARCH */
94 | .ms2side__header a {
95 | font-size: 10pt;
96 | padding: 0 8px;
97 | width: 16px;
98 | height: 16px;
99 | color: black;
100 | text-align: center;
101 | text-decoration: none;
102 | border: 1px solid gray;
103 | background: #FFFFFF url(../img/close.gif) no-repeat center center;
104 | margin: 0 0 0 3px;
105 | }
106 |
107 | .ms2side__header a:hover {
108 | background-color: #F0F0FF;
109 | border-color: gray;
110 | }
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.multiselect2side/css/jquery.multiselect2side.css:
--------------------------------------------------------------------------------
1 | .ms2side__div {
2 | clear: left;
3 | width: auto;
4 | padding: 1px;
5 | padding-top:14px;
6 | float: left;
7 | background : url('') repeat-x; /* HACK FOR CHROME */
8 | }
9 |
10 | .ms2side__select {
11 | float: left;
12 | }
13 |
14 | .ms2side__header {
15 | /*color: #000088;
16 | background-color: #EEEEFF;*/
17 | margin-left: 3px;
18 | margin-top:-20px;
19 | margin-bottom: 5px;
20 | width: 220px;
21 | height: 20px;
22 | }
23 |
24 | .ms2side__options, .ms2side__updown {
25 | float: left;
26 | font-size: 10pt;
27 | margin: 0;
28 | margin-top:8px;
29 | padding: 0 8px;
30 | width: 40px;
31 | color: black;
32 | text-align: center;
33 | overflow: hidden;
34 | }
35 |
36 | .ms2side__updown {
37 | font-size: 9pt;
38 | }
39 |
40 | .ms2side__options p, .ms2side__updown p {
41 | margin: 2px 0;
42 | padding: 0;
43 | cursor: pointer;
44 | border: 1px solid black;
45 | }
46 |
47 | .ms2side__options p.ms2side_hover, .ms2side__updown p.ms2side_hover {
48 | background-color: #F0F0FF;
49 | border-color: #0000FF;
50 | cursor: pointer;
51 | }
52 |
53 | .ms2side__options p.ms2side__hide, .ms2side__updown p.ms2side__hide {
54 | cursor: default;
55 | color: gray;
56 | border: 1px solid gray;
57 | background-color: #F0F0F0;
58 | }
59 |
60 | .ms2side__div select {
61 | width: 220px;
62 | float: left;
63 | }
64 |
65 |
66 | /* INPUT FOR SEARCH */
67 | .ms2side__header input {
68 | width: 80px;
69 | height: 12px;
70 | }
71 |
72 | .ms2side__header input.wait {
73 | width: 80px;
74 | height: 12px;
75 | background: #FFFFFF url(../img/loading.gif) no-repeat center right;
76 | }
77 |
78 | .ms2side__header input.small {
79 | width: 50px;
80 | height: 12px;
81 | }
82 |
83 |
84 | /* INPUT FOR SELECT SEARCH */
85 | .ms2side__header select {
86 | width: 100px;
87 | font-size: 11px;
88 | height: 18px;
89 | float: none;
90 | }
91 |
92 | .ms2side__header select.small {
93 | width: 70px;
94 | }
95 |
96 |
97 | /* REMOVE FILTER OPTION FOR SEARCH */
98 | .ms2side__header a {
99 | font-size: 10pt;
100 | padding: 0 8px;
101 | width: 16px;
102 | height: 16px;
103 | color: black;
104 | text-align: center;
105 | text-decoration: none;
106 | border: 1px solid gray;
107 | background: #FFFFFF url(../img/close.gif) no-repeat center center;
108 | margin: 0 0 0 3px;
109 | }
110 |
111 | .ms2side__header a:hover {
112 | background-color: #F0F0FF;
113 | border-color: gray;
114 | }
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.multiselect2side/img/close.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/Public/js/jquery.multiselect2side/img/close.gif
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.multiselect2side/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/Public/js/jquery.multiselect2side/img/loading.gif
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.multiselect2side/img/search.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/Public/js/jquery.multiselect2side/img/search.gif
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.multiselect2side/jmultiselect2side.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jquery.pin.min.js:
--------------------------------------------------------------------------------
1 | (function(e){e.fn.pin=function(a){var g=0,h=[],n=!1,k=e(window),a=a||{},m=function(){for(var i=0,d=h.length;i");
2 | var g=e.extend({top:0,bottom:0},a.padding||{});b.data("pin",{pad:g,from:(a.containerSelector?j.top:f.top)-g.top,to:j.top+c.height()-b.outerHeight()-g.bottom,end:j.top+c.height(),parentTop:l.top});b.css({width:b.outerWidth()});b.parent().css("height",b.outerHeight())}}},o=function(){if(!n){g=k.scrollTop();for(var i=[],d=0,b=h.length;df.end?c.css("position",""):jg?("fixed"!=c.css("position")&&c.css({left:c.offset().left,
3 | top:f.pad.top}).css("position","fixed"),a.activeClass&&c.addClass(a.activeClass)):g>=l?(c.css({left:"",top:l-f.parentTop+f.pad.top}).css("position","absolute"),a.activeClass&&c.addClass(a.activeClass)):(c.css({position:"",top:"",left:""}),a.activeClass&&c.removeClass(a.activeClass))}}h=i}},p=function(){m();o()};this.each(function(){var a=e(this),d=e(this).data("pin")||{};if(!d||!d.update)h.push(a),e("img",this).one("load",m),d.update=p,e(this).data("pin",d)});k.scroll(o);k.resize(function(){m()});
4 | m();k.load(p);return this}})(jQuery);
5 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/Public/js/jsPlumb/各版本下载.txt:
--------------------------------------------------------------------------------
1 | https://github.com/sporritt/jsPlumb/releases
2 |
3 |
4 | 1.4.0在IE8中有bug
5 | 使用 1.3.16 兼容性目前最理想。
--------------------------------------------------------------------------------
/public/vendor/flowdesign/README.md:
--------------------------------------------------------------------------------
1 | Jquery Web 在线流程设计器 Flowdesign.leipi.org
2 | ==========
3 |
4 | 官网:http://flowdesign.leipi.org
5 |
6 | 详情,请到官网了解。
7 |
--------------------------------------------------------------------------------
/public/vendor/flowdesign/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/flowdesign/favicon.ico
--------------------------------------------------------------------------------
/public/vendor/layer/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 layui
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/public/vendor/layer/README.md:
--------------------------------------------------------------------------------
1 |
2 | ## 概要
3 | layer是一款近年来备受青睐的web弹层组件,这完全得益于她全方位的解决方案。她致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验。在与同类组件的比较中,layer总是能轻易获胜。她尽可能地在以更少的代码展现更强健的功能,且格外注重性能的提升、易用和实用性,正因如此,越来越多的开发者将媚眼投上了layer。layer兼容了包括IE6在内的所有主流浏览器。 她数量可观的接口,使得您可以自定义太多您需要的风格,每一种弹层模式各具特色,皆广受欢迎。当然,这种“王婆卖瓜”的陈述听起来总是有点难受,因此你需要进一步了解她是否真的如你所愿。
4 |
5 | [文档与演示](http://layer.layui.com/)
6 |
7 | ## 愿景
8 | layer致力于打造国内最盛行的弹层组件,为web开发提供强劲动力。
9 |
10 | ## 现状
11 | 因着数年的坚持维护,截至到2017年03月21日,已运用在超过30万家Web平台,其中不乏众多知名大型网站。目前layer已经成为国内乃至全世界最多人使用的Web弹层解决方案,并且她仍在与Layui一并高速发展。
12 |
13 |
14 | ## 相关
15 | [官网](http://layer.layui.com/)、[社区](http://fly.layui.com)
--------------------------------------------------------------------------------
/public/vendor/layer/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "layer",
3 | "main": "src/layer.js",
4 | "version": "3.0.3",
5 | "homepage": "https://github.com/sentsin/layer",
6 | "authors": [
7 | "sentsin "
8 | ],
9 | "description": "弹窗组件",
10 | "moduleType": [
11 | "amd",
12 | "globals"
13 | ],
14 | "keywords": [
15 | "layer",
16 | "layui",
17 | "dialog"
18 | ],
19 | "license": "MIT"
20 | }
21 |
--------------------------------------------------------------------------------
/public/vendor/layer/build/skin/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/build/skin/default/icon-ext.png
--------------------------------------------------------------------------------
/public/vendor/layer/build/skin/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/build/skin/default/icon.png
--------------------------------------------------------------------------------
/public/vendor/layer/build/skin/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/build/skin/default/loading-0.gif
--------------------------------------------------------------------------------
/public/vendor/layer/build/skin/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/build/skin/default/loading-1.gif
--------------------------------------------------------------------------------
/public/vendor/layer/build/skin/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/build/skin/default/loading-2.gif
--------------------------------------------------------------------------------
/public/vendor/layer/build/skin/moon/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/build/skin/moon/default.png
--------------------------------------------------------------------------------
/public/vendor/layer/gulpfile.js:
--------------------------------------------------------------------------------
1 | /**
2 | layer构建
3 | */
4 |
5 | var pkg = require('./package.json');
6 |
7 | var gulp = require('gulp');
8 | var uglify = require('gulp-uglify');
9 | var minify = require('gulp-minify-css');
10 | var rename = require('gulp-rename');
11 | var header = require('gulp-header');
12 | var del = require('del');
13 |
14 | var task = {
15 | layer: function() {
16 | gulp.src('./src/**/*.css')
17 | .pipe(minify({
18 | compatibility: 'ie7'
19 | }))
20 | .pipe(gulp.dest('./build'));
21 |
22 | return gulp.src('./src/layer.js').pipe(uglify())
23 | .pipe(header('/*! <%= pkg.name %>-v<%= pkg.version %> <%= pkg.description %> <%= pkg.license %> License <%= pkg.homepage %> By <%= pkg.author %> */\n ;', {pkg: pkg}))
24 | .pipe(gulp.dest('./build'));
25 |
26 | }
27 | ,mobile: function() {
28 | return gulp.src('./src/mobile/layer.js').pipe(uglify())
29 | .pipe(header('/*! <%= pkg.name %> mobile-v<%= pkg.mobile %> <%= pkg.description %> <%= pkg.license %> License <%= pkg.homepage %>mobile By <%= pkg.author %> */\n ;', {pkg: pkg}))
30 | .pipe(gulp.dest('./build/mobile'));
31 | }
32 | ,other: function(){
33 | gulp.src('./src/**/*.{png,gif}').pipe(rename({}))
34 | .pipe(gulp.dest('./build'));
35 | }
36 | };
37 |
38 |
39 | gulp.task('clear', function(cb){ //清理
40 | return del(['./build/*'], cb);
41 | });
42 | gulp.task('layer', task.minjs); //压缩PC版本
43 | gulp.task('mobile', task.mincss); //压缩Mobile文件
44 | gulp.task('other', task.other); //移动一些配件
45 |
46 | //全部
47 | gulp.task('default', ['clear'], function(){
48 | for(var key in task){
49 | task[key]();
50 | }
51 | });
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/public/vendor/layer/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "layer",
3 | "version": "3.0.3",
4 | "mobile": "2.0.0",
5 | "description": "Web弹层组件",
6 | "main": "src/layer.js",
7 | "license": "MIT",
8 | "scripts": {
9 | "run": "gulp"
10 | },
11 | "repository": {
12 | "type": "https",
13 | "url": "https://github.com/sentsin/layer.git"
14 | },
15 | "author": "贤心",
16 | "homepage": "http://layer.layui.com/",
17 | "devDependencies": {
18 | "gulp": "^3.9.0",
19 | "gulp-minify-css": "^1.2.4",
20 | "gulp-uglify": "^1.5.4",
21 | "gulp-rename": "^1.2.2",
22 | "gulp-header": "^1.8.8",
23 | "del": "^2.2.2"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/public/vendor/layer/src/README.md:
--------------------------------------------------------------------------------
1 |
2 | ## 注意
3 | 开发版源码随时可能会提交,因此生产环境更建议build目录中压缩后的layer.js。
--------------------------------------------------------------------------------
/public/vendor/layer/src/mobile/README.md:
--------------------------------------------------------------------------------
1 |
2 | ## layer mobile
3 | layer mobile是为移动设备(手机、平板等webkit内核浏览器/webview)量身定做的弹层支撑,采用Native JavaScript编写,完全独立于PC版的layer,您需要按照场景选择使用。
4 |
5 | [文档与演示](http://sentsin.com/layui/layer/)
6 |
7 | 1. 无需依赖任何库,只加载layer.m.js即可
8 | 2. 小巧玲珑,性能卓越、柔情似水…
9 | 3. 具备无以伦比的自适应功能
10 | 4. 灵活的皮肤自定义支撑,充分确保弹层风格多样化
11 | 5. 丰富、科学的接口,让弹弹弹层无所不能
12 |
13 | ## 备注
14 | [官网](http://sentsin.com/layui/layer/)、[有问必答](http://say.sentsin.com/home-48.html)
15 |
--------------------------------------------------------------------------------
/public/vendor/layer/src/skin/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/src/skin/default/icon-ext.png
--------------------------------------------------------------------------------
/public/vendor/layer/src/skin/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/src/skin/default/icon.png
--------------------------------------------------------------------------------
/public/vendor/layer/src/skin/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/src/skin/default/loading-0.gif
--------------------------------------------------------------------------------
/public/vendor/layer/src/skin/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/src/skin/default/loading-1.gif
--------------------------------------------------------------------------------
/public/vendor/layer/src/skin/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/layer/src/skin/default/loading-2.gif
--------------------------------------------------------------------------------
/public/vendor/layer/test/demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | layer-更懂你的web弹窗解决方案
9 |
10 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | @Name:layer-v 弹层组件说明
30 | @Author:贤心
31 | @Site:http://layer.layui.com/
32 |
33 |
34 | 【注意事项】
35 | 一、使用时,请把文件夹layer整个放置在您站点的任何一个目录,只需引入layer.js即可,除jQuery外,其它文件无需再引入。
36 | 二、如果您的js引入是通过合并处理或者您不想采用layer自动获取的绝对路径,您可以通过layer.config()来配置(详见官网API页)
37 | 三、jquery需1.8+
38 | 四、更多使用说明与演示,请参见layer官网。
39 | 五、使用时请务必保留来源,请勿用于违反我国法律法规的web平台。
40 | 六、layer遵循MIT开源协议,将永久性提供无偿服务。
41 |
42 |
43 |
44 |
50 |
51 |
76 |
77 |
--------------------------------------------------------------------------------
/public/vendor/toastr/.gitattributes:
--------------------------------------------------------------------------------
1 | # Set default behaviour, in case users don't have core.autocrlf set.
2 | * text=auto
3 |
4 | # Explicitly declare text files we want to always be normalized and converted
5 | # to native line endings on checkout.
6 | *.c text
7 | *.h text
8 |
9 | # Declare files that will always have CRLF line endings on checkout.
10 | *.sln text eol=crlf
11 | *.csproj text eol=crlf
12 |
13 | # Denote all files that are truly binary and should not be modified.
14 | *.png binary
15 | *.jpg binary
--------------------------------------------------------------------------------
/public/vendor/toastr/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | bower_components
3 |
4 | # Ignore Visual Studio Project #
5 | ###################
6 | *.config
7 | *.user
8 | *.csproj
9 | *.gpState
10 | *.sln
11 | *.suo
12 | /bin
13 | /obj
14 | /packages
15 | /Properties
16 | /Scripts
17 | /report
18 | /tests/coverage
19 |
20 |
21 | # Compiled source #
22 | ###################
23 | *.com
24 | *.class
25 | *.dll
26 | *.exe
27 | *.o
28 | *.so
29 |
30 | # Packages #
31 | ############
32 | # it's better to unpack these files and commit the raw source
33 | # git has its own built in compression methods
34 | *.7z
35 | *.dmg
36 | *.gz
37 | *.iso
38 | *.jar
39 | *.rar
40 | *.tar
41 | *.zip
42 |
43 | # Logs and databases #
44 | ######################
45 | *.log
46 | *.sql
47 | *.sqlite
48 |
49 | # OS generated files #
50 | ######################
51 | .DS_Store*
52 | ehthumbs.db
53 | Icon?
54 | Thumbs.db
55 |
56 | # WebStorm #
57 | ######################
58 | .idea/
--------------------------------------------------------------------------------
/public/vendor/toastr/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "bitwise": true,
3 | "camelcase": true,
4 | "curly": true,
5 | "eqeqeq": true,
6 | "es3": false,
7 | "forin": true,
8 | "freeze": true,
9 | "immed": true,
10 | "indent": 4,
11 | "latedef": "nofunc",
12 | "newcap": true,
13 | "noarg": true,
14 | "noempty": true,
15 | "nonbsp": true,
16 | "nonew": true,
17 | "plusplus": false,
18 | "quotmark": "single",
19 | "undef": true,
20 | "unused": false,
21 | "strict": false,
22 | "maxparams": 10,
23 | "maxdepth": 5,
24 | "maxstatements": 40,
25 | "maxcomplexity": 8,
26 | "maxlen": 120,
27 |
28 | "asi": false,
29 | "boss": false,
30 | "debug": false,
31 | "eqnull": true,
32 | "esnext": false,
33 | "evil": false,
34 | "expr": false,
35 | "funcscope": false,
36 | "globalstrict": false,
37 | "iterator": false,
38 | "lastsemic": false,
39 | "laxbreak": false,
40 | "laxcomma": false,
41 | "loopfunc": true,
42 | "maxerr": false,
43 | "moz": false,
44 | "multistr": false,
45 | "notypeof": false,
46 | "proto": false,
47 | "scripturl": false,
48 | "shadow": false,
49 | "sub": true,
50 | "supernew": false,
51 | "validthis": false,
52 | "noyield": false,
53 |
54 | "browser": true,
55 | "node": true,
56 |
57 | "globals": {
58 | "angular": false,
59 | "$": false,
60 | "module": false,
61 | "require": false
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/public/vendor/toastr/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 |
5 | install:
6 | - npm install -g gulp karma-cli
7 | - npm install
8 |
9 | script:
10 | - npm test
11 |
12 | cache:
13 | directories:
14 | - node_modules
15 |
16 | branches:
17 | only:
18 | - develop
19 | - master
20 |
--------------------------------------------------------------------------------
/public/vendor/toastr/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration
2 | // Generated on Thu Sep 04 2014 07:41:43 GMT-0400 (EDT)
3 |
4 | module.exports = function (config) {
5 | config.set({
6 |
7 | // base path that will be used to resolve all patterns (eg. files, exclude)
8 | basePath: '',
9 |
10 |
11 | // frameworks to use
12 | // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
13 | frameworks: ['qunit'],
14 |
15 | // list of files / patterns to load in the browser
16 | files: [
17 | 'node_modules/jquery/dist/jquery.min.js',
18 | 'build/toastr.css',
19 | 'toastr.js',
20 | 'node_modules/qunitjs/qunit/qunit.js',
21 | 'tests/unit/qunit-helper.js',
22 | 'tests/unit/toastr-tests.js'
23 | ],
24 |
25 |
26 | // list of files to exclude
27 | exclude: [],
28 |
29 |
30 | // preprocess matching files before serving them to the browser
31 | // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
32 | preprocessors: {
33 | 'toastr.js': 'coverage'
34 | },
35 |
36 |
37 | // test results reporter to use
38 | // possible values: 'dots', 'progress'
39 | // available reporters: https://npmjs.org/browse/keyword/karma-reporter
40 | reporters: ['progress', 'coverage'],
41 |
42 | coverageReporter: {
43 | type: 'lcov',
44 | dir: 'tests/coverage'
45 | },
46 |
47 | // web server port
48 | port: 9876,
49 |
50 |
51 | // enable / disable colors in the output (reporters and logs)
52 | colors: true,
53 |
54 |
55 | // level of logging
56 | // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
57 | logLevel: config.LOG_INFO,
58 |
59 |
60 | // enable / disable watching file and executing tests whenever any file changes
61 | autoWatch: false,
62 |
63 |
64 | // start these browsers
65 | // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
66 | browsers: ['PhantomJS'],
67 |
68 |
69 | // Continuous Integration mode
70 | // if true, Karma captures browsers, runs the tests and exits
71 | singleRun: true
72 | });
73 | };
74 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.0.0.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.0.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0.0
5 | John Papa,Hans Fjällemark
6 | John Papa,Hans Fjällemark
7 | http://www.opensource.org/licenses/mit-license.php
8 | https://github.com/CodeSeven/toastr
9 |
10 |
11 |
12 | toastr
13 | toastr
14 | false
15 | 3 Easy Steps:
16 |
17 | 1) Link to toastr.css and toastr-responsive.css
18 | 2) Link to toastr.js
19 | 3) Use toastr to display a toast for info, success, warning or error
20 |
21 | // Display an info toast with no title
22 | toastr.info('Are you the 6 fingered man?')
23 |
24 | *** For other API calls, see the demo
25 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
26 | Copyright © 2012 Hans Fjällemark & John Papa.
27 | en-US
28 | toastr, toast, notification, dialog, jquery
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.0.1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.1.nuspec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.0.1.nuspec
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.0.2.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.2.nuspec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.0.2.nuspec
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.3.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.0.3.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.0.3.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.0.2
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | false
12 | 3 Easy Steps:
13 |
14 | 1) Link to toastr.css and toastr-responsive.css
15 | 2) Link to toastr.js
16 | 3) Use toastr to display a toast for info, success, warning or error
17 |
18 | // Display an info toast with no title
19 | toastr.info('Are you the 6 fingered man?')
20 |
21 | *** For other API calls, see the demo
22 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
23 | Minor updates for long unbroken string going outside toast and new feature to keep the toast around after hover-off for an extended timeout.
24 |
25 | Set extendedTimeOut and timeOut to 0 to avoid toastr from fading away.
26 | Copyright © 2012 Hans Fjällemark & John Papa.
27 | en-US
28 | toastr, toast, notification, dialog, jquery
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.0.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.0.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.0
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | false
12 | 3 Easy Steps:
13 |
14 | (1) Link to toastr.css
15 | (2) Link to toastr.js
16 | (3) Use toastr to display a toast for info, success, warning or error
17 |
18 | // Display an info toast with no title
19 | toastr.info('Are you the 6 fingered man?')
20 |
21 | *** For other API calls, see the demo
22 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
23 | Added AMD support (and backwards compat with non AMD), toastr.clear() method, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
24 | Copyright © 2012 Hans Fjällemark & John Papa.
25 | en-US
26 | toastr, toast, notification, dialog, jquery
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.1.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.1
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | false
12 | 3 Easy Steps:
13 |
14 | (1) Link to toastr.css
15 | (2) Link to toastr.js
16 | (3) Use toastr to display a toast for info, success, warning or error
17 |
18 | // Display an info toast with no title
19 | toastr.info('Are you the 6 fingered man?')
20 |
21 | *** For other API calls, see the demo
22 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
23 | Added AMD support (and backwards compat with non AMD), toastr.clear() method, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
24 | Copyright © 2012 Hans Fjällemark & John Papa.
25 | en-US
26 | toastr, toast, notification, dialog, jquery
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.2.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.2.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.2
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | false
12 | 3 Easy Steps:
13 |
14 | (1) Link to toastr.css
15 | (2) Link to toastr.js
16 | (3) Use toastr to display a toast for info, success, warning or error
17 |
18 | // Display an info toast with no title
19 | toastr.info('Are you the 6 fingered man?')
20 |
21 | *** For other API calls, see the demo
22 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
23 | Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
24 | Copyright © 2012 Hans Fjällemark & John Papa.
25 | en-US
26 | toastr, toast, notification, dialog, jquery
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.3.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.3.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.4.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.4.1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.4.1.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.4.1
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
25 |
26 | Fix to the toastr.min.js file
27 | Copyright © 2012 Hans Fjällemark & John Papa.
28 | en-US
29 | toastr, toast, notification, dialog, jquery
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.4.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.4.2.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.4.2.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.4.2
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
25 |
26 | Fix to the toastr.min.js file
27 | Copyright © 2012 Hans Fjällemark & John Papa.
28 | en-US
29 | toastr, toast, notification, dialog, jquery
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.4.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.4.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.4.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.4
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
25 |
26 | Fix to the toastr.min.js file
27 | Copyright © 2012 Hans Fjällemark & John Papa.
28 | en-US
29 | toastr, toast, notification, dialog, jquery
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.5.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.1.5.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.1.5.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.1.5
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Now using SemVer for JavaScript files.
25 | Copyright © 2012 Hans Fjällemark & John Papa.
26 | en-US
27 | toastr, toast, notification, dialog, jquery
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.2.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.2.0.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.2.0.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.2.0
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added getContainer().
25 | Fixed clear() bug.
26 | Removed semver from file name.
27 | Copyright © 2012 Hans Fjällemark & John Papa.
28 | en-US
29 | toastr, toast, notification, dialog, jquery
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.2.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.2.1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.2.1.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.2.1
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added getContainer().
25 | Fixed clear() bug.
26 | Removed semver from file name.
27 | Copyright © 2012 Hans Fjällemark & John Papa.
28 | en-US
29 | toastr, toast, notification, dialog, jquery
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.2.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.2.2.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.2.2.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.2.2
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added getContainer().
25 | Fixed clear() bug.
26 | Removed semver from file name.
27 | Copyright © 2012 Hans Fjällemark & John Papa.
28 | en-US
29 | toastr, toast, notification, dialog, jquery
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.3.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.3.0.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.3.0.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 1.3.0
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | https://github.com/CodeSeven/toastr
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Added onFadeIn and onFadeOut callbacks.
25 | toastr.options.onFadeIn = function() { console.log('hello'); }
26 | Added option <code>newestOnTop</code> to show toasts in oldest or newest first order.
27 | toastr.options.newestOnTop = false;
28 | Fixed margins on full width toasts
29 | Added LESS file.
30 | Added min file for JS and CSS
31 | Added missing vendor prefixes in CSS.
32 | Various minor bug fixes.
33 | Added unit tests for new features.
34 | Copyright © 2012 Hans Fjällemark & John Papa.
35 | en-US
36 | toastr, toast, notification, dialog, jquery
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.1.3.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.1.3.1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.0-rc1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.2.0.0-rc1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.2.0.1.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.1.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 2.0.1
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | http://toastrjs.com/
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | The following animations options have been deprecated and should be replaced:
25 |
26 | Replace options.fadeIn with options.showDuration
27 | Replace options.onFadeIn with options.onShown
28 | Replace options.fadeOut with options.hideDuration
29 | Replace options.onFadeOut with options.onHidden
30 |
31 | Optional 'close' button, bug fixes, and improved responsive design.
32 |
33 | For other changes, see http://toastrjs.com
34 | Copyright © 2012 Hans Fjällemark & John Papa.
35 | en-US
36 | toastr, toast, notification, dialog, jquery
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.2.0.2.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.2.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 2.0.2
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | http://toastrjs.com/
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Change log: https://github.com/CodeSeven/toastr/blob/master/CHANGELOG.md
25 | Copyright © 2012-2014 Hans Fjällemark & John Papa.
26 | en-US
27 | toastr, toast, notification, dialog, jquery
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.3.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/nuget/toastr.2.0.3.nupkg
--------------------------------------------------------------------------------
/public/vendor/toastr/nuget/toastr.2.0.3.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr
5 | 2.0.3
6 | toastr
7 | John Papa,Hans Fjällemark
8 | John Papa,Hans Fjällemark
9 | http://www.opensource.org/licenses/mit-license.php
10 | http://toastrjs.com/
11 | http://johnpapa.net/wp-content/images/toastr-icon.png
12 | false
13 | 3 Easy Steps:
14 |
15 | (1) Link to toastr.css
16 | (2) Link to toastr.js
17 | (3) Use toastr to display a toast for info, success, warning or error
18 |
19 | // Display an info toast with no title
20 | toastr.info('Are you the 6 fingered man?')
21 |
22 | *** For other API calls, see the demo
23 | Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
24 | Change log: https://github.com/CodeSeven/toastr/blob/master/CHANGELOG.md
25 | Copyright © 2012-2014 Hans Fjällemark & John Papa.
26 | en-US
27 | toastr, toast, notification, dialog, jquery
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/public/vendor/toastr/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "toastr",
3 | "filename": "build/toastr.min.js",
4 | "main": "toastr.js",
5 | "style": "build/toastr.min.css",
6 | "version": "2.1.3",
7 | "description": "ToastrJS is a JavaScript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.",
8 | "homepage": "http://www.toastrjs.com",
9 | "keywords": [
10 | "Toastr",
11 | "ToastrJS",
12 | "toastr.js"
13 | ],
14 | "maintainers": [
15 | {
16 | "name": "John Papa",
17 | "web": "http://www.johnpapa.net",
18 | "twitter": "@john_papa"
19 | },
20 | {
21 | "name": "Tim Ferrell",
22 | "web": "https://twitter.com/ferrell_tim",
23 | "twitter": "@ferrell_tim"
24 | }
25 | ],
26 | "repository": {
27 | "type": "git",
28 | "url": "git://github.com/CodeSeven/toastr.git"
29 | },
30 | "bugs": "http://stackoverflow.com/questions/tagged/toastr",
31 | "licenses": [
32 | {
33 | "type": "MIT",
34 | "url": "http://www.opensource.org/licenses/mit-license.php"
35 | }
36 | ],
37 | "dependencies": {
38 | "jquery": ">=1.12.0"
39 | },
40 | "devDependencies": {
41 | "gulp": "^3.8.10",
42 | "gulp-bytediff": "^0.2.0",
43 | "gulp-jscs": "^1.3.0",
44 | "gulp-jshint": "^1.9.0",
45 | "gulp-less": "^3.0.3",
46 | "gulp-load-plugins": "^0.7.1",
47 | "gulp-load-utils": "0.0.4",
48 | "gulp-minify-css": "^0.3.11",
49 | "gulp-rename": "^1.2.0",
50 | "gulp-sourcemaps": "^1.2.8",
51 | "gulp-task-listing": "^0.3.0",
52 | "gulp-uglify": "^1.0.1",
53 | "gulp-util": "^3.0.1",
54 | "jquery": "^2.1.1",
55 | "jshint-stylish": "^1.0.0",
56 | "karma": "^0.12.25",
57 | "karma-coverage": "^0.2.6",
58 | "karma-phantomjs-launcher": "^0.1.4",
59 | "karma-qunit": "^0.1.3",
60 | "merge-stream": "^0.1.6",
61 | "phantomjs": "^1.9.7-15",
62 | "plato": "^1.2.2",
63 | "qunitjs": "~1.14.0"
64 | },
65 | "scripts": {
66 | "test": "gulp test"
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/public/vendor/toastr/release checklist.md:
--------------------------------------------------------------------------------
1 | Toastr Release Checklist
2 |
3 | 1. Update Toastr Version
4 | * toastr.js
5 | * bower.json (toastr-bower repo)
6 | * package.json
7 | * nuget versions and dependency versions
8 | * readme file for github repo
9 | * Consider HotTowel VSIX
10 | 2. Gulp
11 | * run main demo
12 | * `gulp analyze`
13 | * `gulp test`
14 | * `gulp`
15 | 3. Nuget
16 | * Copy new files in
17 | * Build
18 | * Test
19 | 4. CDNJS
20 | * Update CDNJS
21 | 5. Update Website with New Downloads
22 | 6. Publish Bower
23 | * Include License and Readme
24 | * Test Locally
25 | * Update Github repo toastr-bower
26 | * Github tag
27 | * Register with Bower
28 | 7. Publish Nugets
29 | 8. Release on Github
30 | * Tag with semver
31 | * Attach all artifacts
32 | 9. Blog post
--------------------------------------------------------------------------------
/public/vendor/toastr/tests/toastr-tests.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | toastr QUnit Tests
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | test markup, will be hidden
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/public/vendor/toastr/tests/unit/qunit-helper.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Hack to expose spec count from QUnit to Karma
3 | */
4 |
5 | var testCount = 0;
6 | var qunitTest = QUnit.test;
7 | QUnit.test = window.test = function () {
8 | testCount += 1;
9 | qunitTest.apply(this, arguments);
10 | };
11 | QUnit.begin(function (args) {
12 | args.totalTests = testCount;
13 | });
14 |
--------------------------------------------------------------------------------
/public/vendor/toastr/tests/unit/x.js:
--------------------------------------------------------------------------------
1 | test('test test', 1, function () {
2 | ok(1 === 1, '1 equals 1');
3 | });
4 |
--------------------------------------------------------------------------------
/public/vendor/toastr/toastr-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Clago/workflow/d443b2af05d87367154c5b2877cf0cd1f493cdee/public/vendor/toastr/toastr-icon.png
--------------------------------------------------------------------------------
/resources/assets/js/app.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * First we will load all of this project's JavaScript dependencies which
4 | * includes Vue and other libraries. It is a great starting point when
5 | * building robust, powerful web applications using Vue and Laravel.
6 | */
7 |
8 | require('./bootstrap');
9 |
10 | window.Vue = require('vue');
11 |
12 | /**
13 | * Next, we will create a fresh Vue application instance and attach it to
14 | * the page. Then, you may begin adding components to this application
15 | * or customize the JavaScript scaffolding to fit your unique needs.
16 | */
17 |
18 | Vue.component('example', require('./components/Example.vue'));
19 |
20 | const app = new Vue({
21 | el: '#app'
22 | });
23 |
--------------------------------------------------------------------------------
/resources/assets/js/bootstrap.js:
--------------------------------------------------------------------------------
1 |
2 | window._ = require('lodash');
3 |
4 | /**
5 | * We'll load jQuery and the Bootstrap jQuery plugin which provides support
6 | * for JavaScript based Bootstrap features such as modals and tabs. This
7 | * code may be modified to fit the specific needs of your application.
8 | */
9 |
10 | try {
11 | window.$ = window.jQuery = require('jquery');
12 |
13 | require('bootstrap-sass');
14 | } catch (e) {}
15 |
16 | /**
17 | * We'll load the axios HTTP library which allows us to easily issue requests
18 | * to our Laravel back-end. This library automatically handles sending the
19 | * CSRF token as a header based on the value of the "XSRF" token cookie.
20 | */
21 |
22 | window.axios = require('axios');
23 |
24 | window.axios.defaults.headers.common['X-CSRF-TOKEN'] = window.Laravel.csrfToken;
25 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
26 |
27 | /**
28 | * Echo exposes an expressive API for subscribing to channels and listening
29 | * for events that are broadcast by Laravel. Echo and event broadcasting
30 | * allows your team to easily build robust real-time web applications.
31 | */
32 |
33 | // import Echo from 'laravel-echo'
34 |
35 | // window.Pusher = require('pusher-js');
36 |
37 | // window.Echo = new Echo({
38 | // broadcaster: 'pusher',
39 | // key: 'your-pusher-key'
40 | // });
41 |
--------------------------------------------------------------------------------
/resources/assets/js/components/Example.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Example Component
7 |
8 |
9 | I'm an example component!
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
24 |
--------------------------------------------------------------------------------
/resources/assets/sass/_variables.scss:
--------------------------------------------------------------------------------
1 |
2 | // Body
3 | $body-bg: #f5f8fa;
4 |
5 | // Borders
6 | $laravel-border-color: darken($body-bg, 10%);
7 | $list-group-border: $laravel-border-color;
8 | $navbar-default-border: $laravel-border-color;
9 | $panel-default-border: $laravel-border-color;
10 | $panel-inner-border: $laravel-border-color;
11 |
12 | // Brands
13 | $brand-primary: #3097D1;
14 | $brand-info: #8eb4cb;
15 | $brand-success: #2ab27b;
16 | $brand-warning: #cbb956;
17 | $brand-danger: #bf5329;
18 |
19 | // Typography
20 | $icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
21 | $font-family-sans-serif: "Raleway", sans-serif;
22 | $font-size-base: 14px;
23 | $line-height-base: 1.6;
24 | $text-color: #636b6f;
25 |
26 | // Navbar
27 | $navbar-default-bg: #fff;
28 |
29 | // Buttons
30 | $btn-default-color: $text-color;
31 |
32 | // Inputs
33 | $input-border: lighten($text-color, 40%);
34 | $input-border-focus: lighten($brand-primary, 25%);
35 | $input-color-placeholder: lighten($text-color, 30%);
36 |
37 | // Panels
38 | $panel-default-heading-bg: #fff;
39 |
--------------------------------------------------------------------------------
/resources/assets/sass/app.scss:
--------------------------------------------------------------------------------
1 |
2 | // Fonts
3 | @import url(https://fonts.googleapis.com/css?family=Raleway:300,400,600);
4 |
5 | // Variables
6 | @import "variables";
7 |
8 | // Bootstrap
9 | @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
10 |
--------------------------------------------------------------------------------
/resources/lang/en/auth.php:
--------------------------------------------------------------------------------
1 | 'These credentials do not match our records.',
17 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/lang/en/pagination.php:
--------------------------------------------------------------------------------
1 | '« Previous',
17 | 'next' => 'Next »',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/lang/en/passwords.php:
--------------------------------------------------------------------------------
1 | 'Passwords must be at least six characters and match the confirmation.',
17 | 'reset' => 'Your password has been reset!',
18 | 'sent' => 'We have e-mailed your password reset link!',
19 | 'token' => 'This password reset token is invalid.',
20 | 'user' => "We can't find a user with that e-mail address.",
21 |
22 | ];
23 |
--------------------------------------------------------------------------------
/resources/views/auth/passwords/email.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
7 |
8 |
Reset Password
9 |
10 | @if (session('status'))
11 |
12 | {{ session('status') }}
13 |
14 | @endif
15 |
16 |
41 |
42 |
43 |
44 |
45 |
46 | @endsection
47 |
--------------------------------------------------------------------------------
/resources/views/dept/create.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
54 | @endsection
55 |
--------------------------------------------------------------------------------
/resources/views/dept/edit.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
55 | @endsection
56 |
--------------------------------------------------------------------------------
/resources/views/dept/index.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
7 |
8 | 添加部门
9 |
10 |
11 |
12 |
部门列表
13 |
16 |
17 |
18 |
19 | 部门 |
20 | 部门主管 |
21 | 部门经理 |
22 | 创建时间 |
23 | 操作 |
24 |
25 |
26 |
27 | @foreach($depts as $v)
28 |
29 |
30 | {{$v->html}}{{$v->dept_name}}
31 | |
32 |
33 | @if($v->director)
34 | {{$v->director->name}}
35 | @else
36 | --
37 | @endif
38 | |
39 |
40 | @if($v->manager)
41 | {{$v->manager->name}}
42 | @else
43 | --
44 | @endif
45 | |
46 | {{$v->created_at}} |
47 |
48 | 编辑
49 | 删除
50 | |
51 |
52 | @endforeach
53 |
54 |
55 |
56 |
57 |
58 |
59 | @endsection
60 |
--------------------------------------------------------------------------------
/resources/views/emails/notify.blade.php:
--------------------------------------------------------------------------------
1 | {{$content}}
--------------------------------------------------------------------------------
/resources/views/emp/create.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
54 | @endsection
55 |
--------------------------------------------------------------------------------
/resources/views/emp/edit.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
55 | @endsection
56 |
--------------------------------------------------------------------------------
/resources/views/emp/index.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
7 | 添加员工
8 |
9 |
10 |
11 |
员工列表
12 |
15 |
16 |
17 |
18 | 姓名 |
19 | 部门 |
20 | 邮箱 |
21 | 是否离职 |
22 | 创建时间 |
23 | 操作 |
24 |
25 |
26 |
27 | @foreach($emps as $v)
28 |
29 | {{$v->name}} |
30 |
31 | @if($v->dept)
32 | {{$v->dept->dept_name}}
33 | @else
34 | 暂无部门
35 | @endif
36 | |
37 | {{$v->email}} |
38 |
39 | {{$v->leave?'离职':'在职'}}
40 | |
41 | {{$v->created_at}} |
42 |
43 | 编辑
44 | 删除
45 | |
46 |
47 | @endforeach
48 |
49 |
50 |
51 |
52 |
53 |
54 | @endsection
55 |
--------------------------------------------------------------------------------
/resources/views/entry/create.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
{{$flow->flow_name}}
7 |
25 |
26 |
27 | @endsection
28 |
--------------------------------------------------------------------------------
/resources/views/entry/edit.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
{{$entry->title}}
7 |
26 |
27 |
28 | @endsection
29 |
--------------------------------------------------------------------------------
/resources/views/entry/show.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
{{$entry->title}}
7 |
26 |
27 |
28 |
29 |
36 | @endsection
37 |
--------------------------------------------------------------------------------
/resources/views/flow/create.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
52 | @endsection
53 |
--------------------------------------------------------------------------------
/resources/views/flow/edit.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
53 | @endsection
54 |
--------------------------------------------------------------------------------
/resources/views/flow/index.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 | 创建流程
7 |
8 |
9 |
10 |
11 |
工作流列表
12 |
15 |
16 |
17 |
18 | 流程名称 |
19 | 模板名称 |
20 | 状态 |
21 | 创建时间 |
22 | 操作 |
23 |
24 |
25 |
26 | @foreach($flows as $v)
27 |
28 | {{$v->flow_name}} |
29 |
30 | {{$v->template?$v->template->template_name:'暂无模板'}}
31 | |
32 |
33 | {{$v->is_publish?'已发布':'未发布'}}
34 | |
35 | {{$v->created_at}} |
36 |
37 | 流程图
38 | 编辑
39 | 删除
40 | |
41 |
42 | @endforeach
43 |
44 |
45 |
46 |
47 |
48 |
49 | @endsection
50 |
--------------------------------------------------------------------------------
/resources/views/flow/show.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.app')
2 |
3 | @section('content')
4 |
5 |
6 |
7 |
8 |
9 |
{{$flow->flow_name}} 工作流程图
10 |
11 |
返回流程列表
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
49 | @endsection
50 |
--------------------------------------------------------------------------------
/resources/views/partials/condition.blade.php:
--------------------------------------------------------------------------------
1 | {"2":{"desc":"不符合条件时的提示","option":"