From 9b2f451e20a5ceceef3bc8fce1245da9d62d2dae Mon Sep 17 00:00:00 2001
From: Vicary Archangel <vicrry@yahoo.com.hk>
Date: Thu, 27 Oct 2016 18:32:41 +0800
Subject: [PATCH] Make use of the new builder
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Because `ng-model=“$$value$$”` doesn’t work on arrays.
---
 src/bootstrap-datepicker.js | 13 +++++--------
 src/datepicker.html         |  9 +++++----
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/bootstrap-datepicker.js b/src/bootstrap-datepicker.js
index ccc3a96..91f8fbf 100644
--- a/src/bootstrap-datepicker.js
+++ b/src/bootstrap-datepicker.js
@@ -1,6 +1,6 @@
 angular.module('schemaForm').config(
-['schemaFormProvider', 'schemaFormDecoratorsProvider', 'sfPathProvider',
-  function(schemaFormProvider,  schemaFormDecoratorsProvider, sfPathProvider) {
+['schemaFormProvider', 'schemaFormDecoratorsProvider', 'sfPathProvider', 'sfBuilderProvider',
+  function(schemaFormProvider,  schemaFormDecoratorsProvider, sfPathProvider, sfBuilderProvider) {
 
     var datepicker = function(name, schema, options) {
       if (schema.type === 'string' && (schema.format === 'date' || schema.format === 'date-time')) {
@@ -15,14 +15,11 @@ angular.module('schemaForm').config(
     schemaFormProvider.defaults.string.unshift(datepicker);
 
     //Add to the bootstrap directive
-    schemaFormDecoratorsProvider.addMapping(
+    schemaFormDecoratorsProvider.defineAddOn(
       'bootstrapDecorator',
       'datepicker',
-      'directives/decorators/bootstrap/datepicker/datepicker.html'
-    );
-    schemaFormDecoratorsProvider.createDirective(
-      'datepicker',
-      'directives/decorators/bootstrap/datepicker/datepicker.html'
+      'directives/decorators/bootstrap/datepicker/datepicker.html',
+      sfBuilderProvider.stdBuilders
     );
   }
 ]);
diff --git a/src/datepicker.html b/src/datepicker.html
index 12a5b82..6bb350c 100644
--- a/src/datepicker.html
+++ b/src/datepicker.html
@@ -1,14 +1,14 @@
 <div class="form-group {{form.htmlClass}}" ng-class="{'has-error': hasError()}">
-  <label class="control-label {{form.labelHtmlClass}}" ng-show="showTitle()">{{form.title}}</label>
+  <label class="control-label {{form.labelHtmlClass}}" ng-class="{'sr-only': !showTitle()}" for="{{form.key.slice(-1)[0]}}">{{form.title}}</label>
   <div ng-class="{'input-group': (form.fieldAddonLeft || form.fieldAddonRight)}">
     <span ng-if="form.fieldAddonLeft"
           class="input-group-addon"
           ng-bind-html="form.fieldAddonLeft"></span>
-    <input ng-show="form.key"
+    <input id="{{form.key.slice(-1)[0]}}"
+           ng-show="form.key"
            type="text"
            class="form-control {{form.fieldHtmlClass}}"
            schema-validate="form"
-           ng-model="$$value$$"
            ng-disabled="form.readonly"
            pick-a-date="form.pickadate"
            min-date="form.minDate"
@@ -16,7 +16,8 @@
            select-years="form.selectYears"
            select-months="form.selectMonths"
            name="{{form.key.slice(-1)[0]}}"
-           format="form.format" />
+           format="form.format"
+           sf-field-model />
     <span ng-if="form.fieldAddonRight"
           class="input-group-addon"
           ng-bind-html="form.fieldAddonRight"></span>