ru.coon 3.0.55 → 3.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # Version 3.0.56, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/6d42b7aef8ee61964f826099feaaf68cd7299303)
2
+ * ## Features
3
+ * <span style='color:green'>feat: add forceShowHeader</span> ([7ce368], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/7ce368898a1809f08aaa8331af2bdef4f40366da))
4
+
5
+ * HT-14299: изменение вида несохраненных изменений в вертикальных табах ([590315], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/59031554ed302eabdc194e916e44c3a8a3c77371))
6
+ * HT-14580: повторный вход при завершении сессии ([66c811], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/66c81121345e02ec436a9ec3308db087030a25ac))
7
+ * update: CHANGELOG.md ([0cd2cb], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/0cd2cb99bbdcdf6d8cf83c29c744dd0f02daa497))
8
+
1
9
  # Version 3.0.55, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/3aa9d1a7bd56ffe2e12a7470620065930b6c9002)
2
10
  * ## Fixes
3
11
  * <span style='color:red'>fix HT-14573: DFVCharacteristicField completeEdit on select</span> ([683c19], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/683c19de5c78219346d6529d1f223afe16b480c5))
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "ru.coon"
5
5
  },
6
6
  "description": "",
7
- "version": "3.0.55",
7
+ "version": "3.0.56",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+http://gitlab-dbr.sigma-it.local/dbr/ru.coon"
package/src/TabPanel.js CHANGED
@@ -71,9 +71,10 @@ Ext.define('Coon.TabPanel', {
71
71
  }
72
72
  if (isDirty) {
73
73
  component.tab.addCls(this.tabDirtyCls);
74
+ component.tab.setTooltip('Несохраненные изменения');
74
75
  } else {
75
76
  component.tab.removeCls(this.tabDirtyCls);
77
+ component.tab.setTooltip('');
76
78
  }
77
79
  },
78
-
79
80
  });
@@ -71,7 +71,11 @@ Ext.define('Coon.app.Application', {
71
71
  }
72
72
  },
73
73
 
