Przeglądaj źródła

HPCC-10727 Implement Remote Copy

Fixes HPCC-10727

Signed-off-by: Gordon Smith <gordon.smith@lexisnexis.com>
Gordon Smith 11 lat temu
rodzic
commit
26e7cfc0b9

+ 18 - 0
esp/files/scripts/DFUQueryWidget.js

@@ -90,6 +90,8 @@ define([
             this.workunitsTab = registry.byId(this.id + "_Workunits");
             this.filter = registry.byId(this.id + "Filter");
             this.clusterTargetSelect = registry.byId(this.id + "ClusterTargetSelect");
+            this.importForm = registry.byId(this.id + "ImportForm");
+            this.importTargetSelect = registry.byId(this.id + "ImportTargetSelect");
             this.copyForm = registry.byId(this.id + "CopyForm");
             this.copyTargetSelect = registry.byId(this.id + "CopyTargetSelect");
             this.copyGrid = registry.byId(this.id + "CopyGrid");
@@ -155,6 +157,19 @@ define([
             }
         },
 
+        _onImportOk: function (event) {
+            if (this.importForm.validate()) {
+                var request = domForm.toObject(this.importForm.id);
+                var context = this;
+                FileSpray.Copy({
+                    request: request
+                }).then(function (response) {
+                    context._handleResponse("CopyResponse.result", response);
+                });
+                registry.byId(this.id + "ImportDropDown").closeDropDown();
+            }
+        },
+
         _onCopyOk: function (event) {
             if (this.copyForm.validate()) {
                 var context = this;
@@ -274,6 +289,9 @@ define([
                 includeBlank: true
             });
             var context = this;
+            this.importTargetSelect.init({
+                Groups: true
+            });
             this.copyTargetSelect.init({
                 Groups: true
             });

+ 5 - 0
esp/files/scripts/nls/DFUQueryWidget.js

@@ -9,6 +9,7 @@ define({ root:
     Cluster: "Cluster",
     Copy: "Copy",
     Compress: "Compress",
+    Dali: "Dali",
     DeleteSelectedFiles: "Delete Selected Files?",
     Delimited: "Delimited",
     Description: "Description",
@@ -20,6 +21,7 @@ define({ root:
     FromDate: "From Date",
     FromSizes: "From Sizes",
     Group: "Group",
+    Import: "Import",
     IP: "IP",
     IPAddress: "IP Address",
     JSmith: "JSmit*",
@@ -41,12 +43,14 @@ define({ root:
     Overwrite: "Overwrite",
     Owner: "Owner",
     Parts: "Parts",
+    Password: "Password",
     Path: "Path",
     Prefix: "Prefix",
     Quote: "Quote",
     RecordLength: "Record Length",
     Records: "Records",
     Rename: "Rename",
+    Replicate: "Replicate",
     RetainSuperfileStructure: "Retain Superfile Structure",
     RowTag: "Row Tag",
     Seperators: "Seperators",
@@ -62,6 +66,7 @@ define({ root:
     TargetName: "Target Name",
     ToDate: "To Date",
     ToSizes: "To Sizes",
+    UserID: "User ID",
     UseSingleConnection: "Use Single Connection",
     Wrap: "Wrap",
     XML: "XML",

+ 38 - 0
esp/files/templates/DFUQueryWidget.html

@@ -8,6 +8,44 @@
                     <div id="${id}Open" data-dojo-attach-event="onClick:_onOpen" data-dojo-type="dijit.form.Button">${i18n.Open}</div>
                     <div id="${id}Delete" data-dojo-attach-event="onClick:_onDelete" data-dojo-type="dijit.form.Button">${i18n.Delete}</div>
                     <span data-dojo-type="dijit.ToolbarSeparator"></span>
+                    <div id="${id}ImportDropDown" data-dojo-type="dijit.form.DropDownButton">
+                        <span>${i18n.Import}</span>
+                        <div data-dojo-type="dijit.TooltipDialog">
+                            <div id="${id}ImportForm" style="width: 460px;" onsubmit="return false;" data-dojo-props="region: 'bottom'" data-dojo-type="dijit.form.Form">
+                                <div data-dojo-type="dijit.Fieldset">
+                                    <legend>Source</legend>
+                                    <div data-dojo-type="hpcc.TableContainer">
+                                        <input name="sourceDali" title="${i18n.Dali}:" style="width:100%" required="true" data-dojo-props="trim: true" data-dojo-type="dijit.form.ValidationTextBox" />
+                                        <input name="srcusername" title="${i18n.UserID}:" style="width:100%" required="true" data-dojo-props="trim: true" data-dojo-type="dijit.form.ValidationTextBox" />
+                                        <input name="srcpassword" title="${i18n.Password}:" style="width:100%" required="true" type="password" data-dojo-props="trim: true" data-dojo-type="dijit.form.ValidationTextBox" />
+                                        <input name="sourceLogicalName" title="${i18n.LogicalName}:" style="width:100%" required="true" data-dojo-props="trim: true" data-dojo-type="dijit.form.ValidationTextBox" />
+                                    </div>
+                                </div>
+                                <div data-dojo-type="dijit.Fieldset">
+                                    <legend>Target</legend>
+                                    <div data-dojo-type="hpcc.TableContainer">
+                                        <input id="${id}ImportTargetSelect" title="${i18n.Group}:" name="destGroup" style="width:100%" data-dojo-type="TargetSelectWidget" />
+                                        <input name="destLogicalName" title="${i18n.LogicalName}:" style="width:100%" required="true" data-dojo-props="trim: true" data-dojo-type="dijit.form.ValidationTextBox" />
+                                    </div>
+                                </div>
+                                <div data-dojo-type="dijit.Fieldset">
+                                    <legend>Options</legend>
+                                    <div data-dojo-props="cols:2" data-dojo-type="hpcc.TableContainer">
+                                        <input title="${i18n.Overwrite}:" name="overwrite" data-dojo-type="dijit/form/CheckBox" />
+                                        <input title="${i18n.NoSplit}:" name="nosplit" data-dojo-type="dijit/form/CheckBox" />
+                                        <input title="${i18n.Compress}:" name="compress" data-dojo-type="dijit/form/CheckBox" />
+                                        <input title="${i18n.Wrap}:" name="Wrap" data-dojo-type="dijit/form/CheckBox" />
+                                        <input title="${i18n.Replicate}:" name="replicate" data-dojo-type="dijit/form/CheckBox" />
+                                        <input title="${i18n.RetainSuperfileStructure}:" name="superCopy" data-dojo-type="dijit/form/CheckBox" />
+                                    </div>
+                                </div>
+                                <div class="dijitDialogPaneActionBar">
+                                    <button type="submit" data-dojo-attach-event="onClick:_onImportOk" data-dojo-type="dijit.form.Button">${i18n.Import}</button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <span data-dojo-type="dijit.ToolbarSeparator"></span>
                     <div id="${id}CopyDropDown" data-dojo-type="dijit.form.DropDownButton">
                         <span>${i18n.Copy}</span>
                         <div data-dojo-type="dijit.TooltipDialog">