Dotclear

source: admin/js/_media.js @ 224:23ec5a339bcf

Revision 224:23ec5a339bcf, 3.0 KB checked in by Tomtom33 <tbouron@…>, 14 years ago (diff)

Improved enhanced uploader for media

Line 
1$(function() {
2     // Replace remove links by a POST on hidden form
3     fileRemoveAct();
4     
5     function fileRemoveAct() {
6          $('a.media-remove').click(function() {
7               var m_name = $(this).parents('ul').find('li:first>a').text();
8               if (window.confirm(dotclear.msg.confirm_delete_media.replace('%s',m_name))) {
9                    var f = $('#media-remove-hide').get(0);
10                    f.elements['remove'].value = this.href.replace(/^(.*)&remove=(.*?)(&|$)/,'$2');
11                    this.href = '';
12                    f.submit();
13               }
14               return false;
15          });
16     }
17     
18     if (!$.browser.opera) {
19          var cue = $('<a/>').attr({'id':'candyupload-enable','href':'#'}).append(dotclear.msg.activate_enhanced_uploader)
20          .click(function() {
21               candyUploadInit();
22               return false;
23          });
24          $('#media-upload>fieldset').append($('<div></div>').append(cue));
25         
26          if ($.cookie('dc_candy_upl') == 1) {
27               candyUploadInit();
28          }
29     }
30     
31     function candyUploadInit()
32     {
33          var candy_upload_success = false;
34          var candy_upload_form_url = $('#media-upload').attr('action') + '&file_sort=date-desc&d=' + $('#media-upload input[name=d]').val();
35          var candy_upload_limit = $('#media-upload input[name=MAX_FILE_SIZE]').val();
36          $('#media-upload').candyUpload({
37               upload_url: dotclear.candyUpload.base_url + '/media.php',
38               flash_movie: dotclear.candyUpload.movie_url,
39               file_size_limit: candy_upload_limit + 'b',
40               params: 'swfupload=1&amp;' + dotclear.candyUpload.params,
41               
42               callbacks: {
43                    createControls: function() {
44                         var _this = this;
45                         var cud = $('<a/>').attr({'id':'candyupload-disable','href':'#'}).append(dotclear.msg.disable_enhanced_uploader)
46                         .click(function() {
47                              _this.upldr.destroy();
48                              _this.ctrl.block.empty().remove();
49                              $('#media-upload').show();
50                              delete _this;
51                              $.cookie('dc_candy_upl','',{expires: -1});
52                              return false;
53                         });
54                         this.ctrl.btn_browse.hide();
55                         this.ctrl.msg.html(dotclear.msg.load_enhanced_uploader);
56                         this.ctrl.disable = $('<div class="cu-disable"></div>').append(cud).appendTo(this.ctrl.block);
57                    },
58                    flashReady: function() {
59                         var _this = this;
60                         this.ctrl.msg.fadeOut('fast',function() {
61                              $(this).text(_this.locales.no_file_in_queue).fadeIn('fast');
62                              _this.ctrl.btn_browse.fadeIn('fast',function() {
63                                   _this.upldr.container.children().css({
64                                        width: $('.cu-btn-browse').width(),
65                                        height: $('.cu-btn-browse').height()
66                                   });
67                              });
68                         });
69                         this.ctrl.block.append(this.ctrl.disable);
70                    },
71                    uploadSuccess: function(o,data) {
72                         if (data == 'ok') {
73                              candy_upload_success = true;
74                              this.fileMsg(o.id,this.locales.file_uploaded);
75                         } else {
76                              this.fileErrorMsg(o.id,data);
77                         }
78                         
79                         // uploads finished and at least one success
80                         if (candy_upload_success && $('div.cu-file:has(span.cu-filecancel a)',this.ctrl.files).length == 0) {
81                              $.cookie('dc_candy_upl','1',{expires: 30});
82                              $.get(candy_upload_form_url,function(data) {
83                                   var media = $('div.media-list');
84                                   media.after($('div.media-list',data)).remove();
85                                   fileRemoveAct();
86                              });
87                         }
88                    }
89               }
90          });
91     }
92});
Note: See TracBrowser for help on using the repository browser.

Sites map