Skip to content

Running backend with PM2 Services #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
373 changes: 373 additions & 0 deletions app/Http/Controllers/AdminPencilController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,373 @@
<?php namespace App\Http\Controllers;

use Session;
use Request;
use DB;
use CRUDBooster;

class AdminPencilController extends \crocodicstudio\crudbooster\controllers\CBController {

public function cbInit() {

# START CONFIGURATION DO NOT REMOVE THIS LINE
$this->title_field = "id";
$this->limit = "20";
$this->orderby = "id,desc";
$this->global_privilege = false;
$this->button_table_action = true;
$this->button_bulk_action = true;
$this->button_action_style = "button_icon";
$this->button_add = true;
$this->button_edit = false;
$this->button_delete = true;
$this->button_detail = true;
$this->button_show = true;
$this->button_filter = true;
$this->button_import = false;
$this->button_export = false;
$this->table = "outbox";
# END CONFIGURATION DO NOT REMOVE THIS LINE

# START COLUMNS DO NOT REMOVE THIS LINE
$this->col = [];
$this->col[] = ["label"=>"Number","name"=>"number"];
$this->col[] = ["label"=>"Text","name"=>"text"];
$this->col[] = ["label"=>"Status","name"=>"status"];
$this->col[] = ["label"=>"Device","name"=>"id_device","join"=>"device,name"];
$this->col[] = ["label"=>"Type","name"=>"type"];
$this->col[] = ["label"=>"Url File","name"=>"url_file"];
# END COLUMNS DO NOT REMOVE THIS LINE

# START FORM DO NOT REMOVE THIS LINE
$this->form = [];
$this->form[] = ['label'=>'Device','name'=>'id_device','type'=>'select2','validation'=>'required','width'=>'col-sm-10'];
$this->form[] = ['label'=>'Type','name'=>'type','type'=>'select2','validation'=>'required','width'=>'col-sm-10'];
$this->form[] = ['label'=>'Number','name'=>'number','type'=>'upload','validation'=>'required','width'=>'col-sm-10'];
$this->form[] = ['label'=>'Text','name'=>'text','type'=>'textarea','validation'=>'required|string|min:5|max:5000','width'=>'col-sm-10'];
$this->form[] = ['label'=>'Url File','name'=>'url_file','type'=>'text','validation'=>'required|min:1|max:255','width'=>'col-sm-10'];
$this->form[] = ['label'=>'Button','name'=>'buttonText','type'=>'custom','width'=>'col-sm-10'];
# END FORM DO NOT REMOVE THIS LINE

# OLD START FORM
//$this->form = [];
//$this->form[] = ['label'=>'Number','name'=>'number','type'=>'text','validation'=>'required|min:1|max:255','width'=>'col-sm-10'];
//$this->form[] = ['label'=>'Text','name'=>'text','type'=>'textarea','validation'=>'required|string|min:5|max:5000','width'=>'col-sm-10'];
//$this->form[] = ['label'=>'Status','name'=>'status','type'=>'text','validation'=>'required|min:1|max:255','width'=>'col-sm-10'];
//$this->form[] = ['label'=>'Device','name'=>'id_device','type'=>'select2','validation'=>'required|integer|min:0','width'=>'col-sm-10','datatable'=>'device,name'];
//$this->form[] = ['label'=>'Type','name'=>'type','type'=>'text','validation'=>'required|min:1|max:255','width'=>'col-sm-10'];
//$this->form[] = ['label'=>'Url File','name'=>'url_file','type'=>'text','validation'=>'required|min:1|max:255','width'=>'col-sm-10'];
# OLD END FORM

/*
| ----------------------------------------------------------------------
| Sub Module
| ----------------------------------------------------------------------
| @label = Label of action
| @path = Path of sub module
| @foreign_key = foreign key of sub table/module
| @button_color = Bootstrap Class (primary,success,warning,danger)
| @button_icon = Font Awesome Class
| @parent_columns = Sparate with comma, e.g : name,created_at
|
*/
$this->sub_module = array();


/*
| ----------------------------------------------------------------------
| Add More Action Button / Menu
| ----------------------------------------------------------------------
| @label = Label of action
| @url = Target URL, you can use field alias. e.g : [id], [name], [title], etc
| @icon = Font awesome class icon. e.g : fa fa-bars
| @color = Default is primary. (primary, warning, succecss, info)
| @showIf = If condition when action show. Use field alias. e.g : [id] == 1
|
*/
$this->addaction = array();


/*
| ----------------------------------------------------------------------
| Add More Button Selected
| ----------------------------------------------------------------------
| @label = Label of action
| @icon = Icon from fontawesome
| @name = Name of button
| Then about the action, you should code at actionButtonSelected method
|
*/
$this->button_selected = array();


/*
| ----------------------------------------------------------------------
| Add alert message to this module at overheader
| ----------------------------------------------------------------------
| @message = Text of message
| @type = warning,success,danger,info
|
*/
$this->alert = array();



/*
| ----------------------------------------------------------------------
| Add more button to header button
| ----------------------------------------------------------------------
| @label = Name of button
| @url = URL Target
| @icon = Icon from Awesome.
|
*/
$this->index_button = array();



/*
| ----------------------------------------------------------------------
| Customize Table Row Color
| ----------------------------------------------------------------------
| @condition = If condition. You may use field alias. E.g : [id] == 1
| @color = Default is none. You can use bootstrap success,info,warning,danger,primary.
|
*/
$this->table_row_color = array();


/*
| ----------------------------------------------------------------------
| You may use this bellow array to add statistic at dashboard
| ----------------------------------------------------------------------
| @label, @count, @icon, @color
|
*/
$this->index_statistic = array();



/*
| ----------------------------------------------------------------------
| Add javascript at body
| ----------------------------------------------------------------------
| javascript code in the variable
| $this->script_js = "function() { ... }";
|
*/
$this->script_js = "$(document).ready(function() {
$('#form-group-buttonText').hide();
$('#form-group-url_file').hide();

$('#type').change(function() {
var selectedValue = $(this).val();
if (selectedValue === 'Button') {
$('#form-group-buttonText').show();
$('#form-group-url_file').hide();
}
else if (selectedValue === 'Image' || selectedValue === 'Video' || selectedValue === 'PDF') {
$('#form-group-buttonText').hide();
$('#form-group-url_file').show();

}
else {
$('#form-group-buttonText').hide();
$('#form-group-url_file').hide();
}
});
var inputCount = 0;

$('#add').click(function() {
inputCount++;
var inputHtml = '<div class=\"form-group header-group-0 \">';
inputHtml += '<label for=\"inputText' + inputCount + '\" class=\"control-label col-sm-2\">Input Text ' + inputCount + ':</label>';
inputHtml += '<div class=\"col-sm-5\"><input type=\"text\" class=\"form-control\" id=\"inputText' + inputCount + '\" name=\"buttonText[]\" class=\"form-control\">';
inputHtml += '</div></div>';

$('#inputContainer').append(inputHtml);
});
});";


/*
| ----------------------------------------------------------------------
| Include HTML Code before index table
| ----------------------------------------------------------------------
| html code to display it before index table
| $this->pre_index_html = "<p>test</p>";
|
*/
$this->pre_index_html = null;



/*
| ----------------------------------------------------------------------
| Include HTML Code after index table
| ----------------------------------------------------------------------
| html code to display it after index table
| $this->post_index_html = "<p>test</p>";
|
*/
$this->post_index_html = null;



/*
| ----------------------------------------------------------------------
| Include Javascript File
| ----------------------------------------------------------------------
| URL of your javascript each array
| $this->load_js[] = asset("myfile.js");
|
*/
$this->load_js = array();



/*
| ----------------------------------------------------------------------
| Add css style at body
| ----------------------------------------------------------------------
| css code in the variable
| $this->style_css = ".style{....}";
|
*/
$this->style_css = NULL;



/*
| ----------------------------------------------------------------------
| Include css File
| ----------------------------------------------------------------------
| URL of your css each array
| $this->load_css[] = asset("myfile.css");
|
*/
$this->load_css = array();


}


/*
| ----------------------------------------------------------------------
| Hook for button selected
| ----------------------------------------------------------------------
| @id_selected = the id selected
| @button_name = the name of button
|
*/
public function actionButtonSelected($id_selected,$button_name) {
//Your code here

}


/*
| ----------------------------------------------------------------------
| Hook for manipulate query of index result
| ----------------------------------------------------------------------
| @query = current sql query
|
*/
public function hook_query_index(&$query) {
//Your code here

}

/*
| ----------------------------------------------------------------------
| Hook for manipulate row of index table html
| ----------------------------------------------------------------------
|
*/
public function hook_row_index($column_index,&$column_value) {
//Your code here
}

/*
| ----------------------------------------------------------------------
| Hook for manipulate data input before add data is execute
| ----------------------------------------------------------------------
| @arr
|
*/
public function hook_before_add(&$postdata) {
//Your code here
// Excel::create('New file', function ($excel) {
// $excel->sheet('New sheet', function ($sheet) {
// $users = App\User::all();
// $sheet->loadView('exports.excel.users.index', compact('users'));
// });
// })->download('xls');
}

/*
| ----------------------------------------------------------------------
| Hook for execute command after add public static function called
| ----------------------------------------------------------------------
| @id = last insert id
|
*/
public function hook_after_add($id) {
//Your code here

}

/*
| ----------------------------------------------------------------------
| Hook for manipulate data input before update data is execute
| ----------------------------------------------------------------------
| @postdata = input post data
| @id = current id
|
*/
public function hook_before_edit(&$postdata,$id) {
//Your code here

}

/*
| ----------------------------------------------------------------------
| Hook for execute command after edit public static function called
| ----------------------------------------------------------------------
| @id = current id
|
*/
public function hook_after_edit($id) {
//Your code here

}

/*
| ----------------------------------------------------------------------
| Hook for execute command before delete public static function called
| ----------------------------------------------------------------------
| @id = current id
|
*/
public function hook_before_delete($id) {
//Your code here

}

/*
| ----------------------------------------------------------------------
| Hook for execute command after delete public static function called
| ----------------------------------------------------------------------
| @id = current id
|
*/
public function hook_after_delete($id) {
//Your code here

}



//By the way, you can still create your own method in here... :)


}
14 changes: 14 additions & 0 deletions backend/ecosystem.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = {
apps : [
{
name : "Start as Background Process with PM2",
script : "./dist/index.js",
instances : "1",
exec_mode : "fork",
env: {
NODE_ENV: "production",
PORT: 3018
}
}
]
}
Loading