workflow releasing datasets
This commit is contained in:
parent
ec127b9457
commit
de80de9d88
|
@ -1,14 +1,19 @@
|
||||||
<?php
|
<?php
|
||||||
namespace App\Http\Controllers\Publish;
|
namespace App\Http\Controllers\Publish;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Exceptions\GeneralException;
|
||||||
// use App\Http\Requests\ProjectRequest;
|
// use App\Http\Requests\ProjectRequest;
|
||||||
// use App\Models\Project;
|
// use App\Models\Project;
|
||||||
// use Illuminate\Http\RedirectResponse;
|
// use Illuminate\Http\RedirectResponse;
|
||||||
// use Illuminate\Http\Request;
|
// use Illuminate\Http\Request;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\Dataset;
|
use App\Models\Dataset;
|
||||||
use Illuminate\View\View;
|
use App\Models\User;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\View\View;
|
||||||
|
|
||||||
class WorkflowController extends Controller
|
class WorkflowController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -17,34 +22,122 @@ class WorkflowController extends Controller
|
||||||
//$this->middleware('auth');
|
//$this->middleware('auth');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function index(): View
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function review()
|
|
||||||
{
|
|
||||||
$builder = Dataset::query();
|
|
||||||
$datasets = $builder
|
|
||||||
//->where('server_state', 'inprogress')
|
|
||||||
->whereIn('server_state', ['unpublished'])
|
|
||||||
->get();
|
|
||||||
return view('workflow.review', compact('datasets'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function release()
|
|
||||||
{
|
{
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
$user_id = $user->id;
|
$user_id = $user->id;
|
||||||
|
|
||||||
$builder = Dataset::query();
|
$builder = Dataset::query();
|
||||||
$datasets = $builder
|
$myDatasets = $builder
|
||||||
->where('server_state', 'inprogress')
|
->whereIn('server_state', ['inprogress', 'released'])
|
||||||
->where('account_id', $user_id)
|
->where('account_id', $user_id)
|
||||||
|
->with('user:id,login')
|
||||||
->get();
|
->get();
|
||||||
return view('workflow.release', compact('datasets'));
|
return view('workflow.index', [
|
||||||
|
'datasets' => $myDatasets,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\View\View
|
||||||
|
*/
|
||||||
|
public function release($id): View
|
||||||
|
{
|
||||||
|
$dataset = Dataset::with('user:id,login')->findOrFail($id);
|
||||||
|
// $editors = User::whereHas('roles', function ($q) {
|
||||||
|
// $q->where('login', 'admin');
|
||||||
|
// })->pluck('login', 'id');
|
||||||
|
$editors = User::with(['roles' => function ($query) {
|
||||||
|
$query->where('name', 'reviewer');
|
||||||
|
}])
|
||||||
|
->pluck('login', 'id');
|
||||||
|
//$editors = Role::where('name', 'reviewer')->first()->users;
|
||||||
|
|
||||||
|
return view('workflow.release', [
|
||||||
|
'dataset' => $dataset,
|
||||||
|
'editors' => $editors,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function releaseUpdate(Request $request, $id)
|
||||||
|
{
|
||||||
|
$dataset = Dataset::findOrFail($id);
|
||||||
|
|
||||||
|
$input = $request->all();
|
||||||
|
$input['server_state'] = 'released';
|
||||||
|
|
||||||
|
if ($dataset->update($input)) {
|
||||||
|
// event(new PageUpdated($page));
|
||||||
|
return redirect()
|
||||||
|
->route('publish.workflow.index')
|
||||||
|
->with('flash_message', 'You have released your dataset!');
|
||||||
|
}
|
||||||
|
throw new GeneralException(trans('exceptions.publish.release.update_error'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function delete($id): RedirectResponse
|
||||||
|
{
|
||||||
|
$dataset = Dataset::with('files')->findOrFail($id);
|
||||||
|
if ($dataset->server_state != "inprogress") {
|
||||||
|
session()->flash(
|
||||||
|
'flash_message',
|
||||||
|
'You cannot delete this datastet!'
|
||||||
|
. ' There status of this dataset is '
|
||||||
|
. $dataset->server_state
|
||||||
|
. ' !'
|
||||||
|
);
|
||||||
|
return redirect()->route('settings.project');
|
||||||
|
} else {
|
||||||
|
if ($dataset->files->count() > 0) {
|
||||||
|
foreach ($dataset->files as $file) {
|
||||||
|
if (isset($file->path_name)) {
|
||||||
|
Storage::delete($file->path_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$dataset->delete();
|
||||||
|
session()->flash('flash_message', 'You have been deleted 1 dataset!');
|
||||||
|
return redirect()->route('publish.workflow.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function indexReleased()
|
||||||
|
{
|
||||||
|
$builder = Dataset::query();
|
||||||
|
$datasets = $builder
|
||||||
|
//->where('server_state', 'inprogress')
|
||||||
|
->whereIn('server_state', ['released'])
|
||||||
|
->get();
|
||||||
|
return view('workflow.review', compact('datasets'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// public function release()
|
||||||
|
// {
|
||||||
|
// $user = Auth::user();
|
||||||
|
// $user_id = $user->id;
|
||||||
|
|
||||||
|
// $builder = Dataset::query();
|
||||||
|
// $datasets = $builder
|
||||||
|
// ->where('server_state', 'inprogress')
|
||||||
|
// ->where('account_id', $user_id)
|
||||||
|
// ->get();
|
||||||
|
// return view('workflow.release', compact('datasets'));
|
||||||
|
// }
|
||||||
|
|
||||||
public function changestate($id, $targetState)
|
public function changestate($id, $targetState)
|
||||||
{
|
{
|
||||||
// $docId = $this->getRequest()->getParam('docId');
|
// $docId = $this->getRequest()->getParam('docId');
|
||||||
|
|
|
@ -36,6 +36,7 @@ class Dataset extends Model
|
||||||
'project_id',
|
'project_id',
|
||||||
'embargo_date',
|
'embargo_date',
|
||||||
'belongs_to_bibliography',
|
'belongs_to_bibliography',
|
||||||
|
'editor_id'
|
||||||
];
|
];
|
||||||
//protected $guarded = [];
|
//protected $guarded = [];
|
||||||
/**
|
/**
|
||||||
|
@ -94,6 +95,14 @@ class Dataset extends Model
|
||||||
return $this->belongsTo(User::class, 'account_id', 'id');
|
return $this->belongsTo(User::class, 'account_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the account that the dataset belongs to
|
||||||
|
*/
|
||||||
|
public function editor()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(User::class, 'editor_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
public function collections()
|
public function collections()
|
||||||
{
|
{
|
||||||
return $this
|
return $this
|
||||||
|
|
24
composer.lock
generated
24
composer.lock
generated
|
@ -3183,20 +3183,20 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "myclabs/deep-copy",
|
"name": "myclabs/deep-copy",
|
||||||
"version": "1.8.1",
|
"version": "1.9.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||||
"reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
|
"reference": "78af75148f9fdd34ea727c8b529a9b4a8f7b740c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
|
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/78af75148f9fdd34ea727c8b529a9b4a8f7b740c",
|
||||||
"reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
|
"reference": "78af75148f9fdd34ea727c8b529a9b4a8f7b740c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1"
|
"php": "^7.2"
|
||||||
},
|
},
|
||||||
"replace": {
|
"replace": {
|
||||||
"myclabs/deep-copy": "self.version"
|
"myclabs/deep-copy": "self.version"
|
||||||
|
@ -3204,6 +3204,8 @@
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/collections": "^1.0",
|
"doctrine/collections": "^1.0",
|
||||||
"doctrine/common": "^2.6",
|
"doctrine/common": "^2.6",
|
||||||
|
"phpstan/phpstan": "^0.9.2",
|
||||||
|
"phpstan/phpstan-phpunit": "^0.9.4",
|
||||||
"phpunit/phpunit": "^7.1"
|
"phpunit/phpunit": "^7.1"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
@ -3227,7 +3229,7 @@
|
||||||
"object",
|
"object",
|
||||||
"object graph"
|
"object graph"
|
||||||
],
|
],
|
||||||
"time": "2018-06-11T23:09:50+00:00"
|
"time": "2018-10-30T00:14:44+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phar-io/manifest",
|
"name": "phar-io/manifest",
|
||||||
|
@ -4501,16 +4503,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
"version": "1.1.0",
|
"version": "1.1.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/theseer/tokenizer.git",
|
"url": "https://github.com/theseer/tokenizer.git",
|
||||||
"reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
|
"reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
|
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8",
|
||||||
"reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
|
"reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4537,7 +4539,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
||||||
"time": "2017-04-07T12:08:54+00:00"
|
"time": "2019-04-04T09:56:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "webmozart/assert",
|
"name": "webmozart/assert",
|
||||||
|
|
File diff suppressed because one or more lines are too long
1
public/backend/publish/releaseDataset.js
Normal file
1
public/backend/publish/releaseDataset.js
Normal file
File diff suppressed because one or more lines are too long
19
public/backend/style.css
vendored
19
public/backend/style.css
vendored
|
@ -936,3 +936,22 @@ textarea.large, input.large {
|
||||||
/* float: right; */
|
/* float: right; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pure-table tr.inprogress {
|
||||||
|
padding: 0.8em;
|
||||||
|
background-color: paleturquoise;
|
||||||
|
}
|
||||||
|
.pure-table tr.released {
|
||||||
|
background-color: greenyellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.help {
|
||||||
|
display: block;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
margin-top: 0.25rem;
|
||||||
|
}
|
||||||
|
.help.is-danger {
|
||||||
|
color: #ff3860;
|
||||||
|
}
|
||||||
|
|
21
public/css/styles.css
vendored
21
public/css/styles.css
vendored
|
@ -1259,24 +1259,3 @@ h2.post-title {
|
||||||
width: 10em;
|
width: 10em;
|
||||||
margin: 0 1em 0 0;*/
|
margin: 0 1em 0 0;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*.sidebar-simplesearch {
|
|
||||||
position: relative;
|
|
||||||
margin-bottom: 2.5em;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-simplesearch input[type=text] {
|
|
||||||
padding: 0.25em 0.3em;
|
|
||||||
color: #666;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*.sidebar-simplesearch button {
|
|
||||||
padding: 0.25em 0.3em;
|
|
||||||
border: none;
|
|
||||||
background: none;
|
|
||||||
position: absolute;
|
|
||||||
right: 0.25em;
|
|
||||||
color: #666;
|
|
||||||
}*/
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"/backend/publish/datasetPublish.js": "/backend/publish/datasetPublish.js",
|
"/backend/publish/datasetPublish.js": "/backend/publish/datasetPublish.js",
|
||||||
|
"/backend/publish/releaseDataset.js": "/backend/publish/releaseDataset.js",
|
||||||
"/js/app.js": "/js/app.js",
|
"/js/app.js": "/js/app.js",
|
||||||
"/js/lib.js": "/js/lib.js",
|
"/js/lib.js": "/js/lib.js",
|
||||||
"/js/dataTable.js": "/js/dataTable.js"
|
"/js/dataTable.js": "/js/dataTable.js"
|
||||||
|
|
32
resources/assets/js/releaseDataset.js
Normal file
32
resources/assets/js/releaseDataset.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// releaseDataset.js
|
||||||
|
import Vue from 'vue';
|
||||||
|
import VeeValidate from 'vee-validate';
|
||||||
|
Vue.use(VeeValidate);
|
||||||
|
|
||||||
|
|
||||||
|
const app = new Vue({
|
||||||
|
el: '#app1',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dataset: {
|
||||||
|
firstName: '',
|
||||||
|
editor_id: ''
|
||||||
|
},
|
||||||
|
submitted: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
checkForm(e) {
|
||||||
|
// Log entire model to console
|
||||||
|
// console.log(this.dataset);
|
||||||
|
this.submitted = true;
|
||||||
|
this.$validator.validate().then(result => {
|
||||||
|
if (result) {
|
||||||
|
console.log('From Submitted!');
|
||||||
|
document.getElementById("releaseForm").submit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
|
@ -12,6 +12,11 @@ return [
|
||||||
| found in a intuitive way.
|
| found in a intuitive way.
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
'publish' => [
|
||||||
|
'release' => [
|
||||||
|
'update_error' => 'There was a problem rleasing this dataset. Please try again.',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
'backend' => [
|
'backend' => [
|
||||||
|
|
||||||
|
|
|
@ -95,12 +95,18 @@
|
||||||
<li class="pure-menu-item {{ Route::is('publish.dataset.create') ? 'active' : '' }}">
|
<li class="pure-menu-item {{ Route::is('publish.dataset.create') ? 'active' : '' }}">
|
||||||
<a class="pure-menu-link" href="{{ URL::route('publish.dataset.create') }}"><i class="fa fa-upload"></i> Create</a>
|
<a class="pure-menu-link" href="{{ URL::route('publish.dataset.create') }}"><i class="fa fa-upload"></i> Create</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pure-menu-item {{ Route::is('publish.workflow.release') ? 'active' : '' }}">
|
<li class="pure-menu-item {{ Route::is('publish.workflow.index') ? 'active' : '' }}">
|
||||||
|
<a class="pure-menu-link" href="{{ URL::route('publish.workflow.index') }}"><i class="fa fa-upload"></i> All my datasets</a>
|
||||||
|
</li>
|
||||||
|
<li class="pure-menu-item {{ Route::is('publish.workflow.indexreleased') ? 'active' : '' }}">
|
||||||
|
<a class="pure-menu-link" href="{{ URL::route('publish.workflow.indexReleased') }}"><i class="fa fa-upload"></i> All released datasets</a>
|
||||||
|
</li>
|
||||||
|
{{-- <li class="pure-menu-item {{ Route::is('publish.workflow.release') ? 'active' : '' }}">
|
||||||
<a class="pure-menu-link" href="{{ URL::route('publish.workflow.release') }}"><i class="fa fa-upload"></i> Release pending datasets</a>
|
<a class="pure-menu-link" href="{{ URL::route('publish.workflow.release') }}"><i class="fa fa-upload"></i> Release pending datasets</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pure-menu-item {{ Route::is('publish.workflow.review') ? 'active' : '' }}">
|
<li class="pure-menu-item {{ Route::is('publish.workflow.review') ? 'active' : '' }}">
|
||||||
<a class="pure-menu-link" href="{{ URL::route('publish.workflow.review') }}"><i class="fa fa-upload"></i> Review/Publish unpublished datasets</a>
|
<a class="pure-menu-link" href="{{ URL::route('publish.workflow.review') }}"><i class="fa fa-upload"></i> Review/Publish unpublished datasets</a>
|
||||||
</li>
|
</li> --}}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@endpermission
|
@endpermission
|
||||||
|
|
|
@ -53,8 +53,9 @@
|
||||||
<td>{{ $person->documents->count() }}</td>
|
<td>{{ $person->documents->count() }}</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="edit" href="{{ route('settings.person.edit', $person->id) }}"><span> </span></a>
|
<a class="edit" href="{{ route('settings.person.edit', $person->id) }}"><span> </span></a>
|
||||||
@if($person->documents->count() == 0)
|
|
||||||
<a class="delete" href="{{ route('settings.person.delete', $person->id) }}"><span> </span></a>
|
<a class="delete" href="{{ route('settings.person.delete', $person->id) }}"><span> </span></a>
|
||||||
|
@if($person->documents->count() == 0)
|
||||||
|
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
70
resources/views/workflow/index.blade.php
Normal file
70
resources/views/workflow/index.blade.php
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
@extends('settings.layouts.app')
|
||||||
|
@section('content')
|
||||||
|
<div class="header">
|
||||||
|
<h3 class="header-title">
|
||||||
|
<i class="fa fa-file"></i> Release saved datasets
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pure-g box-content">
|
||||||
|
<div class="pure-u-1">
|
||||||
|
<table class="pure-table pure-table-horizontal">
|
||||||
|
|
||||||
|
<thead>
|
||||||
|
<th>Dataset Title</th>
|
||||||
|
<th>Owner</th>
|
||||||
|
<th>Server State</th>
|
||||||
|
<th></th>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
@foreach($datasets as $dataset)
|
||||||
|
@php
|
||||||
|
//if userid changed from last iteration, store new userid and change color
|
||||||
|
// $lastid = $detail->payment->userid;
|
||||||
|
if ($dataset->server_state == 'inprogress') {
|
||||||
|
$rowclass = 'inprogress';
|
||||||
|
} elseif ($dataset->server_state == 'released') {
|
||||||
|
$rowclass = 'released';
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
<tr class="{{ $rowclass }}">
|
||||||
|
<td>
|
||||||
|
@if ($dataset->titles()->first())
|
||||||
|
{{ $dataset->titles()->first()->value }}
|
||||||
|
@else
|
||||||
|
no title
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ $dataset->user->login }}
|
||||||
|
</td>
|
||||||
|
{{-- <td>
|
||||||
|
{{ optional($dataset->editor)->login }}
|
||||||
|
</td> --}}
|
||||||
|
<td>
|
||||||
|
{{ $dataset->server_state }}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
@if ($dataset->server_state == "inprogress")
|
||||||
|
<a href="{{ URL::route('publish.workflow.release', $dataset->id) }}" class="pure-button">
|
||||||
|
<i class="fa fa-share"></i>
|
||||||
|
<span>Release</span>
|
||||||
|
</a>
|
||||||
|
<a href="{{ URL::route('publish.workflow.delete', $dataset->id) }}" class="pure-button">
|
||||||
|
<i class="fa fa-trash"></i>
|
||||||
|
<span>Delete</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@stop
|
|
@ -2,50 +2,65 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h3 class="header-title">
|
<h3 class="header-title">
|
||||||
<i class="fa fa-file"></i> Release saved datasets
|
<i class="fa fa-share"></i> Release saved datasets
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<h3 class="header-title">
|
||||||
|
Release your dataset for Editor
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="pure-g box-content">
|
<div class="pure-g box-content">
|
||||||
<div class="pure-u-1">
|
|
||||||
<table class="pure-table pure-table-horizontal">
|
|
||||||
|
|
||||||
<thead>
|
<div class="pure-u-1 pure-u-md-1">
|
||||||
<th>Dataset Title</th>
|
<div>
|
||||||
<th>ID</th>
|
<a href="{{ route('publish.workflow.index') }}" class="pure-button button-small">
|
||||||
<th>Server State</th>
|
<i class="fa fa-chevron-left"></i>
|
||||||
<th></th>
|
<span>BACK</span>
|
||||||
</thead>
|
</a>
|
||||||
|
|
||||||
<tbody>
|
|
||||||
@foreach($datasets as $dataset)
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
@if ($dataset->titles()->first())
|
|
||||||
{{ $dataset->titles()->first()->value }}
|
|
||||||
@else
|
|
||||||
no title
|
|
||||||
@endif
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ $dataset->id }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ $dataset->server_state }}
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
@if ($dataset->server_state == "inprogress")
|
|
||||||
<a href="{{ URL::route('publish.review.changestate',['id' => $dataset->id, 'targetState' => 'unpublished']) }}" class="pure-button button-small is-success">Release</a>
|
|
||||||
{{-- <a href="" class="pure-button button-small is-success">Restrict</a> --}}
|
|
||||||
@endif
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@endforeach
|
|
||||||
</tbody>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="app1">
|
||||||
|
{!! Form::model($dataset, [ 'method' => 'POST', 'route' => ['publish.workflow.releaseUpdate', $dataset->id], 'id' => 'releaseForm',
|
||||||
|
'class' => 'pure-form', 'enctype' => 'multipart/form-data', 'v-on:submit.prevent' => 'checkForm']) !!}
|
||||||
|
<fieldset id="fieldset-General">
|
||||||
|
<legend>General</legend>
|
||||||
|
<div class="pure-g">
|
||||||
|
|
||||||
|
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||||
|
{!! Form::label('editor_id', 'preferred editor:') !!}
|
||||||
|
<div class="select pure-u-23-24">
|
||||||
|
{!! Form::select('editor_id', $editors, null, ['id' => 'editor_id', 'placeholder' => '-- select editor --', 'v-model' =>
|
||||||
|
'dataset.editor_id', "v-validate" => "'required'"]) !!}
|
||||||
|
</div>
|
||||||
|
<span class="help is-danger" v-if="errors.has('editor_id')" v-text="errors.first('editor_id')"></span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div class="pure-controls">
|
||||||
|
<button :disabled="errors.any()" type="submit" class="pure-button">
|
||||||
|
<i class="fa fa-share"></i>
|
||||||
|
<span>Release</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
|
@section('after-scripts') {{--
|
||||||
|
<script type="text/javascript" src="{{ asset('js/lib.js') }}"></script> --}} {{--
|
||||||
|
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/vue"></script>--}} {{--
|
||||||
|
<script type="text/javascript" src="{{ resource_path('assets\js\datasetPublish.js') }}"></script> --}}
|
||||||
|
<script type="text/javascript" src="{{ asset('backend/publish/releaseDataset.js') }}"></script>
|
||||||
|
|
||||||
|
@stop
|
|
@ -46,12 +46,27 @@ Route::group(
|
||||||
// Route::get('dataset/create-step3', ['as' => 'dataset.create3', 'uses' => 'IndexController@createStep3']);
|
// Route::get('dataset/create-step3', ['as' => 'dataset.create3', 'uses' => 'IndexController@createStep3']);
|
||||||
Route::post('dataset/store', ['as' => 'dataset.store', 'uses' => 'IndexController@store']);
|
Route::post('dataset/store', ['as' => 'dataset.store', 'uses' => 'IndexController@store']);
|
||||||
|
|
||||||
Route::get('workflow/review', [
|
Route::get('workflow/index', [
|
||||||
'as' => 'workflow.review', 'uses' => 'WorkflowController@review',
|
'as' => 'workflow.index', 'uses' => 'WorkflowController@index',
|
||||||
]);
|
]);
|
||||||
Route::get('workflow/release', [
|
Route::get('workflow/release/{id}', [
|
||||||
'as' => 'workflow.release', 'uses' => 'WorkflowController@release',
|
'as' => 'workflow.release', 'uses' => 'WorkflowController@release',
|
||||||
]);
|
]);
|
||||||
|
Route::post('workflow/release/{id}', [
|
||||||
|
'as' => 'workflow.releaseUpdate', 'uses' => 'WorkflowController@releaseUpdate',
|
||||||
|
]);
|
||||||
|
Route::get('workflow/delete/{id}', [
|
||||||
|
'as' => 'workflow.delete', 'uses' => 'WorkflowController@delete',
|
||||||
|
]);
|
||||||
|
Route::get('workflow/release/{id}', [
|
||||||
|
'as' => 'workflow.release', 'uses' => 'WorkflowController@release',
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
Route::get('workflow/indexreleased', [
|
||||||
|
'as' => 'workflow.indexReleased', 'uses' => 'WorkflowController@indexReleased',
|
||||||
|
]);
|
||||||
|
|
||||||
Route::get('workflow/changestate/{id}/changestate/{targetState}', [
|
Route::get('workflow/changestate/{id}/changestate/{targetState}', [
|
||||||
'as' => 'review.changestate', 'uses' => 'WorkflowController@changestate',
|
'as' => 'review.changestate', 'uses' => 'WorkflowController@changestate',
|
||||||
]);
|
]);
|
||||||
|
@ -129,7 +144,6 @@ Route::group(
|
||||||
]);
|
]);
|
||||||
// //For DataTables
|
// //For DataTables
|
||||||
Route::get('pages/get', ['uses' => 'PagesTableController@get'])->name('page.get');
|
Route::get('pages/get', ['uses' => 'PagesTableController@get'])->name('page.get');
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ let mix = require('laravel-mix');
|
||||||
mix.js('resources/assets/js/datasetPublish.js', 'public/backend/publish')
|
mix.js('resources/assets/js/datasetPublish.js', 'public/backend/publish')
|
||||||
.js('resources/assets/js/app.js', 'public/js')
|
.js('resources/assets/js/app.js', 'public/js')
|
||||||
.js('resources/assets/js/lib.js', 'public/js')
|
.js('resources/assets/js/lib.js', 'public/js')
|
||||||
|
.js('resources/assets/js/releaseDataset.js', 'public/backend/publish')
|
||||||
.scripts([
|
.scripts([
|
||||||
'node_modules/datatables.net/js/jquery.dataTables.js',
|
'node_modules/datatables.net/js/jquery.dataTables.js',
|
||||||
'node_modules/datatables.net-buttons/js/dataTables.buttons.js',
|
'node_modules/datatables.net-buttons/js/dataTables.buttons.js',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user