blob: 27d8792ef5955ac5a2e09bff8f4673aeb1b5ade7 [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
define(["dojo/parser",
"dojo/dom-construct",
"dijit/registry",
"dojo/_base/event",
"qpid/common/util",
"dojo/text!connectionlimitprovider/rulebased/load.html",
"qpid/common/ResourceWidget",
"dijit/Dialog",
"dijit/form/Button",
"dijit/form/Form",
"dojo/domReady!"],
function (parser,
construct,
registry,
event,
util,
template)
{
function Load()
{
const that = this;
this.containerNode = construct.create("div", {innerHTML: template});
parser.parse(this.containerNode)
.then(function ()
{
that._dialog = registry.byId("loadConnectionLimitProvider.ruleBased");
that._form = registry.byId("loadConnectionLimitProvider.form");
const submitButton = registry.byId("loadConnectionLimitProvider.submitButton");
submitButton.on("click", function (e)
{
that._submit(submitButton, e);
});
const cancelButton = registry.byId("loadConnectionLimitProvider.cancelButton");
cancelButton.on("click", function (e)
{
event.stop(e);
that._dialog.hide();
});
if (!window.FileReader)
{
const oldBrowserWarning = registry.byId("loadConnectionLimitProvider.oldBrowserWarning");
oldBrowserWarning.innerHTML = "File upload requires a more recent browser with HTML5 support";
oldBrowserWarning.className = oldBrowserWarning.className.replace("hidden", "");
}
});
}
Load.prototype.show = function (management, modelObj)
{
this.management = management;
this.modelObj = modelObj;
this._form.reset();
this._dialog.show();
};
Load.prototype._submit = function (submitButton, e)
{
event.stop(e);
if (this._form.validate())
{
submitButton.set("disabled", true);
const that = this;
const modelObj = {
type: this.modelObj.type,
name: "loadFromFile",
parent: this.modelObj
};
const url = {url: this.management.buildObjectURL(modelObj)};
const data = util.getFormWidgetValues(this._form, {});
this.management.post(url, data)
.then(that._dialog.hide.bind(that._dialog), this.management.xhrErrorHandler)
.always(function ()
{
submitButton.set("disabled", false);
});
}
else
{
alert('Form contains invalid data. Please correct first');
}
};
return new Load();
});