1 namespace('kivi.File', function(ns) {
 
   3   ns.rename = function(id,type,file_type,checkbox_class,is_global) {
 
   4     var $dlg       = $('#rename_dialog');
 
   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').val($('#filename_'+file_id).text());
 
  18     $('#next_ids_id').val('');
 
  19     $('#is_global_id').val(is_global);
 
  20     $('#rename_id_id').val(file_id);
 
  21     $('#sessionfile_id').val('');
 
  22         $('#rename_extra_text').html('');
 
  25                       dialog: { title: kivi.t8("Rename attachment")
 
  30                                  $dlg.remove().appendTo('#' + parent_id);
 
  36   ns.renameclose = function() {
 
  37     $("#rename_dialog").dialog('close');
 
  41   ns.renameaction = function() {
 
  42           $("#rename_dialog").dialog('close');
 
  44       action:          'File/ajax_rename',
 
  45       id:              $('#rename_id_id').val(),
 
  46             to:              $('#newfilename_id').val(),
 
  47       next_ids:        $('#next_ids_id').val(),
 
  48       is_global:       $('#is_global_id').val(),
 
  49       sessionfile:     $('#sessionfile_id').val(),
 
  51     $.post("controller.pl", data, kivi.eval_json_result);
 
  55   ns.askForRename = function(file_id,file_name,sessionfile,next_ids,is_global) {
 
  56     $('#newfilename_id').val(file_name);
 
  57     $('#rename_id_id').val(file_id);
 
  58     $('#is_global_id').val(is_global);
 
  59     $('#next_ids_id').val(next_ids);
 
  60     $('#sessionfile_id').val(sessionfile);
 
  61     $('#rename_extra_text').html(kivi.t8("The uploaded filename still exists.<br>If you not modify the name this is a new version of the file"));
 
  65         dialog: { title: kivi.t8("Rename attachment")
 
  72   ns.upload = function(id,type,filetype,upload_title,gl) {
 
  73     kivi.popup_dialog({ url:     'controller.pl',
 
  74                         data:    { action: 'File/ajax_upload',
 
  81                         dialog: { title: upload_title, width: 650, height: 240 } });
 
  85   ns.reset_upload_form = function() {
 
  86       $('#attachment_updfile').val('');
 
  87       $("#upload_result").html('');
 
  88       ns.allow_upload_submit();
 
  91   ns.allow_upload_submit = function() {
 
  92       $('#upload_selected_button').prop('disabled',$('#upload_files').val() === '');
 
  95   ns.upload_selected_files = function(id,type,filetype,maxsize,is_global) {
 
  96       var myform = document.getElementById("upload_form");
 
  98       var myfiles = document.getElementById("upload_files").files;
 
  99       for ( i=0; i < myfiles.length; i++ ) {
 
 102               filesize  += myfiles[i].size;
 
 103               fname = encodeURIComponent(myfiles[i].name);
 
 108                   fname = myfiles[i].name;
 
 110               catch(err2) { fname ='';}
 
 111               $("#upload_result").html(kivi.t8("filename has not uploadable characters ")+fname);
 
 115       if ( filesize > maxsize ) {
 
 116           $("#upload_result").html(kivi.t8("filesize too big: ")+
 
 117                                    filesize+ kivi.t8(" bytes, max=") + maxsize );
 
 121       myform.action ="controller.pl?action=File/ajax_files_uploaded&json=1&object_type="+
 
 122           type+'&object_id='+id+'&file_type='+filetype+'&is_global='+is_global;
 
 123       var oReq = new XMLHttpRequest();
 
 124       oReq.onload            = ns.attSuccess;
 
 125       oReq.upload.onprogress = ns.attProgress;
 
 126       oReq.upload.onerror    = ns.attFailed;
 
 127       oReq.upload.onabort    = ns.attCanceled;
 
 128       oReq.open("post",myform.action, true);
 
 129       $("#upload_result").html(kivi.t8("start upload"));
 
 130       oReq.send(new FormData(myform));
 
 133   ns.attProgress = function(oEvent) {
 
 134       if (oEvent.lengthComputable) {
 
 135           var percentComplete = (oEvent.loaded / oEvent.total) * 100;
 
 136           $("#upload_result").html(percentComplete+" % "+ kivi.t8("uploaded"));
 
 140   ns.attFailed = function(evt) {
 
 141       $('#files_upload').dialog('close');
 
 142       $("#upload_result").html(kivi.t8("An error occurred while transferring the file."));
 
 145   ns.attCanceled = function(evt) {
 
 146       $('#files_upload').dialog('close');
 
 147       $("#upload_result").html(kivi.t8("The transfer has been canceled by the user."));
 
 150   ns.attSuccess = function() {
 
 151       $('#files_upload').dialog('close');
 
 152       kivi.eval_json_result(jQuery.parseJSON(this.response));
 
 155   ns.delete = function(id,type,file_type,checkbox_class,is_global) {
 
 156     var checkboxes = $('.'+checkbox_class).filter(function () { return  $(this).prop('checked'); });
 
 158     if ((checkboxes.size() === 0) ||
 
 159         !confirm(kivi.t8('Do you really want to delete the selected documents?')))
 
 162       action     :  'File/ajax_delete',
 
 165       file_type  :  file_type,
 
 166       ids        :  checkbox_class,
 
 167       is_global  :  is_global,
 
 169     $.post("controller.pl?" + checkboxes.serialize(), data, kivi.eval_json_result);
 
 173   ns.unimport = function(id,type,file_type,checkbox_class) {
 
 174     var checkboxes = $('.'+checkbox_class).filter(function () { return  $(this).prop('checked'); });
 
 176     if ((checkboxes.size() === 0) ||
 
 177         !confirm(kivi.t8('Do you really want to unimport the selected documents?')))
 
 180       action     :  'File/ajax_unimport',
 
 183       file_type  :  file_type,
 
 184       ids        :  checkbox_class,
 
 186     $.post("controller.pl?" + checkboxes.serialize(), data, kivi.eval_json_result);
 
 190   ns.update = function(id,type,file_type,is_global) {
 
 196       file_type:    file_type,
 
 200     $.post("controller.pl", data, kivi.eval_json_result);
 
 204   ns.import = function (id,type,file_type,fromwhere,frompath) {
 
 205     kivi.popup_dialog({ url:     'controller.pl',
 
 206                         data:    { action      : 'File/ajax_importdialog',
 
 210                                    file_type   : file_type,
 
 214                         dialog: { title: kivi.t8('Import documents from #1',[fromwhere]), width: 420, height: 540 }
 
 219   ns.importclose = function() {
 
 220     $("#import_dialog").dialog('close');
 
 224   ns.importaction = function(id,type,file_type,fromwhere,frompath,checkbox_class) {
 
 225     var checkboxes = $('.'+checkbox_class).filter(function () { return  $(this).prop('checked'); });
 
 227           $("#import_dialog").dialog('close');
 
 228     if (checkboxes.size() === 0) {
 
 232         action     : 'File/ajax_import',
 
 235         file_type  : file_type,
 
 240     $.post("controller.pl?" + checkboxes.serialize(), data, kivi.eval_json_result);
 
 244   ns.downloadOrderitemsFiles = function(type,id) {
 
 246       action:       'DownloadZip/download_orderitems_files',
 
 249       element_type: 'part',
 
 250       zipname:      'Order_Files_'+id,
 
 252     $.download("controller.pl", data);
 
 256   ns.init = function() {