Changeset 1804


Ignore:
Timestamp:
12/10/09 15:26:19 (14 years ago)
Author:
amuller
Message:

Ticket #597 - Melhorias no modulo gerenciador de arquivos

Location:
sandbox/filemanager
Files:
1 added
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • sandbox/filemanager/inc/class.uifilemanager.inc.php

    r1791 r1804  
    3131                        'dir_ls' => True, 
    3232                        'search' => True, 
     33                        'showUploadboxes' => True, 
    3334                        'uploadModel'=>True 
    3435                ); 
     
    6970                var $edit_save_done_x; 
    7071                var $edit_cancel_x; 
    71                 var $upload_x; 
    7272 
    7373                // this ones must be checked thorougly; 
     
    7878                var $sortby; 
    7979                var $messages; 
    80                 var $show_upload_boxes; 
    8180 
    8281                var $now; 
     
    347346                        echo "<script src='".$GLOBALS['phpgw_info']['flags']['currentapp']."/js/connector.js'></script>"; 
    348347                        echo "<script src='".$GLOBALS['phpgw_info']['flags']['currentapp']."/js/draw_api.js'></script>"; 
     348                        echo "<script src='".$GLOBALS['phpgw_info']['flags']['currentapp']."/js/drag_area.js'></script>"; 
    349349                        include('load_lang.php'); 
    350350 
     
    412412                        } 
    413413 
    414                         # We determine if they're in their home directory or a group's directory, 
    415                         # and set the VFS working_id appropriately 
    416                         if((preg_match('+^'.$this->bo->fakebase.'\/(.*)(\/|$)+U', $this->path, $matches)) && $matches[1] != $this->bo->userinfo['account_lid']) //FIXME matches not defined 
    417  
    418                         { 
    419                                 $this->bo->vfs->working_id = $GLOBALS['phpgw']->accounts->name2id($matches[1]);//FIXME matches not defined 
    420  
    421                         } 
    422                         else 
    423                         { 
    424                                 $this->bo->vfs->working_id = $this->bo->userinfo['username']; 
    425                         } 
    426  
    427                         # Check available permissions for $this->path, so we can disable unusable operations in user interface 
    428                         $path = explode('/',$this->path); 
    429                         $owner_id = $this->bo->vfs->ownerOf($this->bo->fakebase,$path[2]); 
    430                         $user_id = $GLOBALS['phpgw_info']['user']['account_id']; 
    431                         if ($owner_id == $user_id) 
     414                        /*Check permission*/ 
     415                        if($this->bo->vfs->acl_check(array( 
     416                                'string' => $this->path, 
     417                                'relatives' => array(RELATIVE_NONE), 
     418                                'operation' => PHPGW_ACL_READ 
     419                        ))) 
    432420                        { 
    433421                                $this->can_read = True; 
    434                                 $this->can_add = True; 
    435                                 $this->can_edit = True; 
    436                                 $this->can_delete = True; 
    437                                 $this->can_private = True; 
    438                         }else 
    439                         { 
    440                                 $acl = CreateObject ('phpgwapi.acl', $owner_id); 
    441                                 $acl->account_id = $owner_id; 
    442                                 $acl->read_repository(); 
    443                                 $rights = $acl->get_rights($user_id); 
    444                                 $this->can_read = $rights & PHPGW_ACL_READ; 
    445                                 $this->can_add = $rights & PHPGW_ACL_ADD; 
    446                                 $this->can_edit = $rights & PHPGW_ACL_EDIT; 
    447                                 $this->can_delete = $rights & PHPGW_ACL_DELETE; 
    448                                 $this->can_private = $rights & PHPGW_ACL_PRIVATE; 
    449                         } 
    450          
     422                        } 
     423 
    451424                        # if is different path than home and no permission allowed 
    452425                        if($this->path != $this->bo->homedir && $this->path != $this->bo->fakebase && $this->path != '/' && !$this->can_read) 
     
    503476                        { 
    504477                                $this->createdir(); 
    505                         } 
    506                         elseif($this->upload_x || $this->show_upload_boxes) 
    507                         { 
    508                                 $this->showUploadboxes(); 
    509478                        } 
    510479                        elseif($this->copy_to_x) 
     
    907876                function showUploadboxes() 
    908877                { 
     878                        $GLOBALS['phpgw_info']['flags'] = array 
     879                                ( 
     880                                        'currentapp'    => 'filemanager', 
     881                                        'noheader'      => True, 
     882                                        'nonavbar' => True, 
     883                                        'nofooter'      => True, 
     884                                        'noappheader'   => True 
     885                                ); 
     886                        $GLOBALS['phpgw']->common->phpgw_header(); 
     887 
    909888                        $this->t->set_file(array('upload' => 'upload.tpl')); 
    910889                        $this->t->set_block('upload','upload_header','upload_header'); 
     
    912891                        $this->t->set_block('upload','upload_footer','upload_footer'); 
    913892 
    914                         if($this->path != '/' && $this->path != $this->bo->fakebase && $this->can_add) 
     893                        if($this->path != '/' && $this->path != $this->bo->fakebase) 
    915894                        { 
    916895                                $vars[max_size]=lang('Note: Uploaded is limited to %1MB',($this->current_config['filemanager_Max_file_size'])); 
  • sandbox/filemanager/inc/upload.php

    r1745 r1804  
    3131        if ($return == 1) 
    3232        { 
    33                 $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Error:').lang('One of the files sent was considered infected'); 
     33                $_SESSION['response'] = serialize(array(0 => lang('Error:').lang('One of the files sent was considered infected'))); 
    3434                return; 
    3535        } 
     
    4141                if($badchar = $bo->bad_chars($_FILES['upload_file']['name'][$i], True, True)) 
    4242                { 
    43                         $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Error:').lang('File names cannot contain "%1"', $badchar); 
     43                        $return[] = lang('Error:').lang('File names cannot contain "%1"', $badchar); 
    4444                        continue; 
    4545                } 
     
    5959                        if($fileinfo['mime_type'] == 'Directory') 
    6060                        { 
    61                                 $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Error:').lang('Cannot replace %1 because it is a directory', $fileinfo['name']); 
     61                                $return[] = lang('Error:').lang('Cannot replace %1 because it is a directory', $fileinfo['name']); 
    6262                                continue; 
    6363                        } 
     
    6666                if ($_FILES['upload_file']['size'][$i] > ($upload_max_size*1024*1024)) 
    6767                { 
    68                         $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('The size of %1 has exceded the limit: %2', $_FILES['upload_file']['name'][$i], $upload_max_size); 
     68                        $return[] = lang('The size of %1 has exceded the limit: %2', $_FILES['upload_file']['name'][$i], $upload_max_size); 
    6969                        continue; 
    7070                } 
     
    9494                                ); 
    9595                                $bo->vfs->cp($tmp_arr); 
    96  
    97                                 $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Created new %1', $_FILES['upload_file']['name'][$i])."\n"; 
    9896                        } 
    9997                        else 
     
    114112                                )); 
    115113                                else{ 
    116                                         $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Error:').lang('Your quota has exceeded the limit'); 
     114                                        $return[] = lang('Error:').lang('Your quota has exceeded the limit'); 
    117115                                        return false; 
    118116                                } 
    119117 
    120                                  $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Created %1,%2', $_FILES['upload_file']['name'][$i], $bo->borkb($_FILES['upload_file']['size'][$i]))."\n"; 
    121118                        } 
    122119                } 
     
    137134                        )); 
    138135 
    139                          $_SESSION['phpgw_info']['filemanager']['user']['messages'][] = lang('Created %1,%2', $_FILES['upload_file']['name'][$i], $bo->borkb($file_size[$i]))."\n"; 
    140  
    141136                } 
    142137        } 
     138        if (count($return) > 0) 
     139                $_SESSION['response'] = serialize($return); 
     140        else 
     141                 $_SESSION['response'] = serialize( array( 0 => 'Ok' ) ); 
    143142?> 
  • sandbox/filemanager/js/common_functions.js

    r1803 r1804  
    6666 
    6767        } 
    68  
    69 } 
    70  
     68} 
     69function newUpload(data){ 
     70        if (data == null) 
     71        { 
     72                address = document.location.toString(); 
     73                address = address.split("?"); 
     74                var url = address[0]+"?menuaction=filemanager.uifilemanager.showUploadboxes&path="+base64_encode(currentPath); 
     75                cExecute(url,newUpload); 
     76        } 
     77        else{ 
     78                draw_window(data); 
     79        } 
     80} 
    7181 
    7282/* 
     
    332342                        return parseInt(size/gbyte).toFixed(1) + 'GB'; 
    333343} 
     344function addNewInput(){ 
     345        var line = document.getElementById('uploadOption'); 
     346        var newElement = document.createElement('TR'); 
     347        var newElement2 = document.createElement('TD'); 
     348        var newElement3 = document.createElement('TD'); 
     349        newElement2.innerHTML = '<input onchange="javascript:addNewInput();" maxlength="255" name="upload_file[]" type="file">'; 
     350        newElement3.innerHTML = '<input name="upload_comment[]" type="text">'; 
     351        newElement.appendChild(newElement2); 
     352        newElement.appendChild(newElement3); 
     353        line.parentNode.appendChild(newElement); 
     354        document.getElementById('show_upload_boxes').value +=1; 
     355} 
     356 
     357function sendFiles(){ 
     358                cExecuteForm(document.getElementById('form_up'),handler_upload); 
     359                document.getElementById('button_up').style.visibility = "hidden"; 
     360                var line = document.getElementById('uploadOption'); 
     361                line.parentNode.innerHTML = "<img src='"+templatePath+"images/progress.gif'>"; 
     362} 
     363 
     364function handler_upload(data){ 
     365        close_window(); 
     366        connector.hideProgressBar(); 
     367        var response = unserialize(data); 
     368        if (response[0] == "Ok") 
     369                write_msg('All files created sucessfuly'); 
     370        else 
     371                for (var i=0;i < response.length; i++) 
     372                        write_error(response[i]); 
     373        toolbar.control('reload'); 
     374} 
  • sandbox/filemanager/js/draw_api.js

    r1803 r1804  
    99        } 
    1010} 
    11 document.onmousemove = getPointer; 
    1211 
    1312function loadHistory(filename){ 
     
    3332function close_window(){ 
    3433        var menu =  document.getElementById('dwindow'); 
    35         menu.style.visibility = 'hidden' 
     34        if (menu != null) 
     35                menu.style.visibility = 'hidden' 
    3636} 
    3737function draw_window(htmlData){ 
    3838        var menu =  document.getElementById('dwindow'); 
    39         buttonClose = '<input value="'+get_lang('close')+'" onclick="close_window()" type="button">'; 
     39        headerWin = '<div class="message_header" style="width: 100%; heigth: 22px;"'+ 
     40                ' onselectstart="return false">'+ 
     41                '<img align="right" alt="'+get_lang('close')+'" title="'+get_lang('close')+'" '+ 
     42                'onclick="close_window()" src="'+templatePath+'/images/button_cancel.png">'+ 
     43                get_lang('filemanager')+'</div>'; 
    4044        if (!menu){ 
    4145                menu = document.createElement('DIV'); 
    4246                menu.id = "dwindow"; 
    43                 menu.style.left = DocX - 500; 
     47                menu.style.left = DocX - 200; 
    4448                menu.style.width = "auto"; 
    4549                menu.style.top = DocY; 
    4650                menu.className = 'menubox'; 
    4751                menu.style.zIndex='1'; 
    48                 menu.innerHTML = htmlData+buttonClose; 
     52                menu.innerHTML = headerWin+htmlData; 
    4953                document.getElementById('divAppboxHeader').appendChild(menu); 
    5054        } 
    5155        else{ 
    52                 menu.innerHTML = htmlData+buttonClose; 
     56                menu.innerHTML = headerWin+htmlData; 
    5357                menu.style.visibility = 'visible'; 
    5458        } 
     
    6367                menu.style.left = DocX; 
    6468                menu.style.top = DocY; 
    65                 //menu.style.left = left_pos+"px"; 
    66                 //menu.style.top = top_pos+"px"; 
    6769                for(j in elements) 
    6870                { 
     
    276278} 
    277279folderList.prototype.updateQuota = function(quotaSize,usedSpace){ 
    278         if (parseInt(quotaSize) != 0) 
    279                 document.getElementById('content_quota').innerHTML = '<table width="102" cellspacing="0" cellpadding="0" border="0" id="table_quota"><tbody><tr><td width="102" nowrap="true" height="15" background="../phpgwapi/templates/default/images/dsunused.gif"><table cellspacing="0" cellpadding="0" border="0" style="width: '+parseInt((usedSpace/quotaSize)*100)+'%;"><tbody><tr><td height="15" class="dsused"/></tr></tbody></table></td><td nowrap="true" align="center"><span class="boxHeaderText">'+parseInt(usedSpace/quotaSize*100)+'% ('+borkb(usedSpace)+'/'+borkb(quotaSize)+')</span></td></tr></tbody></table></td></tr></table>'; 
     280        if (parseInt(quotaSize) != 0){ 
     281                var contentQuota = document.getElementById('content_quota'); 
     282                if (contentQuota != null) 
     283                        contentQuota.innerHTML = '<table width="102" cellspacing="0" cellpadding="0" border="0" id="table_quota"><tbody><tr><td width="102" nowrap="true" height="15" background="../phpgwapi/templates/default/images/dsunused.gif"><table cellspacing="0" cellpadding="0" border="0" style="width: '+parseInt((usedSpace/quotaSize)*100)+'%;"><tbody><tr><td height="15" class="dsused"/></tr></tbody></table></td><td nowrap="true" align="center"><span class="boxHeaderText">'+parseInt(usedSpace/quotaSize*100)+'% ('+borkb(usedSpace)+'/'+borkb(quotaSize)+')</span></td></tr></tbody></table></td></tr></table>'; 
     284        } 
    280285} 
    281286folderList.prototype.drawFiles = function(data){ 
     
    381386                case 'new': 
    382387                        elements = new Array(); 
    383                         elements[0] = new Array(); 
    384                         elements[0]['text'] = get_lang('empty file'); 
    385                         elements[0]['url'] = 'javascript:newEmptyFile();'; 
     388                        elements[0] = { 'text': get_lang('empty file'), 
     389                                        'url': 'javascript:newEmptyFile()'}; 
    386390                        elements[1] = new Array(); 
    387391                        elements[1]['text'] = get_lang('File from model'); 
     
    389393                        address = address.split("?"); 
    390394                        elements[1]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.fileModels"; 
    391                         elements[2] = new Array(); 
    392                         elements[2]['text'] = get_lang('Upload'); 
    393                         address = document.location.toString(); 
    394                         address = address.split("?"); 
    395                         elements[2]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.index&upload=clicked&upload.x=1&path="+base64_encode(currentPath); 
     395                        elements[2] = { 'text' : get_lang('Upload'), 
     396                                        'url': 'javascript:newUpload()'}; 
    396397                        draw_menu(arg,elements); 
    397398                        break; 
  • sandbox/filemanager/setup/phpgw_pt-br.lang

    r1787 r1804  
    3333This property will change the visibility of all users that have access to this file, continue?  filemanager     pt-br   Esta propriedade altera visibilidade dos usuários que estão compartilhados, deseja continuar? 
    3434Click to change comments        filemanager     pt-br   Clique para alterar comentários 
    35 created %1,%2   filemanager     pt-br   Criado %1, %2 
     35All files created sucessfuly    filemanager     pt-br   Arquivos foram criados com sucesso 
    3636created by      filemanager     pt-br   Criado por 
    3737Error:  filemanager     pt-br   Erro: 
  • sandbox/filemanager/templates/default/main.css

    r1782 r1804  
    119119.message_header { 
    120120        background-color:#ABC6E1; 
     121        -moz-user-select: none; 
    121122} 
    122123.tr_msg_read { 
  • sandbox/filemanager/templates/default/upload.tpl

    r1693 r1804  
    11<!-- BEGIN upload_header --> 
    2 <script src="filemanager/js/uploadForm.js" type="text/javascript"></script> 
    32<form id="form_up" method="post" action="{form_action}" enctype="multipart/form-data"> 
    43<div> 
Note: See TracChangeset for help on using the changeset viewer.