%PDF-
%PDF-
Mini Shell
Mini Shell
<% include ../partials/header %>
<% include ../partials/sidebar %>
<style>
.quick-btn {
background: #EEEEEE;
box-shadow: 0 0 0 1px #F8F8F8 inset, 0 0 0 1px #CCCCCC;
color: #444444;
display: inline-block;
height: 80px;
margin: 10px;
padding-top: 16px;
text-align: center;
text-decoration: none;
width: 90px;
position: relative;
}
.quick-btn span {
display: block;
}
.quick-btn .label {
position: absolute;
right: -5px;
top: -5px;
}
.quick-btn:hover {
text-decoration: none;
color: #fff;
background-color: #4d7589;
box-shadow: 3px 4px 1px #ccc;
}
.quick-btn.small {
width: 40px;
height: 30px;
padding-top: 6px;
}
</style>
<link href="/app-assets/vendors/kartik/css/fileinput.css" media="all" rel="stylesheet" type="text/css" />
<!-- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" crossorigin="anonymous"> -->
<link href="/app-assets/vendors/kartik/themes/explorer-fas/theme.css" media="all" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.css">
<div class="text-center">
<a class="quick-btn text-red" href="#" data-toggle="modal" data-target="#folder">
<i class="la la-plus fa-2x"></i>
<span>New Folder</span>
</a>
<a class="quick-btn text-red" href="#" data-toggle="modal" data-target="#file">
<i class="la la-plus fa-2x"></i>
<span>New File</span>
</a>
</div>
<div class="app-content content">
<div class="content-wrapper">
<div class="content-header row">
</div>
<div class="content-body">
<!-- Breadcrumb starts-->
<div class="content-header-left col-md-6 col-12 mb-2">
<h3 class="content-header-title">Document Manager</h3>
<div class="row breadcrumbs-top">
<div class="breadcrumb-wrapper col-12">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Dashboard</a>
</li>
<li class="breadcrumb-item active">Document Manager
</li>
</ol>
</div>
</div>
</div>
<!-- Breadcrumb ends-->
<div class="content-body">
<!-- Zero configuration table -->
<section id="configuration">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">Document Manager</h4>
<a class="heading-elements-toggle"><i class="la la-ellipsis-v font-medium-3"></i></a>
<div class="heading-elements">
<ul class="list-inline mb-0">
<li><a data-action="collapse"><i class="ft-minus"></i></a></li>
<li><a data-action="reload"><i class="ft-rotate-cw"></i></a></li>
<li><a data-action="expand"><i class="ft-maximize"></i></a></li>
<li><a data-action="close"><i class="ft-x"></i></a></li>
</ul>
</div>
</div>
<div class="card-content collapse show">
<div class="card-body card-dashboard">
<table class="table table-striped table-bordered zero-configuration">
<thead>
<tr>
<th>S/N</th>
<th>Name</th>
<th>Size</th>
<th>Date</th>
<th>Type</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<%
function formatBytes(a, b) {
if (0 == a) return "0 Bytes";
var c = 1024,
d = b || 2,
e = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"],
f = Math.floor(Math.log(a) / Math.log(c));
return parseFloat((a / Math.pow(c, f)).toFixed(d)) + " " + e[f]
}
%>
<% documents.forEach(function(document, index){ %>
<tr>
<td>
<%= (index + 1) %>
</td>
<td>
<%= document.name %>
</td>
<td>
<%if (document.type == 1) { %>
<% } else { %>
<%= formatBytes(document.size) %>
<% } %>
</td>
<td>
<%= moment(document.createdAt).calendar(); %>
</td>
<td>
<%if (document.type == 1) { %>
<img class="brand-logo" style="width: 20px;" alt="" src="/app-assets/images/folder.png">
<% } else { %>
<img class="brand-logo" style="width: 20px;" alt="" src="/app-assets/images/report.png">
<% } %>
</td>
<td>
<%if (document.type == 1) { %>
<a href="/document/my-document/view/<%= document.uuid %>">
<button type="button" class="btn btn-icon btn-success btn-sm mr-1"><i
class="la la-eye"></i></button>
</a>
<% } else { %>
<a href="/document/download/<%=document.fileName %>" download=<%=document.fileName
%>"><button type="button" class="btn btn-icon btn-success btn-sm mr-1"><i
class="la la-cloud-download"></i></button></a>
<% } %>
<%if (document.type == 1) { %>
<button title="Edit" data-toggle="modal" folderId="<%= document.id %>"
fileName="<%= document.name %>" data-target="#editFolder"
class="btn btn-icon btn-warning btn-sm mr-1">
<i class="la la-pencil"></i>
</button>
<% } else { %>
<button title="Edit" data-toggle="modal" docId="<%= document.id %>"
fileName="<%= document.name %>" doc="<%= document.fileName %>"
data-target="#editDoc" class="btn btn-icon btn-warning btn-sm mr-1">
<i class="la la-pencil"></i>
</button>
<% } %>
<button type="button" title="Delete" onclick="deleteFile(this.value)"
value="<%= document.id %>" class="btn btn-icon btn-danger btn-sm mr-1"><i
class="la la-close"></i></button>
</td>
</tr>
<% }); %>
</tbody>
<tfoot>
<tr>
<th>S/N</th>
<th>Name</th>
<th>Size</th>
<th>Date</th>
<th>Type</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</section>
<!--/ Zero configuration table -->
</div>
</div>
</div>
</div>
<div class="modal fade text-left" id="folder" tabindex="-1" role="dialog" aria-labelledby="myModalLabel35" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header bg-success">
<h3 class="modal-title" id="myModalLabel35"> Create New Folder</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form method="POST" action="/document/sub-folder/<%= docId %>">
<input type="hidden" name="parentId" value="<%= docId %>">
<div class="modal-body">
<fieldset class="form-group floating-label-form-group">
<label for="name">Folder Name</label>
<input type="text" class="form-control" name="folderName" id="folderName" placeholder="Folder Name">
</fieldset>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-outline-secondary btn-lg" data-dismiss="modal" value="close">
<input type="submit" class="btn btn-outline-primary btn-lg" value="Save">
</div>
</form>
</div>
</div>
</div>
<div class="modal fade text-left" id="editFolder" tabindex="-1" role="dialog" aria-labelledby="myModalLabel35"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header bg-success">
<h3 class="modal-title" id="myModalLabel35"> Update Folder</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form method="POST" action="/document/update-folder" id="folderForm">
<input type="hidden" name="folderId" id="folderId" value="" />
<div class="modal-body">
<fieldset class="form-group floating-label-form-group">
<label for="name">Folder Name</label>
<input type="text" class="form-control" name="folderName" id="folderName" placeholder="Folder Name">
</fieldset>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-outline-secondary btn-lg" data-dismiss="modal" value="close">
<input type="submit" class="btn btn-outline-primary btn-lg" value="Save">
</div>
</form>
</div>
</div>
</div>
<div class="modal fade text-left" id="file" tabindex="-1" role="dialog" aria-labelledby="myModalLabel35" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header bg-success">
<h3 class="modal-title" id="myModalLabel35"> Create New File</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form method="POST" action="/document/new-file" enctype="multipart/form-data">
<input type="hidden" name="parentId" value="<%= docId %>">
<div class="modal-body">
<fieldset class="form-group floating-label-form-group">
<label for="name">File Name</label>
<input type="text" class="form-control" name="name" id="name" placeholder="Enter File Name">
</fieldset>
<fieldset class="form-group floating-label-form-group">
<!-- <form action="/user/upload/image" method="post" enctype="multipart/form-data"> -->
<div class="form-group">
<div class="file-loading">
<input id="file-5" class="file" type="file" name="fileName" ata-preview-file-type="any"
data-theme="fas">
</div>
</div>
<!-- </form> -->
</fieldset>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-outline-secondary btn-lg" data-dismiss="modal" value="close">
<input type="submit" class="btn btn-outline-primary btn-lg" value="Save">
</div>
</form>
</div>
</div>
</div>
<div class="modal fade text-left" id="editDoc" tabindex="-1" role="dialog" aria-labelledby="myModalLabel35" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header bg-success">
<h3 class="modal-title" id="myModalLabel35"> Update File</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form method="POST" action="/document/update-file" enctype="multipart/form-data" id="docForm">
<input type="hidden" name="docId" id="docId" value="" />
<div class="modal-body">
<fieldset class="form-group floating-label-form-group">
<label for="name">File Name</label>
<input type="text" class="form-control" name="name" id="docName" placeholder="Enter File Name">
</fieldset>
<fieldset class="form-group floating-label-form-group">
<!-- <form action="/user/upload/image" method="post" enctype="multipart/form-data"> -->
<div class="form-group">
<div class="file-loading">
<input id="fileName" class="file" type="file" name="fileName" ata-preview-file-type="any"
data-theme="fas">
</div>
</div>
<!-- </form> -->
</fieldset>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-outline-secondary btn-lg" data-dismiss="modal" value="close">
<input type="submit" class="btn btn-outline-primary btn-lg" value="Save">
</div>
</form>
</div>
</div>
</div>
<!-- ////////////////////////////////////////////////////////////////////////////-->
<% include ../partials/footer %>
<!-- <script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script> -->
<script src="/app-assets/vendors/kartik/js/plugins/sortable.js" type="text/javascript"></script>
<script src="/app-assets/vendors/kartik/js/fileinput.js" type="text/javascript"></script>
<script src="/app-assets/vendors/kartik/js/locales/fr.js" type="text/javascript"></script>
<script src="/app-assets/vendors/kartik/js/locales/es.js" type="text/javascript"></script>
<script src="/app-assets/vendors/kartik/themes/fas/theme.js" type="text/javascript"></script>
<script src="/app-assets/vendors/kartik/themes/explorer-fas/theme.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js"></script>
<script>
$('#editFolder').on('show.bs.modal', function (e) {
var opener = e.relatedTarget; // Button that triggered the modal
var folderId = $(opener).attr('folderId'); // Extract info from data-* attributes
var folderName = $(opener).attr('fileName');
$('#folderForm').find('[name="folderId"]').val(folderId);
$('#folderForm').find('[name="folderName"]').val(folderName);
});
$('#editDoc').on('show.bs.modal', function (e) {
var opener = e.relatedTarget; // Button that triggered the modal
var docId = $(opener).attr('docId'); // Extract info from data-* attributes
var fileName = $(opener).attr('fileName');
var name = $(opener).attr('doc');
$('#docForm').find('[name="docId"]').val(docId);
$('#docForm').find('[name="name"]').val(fileName);
// $('#docForm').find('[name="fileName"]').val(name);
});
function deleteFile(id) {
$.confirm({
title: '<div style="color:red">Confirm!</div>',
content: 'Are you sure you want to delete permanently?',
buttons: {
confirm: function () {
delete_file(id);
},
cancel: function () {
$.alert('Canceled!');
},
}
});
}
var delete_file = function (id) {
$.ajax({
type: "POST", // Post / Get method
url: "/document/delete", //Where form data is sent on submission
dataType: "text", // Data type, HTML, json etc.
data: { id: id }, //Form variables
success: function (response) {
if (response === "success") {
$.confirm({
title: '<div style="color:green">Success</div>',
content: 'File deleted Successfully',
buttons: {
ok: function () {
location.reload(true)
},
}
});
}
},
error: function (xhr, ajaxOptions, thrownError) {
$.alert('Could not delete');
}
});
}
</script>
<script>
$('#file-fr').fileinput({
theme: 'fas',
language: 'fr',
uploadUrl: '#',
allowedFileExtensions: ['jpg', 'png', 'gif']
});
$('#file-es').fileinput({
theme: 'fas',
language: 'es',
uploadUrl: '#',
allowedFileExtensions: ['jpg', 'png', 'gif']
});
$("#file-0").fileinput({
theme: 'fas',
'allowedFileExtensions': ['jpg', 'png', 'gif']
});
$("#file-1").fileinput({
theme: 'fas',
uploadUrl: '#', // you must set a valid URL here else you will get an error
allowedFileExtensions: ['jpg', 'png', 'gif'],
overwriteInitial: false,
maxFileSize: 1000,
maxFilesNum: 10,
//allowedFileTypes: ['image', 'video', 'flash'],
slugCallback: function (filename) {
return filename.replace('(', '_').replace(']', '_');
}
});
/*
$(".file").on('fileselect', function(event, n, l) {
alert('File Selected. Name: ' + l + ', Num: ' + n);
});
*/
$("#file-3").fileinput({
theme: 'fas',
showUpload: false,
showCaption: false,
browseClass: "btn btn-primary btn-lg",
fileType: "any",
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
overwriteInitial: false,
initialPreviewAsData: true,
initialPreview: [
"http://lorempixel.com/1920/1080/transport/1",
"http://lorempixel.com/1920/1080/transport/2",
"http://lorempixel.com/1920/1080/transport/3"
],
initialPreviewConfig: [
{ caption: "transport-1.jpg", size: 329892, width: "120px", url: "{$url}", key: 1 },
{ caption: "transport-2.jpg", size: 872378, width: "120px", url: "{$url}", key: 2 },
{ caption: "transport-3.jpg", size: 632762, width: "120px", url: "{$url}", key: 3 }
]
});
$("#file-4").fileinput({
theme: 'fas',
uploadExtraData: { kvId: '10' }
});
$(".btn-warning").on('click', function () {
var $el = $("#file-4");
if ($el.attr('disabled')) {
$el.fileinput('enable');
} else {
$el.fileinput('disable');
}
});
$(".btn-info").on('click', function () {
$("#file-4").fileinput('refresh', { previewClass: 'bg-info' });
});
/*
$('#file-4').on('fileselectnone', function() {
alert('Huh! You selected no files.');
});
$('#file-4').on('filebrowse', function() {
alert('File browse clicked for #file-4');
});
*/
$(document).ready(function () {
$("#test-upload").fileinput({
'theme': 'fas',
'showPreview': false,
'allowedFileExtensions': ['jpg', 'png', 'gif'],
'elErrorContainer': '#errorBlock'
});
$("#kv-explorer").fileinput({
'theme': 'explorer-fas',
'uploadUrl': '#',
overwriteInitial: false,
initialPreviewAsData: true,
initialPreview: [
"http://lorempixel.com/1920/1080/nature/1",
"http://lorempixel.com/1920/1080/nature/2",
"http://lorempixel.com/1920/1080/nature/3"
],
initialPreviewConfig: [
{ caption: "nature-1.jpg", size: 329892, width: "120px", url: "{$url}", key: 1 },
{ caption: "nature-2.jpg", size: 872378, width: "120px", url: "{$url}", key: 2 },
{ caption: "nature-3.jpg", size: 632762, width: "120px", url: "{$url}", key: 3 }
]
});
/*
$("#test-upload").on('fileloaded', function(event, file, previewId, index) {
alert('i = ' + index + ', id = ' + previewId + ', file = ' + file.name);
});
*/
});
</script>
Zerion Mini Shell 1.0