PHP code example of joshua060198 / nova-simple-status-with-enum

1. Go to this page and download the library: Download joshua060198/nova-simple-status-with-enum library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

joshua060198 / nova-simple-status-with-enum example snippets


   

   namespace App\Enums;

   use BenSampo\Enum\Enum;
   use Joshua060198\NovaSimpleStatusWithEnum\MappableStatus;

   final class CategoryStatus extends Enum
   {
       use MappableStatus;

       const Active =   1;
       const NotActive =   0;
   }
   

   

   namespace App\Enums;

   use BenSampo\Enum\Enum;
   use Joshua060198\NovaSimpleStatusWithEnum\MappableStatus;

   final class CategoryStatus extends Enum
   {
       use MappableStatus;

       const Active =   1;
       const NotActive =   0;
       const MyCustomStatus = 2;

       public static function getMappedStatus() {
           $parent = static::$defaultMappedStatus;
           $new = [
               'My Custom Status' => 'bg-success-dark text-light'
           ];

           return array_merge($parent, $new);
       }
   }
   

   // app/Nova/Order.php

   use Joshua060198\EditableStatusCard\EditableStatusCard;

   class Category extends Resource {

       ...

       public function fields(Request $request) {

           return [
               StatusView::make($this->status, CategoryStatus::class),

               StatusForm::make(CategoryStatus::class)
           ]
       }

       ...
   }
   

    StatusForm::make(CategoryStatus::class, 'Custom Status', 'my_status')

    StatusView::make($this->my_custom_status, CategoryStatus::class, 'My Status')

  final class CategoryStatus extends Enum
  {
      const NotActive =   0;
  }
  

  final class CategoryStatus extends Enum
  {
      use MappableStatus;

      const FirstCustomStatus =   0;
      const AnotherStatus =   1;
      const Active = 2;
  }
  

  final class CategoryStatus extends Enum
  {
      use MappableStatus;

      const FirstCustomStatus =   0;
      const AnotherStatus =   1;
      const Active = 2;

      public static function getMappedStatus() {
          $parent = static::$defaultMappedStatus;
          $new = [
              'First Custom Status' => 'custom-class',
              'AnotherStatus' => 'bg-dark text-light'
          ];

          return array_merge($parent, $new);
      }
  }
  

  public static $defaultMappedStatus = [
    'Active' => 'bg-success-light text-success-dark',
    'Warning' => 'bg-warning-light text-warning-dark',
    'Not Active' => 'bg-danger-light text-danger-dark',
    'Approved' => 'bg-success-light text-success-dark',
    'Waiting Approval' => 'bg-warning-light text-warning-dark',
    'Not Approved' => 'bg-danger-light text-danger-dark',
    'Delivered' => 'bg-success-light text-success-dark',
    'Delivering' => 'bg-warning-light text-warning-dark',
    'Not Delivered' => 'bg-danger-light text-danger-dark',
    'Paid' => 'bg-success-light text-success-dark',
    'Not Paid' => 'bg-danger-light text-danger-dark',
  ];