Skip to content

Commit

Permalink
Add delete confirmation (#644)
Browse files Browse the repository at this point in the history
  • Loading branch information
s-andrey authored Feb 26, 2020
1 parent c6d8a99 commit 258c3d0
Show file tree
Hide file tree
Showing 18 changed files with 266 additions and 92 deletions.
56 changes: 16 additions & 40 deletions addon/components/fd-modal-message-box.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { translationMacro as t } from 'ember-i18n';
import FlexberryDialogComponent from 'ember-flexberry/components/flexberry-dialog';
import layout from '../templates/components/fd-modal-message-box';
import $ from 'jquery';
import FlexberryDialogComponent from 'ember-flexberry/components/flexberry-dialog';

import { computed } from '@ember/object';

export default FlexberryDialogComponent.extend({
layout,
Expand All @@ -14,6 +11,7 @@ export default FlexberryDialogComponent.extend({
@property classNames
*/
classNames: ['tiny'],

/**
Flag: indicates whether dialog is closable (can be closed on it's dimmer click).
@property closable
Expand All @@ -23,76 +21,54 @@ export default FlexberryDialogComponent.extend({
closable: true,

/**
Сomponent icon class to display in the header.
@property headerIcon
@type String
@default undefined
Flag: indicates whether dialog is visible or not.
If true, then dialog will be shown, otherwise dialog will be closed.
@property visible
@type Boolean
@default false
*/
headerIcon: undefined,
visible: true,

/**
Flag: indicates whether to show modal button.
@property isError
@property visibleButtons
@type Object
@default false
*/
isError: false,
visibleButtons: false,

/**
Sheet component name.
@property sheetName
Component's header caption.
@property headerCaption
@type String
*/
sheetName: undefined,
headerCaption: undefined,

/**
Message text value.
@property messageText
@type String
@default undefined
*/
messageText: undefined,

/**
Flag: indicates whether dialog is visible or not.
If true, then dialog will be shown, otherwise dialog will be closed.
@property visible
@type Boolean
@default false
*/
visible: true,

/**
Component's approve button caption.
@property approveButtonCaption
@type String
@default t('components.fd-modal-message-box.confirmation-approve')
*/
approveButtonCaption: t('components.fd-modal-message-box.confirmation-approve'),
approveButtonCaption: undefined,

/**
Component's deny button caption.
@property denyButtonCaption
@type String
@default t('components.fd-modal-message-box.confirmation-deny')
*/
denyButtonCaption: t('components.fd-modal-message-box.confirmation-deny'),

/**
Component's close button caption.
@property closeButtonCaption
@type String
*/
closeButtonCaption: computed('isError', 'i18n.locale', function() {
let i18n = this.get('i18n');
return this.get('isError') ? i18n.t('components.fd-modal-message-box.confirmation-close') : i18n.t('components.fd-modal-message-box.confirmation-cancel');
}),
denyButtonCaption: undefined,

/**
See [EmberJS API](https://emberjs.com/).
Expand Down
10 changes: 8 additions & 2 deletions addon/components/fd-sheets/fd-class-sheet.js
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,15 @@ export default FdBaseSheet.extend({
/**
Delete selected class.
@method actions.delete
@method actions.delete
@param {Boolean} confirmation
*/
delete() {
delete(confirmation) {
if (isNone(confirmation)) {
this.get('fdDialogService').showVerificationMessage(this.get('i18n').t('components.fd-modal-message-box.delete-text').toString(), this.get('actions.delete'), this);
return;
}

const store = this.get('store');
let selectedValue = this.get('selectedValue.data');
let modelHash = this.getModelArrayByStereotype(selectedValue);
Expand Down
10 changes: 8 additions & 2 deletions addon/components/fd-sheets/fd-diagram-sheet.js
Original file line number Diff line number Diff line change
Expand Up @@ -519,9 +519,15 @@ export default FdBaseSheet.extend(
/**
Delete selected diagram.
@method actions.delete
@method actions.delete
@param {Boolean} confirmation
*/
delete() {
delete(confirmation) {
if (isNone(confirmation)) {
this.get('fdDialogService').showVerificationMessage(this.get('i18n').t('components.fd-modal-message-box.delete-text').toString(), this.get('actions.delete'), this);
return;
}

let store = this.get('store');
let selectedValue = this.get('selectedValue.data');
let modelPart = selectedValue.get('constructor.modelName').slice(11);
Expand Down
11 changes: 9 additions & 2 deletions addon/components/fd-sheets/fd-navigation-sheet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import FdBaseSheet from './fd-base-sheet';
import { isNone } from '@ember/utils';

import layout from '../../templates/components/fd-sheets/fd-navigation-sheet';

Expand Down Expand Up @@ -83,9 +84,15 @@ export default FdBaseSheet.extend({
/**
Delete 'selectedNode'.
@method actions.delete
@method actions.delete
@param {Boolean} confirmation
*/
delete() {
delete(confirmation) {
if (isNone(confirmation)) {
this.get('fdDialogService').showVerificationMessage(this.get('i18n').t('components.fd-modal-message-box.delete-text').toString(), this.get('actions.delete'), this);
return;
}

let jstree = this.get('treeObject').jstree(true);
let selectedNode = this.get('selectedValue');
jstree.delete_node(selectedNode);
Expand Down
10 changes: 8 additions & 2 deletions addon/components/fd-sheets/fd-view-sheet.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,15 @@ export default FdBaseSheet.extend({
/**
Delete selected view.
@method actions.delete
@method actions.delete
@param {Boolean} confirmation
*/
delete() {
delete(confirmation) {
if (isNone(confirmation)) {
this.get('fdDialogService').showVerificationMessage(this.get('i18n').t('components.fd-modal-message-box.delete-text').toString(), this.get('actions.delete'), this);
return;
}

let view = this.get('selectedValue');

this.get('appState').loading();
Expand Down
18 changes: 15 additions & 3 deletions addon/controllers/fd-setting.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,15 @@ export default Controller.extend(FdSheetCloseConfirm, FdReadonlyProjectMixin, {
/**
Delete selected stage.
@method actions.delete
@method actions.delete
@param {Boolean} confirmation
*/
delete() {
delete(confirmation) {
if (isNone(confirmation)) {
this.get('fdDialogService').showVerificationMessage(this.get('i18n').t('components.fd-modal-message-box.delete-text').toString(), this.get('actions.delete'), this);
return;
}

let stage = this.get('model.stage');
this.get('appState').loading();
stage.destroyRecord()
Expand All @@ -205,8 +211,14 @@ export default Controller.extend(FdSheetCloseConfirm, FdReadonlyProjectMixin, {
Rename objects selected stage.
@method actions.renameStage
@param {Boolean} confirmation
*/
renameStage() {
renameStage(confirmation) {
if (isNone(confirmation)) {
this.get('fdDialogService').showVerificationMessage(this.get('i18n').t('forms.fd-setting.project-actions.rename-stage-text').toString(), this.get('actions.renameStage'), this);
return;
}

let store = this.get('store');
let adapter = store.adapterFor('application');
let context = this.get('currentProjectContext');
Expand Down
5 changes: 3 additions & 2 deletions addon/locales/en/components/fd-modal-message-box.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export default {
'confirmation-text': 'Unsaved data exist. Save data before closing ?',
'confirmation-approve': 'Save and close',
'confirmation-deny': 'Close without saving',
'confirmation-close': 'Close',
'confirmation-cancel': 'Cancel',
'custom-approve': 'Confirm action',
'custom-deny': 'Undo action',
'delete-text': 'Data will be deleted permanently. Are you sure ?'
};
1 change: 1 addition & 0 deletions addon/locales/en/forms/fd-setting.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export default {
'delete-stage-button': 'Delete project',
'rename-stage-caption': 'I want to change all string fields of stage objects (except caption and description) to',
'rename-stage-button': 'Transliteration',
'rename-stage-text': 'Performing transliteration will change all fields of the field to the stage, which can lead to its breakdown, we recommend that you backup the stage. Do stage transliteration ?'
},
'generation-settings-caption': 'Generation settings',
'generation-settings': {
Expand Down
5 changes: 3 additions & 2 deletions addon/locales/ru/components/fd-modal-message-box.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export default {
'confirmation-text': 'Имеются несохраненные данные. Сохранить данные при закрытии ?',
'confirmation-approve': 'Сохранить и закрыть',
'confirmation-deny': 'Закрыть без сохранения',
'confirmation-close': 'Закрыть',
'confirmation-cancel': 'Отменить',
'custom-approve': 'Подтвердить действие',
'custom-deny': 'Отменить действие',
'delete-text': 'Данные будут удалены безвозвратно. Вы уверены ?'
};
3 changes: 2 additions & 1 deletion addon/locales/ru/forms/fd-setting.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ export default {
'delete-stage-caption': 'Я хочу навсегда',
'delete-stage-button': 'Удалить проект',
'rename-stage-caption': 'Я хочу изменить все строковые поля объектов стадии (кроме caption и description) на',
'rename-stage-button': 'Транслитерацию' ,
'rename-stage-button': 'Транслитерацию',
'rename-stage-text': 'Выполнение транслитерации изменит все поля поля в стадию что може привести к ее поломке, рекомендуем сделать бэкап стадии. Селать транслитерацию стадии ?'
},
'generation-settings-caption': 'Настройки генерации',
'generation-settings': {
Expand Down
Loading

0 comments on commit 258c3d0

Please sign in to comment.