1 namespace('kivi.File', function(ns) {
3 ns.rename = function(id,type,file_type,checkbox_class,is_global) {
4 var $dlg = $('#rename_dialog_'+file_type);
5 var parent_id = $dlg.parent("div.ui-tabs-panel").attr('id');
6 var checkboxes = $('.'+checkbox_class).filter(function () { return $(this).prop('checked'); });
8 if (checkboxes.size() === 0) {
9 alert(kivi.t8("No file selected, please set one checkbox!"));
12 if (checkboxes.size() > 1) {
13 alert(kivi.t8("More than one file selected, please set only one checkbox!"));
16 var file_id = checkboxes[0].value;
17 $('#newfilename_id_'+file_type).val($('#filename_'+file_id).text());
18 $('#next_ids_id_'+file_type).val('');
19 $('#is_global_id_'+file_type).val(is_global);
20 $('#rename_id_id_'+file_type).val(file_id);
21 $('#sessionfile_id_'+file_type).val('');
22 $('#rename_extra_text_'+file_type).html('');
24 id: 'rename_dialog_'+file_type,
25 dialog: { title: kivi.t8("Rename attachment")
30 $dlg.remove().appendTo('#' + parent_id);
37 ns.renameclose = function(file_type) {
38 $("#rename_dialog_"+file_type).dialog('close');
42 ns.renameaction = function(file_type) {
43 $("#rename_dialog_"+file_type).dialog('close');
45 action: 'File/ajax_rename',
46 id: $('#rename_id_id_'+file_type).val(),
47 to: $('#newfilename_id_'+file_type).val(),
48 next_ids: $('#next_ids_id_'+file_type).val(),
49 is_global: $('#is_global_id_'+file_type).val(),
50 sessionfile: $('#sessionfile_id_'+file_type).val(),
52 $.post("controller.pl", data, kivi.eval_json_result);
56 ns.askForRename = function(file_id,file_type,file_name,sessionfile,next_ids,is_global) {
57 $('#newfilename_id_'+file_type).val(file_name);
58 $('#rename_id_id_'+file_type).val(file_id);
59 $('#is_global_id_'+file_type).val(is_global);
60 $('#next_ids_id_'+file_type).val(next_ids);
61 $('#sessionfile_id_'+file_type).val(sessionfile);
62 $('#rename_extra_text_'+file_type).html(kivi.t8("The uploaded filename still exists.<br>If you not modify the name this is a new version of the file"));
63 var $dlg = $('#rename_dialog_'+file_type);
64 var parent_id = $dlg.parent("div.ui-tabs-panel").attr('id');
67 id: 'rename_dialog_'+file_type,
68 dialog: { title: kivi.t8("Rename attachment")
73 $dlg.remove().appendTo('#' + parent_id);
79 ns.upload = function(id,type,filetype,upload_title,gl) {
80 kivi.popup_dialog({ url: 'controller.pl',
81 data: { action: 'File/ajax_upload',
88 dialog: { title: upload_title, width: 650, height: 240 } });
92 ns.reset_upload_form = function() {
93 $('#attachment_updfile').val('');
94 $("#upload_result").html('');
95 ns.allow_upload_submit();
98 ns.allow_upload_submit = function() {
99 $('#upload_selected_button').prop('disabled',$('#upload_files').val() === '');
102 ns.upload_selected_files = function(id,type,filetype,maxsize,is_global) {
103 var myform = document.getElementById("upload_form");
105 var myfiles = document.getElementById("upload_files").files;
106 for ( i=0; i < myfiles.length; i++ ) {
109 filesize += myfiles[i].size;
110 fname = encodeURIComponent(myfiles[i].name);
115 fname = myfiles[i].name;
117 catch(err2) { fname ='';}
118 $("#upload_result").html(kivi.t8("filename has not uploadable characters ")+fname);
122 if ( filesize > maxsize ) {
123 $("#upload_result").html(kivi.t8("filesize too big: ")+
124 filesize+ kivi.t8(" bytes, max=") + maxsize );
128 myform.action ="controller.pl?action=File/ajax_files_uploaded&json=1&object_type="+
129 type+'&object_id='+id+'&file_type='+filetype+'&is_global='+is_global;
130 var oReq = new XMLHttpRequest();
131 oReq.onload = ns.attSuccess;
132 oReq.upload.onprogress = ns.attProgress;
133 oReq.upload.onerror = ns.attFailed;
134 oReq.upload.onabort = ns.attCanceled;
135 oReq.open("post",myform.action, true);
136 $("#upload_result").html(kivi.t8("start upload"));
137 oReq.send(new FormData(myform));
140 ns.attProgress = function(oEvent) {
141 if (oEvent.lengthComputable) {
142 var percentComplete = (oEvent.loaded / oEvent.total) * 100;
143 $("#upload_result").html(percentComplete+" % "+ kivi.t8("uploaded"));
147 ns.attFailed = function(evt) {
148 $('#files_upload').dialog('close');
149 $("#upload_result").html(kivi.t8("An error occurred while transferring the file."));
152 ns.attCanceled = function(evt) {
153 $('#files_upload').dialog('close');
154 $("#upload_result").html(kivi.t8("The transfer has been canceled by the user."));
157 ns.attSuccess = function() {
158 $('#files_upload').dialog('close');
159 kivi.eval_json_result(jQuery.parseJSON(this.response));
162 ns.delete = function(id,type,file_type,checkbox_class,is_global) {
163 var checkboxes = $('.'+checkbox_class).filter(function () { return $(this).prop('checked'); });
165 if ((checkboxes.size() === 0) ||
166 !confirm(kivi.t8('Do you really want to delete the selected documents?')))
169 action : 'File/ajax_delete',
172 file_type : file_type,
173 ids : checkbox_class,
174 is_global : is_global,
176 $.post("controller.pl?" + checkboxes.serialize(), data, kivi.eval_json_result);
180 ns.delete_file = function(id,controller_action) {
181 $.post('controller.pl', { action: controller_action, id: id }, function(data) {
182 kivi.eval_json_result(data);
186 ns.unimport = function(id,type,file_type,checkbox_class) {
187 var checkboxes = $('.'+checkbox_class).filter(function () { return $(this).prop('checked'); });
189 if ((checkboxes.size() === 0) ||
190 !confirm(kivi.t8('Do you really want to unimport the selected documents?')))
193 action : 'File/ajax_unimport',
196 file_type : file_type,
197 ids : checkbox_class,
199 $.post("controller.pl?" + checkboxes.serialize(), data, kivi.eval_json_result);
203 ns.update = function(id,type,file_type,is_global) {
209 file_type: file_type,
213 $.post("controller.pl", data, kivi.eval_json_result);
217 ns.import = function (id,type,file_type,fromwhere,frompath) {
218 kivi.popup_dialog({ url: 'controller.pl',
219 data: { action : 'File/ajax_importdialog',
223 file_type : file_type,
227 dialog: { title: kivi.t8('Import documents from #1',[fromwhere]), width: 420, height: 540 }
232 ns.importclose = function() {
233 $("#import_dialog").dialog('close');
237 ns.importaction = function(id,type,file_type,fromwhere,frompath,checkbox_class) {
238 var checkboxes = $('.'+checkbox_class).filter(function () { return $(this).prop('checked'); });
240 $("#import_dialog").dialog('close');
241 if (checkboxes.size() === 0) {
245 action : 'File/ajax_import',
248 file_type : file_type,
253 $.post("controller.pl?" + checkboxes.serialize(), data, kivi.eval_json_result);
257 ns.downloadOrderitemsFiles = function(type,id) {
259 action: 'DownloadZip/download_orderitems_files',
262 element_type: 'part',
263 zipname: 'Order_Files_'+id,
265 $.download("controller.pl", data);
269 ns.init = function() {