Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c1a6538

Browse files
Merge pull request #23 from optiflows/develop
Input error message
2 parents 471a558 + 03d3ba4 commit c1a6538

File tree

8 files changed

+36
-389
lines changed

8 files changed

+36
-389
lines changed

‎bower.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@
2424
"dependencies": {
2525
"angular-schema-form": ">=0.8.13",
2626
"angular": "1.5.5",
27-
"angular-material": "1.0.7",
28-
"angular-animate": "1.4",
29-
"angular-sanitize": "1.4"
27+
"angular-material": "1.0.9",
28+
"angular-animate": "1.5.5",
29+
"angular-sanitize": "1.5.5",
30+
"angular-messages": "1.5.5"
3031
},
3132
"devDependencies": {
3233
"angular-ui-ace": "~0.2.3",

‎examples/material-example.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ <h3>Schema</h3>
165165
<script src="../bower_components/angular-aria/angular-aria.js"></script>
166166
<script src="../bower_components/angular-animate/angular-animate.js"></script>
167167
<script src="../bower_components/angular-material/angular-material.js"></script>
168+
<script src="../bower_components/angular-messages/angular-messages.js"></script>
168169
<script type="text/javascript" src="../bower_components/angular-sanitize/angular-sanitize.min.js"></script>
169170
<!-- <script type="text/javascript" src="../bower_components/angular-ui-sortable/sortable.js"></script>
170171
-->
@@ -175,7 +176,7 @@ <h3>Schema</h3>
175176

176177
<script type="text/javascript">
177178
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
178-
var app = angular.module('test', ['schemaForm', 'ngMaterial', 'ui.ace'])
179+
var app = angular.module('test', ['schemaForm', 'ngMaterial', 'ui.ace','ngMessages'])
179180

180181
app.config(function($mdThemingProvider, $mdDateLocaleProvider) {
181182
$mdThemingProvider.setDefaultTheme('default');

‎material-decorator.js

Lines changed: 0 additions & 380 deletions
This file was deleted.

‎material-decorator.min.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎src/checkbox.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
sf-changed="form"
66
ng-disabled="form.readonly"
77
schema-validate="form"
8+
sf-material-class="md-checked"
89
class="{{::form.fieldHtmlClass}}"
910
name="{{::form.key|sfCamelKey}}"
1011
aria-label="{{::form.title}}">

‎src/default.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<md-input-container class="schema-form-{{::form.type}} {{::form.htmlClass}}"
2-
ng-class="{'md-input-has-value': model['{{form.key.join('\'][\'')}}'], 'has-error': hasError(), 'has-success': hasSuccess(), 'has-feedback': form.feedback !== false}"
3-
sf-messages sf-layout>
2+
ng-class="{'has-error': hasError(), 'has-success': hasSuccess(), 'has-feedback': form.feedback !== false}"
3+
sf-messages sf-layoutsf-material-class="md-input-has-value">
44
<label ng-show="showTitle()" for="{{::form.key|sfCamelKey}}">{{::form.title}}</label>
55
<input sf-field-model
66
ng-show="::form.key"

‎src/material-class.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
angular.module('schemaForm').directive('sfMaterialClass', function($compile, $timeout) {
2+
return {
3+
restrict : 'A',
4+
scope : false,
5+
link : function(scope, element, attrs, ngModel) {
6+
function reduceHelper(obj, i) {return obj[i]}
7+
8+
var modelValue;
9+
try {
10+
modelValue = scope.form.key.reduce(reduceHelper, scope.model);
11+
} catch (e) {
12+
modelValue = undefined;
13+
}
14+
15+
// Element class is not set in DOM if executed immediately.
16+
// I don't understand exactly why but it's probably related to other directive job.
17+
$timeout(function() {
18+
if (modelValue !== null && typeof modelValue !== 'undefined' && modelValue !== false) {
19+
element.addClass(attrs.sfMaterialClass);
20+
}
21+
}, 0);
22+
}
23+
};
24+
});

‎src/material-decorator.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@
7373
};
7474

7575
function sfMessagesNodeHandler() {
76-
var html = '<div ng-if="ngModel.$invalid" ng-messages="ngModel.$error"><div sf-message ng-message></div></div>';
76+
var html = '<div ng-if="ngModel.$invalid" ng-messages="{dummy: true}" class="ng-active">' +
77+
'<div ng-message="dummy" class="md-input-message-animation" sf-message="form.description"></div></div>';
7778
var div = document.createElement('div');
7879
div.innerHTML = html;
7980
return div.firstChild;
@@ -82,7 +83,7 @@
8283
function sfMessagesBuilder(args) {
8384
var messagesDiv = args.fieldFrag.querySelector('[sf-messages]');
8485
if (messagesDiv && sfMessagesNode) {
85-
var child = sfMessagesNode.cloneNode();
86+
var child = sfMessagesNode.cloneNode(true);
8687
messagesDiv.appendChild(child);
8788
}
8889
};

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /