Commit 104f9d80 authored by Evren Kutar's avatar Evren Kutar

uib datepicker implemented

resolves #62
resolves #63
parent b75c54c4
...@@ -67,6 +67,7 @@ ...@@ -67,6 +67,7 @@
</div> </div>
<script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-i18n/angular-locale_tr.js"></script>
<script src="bower_components/jquery/dist/jquery.min.js"></script> <script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script> <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script> <script src="bower_components/angular-route/angular-route.min.js"></script>
......
...@@ -75,6 +75,7 @@ ...@@ -75,6 +75,7 @@
<!-- @if NODE_ENV == 'DEVELOPMENT' --> <!-- @if NODE_ENV == 'DEVELOPMENT' -->
<script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-i18n/angular-locale_tr.js"></script>
<script src="bower_components/jquery/dist/jquery.min.js"></script> <script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script> <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script> <script src="bower_components/angular-route/angular-route.min.js"></script>
......
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
for="{{form.key.slice(-1)[0]}}">{{form.title}}</label> for="{{form.key.slice(-1)[0]}}">{{form.title}}</label>
<p class="input-group"> <p class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="form.open($event)">
<i class="fa fa-calendar"></i>
</button>
</span>
<input ng-if="!form.fieldAddonLeft && !form.fieldAddonRight" <input ng-if="!form.fieldAddonLeft && !form.fieldAddonRight"
ng-show="form.key" ng-show="form.key"
step="any" step="any"
...@@ -12,22 +17,20 @@ ...@@ -12,22 +17,20 @@
class="form-control {{form.fieldHtmlClass}} datepickerfield" class="form-control {{form.fieldHtmlClass}} datepickerfield"
id="{{form.key.slice(-1)[0]}}" id="{{form.key.slice(-1)[0]}}"
ng-model-options="form.ngModelOptions" ng-model-options="form.ngModelOptions"
ng-model="dt" ng-model="form.modelDate"
ng-disabled="form.readonly" ng-disabled="form.readonly"
schema-validate="form" schema-validate="form"
name="{{form.key.slice(-1)[0]}}" name="{{form.key.slice(-1)[0]}}"
aria-describedby="{{form.key.slice(-1)[0] + 'Status'}}" aria-describedby="{{form.key.slice(-1)[0] + 'Status'}}"
type="date" type="{{form.type}}"
datepicker-popup uib-datepicker-popup="{{form.format}}"
is-open="status.opened" is-open="form.status.opened"
date-disabled="disabled(date, mode)" close-text="Kapat"
close-text="Close"/> current-text="Bugün"
<span class="input-group-btn"> clear-text="Temizle"
<button type="button" class="btn btn-default" ng-click="open($event)"> ng-click="form.open($event)"/>
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</p> </p>
<!--<input ng-if="!form.fieldAddonLeft && !form.fieldAddonRight"--> <!--<input ng-if="!form.fieldAddonLeft && !form.fieldAddonRight"-->
......
...@@ -184,43 +184,43 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -184,43 +184,43 @@ angular.module('formService', ['ui.bootstrap'])
// check if type is date and if type date found change it to string // check if type is date and if type date found change it to string
if (v.type === 'date') { if (v.type === 'date') {
var modelDate = angular.copy(scope.model[k]);
scope.model[k] = generator.dateformatter(scope.model[k]);
scope.form[scope.form.indexOf(k)] = { scope.form[scope.form.indexOf(k)] = {
key: k, name: k, key: k, name: k, title: v.title,
type: 'template',
modelDate: new Date(modelDate),
templateUrl: 'shared/templates/datefield.html',
validationMessage: { validationMessage: {
'dateNotValid': "Girdiğiniz tarih geçerli değildir. <i>orn: '01.01.2015'<i/>" 'dateNotValid': "Girdiğiniz tarih geçerli değildir. <i>orn: '01.01.2015'<i/>",
302: 'Bu alan zorunludur.'
}, },
$asyncValidators: { $asyncValidators: {
'dateNotValid': function (value) { 'dateNotValid': function (value) {
var deferred = $q.defer(); var deferred = $q.defer();
$timeout(function () { $timeout(function () {
var dateValue = d = value.split('.'); scope.model[k] = angular.copy(generator.dateformatter(value));
if (isNaN(Date.parse([d[1],d[0],d[2]].join('.'))) || dateValue.length !== 3) { if (value.constructor === Date) {
deferred.reject();
} else {
deferred.resolve(); deferred.resolve();
} }
}, 500); else {
var dateValue = d = value.split('.');
if (isNaN(Date.parse([d[1], d[0], d[2]].join('.'))) || dateValue.length !== 3) {
deferred.reject();
} else {
deferred.resolve();
}
}
});
return deferred.promise; return deferred.promise;
} }
} },
status: {opened: false},
open: function ($event) {
this.status.opened = true;
},
format: 'dd.MM.yyyy'
}; };
v.type = 'string';
scope.model[k] = generator.dateformatter(scope.model[k]);
$timeout(function () {
jQuery('#' + k).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
onSelect: function (date, inst) {
scope.model[k] = date;
if (scope.modalElements) {
scope.validateModalDate(k);
scope.$broadcast('schemaForm.error.' + k, 'tv4-302', true);
}
}
});
}, 1000);
} }
if (v.type === 'int' || v.type === 'float') { if (v.type === 'int' || v.type === 'float') {
...@@ -257,7 +257,7 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -257,7 +257,7 @@ angular.module('formService', ['ui.bootstrap'])
}); });
} }
// get selected item from titleMap using model value // get selected item from titleMap using model value
if (item.key===scope.model[k]) { if (item.key === scope.model[k]) {
formitem.selected_item = {value: item.key, name: item.value}; formitem.selected_item = {value: item.key, name: item.value};
} }
}); });
...@@ -363,13 +363,17 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -363,13 +363,17 @@ angular.module('formService', ['ui.bootstrap'])
formitem.filteredItems = generator.get_diff_array(formitem.filteredItems, formitem.selectedFilteredItems); formitem.filteredItems = generator.get_diff_array(formitem.filteredItems, formitem.selectedFilteredItems);
}, },
select: function (selectedItemsModel) { select: function (selectedItemsModel) {
if(!selectedItemsModel){return;} if (!selectedItemsModel) {
return;
}
formitem.selectedFilteredItems = formitem.selectedFilteredItems.concat(selectedItemsModel); formitem.selectedFilteredItems = formitem.selectedFilteredItems.concat(selectedItemsModel);
formitem.appendFiltered(formitem.filterValue); formitem.appendFiltered(formitem.filterValue);
scope.model[k] = (scope.model[k] || []).concat(formitem.dataToModel(selectedItemsModel)); scope.model[k] = (scope.model[k] || []).concat(formitem.dataToModel(selectedItemsModel));
}, },
deselect: function (selectedFilteredItemsModel) { deselect: function (selectedFilteredItemsModel) {
if(!selectedFilteredItemsModel){return;} if (!selectedFilteredItemsModel) {
return;
}
formitem.selectedFilteredItems = generator.get_diff_array(angular.copy(formitem.selectedFilteredItems), angular.copy(selectedFilteredItemsModel)); formitem.selectedFilteredItems = generator.get_diff_array(angular.copy(formitem.selectedFilteredItems), angular.copy(selectedFilteredItemsModel));
formitem.appendFiltered(formitem.filterValue); formitem.appendFiltered(formitem.filterValue);
formitem.filteredItems = formitem.filteredItems.concat(selectedFilteredItemsModel); formitem.filteredItems = formitem.filteredItems.concat(selectedFilteredItemsModel);
...@@ -391,7 +395,7 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -391,7 +395,7 @@ angular.module('formService', ['ui.bootstrap'])
} }
if ((v.type === 'ListNode' || v.type === 'Node') && v.widget !== 'filter_interface') { if ((v.type === 'ListNode' || v.type === 'Node') && v.widget !== 'filter_interface') {
//if (v.type === 'ListNode' || v.type === 'Node') { //if (v.type === 'ListNode' || v.type === 'Node') {
scope[v.type] = scope[v.type] || {}; scope[v.type] = scope[v.type] || {};
...@@ -437,7 +441,7 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -437,7 +441,7 @@ angular.module('formService', ['ui.bootstrap'])
if (scope.model[k]) { if (scope.model[k]) {
angular.forEach(scope.model[k], function (value, key) { angular.forEach(scope.model[k], function (value, key) {
angular.forEach(value, function (y, x) { angular.forEach(value, function (y, x) {
if (y.constructor===Object) { if (y.constructor === Object) {
scope.model[k][key][x] = y.key; scope.model[k][key][x] = y.key;
} }
}); });
...@@ -467,7 +471,8 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -467,7 +471,8 @@ angular.module('formService', ['ui.bootstrap'])
if (ndate == 'Invalid Date') { if (ndate == 'Invalid Date') {
return ''; return '';
} else { } else {
var newdatearray = [ndate.getDate(), ndate.getMonth() + 1, ndate.getFullYear()];
var newdatearray = [("0" + ndate.getDate()).slice(-2), ndate.getMonth() + 1, ndate.getFullYear()];
return newdatearray.join('.'); return newdatearray.join('.');
} }
}; };
...@@ -545,7 +550,7 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -545,7 +550,7 @@ angular.module('formService', ['ui.bootstrap'])
return re.test(tcno); return re.test(tcno);
}; };
generator.isValidDate = function (dateValue) { generator.isValidDate = function (dateValue) {
var datevalid = Date.parse(dateValue) === Nan ? false : true; var datevalid = Date.parse(dateValue) === NaN ? false : true;
return datevalid; return datevalid;
}; };
generator.asyncValidators = { generator.asyncValidators = {
...@@ -696,8 +701,6 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -696,8 +701,6 @@ angular.module('formService', ['ui.bootstrap'])
"filter": $scope.filter "filter": $scope.filter
}; };
debugger;
return $http.post(generator.makeUrl($scope), data) return $http.post(generator.makeUrl($scope), data)
.success(function (data) { .success(function (data) {
if (redirectTo === true) { if (redirectTo === true) {
...@@ -842,8 +845,16 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -842,8 +845,16 @@ angular.module('formService', ['ui.bootstrap'])
angular.forEach(childmodel.form, function (v, k) { angular.forEach(childmodel.form, function (v, k) {
if (v.formName === key) { if (v.formName === key) {
//if (!childmodel.model[key].key) { //if (!childmodel.model[key].key) {
function indexInTitleMap(element,index,array){if(element['value']===value){return element;}} function indexInTitleMap(element, index, array) {
reformattedModel[key] = {"key": value, "unicode": v.titleMap.find(indexInTitleMap).name}; if (element['value'] === value) {
return element;
}
}
reformattedModel[key] = {
"key": value,
"unicode": v.titleMap.find(indexInTitleMap).name
};
//} //}
} }
}); });
...@@ -900,7 +911,7 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -900,7 +911,7 @@ angular.module('formService', ['ui.bootstrap'])
none: '' none: ''
}, },
workOnForm: 'linkedModelForm', workOnForm: 'linkedModelForm',
workOnDiv: '-modal'+formName workOnDiv: '-modal' + formName
}, },
submitModalForm: function () { submitModalForm: function () {
$rootScope.$broadcast('submitModalForm'); $rootScope.$broadcast('submitModalForm');
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
"angular-resource": "1.4.7", "angular-resource": "1.4.7",
"angular-cookies": "1.4.7", "angular-cookies": "1.4.7",
"angular-bootstrap": "0.14.3", "angular-bootstrap": "0.14.3",
"angular-i18n": "1.4.7",
"font-awesome": "4.3.0", "font-awesome": "4.3.0",
"angular-schema-form": "0.8.3", "angular-schema-form": "0.8.3",
"angular-loading-bar": "~0.8.0", "angular-loading-bar": "~0.8.0",
......
This diff is collapsed.
This diff is collapsed.
...@@ -222,68 +222,31 @@ angular.module("components/crud/templates/list.html", []).run(["$templateCache", ...@@ -222,68 +222,31 @@ angular.module("components/crud/templates/list.html", []).run(["$templateCache",
angular.module("components/crud/templates/show.html", []).run(["$templateCache", function($templateCache) { angular.module("components/crud/templates/show.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("components/crud/templates/show.html", $templateCache.put("components/crud/templates/show.html",
"<div class=\"starter-template container\">\n" + "<div class=\"starter-template container\">\n" +
" <!--<div class=\"personnel-info-container\">-->\n" + " <div ng-repeat=\"obj in object\">\n" +
" <div class=\"info-block-header\">\n" + " <div class=\"info-block-header\">\n" +
" <h1>{{model}}</h1>\n" + " <h1>{{model}}</h1>\n" +
" </div>\n" + " </div>\n" +
" <div class=\"table-responsive\">\n" + " <div class=\"table-responsive\">\n" +
" <table class=\"table\">\n" + " <table class=\"table\">\n" +
" <tbody>\n" + " <thead ng-if=\"obj.type==='table-multiRow'\">\n" +
" <tr ng-repeat=\"(key, value) in object\">\n" + " <tr>\n" +
" <td class=\"col-md-2\">{{key}}</td>\n" + " <td ng-repeat=\"(key, value) in obj[0]\">{{key}}</td>\n" +
" <td class=\"col-md-8\">{{value}}</td>\n" + " </tr>\n" +
" </tr>\n" + " </thead>\n" +
" <tbody ng-if=\"obj.type==='table-multiRow'\">\n" +
" <tr ng-repeat=\"row in obj.fields\">\n" +
" <td ng-repeat=\"(k,v) in row\">{{v}}</td>\n" +
" </tr>\n" +
" </tbody>\n" +
" <tbody ng-if=\"obj.type==='table'\">\n" +
" <tr ng-repeat=\"(key, value) in obj.fields\">\n" +
" <td class=\"col-md-2\">{{key}}</td>\n" +
" <td class=\"col-md-8\">{{value}}</td>\n" +
" </tr>\n" +
" </tbody>\n" + " </tbody>\n" +
" </table>\n" + " </table>\n" +
" </div>\n" + " </div>\n" +
"\n" + " </div>\n" +
" <!--<div class=\"personnel-info-left\">-->\n" +
"\n" +
" <!--&lt;!&ndash;<div class=\"generic-profile-picture\">&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;<img src=\"../../img/sample-profile-pic.jpg\" />&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;</div>&ndash;&gt;-->\n" +
" <!--<div class=\"info-block\">-->\n" +
" <!--<div class=\"info-block-header\">-->\n" +
" <!--<h1>{{model}}</h1>-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; end of info-block-header &ndash;&gt;-->\n" +
" <!--<div class=\"info-block-body\" ng-repeat=\"(key, value) in object\">-->\n" +
" <!--<dl class=\"dl-horizontal\">-->\n" +
" <!--<dt>{{ key }}</dt>-->\n" +
" <!--<dd>{{value}}</dd>-->\n" +
" <!--</dl>-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; end of info-block-body &ndash;&gt;-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash;<ul>&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;<li ng-repeat=\"(key, value) in object\"><span class=\"col-md-3\">{{ key }}:</span>{{value}}</li>&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;<li>Pozisyon</li>&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;<li><i class=\"fa fa-phone\"></i> (+90) 123 456 7890</li>&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;<li><i class=\"fa fa-envelope\"></i> samplemail@mail.com</li>&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;<li><i class=\"fa fa-map-marker\"></i> Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR</li></li>&ndash;&gt;-->\n" +
" <!--&lt;!&ndash;</ul>&ndash;&gt;-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; end of personnel-info-left &ndash;&gt;-->\n" +
" <!--<div class=\"personnel-info-right\">-->\n" +
" <!--<div class=\"info-block\" ng-repeat=\"(key, value) in listobjects\">-->\n" +
" <!--<div class=\"info-block-header\">-->\n" +
" <!--<h2>{{key}}</h2>-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; end of info-block-header &ndash;&gt;-->\n" +
" <!--<div class=\"info-block-body\" ng-repeat=\"(k, v) in value\">-->\n" +
" <!--<dl class=\"dl-horizontal\">-->\n" +
" <!--<dt>{{k}}</dt>-->\n" +
" <!--<dd>{{v}}</dd>-->\n" +
" <!--</dl>-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; end of info-block-body &ndash;&gt;-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; end of info block &ndash;&gt;-->\n" +
" <!--&lt;!&ndash; end of info block &ndash;&gt;-->\n" +
" <!--</div>-->\n" +
" <!--&lt;!&ndash; personnel-info-left &ndash;&gt;-->\n" +
" <!--</div>-->\n" +
" <!-- end of personnel-info-container -->\n" +
"</div>"); "</div>");
}]); }]);
...@@ -606,19 +569,21 @@ angular.module("shared/templates/datefield.html", []).run(["$templateCache", fun ...@@ -606,19 +569,21 @@ angular.module("shared/templates/datefield.html", []).run(["$templateCache", fun
" class=\"form-control {{form.fieldHtmlClass}} datepickerfield\"\n" + " class=\"form-control {{form.fieldHtmlClass}} datepickerfield\"\n" +
" id=\"{{form.key.slice(-1)[0]}}\"\n" + " id=\"{{form.key.slice(-1)[0]}}\"\n" +
" ng-model-options=\"form.ngModelOptions\"\n" + " ng-model-options=\"form.ngModelOptions\"\n" +
" ng-model=\"dt\"\n" + " ng-model=\"$$value$$\"\n" +
" ng-disabled=\"form.readonly\"\n" + " ng-disabled=\"form.readonly\"\n" +
" schema-validate=\"form\"\n" + " schema-validate=\"form\"\n" +
" name=\"{{form.key.slice(-1)[0]}}\"\n" + " name=\"{{form.key.slice(-1)[0]}}\"\n" +
" aria-describedby=\"{{form.key.slice(-1)[0] + 'Status'}}\"\n" + " aria-describedby=\"{{form.key.slice(-1)[0] + 'Status'}}\"\n" +
"\n" + "\n" +
" type=\"date\"\n" + " type=\"text\"\n" +
" datepicker-popup\n" + " uib-datepicker-popup=\"{{form.format}}\"\n" +
" is-open=\"status.opened\"\n" + " is-open=\"form.status.opened\"\n" +
" date-disabled=\"disabled(date, mode)\"\n" + " close-text=\"Kapat\"\n" +
" close-text=\"Close\"/>\n" + " current-text=\"Bugün\"\n" +
" clear-text=\"Temizle\"\n" +
" ng-click=\"form.open($event)\"/>\n" +
" <span class=\"input-group-btn\">\n" + " <span class=\"input-group-btn\">\n" +
" <button type=\"button\" class=\"btn btn-default\" ng-click=\"open($event)\">\n" + " <button type=\"button\" class=\"btn btn-default\" ng-click=\"form.open($event)\">\n" +
" <i class=\"glyphicon glyphicon-calendar\"></i>\n" + " <i class=\"glyphicon glyphicon-calendar\"></i>\n" +
" </button>\n" + " </button>\n" +
" </span>\n" + " </span>\n" +
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment