Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
Doorcode
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Service Desk
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Guardians of the Kretschmar Elock System
Doorcode
Commits
5c85ea18
Commit
5c85ea18
authored
Jul 28, 2020
by
Jacob Priddy
👌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add schedule dropdown
parent
9f0cfc11
Pipeline
#12520
passed with stages
in 2 minutes and 29 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
67 additions
and
5 deletions
+67
-5
src/backend/app/Http/Controllers/Web/Admin/GroupRelationController.php
...pp/Http/Controllers/Web/Admin/GroupRelationController.php
+13
-3
src/backend/resources/views/admin/groupScheduleEntity.blade.php
...ckend/resources/views/admin/groupScheduleEntity.blade.php
+14
-0
src/backend/src/Gateways/Schedules/DatabaseSchedulesRepository.php
...nd/src/Gateways/Schedules/DatabaseSchedulesRepository.php
+1
-1
src/backend/src/UseCases/GroupSchedule/GetGroupSchedules/WebPresenter.php
...UseCases/GroupSchedule/GetGroupSchedules/WebPresenter.php
+0
-1
src/backend/src/UseCases/Schedules/SchedulesGet/DropdownPresenter.php
...src/UseCases/Schedules/SchedulesGet/DropdownPresenter.php
+39
-0
No files found.
src/backend/app/Http/Controllers/Web/Admin/GroupRelationController.php
View file @
5c85ea18
...
...
@@ -3,9 +3,12 @@
namespace
App\Http\Controllers\Web\Admin
;
use
Carbon\Carbon
;
use
Illuminate\View\View
;
use
App\Http\Controllers\Controller
;
use
Illuminate\Http\RedirectResponse
;
use
Source\UseCases\Schedules\SchedulesGet\DropdownPresenter
;
use
Source\UseCases\Schedules\SchedulesGet\SchedulesGetUseCase
;
use
Source\UseCases\DoorGroup\GetGroupDoors\GetGroupDoorsUseCase
;
use
Source\UseCases\GroupUser\GetGroupUsers\GetGroupUsersUseCase
;
use
Source\UseCases\DoorGroup\AddDoorToGroup\AddDoorToGroupSearch
;
...
...
@@ -60,18 +63,25 @@ class GroupRelationController extends Controller
/**
* @param string $groupId
* @param \Source\UseCases\GroupSchedule\GetGroupSchedules\GetGroupSchedulesUseCase $groupSchedules
* @param \Source\UseCases\Schedules\SchedulesGet\SchedulesGetUseCase $schedules
* @return \Illuminate\View\View
* @throws \Source\Exceptions\EntityNotFoundException
* @throws \Exception
*/
public
function
schedules
(
string
$groupId
,
GetGroupSchedulesUseCase
$groupSchedules
):
View
public
function
schedules
(
string
$groupId
,
GetGroupSchedulesUseCase
$groupSchedules
,
SchedulesGetUseCase
$schedules
):
View
{
$schedulesPresenter
=
new
DropdownPresenter
();
$schedules
->
filter
(
null
,
Carbon
::
now
(),
null
,
$schedulesPresenter
);
$presenter
=
new
GroupSchedulesPresenter
();
$groupSchedules
->
getSchedulesForGroup
(
$groupId
,
$presenter
);
return
view
(
'admin.groupEntity'
,
array_merge
(
return
view
(
'admin.group
Schedule
Entity'
,
array_merge
(
$presenter
->
getViewModel
(),
[
'groupId'
=>
$groupId
],
[
'schedules'
=>
$schedulesPresenter
->
getViewModel
()],
));
}
...
...
@@ -122,7 +132,7 @@ class GroupRelationController extends Controller
public
function
addSchedule
(
string
$groupId
,
AddSchedulesToGroupsUseCase
$schedulesToGroups
):
RedirectResponse
{
$this
->
validate
(
$this
->
request
,
[
'schedule'
=>
'required|
string
'
,
'schedule'
=>
'required|
numeric|integer
'
,
]);
$presenter
=
new
ScheduleGroupPresenter
();
...
...
src/backend/resources/views/admin/groupScheduleEntity.blade.php
0 → 100644
View file @
5c85ea18
@
extends
(
'admin.groupEntity'
)
@
section
(
'form-body'
)
<
label
for
=
"entity"
>
Select
Schedule
.
</
label
>
<
select
class
=
"form-control"
name
=
"schedule"
id
=
"entity"
required
>
@
foreach
(
$schedules
as
$schedule
)
<
option
value
=
"{{
$schedule['id']
}}"
>
{{
$schedule
[
'display'
]
}}
</
option
>
@
endforeach
</
select
>
@
endsection
src/backend/src/Gateways/Schedules/DatabaseSchedulesRepository.php
View file @
5c85ea18
...
...
@@ -96,7 +96,7 @@ class DatabaseSchedulesRepository implements SchedulesRepository
*/
public
function
filter
(
?int
$type
=
null
,
?Carbon
$begin
=
null
,
?Carbon
$end
=
null
):
array
{
$query
=
\
App\Schedule
::
query
()
->
orderBy
Desc
(
'created_at
'
);
$query
=
\
App\Schedule
::
query
()
->
orderBy
(
'id
'
);
if
(
$type
!==
null
)
{
$query
->
where
(
'type'
,
$type
);
...
...
src/backend/src/UseCases/GroupSchedule/GetGroupSchedules/WebPresenter.php
View file @
5c85ea18
...
...
@@ -48,7 +48,6 @@ class WebPresenter extends BasePresenter implements Presenter
],
'controls'
=>
'groupEntity'
,
],
'label'
=>
'Enter schedule ID.'
,
'resource'
=>
'schedules'
,
];
}
...
...
src/backend/src/UseCases/Schedules/SchedulesGet/DropdownPresenter.php
0 → 100644
View file @
5c85ea18
<?php
namespace
Source\UseCases\Schedules\SchedulesGet
;
use
Source\Entities\Schedule
;
use
Source\Sanitize\Paginates
;
use
Source\UseCases\BasePresenter
;
class
DropdownPresenter
extends
BasePresenter
implements
Presenter
{
use
Paginates
;
protected
array
$schedules
=
[];
/** @inheritDoc */
public
function
present
(
ResponseModel
$responseModel
):
void
{
$this
->
schedules
=
$responseModel
->
getSchedules
();
usort
(
$this
->
schedules
,
fn
(
Schedule
$a
,
Schedule
$b
)
=>
strcmp
(
$a
->
getDescription
(),
$b
->
getDescription
()));
$this
->
schedules
=
array_map
(
static
function
(
Schedule
$schedule
):
array
{
if
(
$schedule
->
getType
()
===
Schedule
::
TYPE_OPEN_MODE
)
{
$type
=
'(Open) '
;
}
else
{
$type
=
'(Access) '
;
}
return
[
'id'
=>
$schedule
->
getId
(),
'display'
=>
$type
.
' '
.
$schedule
->
getDescription
(),
];
},
$this
->
schedules
);
}
/** @inheritDoc */
public
function
getViewModel
(
array
$appends
=
[]):
array
{
return
$this
->
schedules
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment