summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-07-04 17:41:05 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-07-04 17:41:05 -0400
commite9de848e2670a8524dd12ed9445a5c9df2c86af3 (patch)
treedca19696590dd49c51111886ed92befbe0f6f046
parent44c7183670bba69a0b6e49214e23b869c035d1e6 (diff)
downloadaskbot-e9de848e2670a8524dd12ed9445a5c9df2c86af3.tar.gz
askbot-e9de848e2670a8524dd12ed9445a5c9df2c86af3.tar.bz2
askbot-e9de848e2670a8524dd12ed9445a5c9df2c86af3.zip
made file updated uploading work in WMD as well
-rw-r--r--askbot/skins/common/media/js/editor.js13
-rw-r--r--askbot/skins/common/media/js/jquery.ajaxfileupload.js37
-rw-r--r--askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js1
-rw-r--r--askbot/skins/common/media/js/utils.js12
-rw-r--r--askbot/skins/common/media/js/wmd/wmd.js20
5 files changed, 44 insertions, 39 deletions
diff --git a/askbot/skins/common/media/js/editor.js b/askbot/skins/common/media/js/editor.js
index 209934d9..c6f1c873 100644
--- a/askbot/skins/common/media/js/editor.js
+++ b/askbot/skins/common/media/js/editor.js
@@ -23,7 +23,7 @@ Ajax upload
function ajaxFileUpload(options) {
var spinner = options['spinner'];
- var uploadInput = $(options['uploadInput']);
+ var uploadInputId = options['uploadInputId'];
var urlInput = $(options['urlInput']);
var startUploadHandler = options['startUploadHandler'];
@@ -33,18 +33,19 @@ function ajaxFileUpload(options) {
$(this).hide();
});
- uploadInput.ajaxStart(function(){
+ /* important!!! upload input must be loaded by id
+ * because ajaxFileUpload monkey-patches the upload form */
+ $('#' + uploadInputId).ajaxStart(function(){
$(this).hide();
}).ajaxComplete(function(){
$(this).show();
});
//var localFilePath = upload_input.val();
-
$.ajaxFileUpload({
url: askbot['urls']['upload'],
secureuri: false,
- fileElementId: uploadInput.attr('id'),
+ fileElementId: uploadInputId,
dataType: 'xml',
success: function (data, status) {
@@ -65,14 +66,14 @@ function ajaxFileUpload(options) {
* will remove the handler to prevent double uploading
* this hack is a manipulation around the
* ajaxFileUpload jQuery plugin. */
- uploadInput.unbind('change').change(startUploadHandler);
+ $('#' + uploadInputId).unbind('change').change(startUploadHandler);
},
error: function (data, status, e) {
alert(e);
if (startUploadHandler){
/* re-install this as the upload extension
* will remove the handler to prevent double uploading */
- uploadInput.unbind('change').change(startUploadHandler);
+ $('#' + uploadInputId).unbind('change').change(startUploadHandler);
}
}
});
diff --git a/askbot/skins/common/media/js/jquery.ajaxfileupload.js b/askbot/skins/common/media/js/jquery.ajaxfileupload.js
index 75292776..23759c2e 100644
--- a/askbot/skins/common/media/js/jquery.ajaxfileupload.js
+++ b/askbot/skins/common/media/js/jquery.ajaxfileupload.js
@@ -23,8 +23,7 @@ jQuery.extend({
document.body.appendChild(io);
return io;
},
- createUploadForm: function(id, fileElementId)
- {
+ createUploadForm: function(id, fileElementId) {
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
@@ -62,8 +61,7 @@ jQuery.extend({
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
// Wait for a response to come back
- var uploadCallback = function(isTimeout)
- {
+ var uploadCallback = function(isTimeout) {
var io = document.getElementById(frameId);
try {
if(io.contentWindow){
@@ -81,12 +79,10 @@ jQuery.extend({
io.contentDocument.document.XMLDocument : io.contentDocument.document;
}
}
- catch(e)
- {
+ catch(e) {
jQuery.handleError(s, xml, null, e);
}
- if ( xml || isTimeout == "timeout")
- {
+ if ( xml || isTimeout == "timeout") {
requestDone = true;
var status;
try {
@@ -125,16 +121,15 @@ jQuery.extend({
jQuery(io).unbind();
- setTimeout(function()
- { try
- {
+ setTimeout(function() {
+ try {
$(io).remove();
$(form).remove();
- } catch(e) {
- jQuery.handleError(s, xml, null, e);
- }
- }, 100)
+ } catch(e) {
+ jQuery.handleError(s, xml, null, e);
+ }
+ }, 100);
xml = null;
}
}
@@ -145,25 +140,21 @@ jQuery.extend({
if( !requestDone ) uploadCallback( "timeout" );
}, s.timeout);
}
- try
- {
+ try {
// var io = $('#' + frameId);
var form = $('#' + formId);
$(form).attr('action', s.url);
$(form).attr('method', 'POST');
$(form).attr('target', frameId);
- if(form.encoding)
- {
+ if(form.encoding) {
form.encoding = 'multipart/form-data';
}
- else
- {
+ else {
form.enctype = 'multipart/form-data';
}
$(form).submit();
- } catch(e)
- {
+ } catch(e) {
jQuery.handleError(s, xml, null, e);
}
if(window.attachEvent){
diff --git a/askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js
index b1d9a918..341904b5 100644
--- a/askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js
+++ b/askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js
@@ -27,6 +27,7 @@
var dialog = new FileUploadDialog();
dialog.setHeadingText(modalMenuHeadline);
dialog.setPostUploadHandler(insertIntoDom);
+ debugger;
dialog.setInputId('askbot_attachment_input');
dialog.setUrlInputTooltip(gettext('Or paste file url here'));
$(document).append(dialog.getElement());
diff --git a/askbot/skins/common/media/js/utils.js b/askbot/skins/common/media/js/utils.js
index 64d232fa..6d8c345f 100644
--- a/askbot/skins/common/media/js/utils.js
+++ b/askbot/skins/common/media/js/utils.js
@@ -704,6 +704,10 @@ FileUploadDialog.prototype.setInputId = function(id) {
this._input_id = id;
};
+FileUploadDialog.prototype.getInputId = function() {
+ return this._input_id;
+};
+
FileUploadDialog.prototype.setUrlInputTooltip = function(text) {
this._url_input_tooltip = text;
};
@@ -741,13 +745,13 @@ FileUploadDialog.prototype.getStartUploadHandler = function(){
* which is removed by the ajaxFileUpload jQuery extension
*/
var spinner = this._spinner;
- var upload_input = this._upload_input;
- var url_input = this._url_input;
+ var uploadInputId = this.getInputId();
+ var urlInput = this._url_input;
var handler = function() {
var options = {
'spinner': spinner,
- 'uploadInput': upload_input,
- 'urlInput': url_input.getElement(),
+ 'uploadInputId': uploadInputId,
+ 'urlInput': urlInput.getElement(),
'startUploadHandler': handler//pass in itself
};
return ajaxFileUpload(options);
diff --git a/askbot/skins/common/media/js/wmd/wmd.js b/askbot/skins/common/media/js/wmd/wmd.js
index 3ecf02e1..60d6d868 100644
--- a/askbot/skins/common/media/js/wmd/wmd.js
+++ b/askbot/skins/common/media/js/wmd/wmd.js
@@ -357,6 +357,11 @@ util.prompt = function(text, defaultInputText, makeLinkMarkdown, dialogType){
upload_input.attr('id', 'file-upload');
upload_input.attr('size', 26);
+ var spinner = $('<img />');
+ spinner.attr('id', 'loading');
+ spinner.attr('src', mediaUrl("media/images/indicator.gif"));
+ spinner.css('display', 'none');
+
var startUploadHandler = function(){
localUploadFileName = $(this).val();//this is a local var
/*
@@ -364,7 +369,14 @@ util.prompt = function(text, defaultInputText, makeLinkMarkdown, dialogType){
* in order to re-install the onchange handler
* because the jquery extension ajaxFileUpload removes the handler
*/
- return ajaxFileUpload($('#image-url'), startUploadHandler);
+ var options = {
+ spinner: spinner,
+ uploadInputId: 'file-upload',
+ urlInput: $(input),
+ startUploadHandler: startUploadHandler
+ };
+ return ajaxFileUpload(options);
+ //$('#image-url'), startUploadHandler);
};
upload_input.change(startUploadHandler);
@@ -372,12 +384,8 @@ util.prompt = function(text, defaultInputText, makeLinkMarkdown, dialogType){
upload_container.append(upload_input);
upload_container.append($('<br/>'));
- var spinner = $('<img />');
- spinner.attr('id', 'loading');
- spinner.attr('src', mediaUrl("media/images/indicator.gif"));
- spinner.css('display', 'none');
-
upload_container.append(spinner);
+
upload_container.css('padding', '5px');
$(form).append(upload_container);
}