Настройки и jquery.icsEditForm.js

Настройки формы редактирования хранятся в javascript-plugin’e, находящемся в файле jquery.icsEditForm.js.

По умолчанию они выглядят следующим образом:

configuration: {
            trackChanges: true,
            trackIncludeSelector: 'input,textarea,select',
            trackExcludeSelector: undefined,
            trackExcludeContainerSelector: undefined,
            saveBtnSelector: 'input[id$="_SaveBtn"]',
            saveAndCloseBtnSelector: 'input[id$="_SaveAndCloseBtn"]',
            cancelBtnSelector: 'input[id$="_CancelBtn"]',
            objectKey: '',
            currentUserName: '',
            declineReadonlyLink: '',
            lockServiceUrl: '/AjaxDataService.asmx/LockObject',
            lockTimeout: '',
            pinToolbar: true,
            pinToolbarSelector: '.ics-sticky',
            // Сохранять ли позицию при горизонтальной прокрутке окна, false - по соображениям производительности
            pinToolbarStickToLeftBorder: false,
            showValidationErrorMessage: false,
            saveWaitingWindow: {
                width: 300,
                height: 115,
                title: 'Please wait',
                contentSelector: '#hiddenContent'
            },
            saveWge: {
                messages: {
                    handlersError: 'Incorrect data in related objects!',
                    confirmSavingMaster: 'You haven\'t saved related objects. Do you want to continue saving master object?',
                    confirmSavingButtonContinue: 'Continue',
                    confirmSavingButtonCancel: 'Cancel'
                }
            },
            messages: {
                objectChanged: 'The object has been changed. Do you want to save changes?',
                objectBlockedByUser: 'The object is blocked by user ',
                objectBlockedByUnknown: 'The object is blocked',
                openReadOnly: 'Do you want to open it only for reading?',
                validationErrorMessage: 'Not all values are correctly filled',
                okButton: 'OK',
                cancelButton: 'Cancel'
            }
        }

Чтобы у прикладного разработчика была возможность повлиять на эти настройки с серверной части приложения, было создано свойство базовой формы редактирования PluginInitSettings.

PluginInitSettings

У свойства PluginInitSettings отсутствует Setter, однако, оно объявлено как virtual, следовательно, его можно переопределить на нужной форме.

Для этого необходимо на форме, наследующейся от BaseEditForm, написать следующий блок:

public override object PluginInitSettings
{
    get 
    { 
        return new
            {
                saveBtnSelector = "input[id$=\"SaveBtn\"]",
                saveAndCloseBtnSelector: "input[id$=\"SaveAndCloseBtn\"]",
                messages = new 
                    {
                        okButton = "Хорошо"
                    }        
            };
    }
}

Указав переопределяемые свойства.

В примере, описанном выше, переопределяются selector’ы, отвечающие за поиск кнопок “Сохранить” и “Сохранить и закрыть” на форме редактирования для применения к ним скриптов сохранения данных. Также переопределяется надпись на кнопке OK во всплывающем окне подтверждения какого-либо действия.