Changeset 1924


Ignore:
Timestamp:
01/07/10 13:18:36 (14 years ago)
Author:
amuller
Message:

Ticket #597 - Implementação de Drag and Drop

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

Legend:

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

    r1896 r1924  
    221221                function summary() 
    222222                { 
    223                         header('Content-Type: image/gif'); 
     223                        header('Content-Type: image/png'); 
    224224                        $expires = 60*60*24*15; 
    225225                        header("Cache-Control: maxage=".$expires); 
     
    233233                                if (strlen($content) < 1) 
    234234                                { 
    235                                         $filename = './filemanager/templates/default/images/error.gif'; 
     235                                        $filename = './filemanager/templates/default/images/error.png'; 
    236236                                        $handle = fopen($filename,'rb'); 
    237237                                        $content = fread($handle,filesize($filename)); 
  • sandbox/filemanager/inc/upload.php

    r1920 r1924  
    5050        imagecopyresampled($image_new, $image_big, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    5151        ob_start(); 
    52         imagegif($image_new); 
     52        imagepng($image_new); 
    5353        $content = ob_get_clean(); 
    5454        return $content; 
  • sandbox/filemanager/js/common_functions.js

    r1922 r1924  
    77        el.className = "sl"; 
    88        toolbar.control('reload'); 
     9} 
     10 
     11function check(element){ 
     12        element.firstChild.firstChild.checked = true; 
    913} 
    1014 
  • sandbox/filemanager/js/drag_area.js

    r1895 r1924  
    77        this.initEvent; 
    88        this.endEvent; 
    9         this.currentEvent; 
     9        this.operation; 
    1010} 
    1111 
    12 document.onmousemove = function(event) { _dragArea.moveWindow(event); } 
     12document.onmousemove = function(event) { 
     13        getPointer(event); 
     14        if (_dragArea.operation == 'drag') 
     15                _dragArea.dragObj(event); 
     16        else 
     17                _dragArea.moveWindow(event); 
     18} 
    1319document.onmousedown = function(event) {_dragArea.pressed = 1; }; 
    1420document.onmouseup = function(event) { _dragArea.pressed = 0 }; 
     
    1622counter = 0; 
    1723DragArea.prototype.moveWindow = function(e) { 
    18         getPointer(e); 
    1924        if (this.pressed){ 
    2025                var elem =  document.getElementById('dwindow'); // FIXME do not use getElement here 
     
    2631        } 
    2732} 
     33 
     34DragArea.prototype.dragObj = function(e){ 
     35        var _event  = is_ie ? window.event : e; 
     36        var _target = is_ie ? _event.srcElement : _event.target; 
     37 
     38        if (this.pressed) 
     39        { 
     40                var sign = document.getElementById('dragSign'); 
     41                if (sign == null) 
     42                { 
     43                        sign = document.createElement('SPAN'); 
     44                        sign.className = 'dragSign'; 
     45                        sign.id = 'dragSign'; 
     46                        document.body.appendChild(sign); 
     47                } 
     48                sign.innerHTML = get_lang("Drag and drop to move"); 
     49                sign.style.left = (_event.clientX + 2) + "px"; 
     50                sign.style.top = (_event.clientY + 2) + "px"; 
     51                sign.style.position = 'absolute'; 
     52        } 
     53        else{ 
     54                this.operation = ""; 
     55                var sign = document.getElementById('dragSign'); 
     56                if (sign == null) 
     57                        return; 
     58                sign.parentNode.removeChild(sign); 
     59                if(_target.tagName == 'SPAN'){ 
     60                        var filesUrl = toolbar.getCheckedFiles(); 
     61                        var path = _target.id.replace(/main$/g,'').substr(1); 
     62                        if (filesUrl.length > 1 && path.length > 1) 
     63                                move_to(path,filesUrl); 
     64                } 
     65        } 
     66} 
     67 
     68 
    2869var _dragArea = new DragArea(); 
  • sandbox/filemanager/js/draw_api.js

    r1922 r1924  
    229229folderList.prototype.createLine = function(file){ 
    230230                var fl = folderList; 
    231                 retBuff = fl.td; 
     231                retBuff = '<tr id="line_'+file.name+'" onmouseout="clearTimeout(menuTimeout)" onmousedown="check(this);_dragArea.operation=\'drag\'">'; 
     232                retBuff += fl.td; 
    232233                retBuff += '<input name="fileman" value="'+file.name+'" type="checkbox"></td>'; 
    233234                if (permissions['private']) { 
     
    241242                { 
    242243                        case 'text/html': 
    243                                 retBuff += '<td><a href="./index.php?menuaction=filemanager.uifilemanager.export&file='+base64_encode(file.name)+'&path='+base64_encode(currentPath)+'"><div alt="'+get_lang('export')+'" title="'+get_lang('export')+'" style="background-image:url('+templatePath+'images/button_export.png);background-repeat: repeat-none;width:13px;height:12px;"></div></a></td>'; 
     244                                retBuff += '<td><a href="./index.php?menuaction=filemanager.uifilemanager.export&file='+base64_encode(file.name)+'&path='+base64_encode(currentPath)+'"><div class="exportButton" alt="'+get_lang('export')+'" title="'+get_lang('export')+'"></div></a></td>'; 
    244245                                break; 
    245246                        case 'application/zip': 
    246                                 retBuff += '<td><a href="javascript:unarchive(\''+file.name+'\')"><div alt="'+get_lang('unarchive')+'" title="'+get_lang('unarchive')+'" style="background-image:url('+templatePath+'images/button_export.png);background-repeat: repeat-none;width:13px;height:12px;"></a></td>' 
     247                                retBuff += '<td><div class="exportButton" onclick="unarchive(\''+file.name+'\')" alt="'+get_lang('unarchive')+'" title="'+get_lang('unarchive')+'"></a></td>' 
    247248                                break; 
    248249                        default: 
     
    301302                if (preferences.comment =='1') retBuff += fl.td+'<input id="'+file.name+'" class="inputComment" onkeydown="enterComments(event,this)" onclick="presetComments(this)" onblur="setComments(this)" value="'+(file.comm==null?'':file.comm)+'" alt="'+get_lang('Click to change comments')+'" title="'+get_lang('Click to change comments')+'"></input></td>'; 
    302303                if (preferences.version =='1') retBuff += fl.td+'<span onclick="loadHistory(\''+file.name+'\')">'+file.vers+'</span></td>'; 
     304                retBuff += "</tr>"; 
    303305                return retBuff; 
    304306} 
     
    323325                        newicon = '<div class="icon">'; 
    324326                        newicon += '<a href="./index.php?menuaction=filemanager.uifilemanager.view&file='+base64_encode(files[i].name)+'&path='+base64_encode(currentPath)+'" target="_blank">'; 
    325                         newicon += '<img src="'+(files[i].icon)+'">'; 
     327                        newicon += '<div style="width:64; height:64; background-image:url('+files[i].icon+'); background-repeat: no-repeat;"></div>'; 
    326328                        newicon += '<span class="iconCaption">'+files[i].name+'</span>'; 
    327329                        newicon += '</a></div>'; 
     
    358360                        for (var i=0; i < files.length; i++) 
    359361                        { 
    360                                 newpage += '<tr>'; 
    361362                                newpage += fl.createLine(files[i]); 
    362                                 newpage += '</tr>'; 
    363363                        } 
    364364                else 
     
    421421        this.element.innerHTML = pageContent+'</tr></tbody></table>'; 
    422422 
     423} 
     424toolbar.prototype.getCheckedFiles = function () { 
     425        filesUrl = ""; 
     426        var one_checked = false; 
     427        files=document.getElementsByName('fileman'); 
     428        var j=0; 
     429        for (i = 0; i <  files.length; i++) 
     430                if (files[i].checked){ 
     431                        one_checked = true; 
     432                        filesUrl += "&fileman["+j+"]="+base64_encode(files[i].value); 
     433                        j++; 
     434                } 
     435        if (!one_checked) 
     436        { 
     437                write_msg(get_lang('Please select a file')); 
     438                return; 
     439        } 
     440        return filesUrl; 
    423441} 
    424442toolbar.prototype.control = function (arg) 
     
    482500                        break; 
    483501                case 'delete': 
    484                         filesUrl = ""; 
    485                         var one_checked = false; 
    486                         files=document.getElementsByName('fileman'); 
    487                         var j=0; 
    488                         for (i = 0; i <  files.length; i++) 
    489                                 if (files[i].checked){ 
    490                                         one_checked = true; 
    491                                         filesUrl += "&fileman["+j+"]="+base64_encode(files[i].value); 
    492                                         j++; 
    493                                 } 
    494                         if (!one_checked) 
    495                         { 
    496                                 write_msg(get_lang('Please select a file')); 
    497                                 return; 
    498                         } 
    499  
     502                        var filesUrl = this.getCheckedFiles(); 
    500503                        cExecute('./index.php?menuaction=filemanager.vfs_functions.delete&path='+ 
    501504                                        base64_encode(currentPath)+filesUrl,handler.del); 
    502505                        break; 
    503506                case 'archive': 
    504                         filesUrl = ""; 
    505                         var one_checked = false; 
    506                         files=document.getElementsByName('fileman'); 
    507                         var j=0; 
    508                         for (i = 0; i <  files.length; i++) 
    509                                 if (files[i].checked){ 
    510                                         one_checked = true; 
    511                                         filesUrl += "&fileman["+j+"]="+base64_encode(files[i].value); 
    512                                         j++; 
    513                                 } 
    514                         if (!one_checked) 
    515                         { 
    516                                 write_msg(get_lang('Please select a file')); 
    517                                 return; 
    518                         } 
     507                        var filesUrl = this.getCheckedFiles(); 
    519508                        password = prompt(get_lang('Please, type a strong password (suggestion: at least 8 characters, letters and numbers) or leave it empty to archive only')); 
    520509                        if (password == null) 
     
    534523                case 'move_to': 
    535524                case 'copy_to': 
    536                         filesUrl = ""; 
    537                         var one_checked = false; 
    538                         files=document.getElementsByName('fileman'); 
    539                         var j=0; 
    540                         for (i = 0; i <  files.length; i++) 
    541                                 if (files[i].checked){ 
    542                                         one_checked = true; 
    543                                         filesUrl += "&fileman["+j+"]="+files[i].value; 
    544                                         j++; 
    545                                 } 
    546                         if (!one_checked) 
    547                         { 
    548                                 write_msg(get_lang('Please select a file')); 
    549                                 return; 
    550                         } 
    551                         var elements = new Array(); 
     525                         var filesUrl = this.getCheckedFiles(); 
     526                         var elements = new Array(); 
    552527                        for(i=0; i< folders.length; i++) 
    553528                        { 
     
    565540                case 'tools': 
    566541                        elements = new Array(); 
    567                         elements[0] = new Array(); 
    568                         elements[0]['text'] = get_lang('Preferences'); 
    569                         elements[0]['url'] = 'preferences/preferences.php?appname=filemanager'; 
    570                         elements[0]['img'] = templatePath+'images/preferences.png'; 
    571                         elements[1] = new Array(); 
    572                         elements[1]['text'] = get_lang('Search'); 
    573                         elements[1]['url'] = 'javascript:\ 
    574                                 document.getElementById("menu_newFiletools").style.visibility="hidden";\ 
    575                                 document.getElementById("em_message_search").focus();'; 
    576                         elements[1]['img'] = templatePath+'images/search.gif'; 
    577                         elements[2] = new Array(); 
    578                         elements[2]['text'] = get_lang('Edit Folders'); 
    579                         elements[2]['url'] = 'javascript:editFolders()'; 
    580                         elements[2]['img'] = templatePath+'images/button_createdir.png'; 
    581                         elements[3] = new Array(); 
    582                         elements[3]['text'] = get_lang('Share Folders'); 
    583                         elements[3]['url'] = "./index.php?menuaction=preferences.uiaclprefs.index&acl_app=filemanager"; 
    584                         elements[3]['img'] = templatePath+'images/mime16_directory.png'; 
    585                         elements[4] = new Array(); 
    586                         elements[4]['text'] = get_lang('View'); 
    587                         elements[4]['url'] = "javascript:EditColumns()"; 
    588                         elements[4]['img'] = templatePath+'images/editpaste.png'; 
    589                         elements[5] = new Array(); 
    590                         elements[5]['text'] = get_lang('Archive'); 
    591                         elements[5]['url'] = "javascript:toolbar.control('archive')"; 
    592                         elements[5]['img'] = templatePath+'images/button_zip.png'; 
     542                        elements[0] = { 'text' : get_lang('Preferences'), 
     543                                        'url' : 'preferences/preferences.php?appname=filemanager', 
     544                                        'img' : templatePath+'images/preferences.png'}; 
     545                        elements[1] = { 'text' : get_lang('Search'), 
     546                                        'url' : 'javascript:document.getElementById("menu_newFiletools").style.visibility="hidden";\ 
     547                                                document.getElementById("em_message_search").focus();', 
     548                                        'img' : templatePath+'images/search.gif'}; 
     549                        elements[2] = { 'text' : get_lang('Edit Folders'), 
     550                                        'url' : 'javascript:editFolders()', 
     551                                        'img' : templatePath+'images/button_createdir.png'}; 
     552                        elements[3] = { 'text' : get_lang('Share Folders'), 
     553                                        'url' : "./index.php?menuaction=preferences.uiaclprefs.index&acl_app=filemanager", 
     554                                        'img' : templatePath+'images/mime16_directory.png'}; 
     555                        elements[4] = { 'text' : get_lang('View'), 
     556                                        'url' : "javascript:EditColumns()", 
     557                                        'img' : templatePath+'images/editpaste.png'}; 
     558                        elements[5] = {'text' : get_lang('Archive'), 
     559                                        'url' : "javascript:toolbar.control('archive')", 
     560                                        'img' : templatePath+'images/button_zip.png'}; 
    593561                        draw_menu(arg,elements); 
    594562                        break; 
  • sandbox/filemanager/templates/default/main.css

    r1922 r1924  
    2525.icon { 
    2626        float:left; 
    27         padding-right: 25px; 
    28         padding-top: 40px; 
    29         width: 140px; 
     27        padding: 40px; 
     28        width: 100px; 
    3029        display:table-cell; 
    3130} 
     
    3534        font-size:10px; 
    3635        overflow:hidden; 
    37         position:fixed; 
    38         width:140px; 
     36        width:100%; 
    3937 
    4038} 
     
    132130} 
    133131 
     132.dragSign{ 
     133        background-color:#f5f5f5; 
     134        border: 1px solid black; 
     135        font-color: green; 
     136} 
    134137 
    135138.message_header { 
     
    154157        background: transparent !important; 
    155158} 
     159 
     160.exportButton{ 
     161        background-image:url('../../templates/default/images/button_export.png'); 
     162        background-repeat: repeat-none; 
     163        width:13px; 
     164        height:12px; 
     165        cursor: pointer; 
     166        cursor: hand; 
     167} 
     168 
Note: See TracChangeset for help on using the changeset viewer.