| Документация

Кастомизация

CoGIS поддерживает возможность кастомизации портала для конкретных задач. Перейдите на вкладку HTML-кастомизация , нажмите на кнопку Добавить кастомизацию, выберите необходимый тип: HTML, CSS, JavaScript и задайте соответствующие настройки, см. Рисунок 439 .

Рисунок 439 - Вкладка HTML-кастомизация

Кнопка Сохранить в Карточке объекта

В случае необходимости можно адаптировать поведение кнопки Сохранить в Карточке объекта под конкретные задачи.

Для этого надо разместить в папке \Customer\openProject\ HTML-файл, содержащий соответствующий код.

Пример:

<script type="text/javascript">

window.checkBeforeSave = function (object, project) {

var getAttributeValue = function (attributeAlias) {

return object.attributes().keyValues.first(function (x) { return x.key == attributeAlias }).value();

};

var checkRequired = function (requiredFieldAlias, error) {

var value = getAttributeValue(requiredFieldAlias);

if (value == undefined || value == "")

return error;

return null;

};

var checkAnyCondition = function (condition, error) {

if (condition())

return error;

return null;

};

var resultErrorList = ko.observable(undefined);

var errors = [];

if (object.service.isApplicable('http://localhost/arcgis/rest/services/Test/MapServer') && object.id.layerId == 0) {

errors.addArray([

checkAnyCondition(

function () {

return getAttributeValue('Поле1') < getAttributeValue('Поле2');

},

'Поле1 должно быть больше, чем Поле2'),

checkRequired(

'Поле3',

'Поле3 обязательно')

]);

}

resultErrorList(errors.where(function (x) { return x !== null; }));

return resultErrorList;

};

</script>

Настраиваемые кнопки в Карточке объекта

В случае необходимости можно указать, отображать ли кнопки в шапке/подвале карточки объекта или не отображать.

Для этого надо разместить в папке \Customer\openProject\ HTML-файл, содержащий соответствующий код.

Пример:

window.checkButtonVisibilityInCard = function (object, button, project) {

var result = ko.observable(undefined);

if (button.caption == "Генерация отчета") {

result(false);

}

else {

result(true);

}

return result;

};

В случае необходимости можно указать, запускать ли задачу по нажатии на кнопку в шапке/подвале карточки объекта.

Для этого надо разместить в папке \Customer\openProject\ HTML-файл, содержащий соответствующий код.

Пример:

window.checkBeforeExecuteButtonInCard = function (object, button, project) {

var result = ko.observable(undefined);

if (button.caption == "Вызов задачи сервиса геообработки" && object.attributes().get("Район")() == "Центральный") {

api.showAlert("Заголовок", "Ошибка");

result(false);

}

else {

result(true);

}

return result;

};