1 |
|
2 | import angular from 'angular';
|
3 |
|
4 | import {storiesOf} from '@storybook/html';
|
5 | import {action} from '@storybook/addon-actions';
|
6 |
|
7 | import angularDecorator, {APP_NAME} from '../../.storybook/angular-decorator';
|
8 | import hubConfig from '../../.storybook/hub-config';
|
9 | import QueryAssistNG from '../query-assist-ng/query-assist-ng';
|
10 |
|
11 | import SaveFieldNG from './save-field-ng';
|
12 |
|
13 | storiesOf('Legacy Angular|Save Field Ng', module).
|
14 | addParameters({
|
15 | notes: 'Allows to create forms where some fields have their own Save buttons.',
|
16 | hermione: {skip: true}
|
17 | }).
|
18 | addDecorator(angularDecorator()).
|
19 | add('basic', () => {
|
20 | angular.module(APP_NAME, [SaveFieldNG, QueryAssistNG]).
|
21 | config((shortcutsProvider, rgSaveFieldShortcutsMode) => {
|
22 | shortcutsProvider.mode({
|
23 | id: 'ring-shortcuts',
|
24 | shortcuts: []
|
25 | });
|
26 | shortcutsProvider.mode(rgSaveFieldShortcutsMode);
|
27 | }).
|
28 | controller('SaveFieldDemoCtrl', function ctrl($scope, $q, $http) {
|
29 | $scope.data = {
|
30 | email: 'aa',
|
31 | longText: null,
|
32 | longTextList: ['one', 'two', 'three'],
|
33 | num: 10,
|
34 | someText: 'some text',
|
35 | query: 'login: guest'
|
36 | };
|
37 |
|
38 |
|
39 | const defer = $q.defer();
|
40 | defer.resolve();
|
41 | $scope.save = () => {
|
42 | action('save')('data = ', $scope.data);
|
43 | return defer.promise;
|
44 | };
|
45 |
|
46 | $scope.invalidSave = currentValue => {
|
47 | if (currentValue.length < 7) {
|
48 | return $q.reject(`Length of the string must be greater than 7! >> ${currentValue}`);
|
49 | } else {
|
50 | return true;
|
51 | }
|
52 | };
|
53 |
|
54 | $scope.queryAssistSource = ({query, caret, omitSuggestions}) => {
|
55 | const config = {
|
56 | params: {
|
57 | fields: `query,caret,styleRanges${omitSuggestions ? '' : ',suggestions'}`,
|
58 | query,
|
59 | caret
|
60 | }
|
61 | };
|
62 |
|
63 | return $http.get(`${hubConfig.serverUri}/api/rest/users/queryAssist`, config).
|
64 | then(data => data.data);
|
65 | };
|
66 |
|
67 | $scope.updateQueryAssistValue = ({query}) => {
|
68 | $scope.data.query = query;
|
69 | };
|
70 | });
|
71 |
|
72 | return `
|
73 | <div rg-shortcuts-app>
|
74 | <div class="ring-form" ng-controller="SaveFieldDemoCtrl">
|
75 |
|
76 | <div class="ring-form__group">
|
77 | <label class="ring-form__label">
|
78 | Input
|
79 | </label>
|
80 |
|
81 | <div class="ring-form__control">
|
82 | <rg-save-field value="data.email"
|
83 | on-save="save()">
|
84 | <input type="text"
|
85 | class="ring-input ring-input-size_md"
|
86 | ng-required="true"
|
87 | ng-pattern="/^[a-zA-Z][a-zA-Z0-9-_\\.]*[@][a-zA-Z0-9-_\\.]+$/"
|
88 | ng-model="data.email">
|
89 | </rg-save-field>
|
90 | <div class="ring-form__control__description">Enter valid email</div>
|
91 | </div>
|
92 | </div>
|
93 |
|
94 | <div class="ring-form__group">
|
95 | <label class="ring-form__label">
|
96 | Input
|
97 | </label>
|
98 |
|
99 | <div class="ring-form__control">
|
100 | <rg-save-field value="data.email" working-value="data.emailWorkingValue"
|
101 | on-save="save()">
|
102 | <input type="text"
|
103 | class="ring-input ring-input-size_md"
|
104 | ng-required="true"
|
105 | ng-pattern="/^[a-zA-Z][a-zA-Z0-9-_\\.]*[@][a-zA-Z0-9-_\\.]+$/"
|
106 | ng-model="data.emailWorkingValue">
|
107 | </rg-save-field>
|
108 | <div class="ring-form__control__description">value: {{data.email}} working-value: {{data.emailWorkingValue}}</div>
|
109 | </div>
|
110 | </div>
|
111 |
|
112 | <div class="ring-form__group">
|
113 | <label class="ring-form__label">
|
114 | Textarea
|
115 | </label>
|
116 |
|
117 | <div class="ring-form__control">
|
118 | <rg-save-field value="data.longText"
|
119 | on-save="save()">
|
120 | <textarea type="text"
|
121 | class="ring-input ring-input-size_l"
|
122 | ng-required="true"
|
123 | ng-model="data.longText"></textarea>
|
124 | </rg-save-field>
|
125 | </div>
|
126 | </div>
|
127 |
|
128 | <div class="ring-form__group">
|
129 | <label class="ring-form__label">
|
130 | Textarea List Mode
|
131 | </label>
|
132 |
|
133 | <div class="ring-form__control">
|
134 | <rg-save-field value="data.longTextList"
|
135 | multiline="list"
|
136 | on-save="save()">
|
137 | <textarea type="text"
|
138 | name="myMultilineArea"
|
139 | class="ring-input ring-input-size_md"
|
140 | ng-model="data.longTextList"></textarea>
|
141 | </rg-save-field>
|
142 | <div class="ring-form__control__description">data.longTextList =
|
143 | {{data.longTextList}}
|
144 | </div>
|
145 | </div>
|
146 | </div>
|
147 |
|
148 | <div class="ring-form__group">
|
149 | <label class="ring-form__label">
|
150 | Number
|
151 | </label>
|
152 |
|
153 | <div class="ring-form__control">
|
154 | <rg-save-field value="data.num"
|
155 | on-save="save()">
|
156 | <input type="number"
|
157 | max="10"
|
158 | class="ring-input ring-input-size_xs"
|
159 | ng-model="data.num">
|
160 | </rg-save-field>
|
161 | </div>
|
162 | </div>
|
163 |
|
164 | <div class="ring-form__group">
|
165 | <label class="ring-form__label">
|
166 | Rejected Save
|
167 | </label>
|
168 |
|
169 | <div class="ring-form__control">
|
170 | <rg-save-field value="data.someText"
|
171 | on-save="invalidSave(value)">
|
172 | <input type="text"
|
173 | class="ring-input ring-input-size_md"
|
174 | ng-model="data.someText">
|
175 | </rg-save-field>
|
176 | </div>
|
177 | </div>
|
178 |
|
179 | <div class="ring-form__group">
|
180 | <label class="ring-form__label">
|
181 | Query Assist
|
182 | </label>
|
183 |
|
184 | <div class="ring-form__control">
|
185 | data.query={{data.query}}
|
186 | <rg-save-field value="data.query"
|
187 | on-save="save(value)">
|
188 | <rg-query-assist
|
189 | class="ring-input-size_l"
|
190 | x-data-source="queryAssistSource"
|
191 | query="data.query"
|
192 | on-apply="save"
|
193 | on-change="updateQueryAssistValue"
|
194 | placeholder="placeholder"
|
195 | hint="'Press ⇥ to complete first item'"
|
196 | hint-on-selection="'Press ↩ to complete selected item'"></rg-query-assist>
|
197 | </rg-save-field>
|
198 | <div class="ring-form__control__description">Currently there is a
|
199 | bug with "escape" shortcut
|
200 | </div>
|
201 | </div>
|
202 | </div>
|
203 | </div>
|
204 |
|
205 | </div>
|
206 | `;
|
207 | });
|