reverse uplaod feature

This commit is contained in:
chiu 2019-10-25 08:58:51 +08:00
parent d6da2bb587
commit f1cdd98ee7
2 changed files with 113 additions and 54 deletions

View File

@ -1,3 +1,94 @@
function form_submit(e) {
//var form_submit1 = $('form#fileupload');
//var url_submit = form_submit1.attr('action');
var temp_length = $('#file-list').find('li.template-upload').length
$.ajax({
type : "post",
url : "/admin/galleries/init_upload",
dataType : "json",
data:{all_length: temp_length},
async: false,
success: function()
{
},
error : function(data){
alert('init upload process failed, please try again later.')
}
});
var length_upload
var count_upload
var send_start
$( 'form#fileupload' ).ajaxSuccess(function() {
if (typeof length_upload == "undefined"){
count_upload = 1
length_upload = $('#file-list').find('li.template-upload').length
}
else{
count_upload ++
}
console.log('l')
console.log(length_upload)
console.log(count_upload)
if (count_upload === length_upload){
send_start = undefined
$.ajax({
url : "/admin/galleries/start_upload_process",
dataType : "json",
type : "post",
error: function(){
alert('init upload process failed, please try again later.')
},
success: function(){
window.location.href = '/admin/galleries/upload_process'
}
})
}
});
}
function form_only_one_submit(e) {
//var form_submit1 = $('form#fileupload');
//var url_submit = form_submit1.attr('action');
var temp_length = 1
$.ajax({
type : "post",
url : "/admin/galleries/init_upload",
dataType : "json",
data:{all_length: temp_length},
async: false,
success: function()
{
},
error : function(data){
alert('init upload process failed, please try again later.')
}
});
var length_upload
var count_upload
var send_start
$( 'form#fileupload' ).ajaxSuccess(function() {
if (typeof length_upload == "undefined"){
count_upload = 1
length_upload = 1
}
else{
count_upload ++
}
if (count_upload === length_upload){
send_start = undefined
$.ajax({
url : "/admin/galleries/start_upload_process",
dataType : "json",
type : "post",
error: function(){
alert('init upload process failed, please try again later.')
},
success: function(){
window.location.href = '/admin/galleries/upload_process'
}
})
}
});
}
!function ($) { !function ($) {
$.fn.checkListLength = function (param){ $.fn.checkListLength = function (param){
_defaultSettings = { _defaultSettings = {
@ -81,45 +172,7 @@ function translate(ele,pretext,text){
} }
} }
$(function() { $(function() {
var length_upload
var count_upload
var send_start
$( 'form#fileupload' ).ajaxSuccess(function() {
if (typeof length_upload == "undefined"){
count_upload = 1
length_upload = $('#file-list').find('li.template-upload').length
}
else{
count_upload ++
}
if (count_upload === length_upload){
send_start = undefined
$.ajax({
url : "/admin/galleries/start_upload_process",
dataType : "json",
type : "post",
error: function(){
alert('init upload process failed, please try again later.')
},
success: function(){
window.location.href = '/admin/galleries/upload_process'
}
})
}
});
$( 'form#fileupload' ).ajaxSend(function() {
if (typeof send_start == "undefined"){
send_start = 1
$.ajax({
url : "/admin/galleries/init_upload",
dataType : "json",
type : "post",
error : function(data){
alert('init upload process failed, please try again later.')
}
})
}
});
var $container = $('.gallery'), var $container = $('.gallery'),
$containerData = $container.data(); $containerData = $container.data();
$container.data("order-edit","0"); $container.data("order-edit","0");

View File

@ -139,10 +139,14 @@ class Admin::GalleriesController < OrbitAdminController
render :text => '' render :text => ''
end end
def recreate_progress def recreate_progress
if @@start if self.class.class_variable_defined? :@@start
render :json => {'percent' => (@@progress_percent rescue '0%'), 'filename' => (@@progress_filename rescue ''), 'finish' => (@@finish rescue false) }.to_json if @@start
render :json => {'percent' => (@@progress_percent rescue '0%'), 'filename' => (@@progress_filename rescue ''), 'finish' => (@@finish rescue false) }.to_json
else
render :json => {'percent' => '0%', 'filename' => '', 'finish' => false }.to_json
end
else else
render :json => {'percent' => '0%', 'filename' => '', 'finish' => false }.to_json render :json => {'percent' => '0%', 'filename' => '', 'finish' => false }.to_json
end end
end end
def index def index
@ -345,35 +349,37 @@ class Admin::GalleriesController < OrbitAdminController
def upload_process def upload_process
if $upload_success == true if @@upload_success == true
count = AlbumUnprocess.all.count count = @@image_unprocessed.length
Thread.new do Thread.new do
begin begin
@@start = true @@start = true
album_unprocess = AlbumUnprocess.all @@image_unprocessed.each_with_index do |image,i|
album_unprocess.each_with_index do |image,i| @@progress_filename = @@file[i].original_filename
@@progress_filename = image.file.original_filename image.file = @@file[i]
album = AlbumImage.where(id: image.album_id) image.save!
album.file = image.file
album.save!
@@progress_percent = ((i+1)*100.0/count).floor.to_s + '%' @@progress_percent = ((i+1)*100.0/count).floor.to_s + '%'
end end
AlbumUnprocess.delete_all
rescue => e rescue => e
puts e.inspect puts e.inspect
end end
$upload_success = false @@file = []
@@image_unprocessed = []
@upload_success = false
@@finish = true @@finish = true
end end
end end
end end
def start_upload_process def start_upload_process
$upload_success = true @@upload_success = true
sleep 0.01
render :json => {}.to_json render :json => {}.to_json
end end
def init_upload def init_upload
@@image_unprocessed = []
@@start = false @@start = false
@@finish = false @@finish = false
@@file = []
@@progress_percent = '0%' @@progress_percent = '0%'
@@progress_filename = 'processing!!' @@progress_filename = 'processing!!'
render :json => {}.to_json render :json => {}.to_json
@ -383,8 +389,8 @@ class Admin::GalleriesController < OrbitAdminController
files = params['files'] files = params['files']
files.each do |file| files.each do |file|
image = album.album_images.new image = album.album_images.new
image.file = file
image.tags = (album.tags rescue []) image.tags = (album.tags rescue [])
AlbumUnprocess.create(album_id:image.id,file:file)
image.save! image.save!
end end
render :json=>{"files"=>[{}]}.to_json render :json=>{"files"=>[{}]}.to_json