Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

Commit

Permalink
feat(input): add error states, md-maxlength
Browse files Browse the repository at this point in the history
  • Loading branch information
ajoslin committed Jan 12, 2015
1 parent 1a1095b commit a2bc3c6
Show file tree
Hide file tree
Showing 12 changed files with 302 additions and 68 deletions.
3 changes: 2 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"angular-aria": "1.3.x",
"angular-route": "1.3.x",
"angular-mocks": "1.3.x",
"angularytics": "^0.3.0"
"angularytics": "^0.3.0",
"angular-messages": "~1.3.8"
}
}
2 changes: 1 addition & 1 deletion docs/app/js/app.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var DocsApp = angular.module('docsApp', ['ngMaterial', 'ngRoute', 'angularytics'])
var DocsApp = angular.module('docsApp', ['ngMaterial', 'ngRoute', 'angularytics', 'ngMessages'])

.config([
'COMPONENTS',
Expand Down
1 change: 1 addition & 0 deletions docs/config/template/demo-index.template.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-animate/angular-animate.js"></script>
<script src="/bower_components/angular-messages/angular-messages.js"></script>
<script src="/bower_components/angular-aria/angular-aria.js"></script>
<script src="/bower_components/hammerjs/hammer.js"></script>
<script src="/dist/angular-material.js"></script>
Expand Down
1 change: 1 addition & 0 deletions docs/config/template/index.template.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<script src="//ajax.googleapis.com/ajax/libs/angularjs/{$ doc.buildConfig.ngVersion $}/angular-animate.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/{$ doc.buildConfig.ngVersion $}/angular-route.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/{$ doc.buildConfig.ngVersion $}/angular-aria.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/{$ doc.buildConfig.ngVersion $}/angular-messages.min.js"></script>

<script src="docs.js"></script>
<script src="docs-demo-scripts.js"></script>
Expand Down
4 changes: 3 additions & 1 deletion src/components/card/card.scss
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
$card-margin: 8px !default;
$card-padding: 16px !default;
$card-box-shadow: $whiteframe-shadow-z1 !default;

md-card {
box-sizing: border-box;
display: flex;
flex-direction: column;
margin: $card-margin;

box-shadow: $card-box-shadow;

Expand All @@ -15,6 +17,6 @@ md-card {

md-card-content {
order: 1;
margin: $card-margin;
padding: $card-padding;
}
}
67 changes: 35 additions & 32 deletions src/components/input/demoBasicUsage/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,47 +12,50 @@
</md-content>

<md-content class="md-padding">
<form name="userForm">

<md-input-container flex>
<label>Company (Disabled)</label>
<input ng-model="user.company" disabled>
</md-input-container>

<div layout layout-sm="column">
<md-input-container flex>
<label>First Name</label>
<input ng-model="user.firstName">
<label>Company (Disabled)</label>
<input ng-model="user.company" disabled>
</md-input-container>

<div layout layout-sm="column">
<md-input-container flex>
<label>First Name</label>
<input ng-model="user.firstName">
</md-input-container>
<md-input-container flex>
<label>Last Name</label>
<input ng-model="theMax">
</md-input-container>
</div>

<md-input-container flex>
<label>Last Name</label>
<input ng-model="user.lastName">
<label>Address</label>
<input ng-model="user.address">
</md-input-container>
</div>

<md-input-container flex>
<label>Address</label>
<input ng-model="user.address">
</md-input-container>
<div layout layout-sm="column">
<md-input-container flex>
<label>City</label>
<input ng-model="user.city">
</md-input-container>
<md-input-container flex>
<label>State</label>
<input ng-model="user.state">
</md-input-container>
<md-input-container flex>
<label>Postal Code</label>
<input ng-model="user.postalCode">
</md-input-container>
</div>

<div layout layout-sm="column">
<md-input-container flex>
<label>City</label>
<input ng-model="user.city">
</md-input-container>
<md-input-container flex>
<label>State</label>
<input ng-model="user.state">
<label>Biography</label>
<textarea ng-model="user.biography" columns="1" md-maxlength="150"></textarea>
</md-input-container>
<md-input-container flex>
<label>Postal Code</label>
<input ng-model="user.postalCode">
</md-input-container>
</div>

<md-input-container flex>
<label>Biography</label>
<textarea ng-model="user.biography" columns="1"></textarea>
</md-input-container>
</md-content>

</md-content>
</form>
</div>
2 changes: 1 addition & 1 deletion src/components/input/demoBasicUsage/script.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
angular.module('inputBasicDemo', ['ngMaterial'])
angular.module('inputBasicDemo', ['ngMaterial', 'ngMessages'])

.controller('DemoCtrl', function($scope) {
$scope.user = {
Expand Down
40 changes: 40 additions & 0 deletions src/components/input/demoErrors/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<ng-app="inputErrorsApp" ng-controller="AppCtrl" layout="column">

<md-toolbar class="md-primary">
<h1 class="md-toolbar-tools">
Top Secret Project
</h1>
</md-toolbar>

<md-content class="md-padding">
<form name="projectForm">
<md-input-container>
<label>Description</label>
<input md-maxlength="30" required name="description" ng-model="project.description">
<div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$dirty">
<div ng-message="required">This is required.</div>
<div ng-message="md-maxlength">The name has to be less than 30 characters long.</div>
</div>
</md-input-container>

<md-input-container>
<label>Client Name</label>
<input required name="clientName" ng-model="project.clientName">
<div ng-messages="projectForm.clientName.$error" ng-show="projectForm.clientName.$dirty">
<div ng-message="required">This is required.</div>
</div>
</md-input-container>

<md-input-container>
<label>Hourly Rate (USD)</label>
<input required type="number" step="any" name="rate" ng-model="project.rate" min="800" max="5000" required>
<div ng-messages="projectForm.rate.$error">
<div ng-message="required">You've got to charge something! You can't just <b>give away</b> a Missile Defense System.</div>
<div ng-message="min">You should charge at least $800 an hour. This job is a big deal... if you mess up, everyone dies!</div>
<div ng-message="max">$5,000 an hour? That's a little ridiculous. I doubt event Bill Clinton could afford that.</div>
</div>
</md-input-container>
</form>
</md-content>

</div>
9 changes: 9 additions & 0 deletions src/components/input/demoErrors/script.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
angular.module('inputErrorsApp', ['ngMaterial', 'ngMessages'])

.controller('AppCtrl', function($scope) {
$scope.project = {
description: 'Nuclear Missile Defense System',
clientName: 'Bill Clinton',
rate: 100,
};
});
50 changes: 32 additions & 18 deletions src/components/input/input-theme.scss
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,48 @@ md-input-container.md-THEME_NAME-theme {
color: '{{foreground-3}}';
}

&.md-input-focused {
.md-input {
border-color: '{{primary-500}}';
}
label {
color: '{{primary-500}}';
}
&.md-accent {
.md-input {
border-color: '{{accent-500}}';
}

&:not(.md-input-invalid) {
&.md-input-has-value {
label {
color: '{{accent-500}}';
color: '{{foreground-2}}';
}
}
&.md-warn {
&.md-input-focused {
.md-input {
border-color: '{{warn-500}}';
border-color: '{{primary-500}}';
}
label {
color: '{{warn-500}}';
color: '{{primary-500}}';
}
&.md-accent {
.md-input {
border-color: '{{accent-500}}';
}
label {
color: '{{accent-500}}';
}
}
&.md-warn {
.md-input {
border-color: '{{warn-500}}';
}
label {
color: '{{warn-500}}';
}
}
}
}

&.md-input-has-value:not(.md-input-focused) {
&.md-input-invalid {
.md-input {
border-color: '{{warn-500}}';
}
label {
color: '{{foreground-2}}';
color: '{{warn-500}}';
}
ng-message, [ng-message],
.md-char-counter {
color: '{{warn-500}}';
}
}

Expand Down
Loading

0 comments on commit a2bc3c6

Please sign in to comment.