Commit 15b9af5a authored by Evren Kutar's avatar Evren Kutar

refs #320

fixes #321
parent 75dae973
...@@ -14,13 +14,16 @@ ...@@ -14,13 +14,16 @@
* *
*/ */
angular.module('formService', ['ui.bootstrap']) angular.module('formService', ['ui.bootstrap'])
.service('Moment', function(){
return window.moment;
})
/** /**
* @name Generator * @name Generator
* @description * @description
* form service's Generator factory service handles all generic form operations * form service's Generator factory service handles all generic form operations
*/ */
.factory('Generator', function ($http, $q, $timeout, $sce, $location, $route, $compile, $log, RESTURL, $rootScope) { .factory('Generator', function ($http, $q, $timeout, $sce, $location, $route, $compile, $log, RESTURL, $rootScope, Moment) {
var generator = {}; var generator = {};
/** /**
* @name makeUrl * @name makeUrl
...@@ -647,7 +650,8 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -647,7 +650,8 @@ angular.module('formService', ['ui.bootstrap'])
if (isNaN(ndate)) { if (isNaN(ndate)) {
return ''; return '';
} else { } else {
var newdatearray = moment(ndate).format('DD.MM.YYYY'); var newdatearray = Moment(ndate).format('DD.MM.YYYY');
$log.debug('date formatted: ', newdatearray);
return newdatearray; return newdatearray;
} }
}; };
...@@ -739,30 +743,30 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -739,30 +743,30 @@ angular.module('formService', ['ui.bootstrap'])
generator.isValidDate = function (dateValue) { generator.isValidDate = function (dateValue) {
return !isNaN(Date.parse(dateValue)); return !isNaN(Date.parse(dateValue));
}; };
generator.asyncValidators = { //generator.asyncValidators = {
emailNotValid: function (value) { // emailNotValid: function (value) {
var deferred = $q.defer(); // var deferred = $q.defer();
$timeout(function () { // $timeout(function () {
if (generator.isValidEmail(value)) { // if (generator.isValidEmail(value)) {
deferred.resolve(); // deferred.resolve();
} else { // } else {
deferred.reject(); // deferred.reject();
} // }
}, 500); // }, 500);
return deferred.promise; // return deferred.promise;
}, // },
tcNoNotValid: function (value) { // tcNoNotValid: function (value) {
var deferred = $q.defer(); // var deferred = $q.defer();
$timeout(function () { // $timeout(function () {
if (generator.isValidTCNo(value)) { // if (generator.isValidTCNo(value)) {
deferred.resolve(); // deferred.resolve();
} else { // } else {
deferred.reject(); // deferred.reject();
} // }
}, 500); // }, 500);
return deferred.promise; // return deferred.promise;
} // }
}; //};
/** /**
...@@ -838,13 +842,17 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -838,13 +842,17 @@ angular.module('formService', ['ui.bootstrap'])
generator.get_diff = function (obj1, obj2) { generator.get_diff = function (obj1, obj2) {
var result = {}; var result = {};
for (key in obj1) { angular.forEach(obj1, function (value, key) {
if (obj2[key] != obj1[key]) result[key] = obj1[key]; if (obj2[key] != obj1[key]) {
if (typeof obj2[key] == 'array' && typeof obj1[key] == 'array') result[key] = angular.copy(obj1[key])
}
if (obj2[key].constructor === Array && obj1[key].constructor === Array) {
result[key] = arguments.callee(obj1[key], obj2[key]); result[key] = arguments.callee(obj1[key], obj2[key]);
if (typeof obj2[key] == 'object' && typeof obj1[key] == 'object') }
if (obj2[key].constructor === Object && obj1[key].constructor === Object) {
result[key] = arguments.callee(obj1[key], obj2[key]); result[key] = arguments.callee(obj1[key], obj2[key]);
} }
});
return result; return result;
}; };
......
...@@ -11,6 +11,7 @@ describe('form service module', function () { ...@@ -11,6 +11,7 @@ describe('form service module', function () {
beforeEach(module('ulakbus')); beforeEach(module('ulakbus'));
beforeEach(module('formService')); beforeEach(module('formService'));
var location; var location;
beforeEach(inject(function ($location, $injector) { beforeEach(inject(function ($location, $injector) {
location = $location; location = $location;
...@@ -153,7 +154,7 @@ describe('form service module', function () { ...@@ -153,7 +154,7 @@ describe('form service module', function () {
function (Generator) { function (Generator) {
expect(Generator.dateformatter).not.toBe(null); expect(Generator.dateformatter).not.toBe(null);
var generated_date = Generator.dateformatter('2001-01-01T01:00:00Z'); var generated_date = Generator.dateformatter('2001-01-01T01:00:00Z');
expect(generated_date).toEqual('01.1.2001'); expect(generated_date).toEqual('01.01.2001');
}]) }])
); );
...@@ -161,14 +162,34 @@ describe('form service module', function () { ...@@ -161,14 +162,34 @@ describe('form service module', function () {
function (Generator) { function (Generator) {
expect(Generator.group).not.toBe(null); expect(Generator.group).not.toBe(null);
var group_json = { var scope = {
group_objects: { form: ['email', 'id', 'name', 'save'],
1: ['email', 'name'], schema: {
2: ['password'] properties: {
} email: {title: 'email', type: 'email'},
id: {title: 'id', type: 'int'},
name: {title: 'name', type: 'string'},
save: {title: 'save', type: 'submit'}
}, required: [], type: 'object', title: 'servicetest'
},
grouping: [
{
"group_title": "title-1",
"items": ["email", "id"],
"layout": "4",
"collapse": false
},
{
"group_title": "title-2",
"items": ["name", "save"],
"layout": "2",
"collapse": false
}
]
}; };
var grouped_form = Generator.group(group_json);
expect(grouped_form).toEqual(group_json); var grouped_scope = Generator.group(scope);
expect(grouped_scope.form[0].type).toEqual('fieldset');
}]) }])
); );
...@@ -345,7 +366,6 @@ describe('form service module', function () { ...@@ -345,7 +366,6 @@ describe('form service module', function () {
it('should get wf and redirect according to client_cmd', it('should get wf and redirect according to client_cmd',
inject(function (Generator, $httpBackend, RESTURL) { inject(function (Generator, $httpBackend, RESTURL) {
$httpBackend.expectPOST(RESTURL.url + 'test?test=xyz123') $httpBackend.expectPOST(RESTURL.url + 'test?test=xyz123')
.respond(200, { .respond(200, {
"client_cmd": "form", "client_cmd": "form",
...@@ -389,7 +409,6 @@ describe('form service module', function () { ...@@ -389,7 +409,6 @@ describe('form service module', function () {
}; };
scope.url = 'test'; scope.url = 'test';
Generator.get_wf(scope); Generator.get_wf(scope);
$httpBackend.flush(); $httpBackend.flush();
...@@ -397,6 +416,24 @@ describe('form service module', function () { ...@@ -397,6 +416,24 @@ describe('form service module', function () {
}) })
); );
it('should get wf and put msgbox to scope',
inject(function (Generator, $httpBackend, RESTURL) {
scope.form_params = {};
$httpBackend.expectPOST(RESTURL.url + 'testmsgbox')
.respond(200, {
"msgbox": "test message"
});
scope.url = 'testmsgbox';
Generator.get_wf(scope);
$httpBackend.flush();
expect(scope.msgbox).toEqual("test message");
})
);
it('doItemAction should do given action', it('doItemAction should do given action',
inject(function (Generator, $httpBackend, RESTURL) { inject(function (Generator, $httpBackend, RESTURL) {
$httpBackend.expectPOST(RESTURL.url + 'otherwf') $httpBackend.expectPOST(RESTURL.url + 'otherwf')
...@@ -430,10 +467,13 @@ describe('form service module', function () { ...@@ -430,10 +467,13 @@ describe('form service module', function () {
scope.url = 'test'; scope.url = 'test';
Generator.doItemAction(scope, 'testkey123', 'list', 'otherwf', 'normal'); Generator.doItemAction(scope, 'testkey123', {cmd: 'list', wf: 'otherwf', object_key: '4321'}, 'normal');
$httpBackend.flush(); $httpBackend.flush();
expect(location.path()).toEqual('/otherwf/do/f'); expect(location.path()).toEqual('/otherwf/do/f');
Generator.doItemAction(scope, 'testkey123', {cmd: 'list', wf: 'otherwf', object_key: '4321'}, 'modal');
Generator.doItemAction(scope, 'testkey123', {cmd: 'list', wf: 'otherwf', object_key: '4321'}, 'new');
}) })
); );
...@@ -443,8 +483,8 @@ describe('form service module', function () { ...@@ -443,8 +483,8 @@ describe('form service module', function () {
// test cases - testing for success // test cases - testing for success
var same_json = [ var same_json = [
{email: 'test@test.com', id: 2, name: 'travolta'}, {email: 'test@test.com', id: 2, name: 'travolta', foo: {'a':1}, foo2: [1,2,3]},
{email: 'test@test.com', id: 2, name: 'travolta'} {email: 'test@test.com', id: 2, name: 'travolta', foo: {'a':1}, foo2: [1,2,3]}
]; ];
// test cases - testing for failure // test cases - testing for failure
...@@ -462,10 +502,16 @@ describe('form service module', function () { ...@@ -462,10 +502,16 @@ describe('form service module', function () {
var different_json = [ var different_json = [
{}, {},
{email: 'test1@test.com', id: 2, name: 'john'} {email: 'test1@test.com', id: 2, name: 'john'}
];
var notEqual = [
{email: 'test@test.com', id: 2, name: 'Travolta', foo: {'a':1, 'b': 2}, foo2: [1,2,3]},
{email: 'test@test.com', id: 2, name: 'travolta', foo: {'a':1}, foo2: [1,2,3]}
] ]
var diff = {email: 'test1@test.com', name: 'john'}; var diff = {email: 'test1@test.com', name: 'john'};
var diff2 = {email: 'test1@test.com', id: 2, name: 'john'}; var diff2 = {email: 'test1@test.com', id: 2, name: 'john'};
var noequal = {email: 'test1@test.com', id: 2, name: 'john'};
var nodiff = {}; var nodiff = {};
var same = Generator.get_diff(same_json[0], same_json[1]); var same = Generator.get_diff(same_json[0], same_json[1]);
...@@ -478,6 +524,9 @@ describe('form service module', function () { ...@@ -478,6 +524,9 @@ describe('form service module', function () {
var different2 = Generator.get_diff(different_json[1], different_json[0]); var different2 = Generator.get_diff(different_json[1], different_json[0]);
expect(different2).toEqual(diff2); expect(different2).toEqual(diff2);
var not_equal = Generator.get_diff(notEqual[1], notEqual[0]);
expect(not_equal).toEqual(noequal);
}) })
); );
......
This diff is collapsed.
This diff is collapsed.
...@@ -26,6 +26,7 @@ module.exports = function (config) { ...@@ -26,6 +26,7 @@ module.exports = function (config) {
'app/bower_components/angular-schema-form/dist/schema-form.js', 'app/bower_components/angular-schema-form/dist/schema-form.js',
'app/bower_components/angular-schema-form/dist/bootstrap-decorator.min.js', 'app/bower_components/angular-schema-form/dist/bootstrap-decorator.min.js',
'app/bower_components/angular-mocks/angular-mocks.js', 'app/bower_components/angular-mocks/angular-mocks.js',
'app/bower_components/moment/min/moment.min.js',
'app/app.js', 'app/app.js',
'app/app_routes.js', 'app/app_routes.js',
'app/zetalib/**/*.js', 'app/zetalib/**/*.js',
......
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