Issue status update for http://drupal.org/node/28483 Post a follow up: http://drupal.org/project/comments/add/28483 Project: Drupal Version: 4.6.0 Component: upload.module Category: feature requests Priority: normal Assigned to: Steven Reported by: Steven Updated by: m3avrck Status: patch (code needs review) This sounds like a great and much needed feature! I'm curious as to how extendable this feature is because I would like to very soon create a window that can be opened from a link (maybe even through TinyMCE) to basically include links to documents on a Drupal website within the content itself, instead of merely "attaching" them to the end of the document. Taking this upload feature, along with better a file manager could create quite an awesome webbased FTP like program that I know many would find useful. I'll have to take a look at this patch much more closely very soon. m3avrck Previous comments: ------------------------------------------------------------------------ Tue, 09 Aug 2005 01:13:03 +0000 : Steven Attachment: http://drupal.org/files/issues/jsupload.patch (14.71 KB) This patch adds JavaScript-based inline uploading (screenshot [1]). It does this by redirecting the submission of the form to a hidden <iframe> when you click "Attach" (we cannot submit data through Ajax directly because you cannot read file contents from JS for security reasons). Once the file is submitted, the upload-section of the form is updated. Things to note: * The feature degrades back to the current behaviour without JS. * If there are errors with the uploaded file (disallowed type, too big, ...), they are displayed at the top of the file attachments fieldset. * Though the hidden-iframe method sounds dirty, it's quite compact and is 100% implemented in .js files. The drupal.js api makes it a snap to use. * I included some minor improvements to the Drupal JS API and code. * I added an API drupal_call_js() to bridge the PHP/JS gap: it takes a function name and arguments, and outputs a <script> tag. The kicker is that it preserves the structure and type of arguments, so e.g. PHP associative arrays end up as objects in JS. * I also included a progressbar widget [2] that I wrote for drumm's ongoing update.php work. It includes Ajax status updating/monitoring, but it is only used as a pure throbber in this patch. But as the code was already written and is going to be used in the near future, I left that part in. It's pretty small ;). If PHP supports ad-hoc upload info in the future like Ruby on Rails, we can implement that in 5 minutes. [1] http://www.acko.net/dumpx/jsupload.png [2] http://www.acko.net/yay-progress ------------------------------------------------------------------------ Tue, 09 Aug 2005 01:39:42 +0000 : Steven Attachment: http://drupal.org/files/issues/progress.gif (1.22 KB) This image belongs in the misc directory.