diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php
index a8a9ecee4..54e3f9238 100644
--- a/app/Http/Controllers/ProjectController.php
+++ b/app/Http/Controllers/ProjectController.php
@@ -49,6 +49,20 @@ class ProjectController extends BaseController
return $this->projectService->getDatatable($search, $userId);
}
+ public function show(ProjectRequest $request)
+ {
+ $project = $request->entity();
+
+ $data = [
+ 'account' => auth()->user()->account,
+ 'project' => $project,
+ 'title' => trans('texts.view_project'),
+ 'showBreadcrumbs' => false,
+ ];
+
+ return View::make('projects.show', $data);
+ }
+
public function create(ProjectRequest $request)
{
$data = [
diff --git a/app/Ninja/Datatables/ProjectDatatable.php b/app/Ninja/Datatables/ProjectDatatable.php
index 85f9cb142..84542dc0e 100644
--- a/app/Ninja/Datatables/ProjectDatatable.php
+++ b/app/Ninja/Datatables/ProjectDatatable.php
@@ -21,7 +21,7 @@ class ProjectDatatable extends EntityDatatable
return $model->project;
}
- $str = link_to("projects/{$model->public_id}/edit", $model->project)->toHtml();
+ $str = link_to("projects/{$model->public_id}", $model->project)->toHtml();
return $this->addNote($str, $model->private_notes);
},
],
diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php
index 551a18643..b136afaa3 100644
--- a/resources/lang/en/texts.php
+++ b/resources/lang/en/texts.php
@@ -2624,6 +2624,8 @@ $LANG = array(
'convert_products_help' => 'Automatically convert product prices to the client\'s currency',
'improve_client_portal_link' => 'Set a subdomain to shorten the client portal link.',
'budgeted_hours' => 'Budgeted Hours',
+ 'progress' => 'Progress',
+ 'view_project' => 'View Project',
);
diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php
new file mode 100644
index 000000000..0fc59eec0
--- /dev/null
+++ b/resources/views/projects/show.blade.php
@@ -0,0 +1,86 @@
+@extends('header')
+
+@section('head')
+ @parent
+
+
+
+@stop
+
+
+@section('content')
+
+
+
+
+ - {{ link_to('/projects', trans('texts.projects')) }}
+ - {{ $project->name }}
{!! $project->present()->statusLabel !!}
+
+
+
+
+
+ {!! Former::open('vendors/bulk')->addClass('mainForm') !!}
+
+ {!! Former::text('action') !!}
+ {!! Former::text('public_id')->value($project->public_id) !!}
+
+
+ @if ( ! $project->is_deleted)
+ @can('edit', $project)
+ {!! DropdownButton::normal(trans('texts.edit_project'))
+ ->withAttributes(['class'=>'normalDropDown'])
+ ->withContents([
+ ($project->trashed() ? false : ['label' => trans('texts.archive_project'), 'url' => "javascript:onArchiveClick()"]),
+ ['label' => trans('texts.delete_project'), 'url' => "javascript:onDeleteClick()"],
+ ]
+ )->split() !!}
+ @endcan
+ @if ( ! $project->trashed())
+ @can('create', ENTITY_TASK)
+ {!! Button::primary(trans("texts.new_task"))
+ ->asLinkTo(URL::to("/tasks/create/{$project->client->public_id}/{$project->public_id}"))
+ ->appendIcon(Icon::create('plus-sign')) !!}
+ @endcan
+ @endif
+ @endif
+
+ @if ($project->trashed())
+ @can('edit', $project)
+ {!! Button::primary(trans('texts.restore_project'))
+ ->appendIcon(Icon::create('cloud-download'))
+ ->withAttributes(['onclick' => 'onRestoreClick()']) !!}
+ @endcan
+ @endif
+
+ {!! Former::close() !!}
+
+
+
+
+
+
+
+
+
+
+
{{ trans('texts.details') }}
+
+
+
+
+
{{ trans('texts.notes') }}
+
+
+
+
+
{{ trans('texts.progress') }}
+
+
+
+
+
+
+
+
+@stop
diff --git a/routes/web.php b/routes/web.php
index af8d667ff..9c51ea335 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -158,7 +158,7 @@ Route::group(['middleware' => ['lookup:user', 'auth:user']], function () {
Route::post('projects', 'ProjectController@store');
Route::put('projects/{projects}', 'ProjectController@update');
Route::get('projects/{projects}/edit', 'ProjectController@edit');
- Route::get('projects/{projects}', 'ProjectController@edit');
+ Route::get('projects/{projects}', 'ProjectController@show');
Route::post('projects/bulk', 'ProjectController@bulk');
Route::get('api/recurring_invoices/{client_id?}', 'InvoiceController@getRecurringDatatable');