Skip to content

Commit

Permalink
Changelog:
Browse files Browse the repository at this point in the history
- Fixed: missing value support on CrudInput
- Update: crud template for generation
- Added: active scope to user model
- Added: new classes for easing API usage
  • Loading branch information
Blair2004 committed Apr 1, 2024
1 parent 7ad8435 commit 00662ab
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 77 deletions.
22 changes: 21 additions & 1 deletion app/Classes/CrudForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,25 @@

class CrudForm
{
// @todo
public static function form( $main, $tabs )
{
return compact( 'main', 'tabs' );
}

public static function tabs( ...$args )
{
return collect( $args )->mapWithKeys( function( $tab ) {
return [ $tab['identifier'] => $tab ];
})->toArray();
}

public static function tab( $identifier, $label, $fields )
{
return compact( 'label', 'fields', 'identifier' );
}

public static function fields( ...$args )
{
return collect( $args )->toArray();
}
}
127 changes: 72 additions & 55 deletions app/Classes/CrudInput.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,234 +3,251 @@

class CrudInput
{
public static function text( $label, $name, $validation = '', $description = '', $readonly = false, $type = 'text' )
public static function text( $label, $name, $value = '', $validation = '', $description = '', $disabled = false, $type = 'text' )
{
return compact( 'label', 'name', 'validation', 'description', 'readonly', 'type' );
return compact( 'label', 'name', 'value', 'validation', 'description', 'disabled', 'type' );
}

public static function password( $label, $name, $validation = '', $description = '', $readonly = false )
public static function password( $label, $name, $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
disabled: $disabled,
type: 'password'
);
}

public static function email( $label, $name, $validation = '', $description = '', $readonly = false )
public static function email( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'email'
disabled: $disabled,
type: 'email',
value: $value
);
}

public static function number( $label, $name, $validation = '', $description = '', $readonly = false, $type = 'number' )
public static function number( $label, $name, $value = '', $validation = '', $description = '', $disabled = false, $type = 'number' )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'number'
disabled: $disabled,
type: 'number',
value: $value
);
}

public static function tel( $label, $name, $validation = '', $description = '', $readonly = false, $type = 'tel' )
public static function tel( $label, $name, $value = '', $validation = '', $description = '', $disabled = false, $type = 'tel' )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'tel'
disabled: $disabled,
type: 'tel',
value: $value
);
}

public static function hidden( $label, $name, $validation = '', $description = '', $readonly = false, $type = 'hidden' )
public static function hidden( $label, $name, $value = '', $validation = '', $description = '', $disabled = false, $type = 'hidden' )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'hidden'
disabled: $disabled,
type: 'hidden',
value: $value
);
}

public static function date( $label, $name, $validation = '', $description = '', $readonly = false, $type = 'date' )
public static function date( $label, $name, $value = '', $validation = '', $description = '', $disabled = false, $type = 'date' )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'date'
disabled: $disabled,
type: 'date',
value: $value
);
}

public static function select( $label, $name, $options, $validation = '', $description = '', $readonly = false, $type = 'text' )
public static function select( $label, $name, $options, $value = '', $validation = '', $description = '', $disabled = false, $type = 'select' )
{
return compact( 'label', 'name', 'validation', 'options', 'description', 'readonly', 'type' );
return compact( 'label', 'name', 'validation', 'options', 'value', 'description', 'disabled', 'type' );
}

public static function searchSelect( $label, $name, $options = [], $validation = '', $description = '', $readonly = false )
public static function searchSelect( $label, $name, $value = '', $options = [], $validation = '', $description = '', $disabled = false )
{
return self::select(
label: $label,
name: $name,
validation: $validation,
description: $description,
options: $options,
type: 'search-select',
value: $value,
type: 'search-select'
);
}

public static function textarea( $label, $name, $validation = '', $description = '', $readonly = false )
public static function textarea( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'textarea'
disabled: $disabled,
type: 'textarea',
value: $value
);
}

