Skip to content
Snippets Groups Projects
Commit da30a84a authored by Mohamed Mansour's avatar Mohamed Mansour
Browse files

merged origin/master into Receipt

parents 41dae49b 84bbd00e
No related branches found
No related tags found
No related merge requests found
Showing
with 601 additions and 432 deletions
......@@ -487,6 +487,50 @@
<name>Subject_param</name>
<expose v="true" />
</entityParameter>
<entityConsumer>
<name>ActivityAtrributes</name>
<dependency>
<name>dependency</name>
<entityName>Attribute_entity</entityName>
<fieldName>#PROVIDER</fieldName>
</dependency>
<children>
<entityParameter>
<name>ObjectType_param</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/activityatrributes/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>AttributeTypes_param</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/activityatrributes/children/attributetypes_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/activityatrributes/children/objectrowid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>AttributeTreeIsTheme</name>
<dependency>
<name>dependency</name>
<entityName>AttributeRelation_entity</entityName>
<fieldName>TreeProvider</fieldName>
</dependency>
<children>
<entityParameter>
<name>IsTheme_param</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetreeistheme/children/istheme_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>ObjectType_param</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetreeistheme/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetreeistheme/children/objectrowid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields>
<recordContainers>
<dbRecordContainer>
......
import("system.result");
import("Attribute_lib");
result.object([$AttributeTypes.THEME.toString()]);
\ No newline at end of file
import("system.result");
import("system.vars");
result.string(vars.get("$field.ACTIVITYID"));
\ No newline at end of file
import("system.result");
import("Context_lib");
result.string(ContextUtils.getCurrentContextId());
import("system.result");
result.string(true);
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.ACTIVITYID"));
\ No newline at end of file
import("system.result");
import("Context_lib");
result.string(ContextUtils.getCurrentContextId());
......@@ -84,6 +84,12 @@
<fieldName>AttributeTree</fieldName>
<isConsumer v="false" />
</entityDependency>
<entityDependency>
<name>80a034ee-c3fd-45e3-986c-d3854608c148</name>
<entityName>Activity_entity</entityName>
<fieldName>AttributeTreeIsTheme</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
<children>
<entityParameter>
......@@ -270,6 +276,14 @@
<name>ATTRIBUTE_TYPE</name>
<valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/attribute_type/valueProcess.js</valueProcess>
</entityField>
<entityParameter>
<name>AttributeId_param</name>
<expose v="true" />
</entityParameter>
<entityParameter>
<name>IsTheme_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......
......@@ -74,6 +74,15 @@ if (rowId)
sqlCondition.and("1=1");
}
var IsTheme = vars.exists("$param.IsTheme_param") && vars.getString("$param.IsTheme_param") == "true";
if (IsTheme){
sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", 'THEME');
}
else
{
sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", 'THEME', "# != ?");
}
joinCondition.and("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID");
var defaultFields = [
......
This diff is collapsed.
import("Context_lib");
import("system.vars");
import("system.neon");
var selection = vars.get("$sys.selection");
var params = {
"AttributeId_param" : selection[0],
"ObjectRowId_param" : vars.get("$param.ObjectRowId_param"),
"ObjectType_param" : vars.get("$param.ObjectType_param")
}
neon.openContext("AttributeRelation", "AttributeRelationTreeEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
......@@ -44,11 +44,18 @@ users = users.map(function (user)
var renderer = new ContactTitleRenderer(Contact.createWithColumnPreset(), ContactTitleRenderer.OPTIONS.NoOption);
var selectExpression = renderer.asSql();
var names = db.table(SqlCondition.begin()
.andIn("CONTACT.CONTACTID", contactIds)
.buildSql("select CONTACTID, " + selectExpression + " from CONTACT \n\
left join PERSON on (PERSON.PERSONID = CONTACT.PERSON_ID)")
);
var idsPerPage = 1000;
var names = [];
var select = "select CONTACTID, " + selectExpression + " from CONTACT \n\
left join PERSON on (PERSON.PERSONID = CONTACT.PERSON_ID)";
for (let begin = 0, max = contactIds.length; begin < max; begin += idsPerPage)
{
names = names.concat(db.table(SqlCondition.begin()
.andIn("CONTACT.CONTACTID", contactIds.slice(begin, begin + idsPerPage))
.buildSql(select)
));
}
var nameMap = {};
for (let i = 0, l = names.length; i < l; i++)
nameMap[names[i][0]] = names[i][1];
......
import("system.vars");
import("system.result");
if (vars.get("$this.value") == null)
if (vars.get("$this.value") == null || vars.get("$this.value") == "")
result.string(vars.get("$field.DIRECTION") == "same" ? 0 : 1);
\ No newline at end of file
import("system.logging");
import("Sql_lib");
import("system.db");
import("system.vars");
......@@ -13,7 +12,6 @@ var permCondInput = vars.get("$param.PermissionCondition_param");
//var deletedRows = vars.get("$field." + pConsumerField + ".deletedRows");
var deletedRows = vars.get("$field.PermissionDetails.deletedRows");
logging.log("deleted rows: " + deletedRows);
if (actionTitle == "null" || actionTitle == undefined || actionTitle == null || actionTitle == "") {
result.string(translate.text("Empty actions are not allowed!"));
......
import("system.logging");
import("Sql_lib");
import("system.db");
import("system.vars");
......@@ -25,10 +24,6 @@ var deletedRows = vars.get("$field.PermissionActions.deletedRows");
var changedRows = vars.get("$field.PermissionActions.changedRows");
var insertedRows = vars.get("$field.PermissionActions.insertedRows");
logging.log("del rows: " + deletedRows.toSource());
logging.log("cha rows: " + changedRows.toSource());
logging.log("ins rows: " + insertedRows.toSource());
if (PermissionUtil.existsPermission(permissionId)) {
// old permission
// insert nur möglich, wenn gleiche action auch gelöscht wurde, oder zuvor nicht da war
......
......@@ -105,7 +105,7 @@ if (selectedPermission == null) {
}
}
result.object(res.sort(sortFunction));
result.object(res.sort(sortResultsAfterAccessTypes));
function prepareResultArray(pEntry, pRes) {
var rootPermission = "";
......@@ -118,12 +118,49 @@ function prepareResultArray(pEntry, pRes) {
} else
rootPermission = PermissionUtil.getRootPermission(pEntry.permissionid);
}
pRes.push([pEntry.permissionid, pEntry.entity, pEntry.role, pEntry.field, pEntry.cond, pEntry.action, pEntry.accesstype, pEntry.condtype, rootPermission]);
pRes.push([pEntry.permissionid, pEntry.entity, pEntry.role, pEntry.field, pEntry.cond, sortActions(pEntry.action.split(","), pEntry.accesstype).join(","), pEntry.accesstype, pEntry.condtype, rootPermission]);
return pRes;
}
// used to sort result array: Entity -> Records -> Fields
function sortFunction(a, b) {
// sorts action csv string
// Entity: view -> create
// Record: read -> update -> delete
// Field: view -> update
function sortActions(actions, accesstype) {
return actions.sort(function(a, b) {
switch (accesstype) {
case "E":
if (a == "view") {
return -1;
} else {
return 1;
}
break;
case "R":
if (a == "read") {
return -1;
} else if (a == "update" && b == "delete") {
return 0;
} else {
return 1;
}
break;
case "F":
if (a == "view") {
return -1;
} else {
return 1;
}
break;
default:
return 0;
break;
}
})
}
// sorts result array: Entity -> Records -> Fields
function sortResultsAfterAccessTypes(a, b) {
if (a[6] == b[6] && a[6] != "F" && a[6] != "R")
return 0;
else if (a[6] == "E")
......
......@@ -6,20 +6,29 @@
<layout>
<boxLayout>
<name>layout</name>
<direction>HORIZONTAL</direction>
<maxDirectionElements v="2" />
</boxLayout>
</layout>
<children>
<neonViewReference>
<name>f3e3d589-16a5-45a3-878f-7f00548c4370</name>
<entityField>ActivityAtrributes</entityField>
<view>AttributeTree_view</view>
</neonViewReference>
<neonViewReference>
<name>9a9c4df0-abec-42b8-af90-b9fe57f28337</name>
<entityField>AttributeTreeIsTheme</entityField>
<view>AttributeRelationTree_view</view>
</neonViewReference>
<genericViewTemplate>
<name>OfferInfo</name>
<editMode v="false" />
<name>Generic</name>
<showDrawer v="true" />
<drawerCaption></drawerCaption>
<fixedDrawer v="true" />
<hideLabels v="true" />
<entityField>#ENTITY</entityField>
<fields>
<entityFieldLink>
<name>c7e75393-4745-478b-9f89-878b9a19b722</name>
<name>ca781b9b-9e93-41c3-9373-cb559c347194</name>
<entityField>INFO</entityField>
</entityFieldLink>
</fields>
......
......@@ -13,7 +13,11 @@
<parentField>ATTRIBUTE_PARENT_ID</parentField>
<titleField>ATTRIBUTE_NAME</titleField>
<descriptionField>ATTRIBUTE_TYPE</descriptionField>
<entryAction>openDetails</entryAction>
<entityField>#ENTITY</entityField>
<isCreatable v="false" />
<isEditable v="false" />
<isDeletable v="false" />
</treeViewTemplate>
</children>
</neonView>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment