Dotclear

source: admin/js/_media.js @ 1461:b58a6d10a368

Revision 1461:b58a6d10a368, 4.7 KB checked in by Nicolas <nikrou77@…>, 11 years ago (diff)

Fix issue #1555 : load templates from external files. x-tmpl templates made html invalid.

Line 
1$(function() {
2     if ($('#fileupload').length==0) {
3          return;
4     }
5
6     function enableButton(button) {
7          button.prop('disabled',false).removeClass('disabled');
8     }
9
10     function disableButton(button) {
11          button.prop('disabled',true).addClass('disabled');
12     }
13
14     function displayMessageInQueue(n) {
15          var msg = '';
16          if (n==1) {
17               msg = dotclear.jsUpload.msg.file_in_queue;
18          } else if (n>1) {
19               msg = dotclear.jsUpload.msg.files_in_queue;
20               msg = msg.replace(/%d/,n);
21          } else {
22               msg = dotclear.jsUpload.msg.no_file_in_queue;
23          }
24          $('.queue-message','#fileupload').html(msg);
25     }
26
27     $('.button.add').click(function(e) {
28          // Use the native click() of the file input.
29          $('#upfile').click();
30          e.preventDefault();
31     });
32
33     $('.button.cancel', '#fileupload .fileupload-buttonbar').click(function(e) {
34          $('.button.cancel','#fileupload .fileupload-buttonbar').hide();
35          disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
36          displayMessageInQueue(0);
37     });
38
39     $('.cancel').live('click', function(e) {
40          if ($('.fileupload-ctrl .files .template-upload', '#fileupload').length==0) {
41               $('.button.cancel','#fileupload .fileupload-buttonbar').hide();
42               disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
43          }
44          displayMessageInQueue($('.files .template-upload','#fileupload').length);
45     });
46
47     $('.button.clean', '#fileupload').click(function(e) {
48          $('.fileupload-ctrl .files .template-download', '#fileupload').slideUp(500, function() {
49               $(this).remove();
50          });
51          $(this).hide();
52          e.preventDefault();
53     });
54
55     $('#fileupload').fileupload({
56          url: $('#fileupload').attr('action'),
57          autoUpload: false,
58          sequentialUploads: true,
59          uploadTemplateId: null,
60          downloadTemplateId: null,
61          uploadTemplate: template_upload,
62          downloadTemplate: template_download
63     }).bind('fileuploadadd', function(e, data) {
64          $('.button.cancel','#fileupload .fileupload-buttonbar').show();
65          enableButton($('.button.start','#fileupload .fileupload-buttonbar'));
66     }).bind('fileuploadadded', function(e, data) {
67          displayMessageInQueue($('.files .template-upload','#fileupload').length);
68     }).bind('fileuploaddone', function(e, data) {
69          if (data.result.files[0].html !==undefined) {
70               $('.media-list p.clear').before(data.result.files[0].html);
71          }
72          $('.button.clean','#fileupload').show();
73     }).bind('fileuploadalways', function(e, data) {
74          displayMessageInQueue($('.files .template-upload','#fileupload').length);
75          if ($('.fileupload-ctrl .files .template-upload','#fileupload').length==0) {
76               $('.button.cancel','#fileupload .fileupload-buttonbar').hide();
77               disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
78          }
79     });
80
81     var $container = $('#fileupload').parent().parent();
82     var $msg,label;
83
84     if ($container.hasClass('enhanced_uploader')) {
85          $msg = dotclear.msg.enhanced_uploader_disable;
86          label = dotclear.jsUpload.msg.choose_files;
87          $('#fileupload').fileupload({disabled:false});
88          displayMessageInQueue(0);
89          disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
90     } else {
91          $msg = dotclear.msg.enhanced_uploader_activate;
92          label = dotclear.jsUpload.msg.choose_file;
93     }
94
95     $('<p class="clear"><a class="enhanced-toggle" href="#">' + $msg + '</a></p>').click( function() {
96          if ($container.hasClass('enhanced_uploader')) {
97               $msg = dotclear.msg.enhanced_uploader_activate;
98               label = dotclear.jsUpload.msg.choose_file;
99               $('#upfile').attr('multiple', false);
100
101               // when a user has clicked enhanced_uploader, and has added files
102               // We must remove files in table
103               $('.files .upload-file', '#fileupload').remove();
104               $('.button.cancel,.button.clean','#fileupload .fileupload-buttonbar').hide();
105               $('#fileupload').fileupload({disabled:true});
106               $('.queue-message','#fileupload').html('').hide();
107          } else {
108               $msg = dotclear.msg.enhanced_uploader_disable;
109               label = dotclear.jsUpload.msg.choose_files;
110               $('#upfile').attr('multiple', true);
111               var startButton = $('.button.start','#fileupload .fileupload-buttonbar');
112               disableButton(startButton);
113               startButton.show();
114               $('#fileupload').fileupload({disabled:false});
115               $('.queue-message','#fileupload').show();
116               displayMessageInQueue(0);
117          }
118          $(this).find('a').text($msg);
119          $('.add-label', '#fileupload').text(label);
120
121          $container.toggleClass('enhanced_uploader');
122     }).appendTo($('#fileupload'));
123
124     // Replace remove links by a POST on hidden form
125     fileRemoveAct();
126
127     function fileRemoveAct() {
128          $('a.media-remove').live('click', function() {
129               var m_name = $(this).parents('ul').find('li:first>a').text();
130               if (window.confirm(dotclear.msg.confirm_delete_media.replace('%s',m_name))) {
131                    var f = $('#media-remove-hide').get(0);
132                    f.elements['remove'].value = this.href.replace(/^(.*)&remove=(.*?)(&|$)/,'$2');
133                    this.href = '';
134                    f.submit();
135               }
136               return false;
137          });
138     }
139});
Note: See TracBrowser for help on using the repository browser.

Sites map