74
- onLoginSuccessful() {
74
+ onLoginSuccessful(loginReason) {
75
+ if (loginReason === 'reAuth') {
76
+ this.reAuthorize('destroy');
77
+ return;
78
+ }
75
79
  this.createFxAnim(this.getApplicationMainView(), false, async function() {
76
80
  this.getApplicationMainView().destroy();
77
81
  this.setApplicationMainView(Ext.create({
@@ -86,6 +90,58 @@ Ext.define('Coon.app.Application', {
86
90
  this.getApplicationMainView().show();
87
91
  },
88
92
 
93
+ reAuthorize(action) {
94
+ if (action === 'show') {
95
+ this.reAuthWindow = this.getReAuthWindow();
96
+ this.reAuthWindow.show();
97
+ return;
98
+ }
99
+ if (action === 'destroy' && this.reAuthWindow) {
100
+ this.reAuthWindow.destroy();
101
+ this.reAuthWindow = undefined;
102
+ return;
103
+ }
104
+ },
105
+
106
+ getReAuthWindow() {
107
+ const panel = {
108
+ xtype: 'panel',
109
+ layout: {
110
+ type: 'vbox',
111
+ align: 'stretch',
112
+ },
113
+ padding: 10,
114
+ items: [
115
+ {
116
+ html: 'Для продолжения работы войдите в систему.',
117
+ },
118
+ {
119
+ height: 220,
120
+ layout: {
121
+ type: 'vbox',
122
+ align: 'stretch',
123
+ pack: 'end',
124
+ },
125
+ items: [
126
+ {
127
+ xtype: 'LoginForm',
128
+ loginReason: 'reAuth',
129
+ }
130
+ ],
131
+ }
132
+
133
+ ],
134
+ };
135
+ return Ext.widget('WindowWrap', {
136
+ title: 'Сообщение системы',
137
+ width: 400,
138
+ height: 300,
139
+ closable: false,
140
+ maximizable: false,
141
+ items: panel,
142
+ });
143
+ },
144
+
89
145
  afterLoad: async function() {
90
146
  this.appRouter.onBeforeRouteEnterFailedFn = this.processNotAuthorizedAction;
91
147
  Ext.on('auth:loginSuccessful', this.onLoginSuccessful, this);
@@ -14,12 +14,20 @@ Ext.define('Coon.app.login.LoginForm', {
14
14
  type: 'vbox',
15
15
  align: 'stretch',
16
16
  },
17
+
18
+ config: {
19
+ loginReason: 'auth',
20
+ },
21
+
17
22
  plugins: [
18
23
  {
19
24
  ptype: 'EnterConfirmFormPlugin',
20
25
  confirmHandler(panel) {
21
26
  panel.fireEvent('submit');
22
27
  },
28
+ },
29
+ {
30
+ ptype: 'FormFieldFocusPlugin',
23
31
  }
24
32
  ],
25
33
  defaults: {
@@ -17,7 +17,7 @@
17
17
  $background-color-pressed: $base-color,
18
18
  $background-color-focus-over: transparentize($base-color, 20%),
19
19
  $background-color-focus-pressed: $base-color,
20
- $background-color-disabled: null,
20
+ $background-color-disabled: #6b9bb8,
21
21
  $font-weight: normal,
22
22
  $color: white
23
23
  );
@@ -115,7 +115,7 @@ Ext.define('Coon.app.login.LoginFormController', {
115
115
  localStorage.setItem('CSRFToken', token);
116
116
  }
117
117
 
118
- Ext.fireEvent('auth:loginSuccessful');
118
+ Ext.fireEvent('auth:loginSuccessful', this.getView().getLoginReason());
119
119
  }, this);
120
120
  tokenCommand.execute();
121
121
  },
@@ -8,6 +8,11 @@ Ext.define('Coon.common.panel.SmartForm', {
8
8
  },
9
9
 
10
10
  initComponent: function() {
11
+ if (!this.plugins) {
12
+ this.plugins = [];
13
+ }
14
+ this.plugins.push({ptype: 'FormFieldFocusPlugin'});
15
+
11
16
  this.callParent(arguments);
12
17
 
13
18
  this.groupsFieldValidationPlugin = this.findPlugin('ReportGroupsFieldValidationPlugin');
@@ -46,25 +46,12 @@
46
46
  .x-tab-bar-body-default {
47
47
  padding: 0;
48
48
  }
49
- }
50
49
 
51
- .tab-dirty {
52
- position: relative;
53
- .x-tab-inner {
50
+ .tab-dirty {
54
51
  position: relative;
55
- overflow: visible;
56
-
57
- &::before {
58
- content: '';
59
- display: block;
60
- width: 5px;
61
- height: 5px;
62
- background: $base-color-light;
63
- border-radius: 50%;
64
- position: absolute;
65
- left: -10px;
66
- top: calc(1em / 2);
67
- transform: translateY(-50%);
52
+ .x-tab-inner {
53
+ font-weight: 600;
54
+ font-style: italic;
68
55
  }
69
56
  }
70
57
  }
@@ -173,7 +173,7 @@ Ext.define('Coon.uielement.component.UiCustomController', {
173
173
  this.getViewModel().bind(`{${context}}`, function(contextValue) {
174
174
  setupTitle(
175
175
  this.makeComponentTitle(staticText, contextValue),
176
- {silent: true}
176
+ {silent: false}
177
177
  );
178
178
  }, this);
179
179
  } else {
@@ -190,22 +190,4 @@ Ext.define('Coon.uielement.component.UiCustomController', {
190
190
  setupTitle(title);
191
191
  }
192
192
  },
193
-
194
- setupTitle(title, options = {}) {
195
- if (!typeof title === 'string') {
196
- return;
197
- }
198
- title = title || Coon.format.withHint('<span style="color:red">---</span>', 'заголовок не задан');
199
- this.getView().titleText = title;
200
- if (!options.silent) {
201
- this.getView().fireEvent('titlechange', this.getView(), title);
202
- }
203
- if (
204
- this.getView().tab &&
205
- typeof this.getView().tab.setTooltip === 'function'
206
- ) {
207
- this.getView().tab.setTooltip(title);
208
- }
209
- },
210
-
211
193
  });
@@ -69,6 +69,21 @@ Ext.define('Coon.uielement.component.UiCustomPanel', {
69
69
  this.viewModel.setData(data);
70
70
  }
71
71
  this.callParent();
72
+ if (this.componentTitle?.forceShowHeader) {
73
+ this.on('titlechange', this.forceShowHeader, this);
74
+ }
75
+ },
76
+
77
+ forceShowHeader(_, title) {
78
+ if (typeof title !== 'string' || !title) {
79
+ return;
80
+ }
81
+ if (this.header && typeof this.header.show === 'function') {
82
+ this.header.show();
83
+ } else {
84
+ this.header = {title};
85
+ this.updateHeader(true);
86
+ }
72
87
  },
73
88
 
74
89
  convertRowData(rowData) {
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  Ext.define('Coon.version', {
2
2
  singleton: true,
3
- number: '3.0.55',
3
+ number: '3.0.56',
4
4
  });