diff --git a/README.md b/README.md index 816be216..468cac11 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +# Forked from dwijitsolutions/laraadmin +I will keep updating this fork with bug fixes, and keep submitting PR's to the main repo, or until I'm granted maintainer privilages to the main repo. +

LaraAdmin 1.0

diff --git a/composer.json b/composer.json index dcf92d3a..e5a853ef 100644 --- a/composer.json +++ b/composer.json @@ -1,14 +1,14 @@ { - "name": "dwij/laraadmin", - "description": "LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more", + "name": "chrsc/laraadmin", + "description": "Forked from LaraAdmin to update code, issues/pr have been sitting in github without action.", "keywords": ["php", "laravel", "crm", "admin", "cms", "administrator"], "license": "MIT", - "homepage": "http://laraadmin.com", + "homepage": "https://www.enginedigital.com", "support": { - "issues": "https://github.com/dwijitsolutions/laraadmin/issues", - "source": "https://github.com/dwijitsolutions/laraadmin" + "issues": "https://github.com/chrsc/laraadmin/issues", + "source": "https://github.com/chrsc/laraadmin" }, - "version": "1.0.40", + "version": "1.0.42", "require": { "illuminate/support": "5.*", "laravelcollective/html": "^5.2|^5.1", @@ -21,8 +21,8 @@ }, "authors": [ { - "name": "Ganesh Bhosale", - "email": "ganesh@dwij.in" + "name": "Chris Callender", + "email": "chris.callender@enginedigital.com" } ], "classmap": [ diff --git a/src/LAFormMaker.php b/src/LAFormMaker.php index a96b6524..c26ea74a 100644 --- a/src/LAFormMaker.php +++ b/src/LAFormMaker.php @@ -41,12 +41,12 @@ public static function input($module, $field_name, $default_val = null, $require { // Check Field Write Aceess if(Module::hasFieldAccess($module->id, $module->fields[$field_name]['id'], $access_type = "write")) { - + $row = null; if(isset($module->row)) { $row = $module->row; } - + //print_r($module->fields); $label = $module->fields[$field_name]['label']; $field_type = $module->fields[$field_name]['field_type']; @@ -56,16 +56,16 @@ public static function input($module, $field_name, $default_val = null, $require $maxlength = $module->fields[$field_name]['maxlength']; $required = $module->fields[$field_name]['required']; $popup_vals = $module->fields[$field_name]['popup_vals']; - + if($required2 != null) { $required = $required2; } - + $field_type = ModuleFieldTypes::find($field_type); - + $out = '
'; $required_ast = ""; - + if(!isset($params['class'])) { $params['class'] = $class; } @@ -91,16 +91,16 @@ public static function input($module, $field_name, $default_val = null, $require } $out .= ''; } - + if($required && !isset($params['required'])) { $params['required'] = $required; $required_ast = "*"; } - + switch($field_type->name) { case 'Address': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -108,7 +108,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $params['cols'] = 30; $params['rows'] = 3; $out .= Form::textarea($field_name, $default_val, $params); @@ -116,11 +116,11 @@ public static function input($module, $field_name, $default_val = null, $require case 'Checkbox': $out .= ''; $out .= ''; - + // ############### Remaining unset($params['placeholder']); unset($params['data-rule-maxlength']); - + if($default_val == null) { $default_val = $defaultvalue; } @@ -128,13 +128,13 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $out .= Form::checkbox($field_name, $field_name, $default_val, $params); $out .= '
'; break; case 'Currency': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -142,7 +142,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + if($params['data-rule-maxlength'] != "" && $params['data-rule-maxlength'] != 0) { $params['max'] = $params['data-rule-maxlength']; } @@ -152,14 +152,14 @@ public static function input($module, $field_name, $default_val = null, $require unset($params['data-rule-minlength']); unset($params['data-rule-maxlength']); - + $params['data-rule-currency'] = "true"; $params['min'] = "0"; $out .= Form::number($field_name, $default_val, $params); break; case 'Date': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -175,10 +175,10 @@ public static function input($module, $field_name, $default_val = null, $require } else if($default_val != "") { $dval = date("d/m/Y", strtotime($default_val)); } - + unset($params['data-rule-maxlength']); // $params['data-rule-date'] = "true"; - + $out .= "
"; $out .= Form::text($field_name, $dval, $params); $out .= " Null ?
"; @@ -186,16 +186,16 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Datetime': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } - + // Override the edit value if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $is_null = ""; if($default_val == "NULL") { $is_null = " checked"; @@ -203,7 +203,7 @@ public static function input($module, $field_name, $default_val = null, $require } else if($default_val == null) { $default_val = $defaultvalue; } - + // ############### Remaining $dval = $default_val; if($default_val == "now()") { @@ -217,7 +217,7 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Decimal': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -225,7 +225,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + if($params['data-rule-maxlength'] != "" && $params['data-rule-maxlength'] != 0) { $params['max'] = $params['data-rule-maxlength']; } @@ -246,7 +246,7 @@ public static function input($module, $field_name, $default_val = null, $require $params['data-placeholder'] = $params['placeholder']; unset($params['placeholder']); $params['rel'] = "select2"; - + //echo $defaultvalue; if($default_val == null) { $default_val = $defaultvalue; @@ -258,28 +258,29 @@ public static function input($module, $field_name, $default_val = null, $require // When Adding Record if we dont have default value let's not show NULL By Default $default_val = "0"; } - + // Bug here - NULL value Item still shows Not null in Form if($default_val == NULL) { $params['disabled'] = ""; } - + $popup_vals_str = $popup_vals; if($popup_vals != "") { $popup_vals = LAFormMaker::process_values($popup_vals); } else { $popup_vals = array(); } - + if(!$required) { - array_unshift($popup_vals, "None"); + // preserve numeric keys (ids) for non required fields + $popup_vals = ['0' => 'None'] + $popup_vals; } $out .= Form::select($field_name, $popup_vals, $default_val, $params); - + break; case 'Email': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -287,13 +288,13 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $params['data-rule-email'] = "true"; $out .= Form::email($field_name, $default_val, $params); break; case 'File': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -305,7 +306,7 @@ public static function input($module, $field_name, $default_val = null, $require $default_val = 0; } $out .= Form::hidden($field_name, $default_val, $params); - + if($default_val != 0) { $upload = \App\Models\Upload::find($default_val); } @@ -317,10 +318,10 @@ public static function input($module, $field_name, $default_val = null, $require "; } break; - + case 'Files': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -331,9 +332,9 @@ public static function input($module, $field_name, $default_val = null, $require if(is_array($default_val)) { $default_val = json_encode($default_val); } - + $default_val_arr = json_decode($default_val); - + if(is_array($default_val_arr) && count($default_val_arr) > 0) { $uploadIds = array(); $uploadImages = ""; @@ -350,7 +351,7 @@ public static function input($module, $field_name, $default_val = null, $require $uploadImages .= "" . $fileImage . ""; } } - + $out .= Form::hidden($field_name, json_encode($uploadIds), $params); if(count($uploadIds) > 0) { $out .= "
" . $uploadImages . "
"; @@ -361,10 +362,10 @@ public static function input($module, $field_name, $default_val = null, $require } $out .= "Upload "; break; - + case 'Float': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -372,7 +373,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + if($params['data-rule-maxlength'] != "" && $params['data-rule-maxlength'] != 0) { $params['max'] = $params['data-rule-maxlength']; } @@ -387,7 +388,7 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'HTML': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -400,7 +401,7 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Image': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -412,7 +413,7 @@ public static function input($module, $field_name, $default_val = null, $require $default_val = 0; } $out .= Form::hidden($field_name, $default_val, $params); - + if($default_val != 0) { $upload = \App\Models\Upload::find($default_val); } @@ -423,11 +424,11 @@ public static function input($module, $field_name, $default_val = null, $require $out .= "Upload
"; } - + break; case 'Integer': $out .= ''; - + if($params['data-rule-maxlength'] != "" && $params['data-rule-maxlength'] != 0) { $params['max'] = $params['data-rule-maxlength']; } @@ -437,7 +438,7 @@ public static function input($module, $field_name, $default_val = null, $require unset($params['data-rule-minlength']); unset($params['data-rule-maxlength']); - + if($default_val == null) { $default_val = $defaultvalue; } @@ -450,7 +451,7 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Mobile': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -458,12 +459,12 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $out .= Form::text($field_name, $default_val, $params); break; case 'Multiselect': $out .= ''; - + unset($params['data-rule-maxlength']); $params['data-placeholder'] = "Select multiple " . str_plural($label); unset($params['placeholder']); @@ -480,7 +481,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = json_decode($row->$field_name); } - + if($popup_vals != "") { $popup_vals = LAFormMaker::process_values($popup_vals); } else { @@ -490,7 +491,7 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Name': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -498,21 +499,21 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $out .= Form::text($field_name, $default_val, $params); break; case 'Password': $out .= ''; - + $out .= Form::password($field_name, $params); break; case 'Radio': $out .= '
'; - + // ############### Remaining unset($params['placeholder']); unset($params['data-rule-maxlength']); - + if($default_val == null) { $default_val = $defaultvalue; } @@ -520,7 +521,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + if(starts_with($popup_vals, "@")) { $popup_vals = LAFormMaker::process_values($popup_vals); $out .= '
'; @@ -552,7 +553,7 @@ public static function input($module, $field_name, $default_val = null, $require } case 'String': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -564,7 +565,7 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Taginput': $out .= ''; - + if(isset($params['data-rule-maxlength'])) { $params['maximumSelectionLength'] = $params['data-rule-maxlength']; unset($params['data-rule-maxlength']); @@ -573,12 +574,12 @@ public static function input($module, $field_name, $default_val = null, $require $params['rel'] = "taginput"; $params['data-placeholder'] = "Add multiple " . str_plural($label); unset($params['placeholder']); - + // Override the edit value if(isset($row) && isset($row->$field_name)) { $default_val = json_decode($row->$field_name); } - + if($default_val == null) { $defaultvalue2 = json_decode($defaultvalue); if(is_array($defaultvalue2)) { @@ -598,10 +599,10 @@ public static function input($module, $field_name, $default_val = null, $require break; case 'Textarea': $out .= ''; - + $params['cols'] = 30; $params['rows'] = 3; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -609,12 +610,12 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $out .= Form::textarea($field_name, $default_val, $params); break; case 'TextField': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -622,12 +623,12 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $out .= Form::text($field_name, $default_val, $params); break; case 'URL': $out .= ''; - + if($default_val == null) { $default_val = $defaultvalue; } @@ -635,7 +636,7 @@ public static function input($module, $field_name, $default_val = null, $require if(isset($row) && isset($row->$field_name)) { $default_val = $row->$field_name; } - + $params['data-rule-url'] = "true"; $out .= Form::text($field_name, $default_val, $params); break; @@ -646,7 +647,7 @@ public static function input($module, $field_name, $default_val = null, $require return ""; } } - + /** * Processes the populated values for Multiselect / Taginput / Dropdown * get data from module / table whichever is found if starts with '@' @@ -657,11 +658,11 @@ public static function process_values($json) $out = array(); // Check if populated values are from Module or Database Table if(is_string($json) && starts_with($json, "@")) { - + // Get Module / Table Name $json = str_ireplace("@", "", $json); $table_name = strtolower(str_plural($json)); - + // Search Module $module = Module::getByTable($table_name); if(isset($module->id)) { @@ -729,7 +730,7 @@ public static function process_values($json) } return $out; } - + /** * Display field is CRUDs View show.blade.php with Label * @@ -744,22 +745,22 @@ public static function display($module, $field_name, $class = 'form-control') { // Check Field View Access if(Module::hasFieldAccess($module->id, $module->fields[$field_name]['id'], $access_type = "view")) { - + $fieldObj = $module->fields[$field_name]; $label = $module->fields[$field_name]['label']; $field_type = $module->fields[$field_name]['field_type']; $field_type = ModuleFieldTypes::find($field_type); - + $row = null; if(isset($module->row)) { $row = $module->row; } - + $out = '
'; $out .= ''; - + $value = $row->$field_name; - + switch($field_type->name) { case 'Address': if($value != "") { @@ -774,7 +775,7 @@ public static function display($module, $field_name, $class = 'form-control') } break; case 'Currency': - + break; case 'Date': if($value == NULL) { @@ -793,7 +794,7 @@ public static function display($module, $field_name, $class = 'form-control') } break; case 'Decimal': - + break; case 'Dropdown': $values = LAFormMaker::process_values($fieldObj['popup_vals']); @@ -830,7 +831,7 @@ public static function display($module, $field_name, $class = 'form-control') if($value != "" && $value != "[]" && $value != "null" && starts_with($value, "[")) { $uploads = json_decode($value); $uploads_html = ""; - + foreach($uploads as $uploadId) { $upload = \App\Models\Upload::find($uploadId); if(isset($upload->id)) { @@ -852,7 +853,7 @@ public static function display($module, $field_name, $class = 'form-control') } break; case 'Float': - + break; case 'HTML': break; @@ -869,7 +870,7 @@ public static function display($module, $field_name, $class = 'form-control') } break; case 'Integer': - + break; case 'Mobile': $value = '' . $value . ''; @@ -902,16 +903,16 @@ public static function display($module, $field_name, $class = 'form-control') $value = $valueOut; break; case 'Name': - + break; case 'Password': $value = '********'; break; case 'Radio': - + break; case 'String': - + break; case 'Taginput': $valueOut = ""; @@ -940,16 +941,16 @@ public static function display($module, $field_name, $class = 'form-control') $value = $valueOut; break; case 'Textarea': - + break; case 'TextField': - + break; case 'URL': $value = '' . $value . ''; break; } - + $out .= '
' . $value . '
'; $out .= '
'; return $out; @@ -957,7 +958,7 @@ public static function display($module, $field_name, $class = 'form-control') return ""; } } - + /** * Print complete add/edit form for Module * @@ -979,7 +980,7 @@ public static function form($module, $fields = []) } return $out; } - + /** * Check Whether User has Module Access * Work like @if blade directive of Laravel @@ -994,7 +995,7 @@ public static function la_access($module_id, $access_type = "view", $user_id = 0 // Check Module access by hasAccess method return Module::hasAccess($module_id, $access_type, $user_id); } - + /** * Check Whether User has Module Field Access * @@ -1011,4 +1012,4 @@ public static function la_field_access($module_id, $field_id, $access_type = "vi // Check Module Field access by hasFieldAccess method return Module::hasFieldAccess($module_id, $field_id, $access_type, $user_id); } -} \ No newline at end of file +} diff --git a/src/routes.php b/src/routes.php index 551f9f20..f7e914e3 100644 --- a/src/routes.php +++ b/src/routes.php @@ -12,9 +12,9 @@ Route::group([ 'namespace' => 'Dwij\Laraadmin\Controllers', 'as' => $as, - 'middleware' => ['web', 'auth', 'permission:ADMIN_PANEL', 'role:SUPER_ADMIN'] + 'middleware' => ['web', 'auth', 'permission:ADMIN_PANEL'] ], function () { - + /* ================== Modules ================== */ Route::resource(config('laraadmin.adminRoute') . '/modules', 'ModuleController'); Route::resource(config('laraadmin.adminRoute') . '/module_fields', 'FieldController'); @@ -30,7 +30,7 @@ Route::post(config('laraadmin.adminRoute') . '/get_module_files/{module_id}', 'ModuleController@get_module_files'); Route::post(config('laraadmin.adminRoute') . '/module_update', 'ModuleController@update'); Route::post(config('laraadmin.adminRoute') . '/module_field_listing_show', 'FieldController@module_field_listing_show_ajax'); - + /* ================== Code Editor ================== */ Route::get(config('laraadmin.adminRoute') . '/lacodeeditor', function () { if(file_exists(resource_path("views/la/editor/index.blade.php"))) { @@ -40,14 +40,14 @@ return View('la.editor.install'); } }); - + /* ================== Menu Editor ================== */ Route::resource(config('laraadmin.adminRoute') . '/la_menus', 'MenuController'); Route::post(config('laraadmin.adminRoute') . '/la_menus/update_hierarchy', 'MenuController@update_hierarchy'); - + /* ================== Configuration ================== */ Route::resource(config('laraadmin.adminRoute') . '/la_configs', '\App\Http\Controllers\LA\LAConfigController'); - + Route::group([ 'middleware' => 'role' ], function () {