public static function checkbox( $label, $name, $validation = '', $description = '', $readonly = false )
public static function checkbox( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'checkbox'
disabled: $disabled,
type: 'checkbox',
value: $value
);
}

public static function multiselect( $label, $name, $options, $validation = '', $description = '', $readonly = false )
public static function multiselect( $label, $name, $value = '', $options, $validation = '', $description = '', $disabled = false )
{
return self::select(
label: $label,
name: $name,
validation: $validation,
options: $options,
description: $description,
readonly: $readonly,
type: 'multiselect'
disabled: $disabled,
type: 'multiselect',
value: $value
);
}

public static function inlineMultiselect( $label, $name, $options, $validation = '', $description = '', $readonly = false )
public static function inlineMultiselect( $label, $name, $value = '', $options, $validation = '', $description = '', $disabled = false )
{
return self::select(
label: $label,
name: $name,
validation: $validation,
options: $options,
description: $description,
readonly: $readonly,
type: 'inline-multiselect'
disabled: $disabled,
type: 'inline-multiselect',
value: $value
);
}

public static function selectAudio( $label, $name, $options, $validation = '', $description = '', $readonly = false )
public static function selectAudio( $label, $name, $value = '', $options, $validation = '', $description = '', $disabled = false )
{
return self::select(
label: $label,
name: $name,
validation: $validation,
options: $options,
description: $description,
readonly: $readonly,
type: 'select-audio'
disabled: $disabled,
type: 'select-audio',
value: $value
);
}

public static function switch( $label, $name, $options, $validation = '', $description = '', $readonly = false )
public static function switch( $label, $name, $options, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::select(
label: $label,
name: $name,
validation: $validation,
options: $options,
value: $value,
description: $description,
readonly: $readonly,
disabled: $disabled,
type: 'switch'
);
}

public static function media( $label, $name, $validation = '', $description = '', $readonly = false )
public static function media( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'media'
disabled: $disabled,
type: 'media',
value: $value
);
}

public static function ckeditor( $label, $name, $validation = '', $description = '', $readonly = false )
public static function ckeditor( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'ckeditor'
disabled: $disabled,
type: 'ckeditor',
value: $value
);
}

public static function datetime( $label, $name, $validation = '', $description = '', $readonly = false )
public static function datetime( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'datetimepicker'
disabled: $disabled,
type: 'datetimepicker',
value: $value
);
}

public static function daterange( $label, $name, $validation = '', $description = '', $readonly = false )
public static function daterange( $label, $name, $value = '', $validation = '', $description = '', $disabled = false )
{
return self::text(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
type: 'daterangepicker'
disabled: $disabled,
type: 'daterangepicker',
value: $value
);
}

public static function custom( $label, $name, $type, $validation = '', $description = '', $readonly = false, $options = [] )
public static function custom( $label, $name, $type, $value = '', $validation = '', $description = '', $disabled = false, $options = [] )
{
return self::select(
label: $label,
name: $name,
validation: $validation,
description: $description,
readonly: $readonly,
disabled: $disabled,
options: $options,
type: $type
type: $type,
value: $value
);
}
}
7 changes: 7 additions & 0 deletions app/Classes/FormInput.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php
namespace App\Classes;

class FormInput extends CrudInput
{
// ... replicates the CrudInput
}
10 changes: 10 additions & 0 deletions app/Classes/SettingForm.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php
namespace App\Classes;

class SettingForm extends CrudForm
{
public static function form( $title, $description = '', $tabs = [] )
{
return compact( 'title', 'description', 'tabs' );
}
}
5 changes: 5 additions & 0 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,11 @@ public function assignRole( $roleName )
];
}

public function scopeActive()
{
return $this->where( 'active', true );
}

/**
* Quick access to user options
*/
Expand Down
Loading

0 comments on commit 00662ab

Please sign in to comment.