Beispiel #1
0
function copyMoveAction($type)
{
    require_once ("classes/model/AppFolder.php");
    $oPMFolder = new AppFolder ();

    $dir=$_REQUEST['dir'];
    $paths = array();
    $folderResult = findChilds('/', '', $paths);
    $withCombo = 30;
    $folderSelected = $oPMFolder->load($dir);

    $root = array("/","/");
    array_unshift ($folderResult, $root);
    $folderResultSel = array();
    foreach ($folderResult as $key => $value) {
        $count = strlen($value[1]);
        $withCombo = ($count>$withCombo) ? $count : $withCombo;
        if ($folderSelected['FOLDER_PARENT_UID'] != $value[0] && $dir != $value[0]) {
            $folderResultSel[] = $value;
        }
    }

    $dirCompletePath=$oPMFolder->getFolderStructure($dir);
    $copyDialog["xtype"]        = "form";
    $copyDialog["id"]           = "simpleform";
    $copyDialog["labelWidth"]   = 80;
    $copyDialog["width"]        = 500;
    $copyDialog["modal"]        = true;
    $copyDialog["url"]          = "URL_SCRIPT";
    if ($type=="copy") {
        $copyDialog["dialogtitle"]= "Copy";
    } else {
        $copyDialog["dialogtitle"]= "Move";
    }

    $copyDialog["frame"]= true;
    $copyDialog["items"]=array();

    $itemField=array();
    $itemField["xtype"]         = "combo";
    $itemField["hiddenName"]    = "new_dir";
    $itemField["id"]            = "new_dir_label";
    $itemField["name"]          = "new_dir_label";
    $itemField["mode"]          = "local";
    $itemField["triggerAction"] = "all";
    $itemField["store"]         = $folderResultSel;
    $itemField["valueField"]    = "FOLDER_UID";
    $itemField["editable"]    = false;
    $itemField["displayField"]  = "FOLDER_NAME";
    $itemField["selectOnFocus"] = true;
    $itemField["tpl"]           = '<tpl for="."><div ext:qtip="{field2}" class="x-combo-list-item">{field2}</div></tpl>';
    $itemField["fieldLabel"]    = G::LoadTranslation('ID_DESTINATION');
    $itemField["emptyText"]     = G::LoadTranslation('ID_SELECT_DIRECTORY');
    $itemField["width"] = 390;
    $itemField["allowBlank"]=false;
    $copyDialog["items"][]=$itemField;

    $itemField=array();
    $itemField["xtype"]="hidden";
    $itemField["fieldLabel"]="copyMove";
    $itemField["name"]="copyMove";
    $itemField["value"]="all";
    $itemField["width"]=175;
    $itemField["allowBlank"]=false;
    $copyDialog["items"][]=$itemField;

    $copyDialog["buttons"]=array();

    $itemButton=array();
    if ($type == "copy") {
        $itemButton["text"]= "Copy";
    } else {
        $itemButton["text"]= "Move";
    }
    $itemButton["handler"]="copyDialogCreateButtonFunction";
    $itemButton["id"]="buttonCopy";
    $functionsToReplace["copyDialogCreateButtonFunction"]="function() {
        form =  Ext.getCmp('simpleform').getForm();
        var requestParams = getRequestParams();
        requestParams.confirm = 'true';
        if (Ext.getCmp('new_dir_label').getValue() == '') {
            statusBarMessage('Select a Directory', false, false);
            return false;
        }
        requestParams.new_dir = Ext.getCmp('new_dir_label').getValue()
        statusBarMessage('Please wait...', true, true);
        Ext.getCmp('new_dir_label').disable();
        Ext.getCmp('buttonCopy').disable();
        Ext.getCmp('buttonCancel').disable();
        requestParams.action  = '".$type."Execute';
        form.submit({
            reset: false,
            success: function(form, action) {
                if(action.result.success){
                    if(action.result.success=='success'){
                        statusBarMessage(action.result.message, false, true);
                        var node = dirTree.getNodeById('root');
                        node.select();
                        datastore.directory = 'root';
                        datastore.reload();
                        dirTree.getRootNode().reload();
                        requestParams.dir = 'root';
                        Ext.getCmp('dialog').destroy();
                    }else{
                        statusBarMessage(action.result.message, false, false);
                    }
                }else{
                    if(!action.result) return;
                    Ext.MessageBox.alert('Error!', action.result.error);
                    statusBarMessage(action.result.error, false, false);
                }
            },
            failure: function(form, action) {
                if(!action.result) return;
                Ext.MessageBox.alert('Error!', action.result.error);
                statusBarMessage(action.result.error, false, false);
            },
            scope: form,
            // add some vars to the request, similar to hidden fields
            params: requestParams
        });
    }";
    $copyDialog["buttons"][]=$itemButton;

    $itemButton=array();
    $itemButton["text"]="Cancel";
    $itemButton["id"]="buttonCancel";
    $itemButton["handler"]= "copyDialogCancelButtonFunction";
    $functionsToReplace["copyDialogCancelButtonFunction"]="function() { Ext.getCmp('dialog').destroy(); }";
    $copyDialog["buttons"][]=$itemButton;

    $finalResponse=G::json_encode($copyDialog);
    foreach ($functionsToReplace as $key => $originalFunction) {
        $finalResponse=str_replace('"'.$key.'"',$originalFunction,$finalResponse);
    }
    $finalResponse=str_replace("URL_SCRIPT","../appFolder/appFolderAjax.php",$finalResponse);
    echo ($finalResponse);
}