Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
index.html000064400000000054151161770750006552 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>tower-file-input.min.css000064400000003746151161770750011276
0ustar00.tower-file input[type="file"] {
/* height: 0.1px;
width: 0.1px;
not working if required */
height: 1px !important;
width: 1px !important;
opacity: 0;
}
.tower-file label {
margin-bottom: 0;
}
.tower-file label, .tower-file .tower-file-clear:not(:disabled) {
cursor: pointer;
}
.tower-file .tower-file-button {
background: white;
border: 1px solid #ccc;
padding: 0.2rem 0.5rem;
font-size: 1rem;
font-weight: normal;
line-height: 1.5;
user-select: none;
transition: background-color 0.15s ease-in-out, border-color 0.15s
ease-in-out;
}
.tower-file .tower-file-button:hover:not(:disabled) {
cursor: pointer;
background: #f2f2f2;
border-color: #b8b8b8;
}
.tower-file .tower-file-details {
position: relative;
border-radius: 0.25rem;
margin-top: 0.5rem;
}
.tower-file .tower-file-details .tower-file-list
/*,
.tower-file .tower-file-details img*/
{
border: 1px solid #ddd;
display: inline-block;
}
.tower-file .tower-file-details .tower-file-list {
/*padding: 0.375rem 0.75rem 0.375rem 2.5rem;*/
}
.tower-file .tower-file-details img {
padding: 0.375rem;
max-width: 100%;
}
.tower-file .tower-file-details:before, .tower-file
.tower-file-details:after {
content: "";
position: absolute;
left: 2rem;
height: 0;
width: 0;
}
.tower-file .tower-file-details:before {
top: -0.6rem;
border: 5px solid transparent;
border-bottom-color: #ddd;
}
.tower-file .tower-file-details:after {
top: calc(-0.6rem + 1px);
border: 5px solid transparent;
border-bottom-color: white;
}
.ph-file-upload-thumb {
height: 5em;
width: auto;
}
.ph-file-upload-box {
float: left;
background: #f2f2f2;
width: 7em;
margin: 0.2em;
text-align: center;
border-radius: 3px;
}
.ph-file-upload-name {
width: 6em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: small;
margin: 0 auto;
text-align: center;
}tower-file-input.min.js000064400000013626151161770750011120
0ustar00(function ($) {
$.fn.phFileInput = function (options) {
var settings = $.extend({
fileList: true,
iconClass: null,
fileCount: 5,
fileSizeLimit: 512000,
lang: {}
}, options);
function formatBytes(bytes) {
var decimals = arguments.length > 1 && arguments[1]
!== undefined ? arguments[1] : 2;
if (bytes === 0) return '0 B';
var k = 1024;
var dm = decimals < 0 ? 0 : decimals;
var sizes = ['B', 'KB', 'MB',
'GB', 'TB', 'PB', 'EB',
'ZB', 'YB'];
var i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) +
' ' + sizes[i];
}
function inputValueChanged(e) {
var input = $(this);
var container = input.closest('.tower-file');
var label = container.find('label');
var clear =
container.find('.tower-file-clear');
var fileList =
container.find('.tower-file-list').empty().hide();
var details =
container.find('.tower-file-details');
if (!details.length) {
container.append('<div
class="tower-file-details"></div>');
details = container.find('.tower-file-details');
}
var files = input[0].files;
var iconHtml = '';
if (settings.iconClass !== null &&
settings.iconClass.length > 0) {
iconHtml = '<span class="'+
settings.iconClass +'"></span>';
}
// Test the file count
if(files.length > settings.fileCount){
alert(
settings.lang["COM_PHOCACART_ERROR_TOO_MANY_FILES_SELECTED"]
+ " \n\n" +
settings.lang["COM_PHOCACART_MAXIMUM_NUMBER_FILES_SELECTED_IS"] +
": " + settings.fileCount
);
files.value = '';
clearInputAndDetails(false, container);
return false;
}
if (files.length > 0) {
if (settings.fileList && settings.fileCount > 0)
{
if (!fileList.length) {
details.append('<div
class="tower-file-list"></div>');
fileList =
container.find('.tower-file-list');
}
for (var i = 0; i < files.length; i++) {
if (files[i].size > 0 && files[i].size
> settings.fileSizeLimit) {
alert(
settings.lang["COM_PHOCACART_ERROR"]
+ ": " + files[i].name
+ " \n\n" +
settings.lang["COM_PHOCACART_WARNFILETOOLARGE"]
+ " \n\n" +
settings.lang["COM_PHOCACART_FILE_SIZE"] + ": " +
formatBytes(files[i].size)
+ " \n" +
settings.lang["COM_PHOCACART_FILE_SIZE_LIMIT"] + ": " +
formatBytes(settings.fileSizeLimit)
);
files.value = '';
clearInputAndDetails(false, container);
return false;
}
var fileId = 'phFileUploadId' + this.id +
i;
fileList.append('<div
class="ph-file-upload-box"><img src=""
alt="" id="'+ fileId + '" /><div
class="ph-file-upload-name">' + files[i].name +
'</div></div>');
var img = $('#' + fileId);
img.attr('class',
'ph-file-upload-thumb');
img.attr('alt', files[i].name);
img.attr('title', files[i].name);
showImgPreview(files[i], img);
}
details.show();
fileList.show();
} else {
fileList.hide();
}
label.html(iconHtml + files.length + ' ' +
settings.lang["COM_PHOCACART_FILES_SELECTED"] );
clear.attr('disabled', null);
} else {
// No Files Selected
details.hide();
label.html(label.data('default-text'));
clear.attr('disabled', '');
}
}
// Read the file data and insert the data URL into the src
function showImgPreview(file, img) {
var reader = new FileReader();
reader.onload = function (e) {
img.attr('src', reader.result).show();
};
reader.readAsDataURL(file);
}
function clearInputAndDetails(event, specificContainer) {
if (event === false) {
var container = specificContainer;
} else {
var container = $(this).closest('.tower-file');
}
container.find('input[type="file"]').val('');
var iconHtml = '';
if (settings.iconClass !== null &&
settings.iconClass.length > 0) {
iconHtml = '<span class="'+
settings.iconClass +'"></span>';
}
var label = container.find('label');
label.html(iconHtml + ' ' +
label.data('default-text'));
container.find('.tower-file-clear').attr('disabled',
'');
var details = container.find('.tower-file-details');
details.hide();
}
this.filter('input[type="file"]').each(function
() {
var container = $(this).closest('.tower-file');
var label = container.find('label');
if (label.length) {
label.attr('data-default-text',
label.text().trim());
}
var clear = container.find('.tower-file-clear');
if (clear.length) {
clear.attr('disabled', '');
clear.on('click', clearInputAndDetails);
}
$(this).on('change', inputValueChanged);
});
};
}(jQuery));