mirror of
https://github.com/monstra-cms/monstra.git
synced 2025-08-04 20:27:40 +02:00
Uploading new plugins via the admin panel - fileuploader refactoring: drag&drop uploader multiple instances support #215
This commit is contained in:
@@ -5,37 +5,44 @@ $.monstra.fileuploader = {
|
|||||||
conf: {
|
conf: {
|
||||||
uploadUrl: '',
|
uploadUrl: '',
|
||||||
csrf: '',
|
csrf: '',
|
||||||
errorMsg: ''
|
errorMsg: '',
|
||||||
|
uploaderId: ''
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_uploaderObj: null,
|
||||||
|
|
||||||
init: function(conf){
|
init: function(conf){
|
||||||
|
if (!conf.uploaderId) {
|
||||||
|
throw 'uploaderId not specified';
|
||||||
|
}
|
||||||
$.extend(this.conf, conf);
|
$.extend(this.conf, conf);
|
||||||
var area = $('#uploadArea');
|
this._uploaderObj = $('#'+ this.conf.uploaderId);
|
||||||
area.on('dragenter', function(e){
|
var area = this._uploaderObj.find('.upload-area');
|
||||||
|
area.off('dragenter.fuploader').on('dragenter.fuploader', function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$(this).addClass('upload-area-dragenter');
|
$(this).addClass('upload-area-dragenter');
|
||||||
});
|
});
|
||||||
area.on('dragover', function(e){
|
area.off('dragover.fuploader').on('dragover.fuploader', function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
area.on('drop', function(e){
|
area.off('drop.fuploader').on('drop.fuploader', function(e){
|
||||||
$(this).removeClass('upload-area-dragenter').removeClass('upload-area-dragover').addClass('upload-area-drop');
|
$(this).removeClass('upload-area-dragenter').removeClass('upload-area-dragover').addClass('upload-area-drop');
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var files = e.originalEvent.dataTransfer.files;
|
var files = e.originalEvent.dataTransfer.files;
|
||||||
$.monstra.fileuploader.uploadFileHandle(files, area);
|
$.monstra.fileuploader.uploadFileHandle(files, area);
|
||||||
});
|
});
|
||||||
$(document).on('dragover', function(e){
|
$(document).off('dragover.fuploader').on('dragover.fuploader', function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
area.removeClass('upload-area-dragenter').removeClass('upload-area-drop').addClass('upload-area-dragover');
|
area.removeClass('upload-area-dragenter').removeClass('upload-area-drop').addClass('upload-area-dragover');
|
||||||
});
|
});
|
||||||
$(document).on('dragenter', function(e){
|
$(document).off('dragenter.fuploader').on('dragenter.fuploader', function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
$(document).on('drop', function(e){
|
$(document).off('drop.fuploader').on('drop.fuploader', function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
@@ -87,18 +94,18 @@ $.monstra.fileuploader = {
|
|||||||
message : $.monstra.fileuploader.conf.errorMsg,
|
message : $.monstra.fileuploader.conf.errorMsg,
|
||||||
hideAfter: 3
|
hideAfter: 3
|
||||||
});
|
});
|
||||||
$('#fuProgress').animate({ width: 0 }, 1);
|
this._uploaderObj.find('.upload-progress').animate({ width: 0 }, 1);
|
||||||
$('#fuPlaceholder').show();
|
this._uploaderObj.find('.upload-file-pholder').show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
setProgress: function(progress){
|
setProgress: function(progress){
|
||||||
if (parseInt(progress) > 0) {
|
if (parseInt(progress) > 0) {
|
||||||
$('#fuPlaceholder').hide();
|
this._uploaderObj.find('.upload-file-pholder').hide();
|
||||||
}
|
}
|
||||||
var progressBarWidth = progress * $('#uploadArea').width() / 100;
|
var progressBarWidth = progress * this._uploaderObj.find('.upload-area').width() / 100;
|
||||||
$('#fuProgress').animate({ width: progressBarWidth }, 10);
|
this._uploaderObj.find('.upload-progress').animate({ width: progressBarWidth }, 10);
|
||||||
},
|
},
|
||||||
|
|
||||||
setFileNameSize: function(fname, fsize){
|
setFileNameSize: function(fname, fsize){
|
||||||
@@ -111,14 +118,14 @@ $.monstra.fileuploader = {
|
|||||||
sizeStr = sizeKB.toFixed(2)+' KB';
|
sizeStr = sizeKB.toFixed(2)+' KB';
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#fileInfo').html(fname +' '+ sizeStr);
|
this._uploaderObj.find('.upload-file-info').html(fname +' '+ sizeStr);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$val_fUploaderInit = $('#fUploaderInit').val();
|
$val_fUploaderInit = $('#fUploaderInit').val();
|
||||||
if ($val_fUploaderInit !== undefined) {
|
if ($val_fUploaderInit !== undefined) {
|
||||||
$.monstra.fileuploader.init($.parseJSON($val_fUploaderInit));
|
$.monstra.fileuploader.init($.extend({}, {uploaderId:'DgDfileUploader'}, $.parseJSON($val_fUploaderInit)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -25,14 +25,16 @@
|
|||||||
<a href="#" class="close fileinput-exists" data-dismiss="fileinput" style="float: none">×</a>
|
<a href="#" class="close fileinput-exists" data-dismiss="fileinput" style="float: none">×</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="uploadArea" class="upload-area">
|
<div id="DgDfileUploader">
|
||||||
<div id="fuProgress" class="upload-progress"></div>
|
<div class="upload-area">
|
||||||
<div id="fuPlaceholder" class="upload-file-pholder"><?php echo __('Drop File Here', 'filesmanager'); ?></div>
|
<div class="upload-progress"></div>
|
||||||
</div>
|
<div class="upload-file-pholder"><?php echo __('Drop File Here', 'filesmanager'); ?></div>
|
||||||
<div id="fileInfo" class="upload-file-info"></div>
|
</div>
|
||||||
<div class="btn btn-link file-size-max-upload">
|
<div class="upload-file-info"></div>
|
||||||
<?php echo __('Maximum upload file size: :upload_max_filesize', 'pages', array(':upload_max_filesize' => $upload_max_filesize)); ?>
|
<div class="btn btn-link file-size-max-upload">
|
||||||
</div>
|
<?php echo __('Maximum upload file size: :upload_max_filesize', 'pages', array(':upload_max_filesize' => $upload_max_filesize)); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
|
@@ -121,11 +121,13 @@
|
|||||||
<span class="fileupload-preview"></span>
|
<span class="fileupload-preview"></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="uploadArea" class="upload-area">
|
<div id="DgDfileUploader">
|
||||||
<div id="fuProgress" class="upload-progress"></div>
|
<div class="upload-area">
|
||||||
<div id="fuPlaceholder" class="upload-file-pholder"><?php echo __('Drop File Here', 'plugins'); ?></div>
|
<div class="upload-progress"></div>
|
||||||
</div>
|
<div class="upload-file-pholder"><?php echo __('Drop File Here', 'plugins'); ?></div>
|
||||||
<div id="fileInfo" class="upload-file-info"></div>
|
</div>
|
||||||
|
<div class="upload-file-info"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user