Skip to content

Commit 8ecf17c

Browse files
committed
Merge remote-tracking branch 'origin/develop' into develop
2 parents 9974dd5 + c1a6538 commit 8ecf17c

File tree

6 files changed

+36
-8
lines changed

6 files changed

+36
-8
lines changed

bower.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@
2626
},
2727
"devDependencies": {
2828
"angular": "1.5.5",
29-
"angular-animate": "1.4",
29+
"angular-animate": "1.5.5",
3030
"angular-material": "1.1.1",
31-
"angular-sanitize": "1.4",
31+
"angular-sanitize": "1.5.5",
32+
"angular-messages": "1.5.5",
3233
"angular-ui-ace": "~0.2.3",
3334
"moment": "~2.10.6"
3435
}

examples/material-example.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ <h3>Schema</h3>
163163
<script src="../bower_components/angular-aria/angular-aria.js"></script>
164164
<script src="../bower_components/angular-animate/angular-animate.js"></script>
165165
<script src="../bower_components/angular-material/angular-material.js"></script>
166+
<script src="../bower_components/angular-messages/angular-messages.js"></script>
166167
<script type="text/javascript" src="../bower_components/angular-sanitize/angular-sanitize.min.js"></script>
167168
<!-- <script type="text/javascript" src="../bower_components/angular-ui-sortable/sortable.js"></script>
168169
-->
@@ -171,7 +172,7 @@ <h3>Schema</h3>
171172

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

176177
app.config(function($mdThemingProvider, $mdDateLocaleProvider) {
177178
$mdThemingProvider.setDefaultTheme('default');

src/checkbox.html

+1
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

+2-2
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-layout sf-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

+24
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

+4-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@
7474
};
7575

7676
function sfMessagesNodeHandler() {
77-
var html = '<div ng-if="ngModel.$invalid" ng-messages="ngModel.$error"><div sf-message ng-message></div></div>';
77+
var html = '<div ng-if="ngModel.$invalid" ng-messages="{dummy: true}" class="ng-active">' +
78+
'<div ng-message="dummy" class="md-input-message-animation" sf-message="form.description"></div></div>';
7879
var div = document.createElement('div');
7980
div.innerHTML = html;
8081
return div.firstChild;
@@ -83,7 +84,7 @@
8384
function sfMessagesBuilder(args) {
8485
var messagesDiv = args.fieldFrag.querySelector('[sf-messages]');
8586
if (messagesDiv && sfMessagesNode) {
86-
var child = sfMessagesNode.cloneNode();
87+
var child = sfMessagesNode.cloneNode(true);
8788
messagesDiv.appendChild(child);
8889
}
8990
};
@@ -169,7 +170,7 @@
169170
var minDate = args.form.minimum || false;
170171
var maxDate = args.form.maximum || false;
171172
if (minDate) {
172-
mdDatepickerFrag.setAttribute('md-max-date', minDate);
173+
mdDatepickerFrag.setAttribute('md-min-date', minDate);
173174
}
174175
if (maxDate) {
175176
mdDatepickerFrag.setAttribute('md-max-date', maxDate);

0 commit comments

Comments
 (0)