admin crud produk
This commit is contained in:
parent
b70aaa0a68
commit
49a4608c9c
@ -58,7 +58,7 @@ $autoload['packages'] = array();
|
|||||||
|
|
|
|
||||||
| $autoload['libraries'] = array('user_agent' => 'ua');
|
| $autoload['libraries'] = array('user_agent' => 'ua');
|
||||||
*/
|
*/
|
||||||
$autoload['libraries'] = array();
|
$autoload['libraries'] = array('database','session');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
| -------------------------------------------------------------------
|
| -------------------------------------------------------------------
|
||||||
|
@ -2,14 +2,71 @@
|
|||||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
class Product extends CI_Controller {
|
class Product extends CI_Controller {
|
||||||
|
private $_tpl_path;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->_tpl_path = 'admin/' . config_item('admin_template') . '/';
|
||||||
|
$this->load->model("m_product");
|
||||||
|
$this->load->library('form_validation');
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$tpl = config_item('admin_template');
|
|
||||||
$tpl_path = 'admin/' . $tpl . '/';
|
$product = $this->m_product;
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'tpl_path' => $tpl_path
|
'tpl_path' => $this->_tpl_path,
|
||||||
|
'products' => $product->getAll()
|
||||||
);
|
);
|
||||||
$this->load->view($tpl_path . 'product',$data);
|
$this->load->view($this->_tpl_path . 'product/list',$data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function add()
|
||||||
|
{
|
||||||
|
$product = $this->m_product;
|
||||||
|
$validation = $this->form_validation;
|
||||||
|
$validation->set_rules($product->rules());
|
||||||
|
|
||||||
|
if ($validation->run()) {
|
||||||
|
$product->save();
|
||||||
|
$this->session->set_flashdata('success', 'Berhasil disimpan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'tpl_path' => $this->_tpl_path,
|
||||||
|
'content_title' => 'Tambah Produk'
|
||||||
|
);
|
||||||
|
$this->load->view($this->_tpl_path . 'product/edit',$data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id = null)
|
||||||
|
{
|
||||||
|
if (!isset($id)) redirect('admin/product');
|
||||||
|
|
||||||
|
$product = $this->m_product;
|
||||||
|
$validation = $this->form_validation;
|
||||||
|
$validation->set_rules($product->rules());
|
||||||
|
|
||||||
|
if ($validation->run()) {
|
||||||
|
$product->update();
|
||||||
|
$this->session->set_flashdata('success', 'Berhasil disimpan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$data["product"] = $product->getById($id);
|
||||||
|
if (!$data["product"]) show_404();
|
||||||
|
|
||||||
|
$this->load->view("admin/product/edit_form", $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($id=null)
|
||||||
|
{
|
||||||
|
if (!isset($id)) show_404();
|
||||||
|
|
||||||
|
if ($this->product_model->delete($id)) {
|
||||||
|
redirect(site_url('admin/product'));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
64
application/models/M_Product.php
Normal file
64
application/models/M_Product.php
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?php defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class M_Product extends CI_Model
|
||||||
|
{
|
||||||
|
private $_table = "products";
|
||||||
|
|
||||||
|
public $product_id;
|
||||||
|
public $name;
|
||||||
|
public $price;
|
||||||
|
public $image = "default.jpg";
|
||||||
|
public $description;
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
['field' => 'name',
|
||||||
|
'label' => 'Name',
|
||||||
|
'rules' => 'required'],
|
||||||
|
|
||||||
|
['field' => 'price',
|
||||||
|
'label' => 'Price',
|
||||||
|
'rules' => 'numeric'],
|
||||||
|
|
||||||
|
['field' => 'description',
|
||||||
|
'label' => 'Description',
|
||||||
|
'rules' => 'required']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAll()
|
||||||
|
{
|
||||||
|
return $this->db->get($this->_table)->result();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getById($id)
|
||||||
|
{
|
||||||
|
return $this->db->get_where($this->_table, ["product_id" => $id])->row();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function save()
|
||||||
|
{
|
||||||
|
$post = $this->input->post();
|
||||||
|
$this->product_id = uniqid();
|
||||||
|
$this->name = $post["name"];
|
||||||
|
$this->price = $post["price"];
|
||||||
|
$this->description = $post["description"];
|
||||||
|
$this->db->insert($this->_table, $this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update()
|
||||||
|
{
|
||||||
|
$post = $this->input->post();
|
||||||
|
$this->product_id = $post["id"];
|
||||||
|
$this->name = $post["name"];
|
||||||
|
$this->price = $post["price"];
|
||||||
|
$this->description = $post["description"];
|
||||||
|
$this->db->update($this->_table, $this, array('product_id' => $post['id']));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($id)
|
||||||
|
{
|
||||||
|
return $this->db->delete($this->_table, array("product_id" => $id));
|
||||||
|
}
|
||||||
|
}
|
@ -36,154 +36,7 @@
|
|||||||
<!-- Content Row -->
|
<!-- Content Row -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
<!-- Earnings (Monthly) Card Example -->
|
|
||||||
<div class="col-xl-3 col-md-6 mb-4">
|
|
||||||
<div class="card border-left-primary shadow h-100 py-2">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row no-gutters align-items-center">
|
|
||||||
<div class="col mr-2">
|
|
||||||
<div class="text-xs font-weight-bold text-primary text-uppercase mb-1">Earnings (Monthly)</div>
|
|
||||||
<div class="h5 mb-0 font-weight-bold text-gray-800">$40,000</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
|
||||||
<i class="fas fa-calendar fa-2x text-gray-300"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Earnings (Monthly) Card Example -->
|
|
||||||
<div class="col-xl-3 col-md-6 mb-4">
|
|
||||||
<div class="card border-left-success shadow h-100 py-2">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row no-gutters align-items-center">
|
|
||||||
<div class="col mr-2">
|
|
||||||
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Earnings (Annual)</div>
|
|
||||||
<div class="h5 mb-0 font-weight-bold text-gray-800">$215,000</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
|
||||||
<i class="fas fa-dollar-sign fa-2x text-gray-300"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Earnings (Monthly) Card Example -->
|
|
||||||
<div class="col-xl-3 col-md-6 mb-4">
|
|
||||||
<div class="card border-left-info shadow h-100 py-2">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row no-gutters align-items-center">
|
|
||||||
<div class="col mr-2">
|
|
||||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">Tasks</div>
|
|
||||||
<div class="row no-gutters align-items-center">
|
|
||||||
<div class="col-auto">
|
|
||||||
<div class="h5 mb-0 mr-3 font-weight-bold text-gray-800">50%</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="progress progress-sm mr-2">
|
|
||||||
<div class="progress-bar bg-info" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
|
||||||
<i class="fas fa-clipboard-list fa-2x text-gray-300"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Pending Requests Card Example -->
|
|
||||||
<div class="col-xl-3 col-md-6 mb-4">
|
|
||||||
<div class="card border-left-warning shadow h-100 py-2">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row no-gutters align-items-center">
|
|
||||||
<div class="col mr-2">
|
|
||||||
<div class="text-xs font-weight-bold text-warning text-uppercase mb-1">Pending Requests</div>
|
|
||||||
<div class="h5 mb-0 font-weight-bold text-gray-800">18</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
|
||||||
<i class="fas fa-comments fa-2x text-gray-300"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Content Row -->
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<!-- Area Chart -->
|
|
||||||
<div class="col-xl-8 col-lg-7">
|
|
||||||
<div class="card shadow mb-4">
|
|
||||||
<!-- Card Header - Dropdown -->
|
|
||||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
|
||||||
<h6 class="m-0 font-weight-bold text-primary">Earnings Overview</h6>
|
|
||||||
<div class="dropdown no-arrow">
|
|
||||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
|
||||||
<div class="dropdown-header">Dropdown Header:</div>
|
|
||||||
<a class="dropdown-item" href="#">Action</a>
|
|
||||||
<a class="dropdown-item" href="#">Another action</a>
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
<a class="dropdown-item" href="#">Something else here</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Card Body -->
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="chart-area">
|
|
||||||
<canvas id="myAreaChart"></canvas>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Pie Chart -->
|
|
||||||
<div class="col-xl-4 col-lg-5">
|
|
||||||
<div class="card shadow mb-4">
|
|
||||||
<!-- Card Header - Dropdown -->
|
|
||||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
|
||||||
<h6 class="m-0 font-weight-bold text-primary">Revenue Sources</h6>
|
|
||||||
<div class="dropdown no-arrow">
|
|
||||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
|
||||||
<div class="dropdown-header">Dropdown Header:</div>
|
|
||||||
<a class="dropdown-item" href="#">Action</a>
|
|
||||||
<a class="dropdown-item" href="#">Another action</a>
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
<a class="dropdown-item" href="#">Something else here</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Card Body -->
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="chart-pie pt-4 pb-2">
|
|
||||||
<canvas id="myPieChart"></canvas>
|
|
||||||
</div>
|
|
||||||
<div class="mt-4 text-center small">
|
|
||||||
<span class="mr-2">
|
|
||||||
<i class="fas fa-circle text-primary"></i> Direct
|
|
||||||
</span>
|
|
||||||
<span class="mr-2">
|
|
||||||
<i class="fas fa-circle text-success"></i> Social
|
|
||||||
</span>
|
|
||||||
<span class="mr-2">
|
|
||||||
<i class="fas fa-circle text-info"></i> Referral
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
131
application/views/admin/sb_admin/product/add.php
Normal file
131
application/views/admin/sb_admin/product/add.php
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/head.php") ?>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="page-top">
|
||||||
|
|
||||||
|
<!-- Page Wrapper -->
|
||||||
|
<div id="wrapper">
|
||||||
|
|
||||||
|
<!-- Sidebar -->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/sidebar.php") ?>
|
||||||
|
<!-- End of Sidebar -->
|
||||||
|
|
||||||
|
<!-- Content Wrapper -->
|
||||||
|
<div id="content-wrapper" class="d-flex flex-column">
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<!-- Topbar -->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/topbar.php") ?>
|
||||||
|
<!-- End of Topbar -->
|
||||||
|
|
||||||
|
<!-- Page Content -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<!-- Page Heading -->
|
||||||
|
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||||
|
<h1 class="h3 mb-0 text-gray-800"><?php echo $content_title ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Content Row -->
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<?php if ($this->session->flashdata('success')): ?>
|
||||||
|
<div class="alert alert-success" role="alert">
|
||||||
|
<?php echo $this->session->flashdata('success'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">
|
||||||
|
<a href="<?php echo site_url('admin/product/') ?>"><i class="fas fa-arrow-left"></i> Back</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<form action="<?php echo site_url('admin/products/add') ?>" method="post" enctype="multipart/form-data" >
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Name*</label>
|
||||||
|
<input class="form-control <?php echo form_error('name') ? 'is-invalid':'' ?>"
|
||||||
|
type="text" name="name" placeholder="Product name" />
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('name') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="price">Price*</label>
|
||||||
|
<input class="form-control <?php echo form_error('price') ? 'is-invalid':'' ?>"
|
||||||
|
type="number" name="price" min="0" placeholder="Product price" />
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('price') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Photo</label>
|
||||||
|
<input class="form-control-file <?php echo form_error('price') ? 'is-invalid':'' ?>"
|
||||||
|
type="file" name="image" />
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('image') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Description*</label>
|
||||||
|
<textarea class="form-control <?php echo form_error('description') ? 'is-invalid':'' ?>"
|
||||||
|
name="description" placeholder="Product description..."></textarea>
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('description') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input class="btn btn-success" type="submit" name="btn" value="Save" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-footer small text-muted">
|
||||||
|
* required fields
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End Content Row -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End Page Content -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/footer.php") ?>
|
||||||
|
<!-- End of Footer -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Content Wrapper -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
|
<!-- Scroll to Top Button-->
|
||||||
|
<a class="scroll-to-top rounded" href="#page-top">
|
||||||
|
<i class="fas fa-angle-up"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Modal-->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/modal.php") ?>
|
||||||
|
<!-- End Modal-->
|
||||||
|
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/js.php") ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
131
application/views/admin/sb_admin/product/edit.php
Normal file
131
application/views/admin/sb_admin/product/edit.php
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/head.php") ?>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="page-top">
|
||||||
|
|
||||||
|
<!-- Page Wrapper -->
|
||||||
|
<div id="wrapper">
|
||||||
|
|
||||||
|
<!-- Sidebar -->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/sidebar.php") ?>
|
||||||
|
<!-- End of Sidebar -->
|
||||||
|
|
||||||
|
<!-- Content Wrapper -->
|
||||||
|
<div id="content-wrapper" class="d-flex flex-column">
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<!-- Topbar -->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/topbar.php") ?>
|
||||||
|
<!-- End of Topbar -->
|
||||||
|
|
||||||
|
<!-- Page Content -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<!-- Page Heading -->
|
||||||
|
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||||
|
<h1 class="h3 mb-0 text-gray-800"><?php echo $content_title ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Content Row -->
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<?php if ($this->session->flashdata('success')): ?>
|
||||||
|
<div class="alert alert-success" role="alert">
|
||||||
|
<?php echo $this->session->flashdata('success'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">
|
||||||
|
<a href="<?php echo site_url('admin/product/') ?>"><i class="fas fa-arrow-left"></i> Back</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<form action="<?php echo site_url('admin/products/add') ?>" method="post" enctype="multipart/form-data" >
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Name*</label>
|
||||||
|
<input class="form-control <?php echo form_error('name') ? 'is-invalid':'' ?>"
|
||||||
|
type="text" name="name" placeholder="Product name" />
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('name') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="price">Price*</label>
|
||||||
|
<input class="form-control <?php echo form_error('price') ? 'is-invalid':'' ?>"
|
||||||
|
type="number" name="price" min="0" placeholder="Product price" />
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('price') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Photo</label>
|
||||||
|
<input class="form-control-file <?php echo form_error('price') ? 'is-invalid':'' ?>"
|
||||||
|
type="file" name="image" />
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('image') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Description*</label>
|
||||||
|
<textarea class="form-control <?php echo form_error('description') ? 'is-invalid':'' ?>"
|
||||||
|
name="description" placeholder="Product description..."></textarea>
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
<?php echo form_error('description') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input class="btn btn-success" type="submit" name="btn" value="Save" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-footer small text-muted">
|
||||||
|
* required fields
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End Content Row -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End Page Content -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/footer.php") ?>
|
||||||
|
<!-- End of Footer -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Content Wrapper -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
|
<!-- Scroll to Top Button-->
|
||||||
|
<a class="scroll-to-top rounded" href="#page-top">
|
||||||
|
<i class="fas fa-angle-up"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Modal-->
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/modal.php") ?>
|
||||||
|
<!-- End Modal-->
|
||||||
|
|
||||||
|
<?php $this->load->view($tpl_path . "_partial/js.php") ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -30,7 +30,7 @@
|
|||||||
<!-- Page Heading -->
|
<!-- Page Heading -->
|
||||||
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||||
<h1 class="h3 mb-0 text-gray-800">Produk</h1>
|
<h1 class="h3 mb-0 text-gray-800">Produk</h1>
|
||||||
<a href="#" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-plus fa-sm text-white-50"></i> Tambah Produk</a>
|
<a href="<?php echo site_url('admin/product/add') ?>" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-plus fa-sm text-white-50"></i> Tambah Produk</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -42,20 +42,38 @@
|
|||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="card shadow" style="">
|
<div class="card shadow" style="">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<table class="table table-bordered" cellspacing="0" style="width: 100%;">
|
<table class="table table-bordered" id="datatable" cellspacing="0" style="width: 100%;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:30px">ID</th>
|
<th>Gambar</th>
|
||||||
<th>Produk</th>
|
<th>Nama Produk</th>
|
||||||
<th style="width:100px">Aksi</th>
|
<th>Harga</th>
|
||||||
</tr>
|
<th>Deskripsi</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<?php foreach ($products as $product): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td>ID</td>
|
<td>
|
||||||
<td>Produk</td>
|
<img src="<?php echo base_url('upload/product/'.$product->image) ?>" width="64" />
|
||||||
<td>Edit | Hapus</td>
|
</td>
|
||||||
|
<td width="150">
|
||||||
|
<?php echo $product->name ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php echo $product->price ?>
|
||||||
|
</td>
|
||||||
|
<td class="small">
|
||||||
|
<?php echo substr($product->description, 0, 120) ?>...</td>
|
||||||
|
<td width="250">
|
||||||
|
<a href="<?php echo site_url('admin/product/edit/'.$product->product_id) ?>"
|
||||||
|
class="btn btn-small"><i class="fas fa-edit"></i> Edit</a>
|
||||||
|
<a onclick="deleteConfirm('<?php echo site_url('admin/product/delete/'.$product->product_id) ?>')"
|
||||||
|
href="#!" class="btn btn-small text-danger"><i class="fas fa-trash"></i> Hapus</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
Loading…
Reference in New Issue
Block a user