/*
* Copyright 2024 Anyware Services
*
* Licensed 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.
*/
/**
* Combobox for container regime
*/
Ext.define('Ametys.plugins.odfpilotage.widget.SelectContainerRegime', {
extend: 'Ametys.cms.form.widget.SelectReferenceTableContent',
constructor: function (config)
{
config = Ext.apply(config, {
listeners: {
scope: this,
'change': function(cb, newValue, oldValue)
{
//It's ready if no form (grid edition)
var isFormReady = !this.form || this.form.isFormReady();
if (isFormReady)
{
if (this._oldValue === undefined) {this._oldValue = oldValue || null};
if (JSON.stringify(newValue) != JSON.stringify(this._oldValue))
{
if (this._alertConfiguration === undefined)
{
Ametys.data.ServerComm.callMethod({
role: "org.ametys.plugins.odfpilotage.helper.PilotageHelper",
methodName: "getMCCConfiguration",
parameters: [],
callback: {
handler: function (alertConfiguration) {
this._alertConfiguration = alertConfiguration;
this._showWarningMsg();
},
scope: this
}
});
}
else
{
this._showWarningMsg();
}
}
else
{
this.clearWarning();
}
}
}
}
});
this.callParent(arguments);
},
/**
* Show a warning message if the mcc configuration allow it
* @private
*/
_showWarningMsg: function()
{
let rulesEnabled = this._alertConfiguration.rulesEnabled;
let regimeForced = this._alertConfiguration.regimeForced;
if (rulesEnabled || regimeForced)
{
let warningMsg = "{{i18n plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_CONTAINER_REGIME_WIDGET_WARNING_MSG}}";
warningMsg += "<ul>";
if (rulesEnabled)
{
warningMsg += "<li>{{i18n plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_CONTAINER_REGIME_WIDGET_RULE_WARNING_MSG}}</li>";
}
if (regimeForced)
{
warningMsg += "<li>{{i18n plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_CONTAINER_REGIME_WIDGET_FORCE_WARNING_MSG}}</li>";
}
warningMsg += "</ul>";
this.markWarning(warningMsg);
}
}
});