Commit 729465f3 authored by Vladimir Baranov's avatar Vladimir Baranov

Fix merge conflicts when merge feature/fix-list-node-view

parents 2d8da571 f7bca06b
...@@ -142,8 +142,10 @@ module.exports = function (grunt) { ...@@ -142,8 +142,10 @@ module.exports = function (grunt) {
"app/components/version/version.js", "app/components/version/version.js",
"app/components/version/interpolate-filter.js", "app/components/version/interpolate-filter.js",
"app/components/version/version-directive.js", "app/components/version/version-directive.js",
"app/components/messaging/*.js" "app/components/messaging/messaging_service.js",
"app/components/messaging/messaging.js"
], ],
nonull: true,
dest: 'dist/app.js' dest: 'dist/app.js'
}, },
components: { components: {
...@@ -199,7 +201,8 @@ module.exports = function (grunt) { ...@@ -199,7 +201,8 @@ module.exports = function (grunt) {
'app/shared/directives.js', 'app/shared/directives.js',
'app/components/**/*controller.js', 'app/components/**/*controller.js',
'app/components/**/*service.js', 'app/components/**/*service.js',
'app/components/messaging/*.js', "app/components/messaging/messaging_service.js",
"app/components/messaging/messaging.js"
], ],
dest: 'dist/<%= grunt.branchname %>/app.js' dest: 'dist/<%= grunt.branchname %>/app.js'
}, },
...@@ -323,7 +326,7 @@ module.exports = function (grunt) { ...@@ -323,7 +326,7 @@ module.exports = function (grunt) {
dev: { dev: {
files: { files: {
'app/index.html': 'app/main.html', 'app/index.html': 'app/main.html',
'app/app.js': 'app/main.js', 'app/app.js': 'app/main.js'
} }
}, },
prod: { prod: {
......
...@@ -515,6 +515,7 @@ angular.module('ulakbus.crud', ['schemaForm', 'ui.bootstrap', 'ulakbus.formServi ...@@ -515,6 +515,7 @@ angular.module('ulakbus.crud', ['schemaForm', 'ui.bootstrap', 'ulakbus.formServi
$scope.prepareTimetable = function prepareTimetable(timetable){ $scope.prepareTimetable = function prepareTimetable(timetable){
var grouped = groupBy(timetable, "saat"); var grouped = groupBy(timetable, "saat");
for (var day in grouped){ for (var day in grouped){
if (!grouped.hasOwnProperty(day)) continue;
var dayItems = grouped[day]; var dayItems = grouped[day];
grouped[day] = dayItems.sort(function(a, b){ grouped[day] = dayItems.sort(function(a, b){
return a.gun < b.gun ? -1 : 1; return a.gun < b.gun ? -1 : 1;
......
...@@ -19,7 +19,11 @@ ...@@ -19,7 +19,11 @@
</label> </label>
</th> </th>
<th scope="row" style="text-align:center">#</th> <th scope="row" style="text-align:center">#</th>
<<<<<<< 6a71c6920efc5235eff71bf42763b82cc30f1827
<th ng-repeat="prop in node.schema.properties_list">
=======
<th ng-repeat="propName in node.form" ng-init="prop = node.schema.properties[propName]"> <th ng-repeat="propName in node.form" ng-init="prop = node.schema.properties[propName]">
>>>>>>> FIX, rfix#5379. Fix ListNode's dose not respect schema order
<span ng-if="!value.verbose_name">{{prop.title||prop.name}}</span> <span ng-if="!value.verbose_name">{{prop.title||prop.name}}</span>
</th> </th>
<th ng-if="meta.allow_actions!==false">İşlem</th> <th ng-if="meta.allow_actions!==false">İşlem</th>
...@@ -42,14 +46,14 @@ ...@@ -42,14 +46,14 @@
</td> </td>
</tr> </tr>
<tr ng-repeat="listnodemodel in node.items track by $index" ng-init="outerIndex=$index" ng-if="node.schema.formType=='ListNode'"> <tr ng-repeat="listnodemodel in node.items" ng-init="outerIndex=$index" ng-if="node.schema.formType=='ListNode'">
<td ng-if="meta.allow_selection===true" width="60"> <td ng-if="meta.allow_selection===true" width="60">
<label> <label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;"> <input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label> </label>
</td> </td>
<th scope="row" style="text-align:center">{{$index+1}}</th> <th scope="row" style="text-align:center">{{$index+1}}</th>
<td ng-repeat="propName in node.form" ng-init="k = propName; v = listnodemodel[propName]; inline = node.schema.inline_edit && node.schema.inline_edit.indexOf(k) > -1"> <td ng-repeat="prop in node.schema.properties_list" ng-init="k = prop.name; v = listnodemodel[k]; inline = node.schema.inline_edit && node.schema.inline_edit.indexOf(k) > -1">
<span ng-if="!inline">{{ v.unicode || v }}</span> <span ng-if="!inline">{{ v.unicode || v }}</span>
<!--<input type="{{node.schema.properties[k].type}}"--> <!--<input type="{{node.schema.properties[k].type}}"-->
<!--ng-if="node.schema.inline_edit.indexOf(k) > -1"--> <!--ng-if="node.schema.inline_edit.indexOf(k) > -1"-->
......
...@@ -146,7 +146,7 @@ angular.module("ulakbus.messaging") ...@@ -146,7 +146,7 @@ angular.module("ulakbus.messaging")
}); });
} }
this.createDirectChannel = function(user){ iScope.createDirectChannel = function (user){
// user format is ['username', 'key', 'avatarUrl'] // user format is ['username', 'key', 'avatarUrl']
var key = user[1]; var key = user[1];
MessagingService.create_direct_channel(key) MessagingService.create_direct_channel(key)
...@@ -155,8 +155,6 @@ angular.module("ulakbus.messaging") ...@@ -155,8 +155,6 @@ angular.module("ulakbus.messaging")
}) })
}; };
iScope.createDirectChannel = this.createDirectChannel;
iScope.hideApp = function(){ iScope.hideApp = function(){
iScope.chatAppIsHidden = true; iScope.chatAppIsHidden = true;
MessagingService.toggle_messaging_window_visibility(false); MessagingService.toggle_messaging_window_visibility(false);
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
<!-- @if NODE_ENV == 'PRODUCTION' --> <!-- @if NODE_ENV == 'PRODUCTION' -->
<link rel="stylesheet" href="css/app.css"> <link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="css/roboto/roboto.css"> <link rel="stylesheet" href="css/roboto/roboto.css">
<link rel="stylesheet" href="css/jquery-ui.min.css">
<!-- @endif --> <!-- @endif -->
</head> </head>
<body ng-controller="KeyListenController" ng-keydown="down($event)"> <body ng-controller="KeyListenController" ng-keydown="down($event)">
...@@ -147,7 +146,6 @@ ...@@ -147,7 +146,6 @@
<!-- @if NODE_ENV == 'PRODUCTION' --> <!-- @if NODE_ENV == 'PRODUCTION' -->
<script src="bower_components/jquery.min.js"></script> <script src="bower_components/jquery.min.js"></script>
<script src="bower_components/jquery-ui.min.js"></script>
<script src="bower_components/angular.js"></script> <script src="bower_components/angular.js"></script>
<script src="bower_components/components.js"></script> <script src="bower_components/components.js"></script>
<script src="shared/translations.js"></script> <script src="shared/translations.js"></script>
......
...@@ -29,7 +29,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -29,7 +29,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
* @name Generator * @name Generator
* @description form service's Generator factory service handles all generic form operations * @description form service's Generator factory service handles all generic form operations
*/ */
.factory('Generator', function ($http, $q, $timeout, $sce, $location, $route, $compile, $log, RESTURL, $rootScope, Moment, WSOps, FormConstraints, $uibModal, $filter) { .factory('Generator', function ($http, $q, $timeout, $sce, $location, $route, $compile, $log, RESTURL, $rootScope, Moment, WSOps, FormConstraints, $uibModal, $filter, Utils) {
var generator = {}; var generator = {};
/** /**
* @memberof ulakbus.formService * @memberof ulakbus.formService
...@@ -288,7 +288,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -288,7 +288,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
* @returns scope {Object} * @returns scope {Object}
*/ */
generator.prepareFormItems = function (scope) { generator.prepareFormItems = function (scope) {
angular.forEach(scope.form, function (value, key) { angular.forEach(scope.form, function (value, key) {
...@@ -397,6 +396,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -397,6 +396,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
form: [], form: [],
schema: { schema: {
properties: {}, properties: {},
properties_list: [],
required: [], required: [],
title: v.title, title: v.title,
type: "object", type: "object",
...@@ -419,6 +419,11 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -419,6 +419,11 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
angular.forEach(v.schema, function (item) { angular.forEach(v.schema, function (item) {
scope[v.type][k].schema.properties[item.name] = angular.copy(item); scope[v.type][k].schema.properties[item.name] = angular.copy(item);
// save properties order in schema
if (item.name != 'idx'){
scope[v.type][k].schema.properties_list.push(scope[v.type][k].schema.properties[item.name]);
}
if (angular.isDefined(item.wf)) { if (angular.isDefined(item.wf)) {
scope[v.type][k].schema.properties[item.name]['wf'] = angular.copy(item.wf); scope[v.type][k].schema.properties[item.name]['wf'] = angular.copy(item.wf);
} }
...@@ -445,40 +450,39 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -445,40 +450,39 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
}); });
$timeout(function () { $timeout(function () {
if (v.type != 'ListNode') return;
// todo: needs refactor // todo: needs refactor
if (v.type === 'ListNode') { var list = scope[v.type][k];
scope[v.type][k].items = angular.copy(scope.model[k] || []); list.items = angular.copy(scope.model[k] || []);
angular.forEach(scope[v.type][k].items, function (value, key) {
if (value.constructor === Object) { angular.forEach(list.items, function (node, fieldName) {
angular.forEach(value, function (x, y) {
if (!Object.keys(node).length) return;
angular.forEach(node, function (prop, propName) {
var propInSchema = list.schema.properties[propName];
try { try {
if (scope[v.type][k].schema.properties[y].type === 'date') { if (propInSchema.type === 'date') {
scope[v.type][k].items[key][y] = generator.dateformatter(x); node[propName] = generator.dateformatter(prop);
scope[v.type][k].model[key][y] = generator.dateformatter(x); list.model[fieldName][propName] = generator.dateformatter(prop);
} }
if (scope[v.type][k].schema.properties[y].type === 'select') { if (propInSchema.type === 'select') {
scope[v.type][k].items[key][y] = generator.item_from_array(x.toString(), scope[v.type][k].schema.properties[y].titleMap) node[propName] = generator.item_from_array(prop.toString(), list.schema.properties[propName].titleMap)
}
if (propInSchema.titleMap){
node[propName] = {
key: prop,
unicode: generator.item_from_array(prop, propInSchema.titleMap)
};
} }
} catch (e) { } catch (e) {
$log.debug('Field is not date'); $log.debug('Field is not date');
} }
}); });
}
});
}
});
// todo: check this place to fix 'keys instead of names' bug
if (scope.model[k]) {
angular.forEach(scope.model[k], function (value, key) {
angular.forEach(value, function (y, x) {
if (y.constructor === Object) {
scope.model[k][key][x] = y.key;
}
}); });
}); });
}
scope.model[k] = scope.model[k] || []; scope.model[k] = scope.model[k] || [];
...@@ -516,6 +520,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -516,6 +520,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
var modelItems = []; var modelItems = [];
var modelKeys = []; var modelKeys = [];
angular.forEach(scope.model[k], function (value, mkey) { angular.forEach(scope.model[k], function (value, mkey) {
modelItems.push({ modelItems.push({
"value": value[v.schema[0].name].key, "value": value[v.schema[0].name].key,
...@@ -895,8 +900,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -895,8 +900,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
formitem.titleMap = data; formitem.titleMap = data;
formitem.gettingTitleMap = false; formitem.gettingTitleMap = false;
}); });
} }
}; };
...@@ -912,8 +915,8 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -912,8 +915,8 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
object_id: scope.model[k], object_id: scope.model[k],
cmd: 'object_name' cmd: 'object_name'
} }
}) }).then(function (data) {
.then(function (data) {
try { try {
$timeout(function () { $timeout(function () {
document.querySelector('input[name=' + k + ']').value = data.object_name; document.querySelector('input[name=' + k + ']').value = data.object_name;
...@@ -949,6 +952,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -949,6 +952,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
// "val_msg": "Erkek kardes sayisi kiz kardes sayisindan az olamaz." // "val_msg": "Erkek kardes sayisi kiz kardes sayisindan az olamaz."
// } // }
// }; // };
angular.forEach(scope.schema.properties, function (v, k) { angular.forEach(scope.schema.properties, function (v, k) {
// generically change _id fields model value // generically change _id fields model value
if ('form_params' in scope) { if ('form_params' in scope) {
...@@ -958,7 +962,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -958,7 +962,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
return; return;
} }
} }
try { try {
generate_fields[v.type][v.widget || 'default'](scope, v, k); generate_fields[v.type][v.widget || 'default'](scope, v, k);
} }
...@@ -1340,7 +1343,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -1340,7 +1343,6 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
* @todo diff for all submits to recognize form change. if no change returns to view with no submit * @todo diff for all submits to recognize form change. if no change returns to view with no submit
*/ */
generator.submit = function ($scope, redirectTo, dontProcessReply) { generator.submit = function ($scope, redirectTo, dontProcessReply) {
/** /**
* In case of unformatted date object in any key recursively, it must be converted. * In case of unformatted date object in any key recursively, it must be converted.
* @param model * @param model
...@@ -1404,7 +1406,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -1404,7 +1406,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
* @param {Object} $route * @param {Object} $route
* @returns {Object} returns value for modal * @returns {Object} returns value for modal
*/ */
.controller('ModalController', function ($scope, $uibModalInstance, Generator, items) { .controller('ModalController', function ($scope, $uibModalInstance, Generator, items, $timeout, Utils) {
angular.forEach(items, function (value, key) { angular.forEach(items, function (value, key) {
$scope[key] = items[key]; $scope[key] = items[key];
}); });
...@@ -1414,6 +1416,17 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -1414,6 +1416,17 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
}); });
$scope.$on('modalFormLocator', function (event) { $scope.$on('modalFormLocator', function (event) {
// fix default model with unicode assign
$timeout(function () {
Utils.iterate($scope.model, function(modelValue, k){
if (angular.isUndefined($scope.edit)) return;
var unicode = $scope.items[$scope.edit][k].unicode;
if (unicode){
document.querySelector('input[name=' + k + ']').value = unicode;
}
})
});
$scope.linkedModelForm = event.targetScope.linkedModelForm; $scope.linkedModelForm = event.targetScope.linkedModelForm;
}); });
...@@ -1455,7 +1468,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -1455,7 +1468,7 @@ angular.module('ulakbus.formService', ['ui.bootstrap'])
* @returns {Object} openmodal directive * @returns {Object} openmodal directive
*/ */
.directive('modalForNodes', function ($uibModal, Generator) { .directive('modalForNodes', function ($uibModal, Generator, Utils) {
return { return {
link: function (scope, element, attributes) { link: function (scope, element, attributes) {
element.on('click', function () { element.on('click', function () {
...@@ -1539,12 +1552,11 @@ angular.module('ulakbus.formService', ['ui.bootstrap']) ...@@ -1539,12 +1552,11 @@ angular.module('ulakbus.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) { var unicodeValue = v.titleMap.find(function (element, index, array) {
if (element['value'] === value) { if (element['value'] === value) {
return element; return element;
} }
} });
var unicodeValue = v.titleMap.find(indexInTitleMap);
if (unicodeValue){ if (unicodeValue){
unicodeValue = unicodeValue.name; unicodeValue = unicodeValue.name;
reformattedModel[key] = { reformattedModel[key] = {
......
...@@ -194,7 +194,7 @@ angular.module('ulakbus') ...@@ -194,7 +194,7 @@ angular.module('ulakbus')
} }
do_action(msg_data, msg_data.cmd); do_action(msg_data, msg_data.cmd);
if (msg_data.msg != "pong"){ if (msg_data.msg != "pong"){
$log.info("MESSAGE:", event, "Data:", msg_data); $log.info("MESSAGE:", event, "Data:", angular.copy(msg_data));
} }
}; };
wsOps.onError = function (evt) { wsOps.onError = function (evt) {
......
...@@ -64,4 +64,30 @@ angular.module("ulakbus") ...@@ -64,4 +64,30 @@ angular.module("ulakbus")
} }
} }
} }
/**
* @param collection {Array|Object} Array of objects to group
* @param callback {Function} Callback to apply to every element of the collection
* @returns None
*/
this.iterate = function(collection, callback){
angular.forEach(collection, function(val, key){
// don't iterate over angular binding indexes
if (key.indexOf && key.indexOf('$$') == 0){
return;
}
callback(val, key);
})
}
})
.filter("formatJson", function(){
return function(val){
try {
return JSON.stringify(val, null, 4);
} catch(e){
return val;
}
}
}); });
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