filtred menu Edit Pages in detail

we have a detail (Activity) with three editing pages (investigation, corrective actions, preventive actions) for which we must connect the click event of each detail so that the menu is filtered to obtain a specific page for each,

I implemented the code below but still not getting the result.

 

define("ClaSchema821f5cb2Detail", [], function() {

    return {

        entitySchemaName: "Activity",

        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,

        diff: /**SCHEMA_DIFF*/[

            {

        "operation": "merge",

                    "name": "AddTypedRecordButton",

                    "parentName": "Claims1PageClaSchema821f5cb2Detail2b214db7Container",

                    "propertyName": "items",

                    "values": {

                        "controlConfig": {

                            "menu": {

                                "items": {

                                    "bindTo": "EnabledEditPages",

                                    "bindConfig": {

                                        "converter": function(editPages) {

                                            return editPages;

                                            /*if (editPages.getCount() >= 1) {

                                                return editPages;

                                            } else {

                                                return null;

                                            }*/

                                        }

                                    }

                                }

                            }

                        }

                    }

                },

            {

        "operation": "merge",

                    "name": "AddTypedRecordButton",

                    "parentName": "Claims1PageClaSchema821f5cb2Detail682ca645Container",

                    "propertyName": "items",

                    "values": {

                        "controlConfig": {

                            "menu": {

                                "items": {

                                    "bindTo": "EnabledEditPages2",

                                    "bindConfig": {

                                        "converter": function(editPages) {

                                            return editPages;

                                            /*if (editPages.getCount() >= 1) {

                                                return editPages;

                                            } else {

                                                return null;

                                            }*/

                                        }

                                    }

                                }

                            }

                        }

                    }

                },

            {

        "operation": "merge",

                    "name": "AddTypedRecordButton",

                    "parentName": "Claims1PageClaSchema821f5cb2Detail8ef4781dContainer",

                    "propertyName": "items",

                    "values": {

                        "controlConfig": {

                            "menu": {

                                "items": {

                                    "bindTo": "EnabledEditPages3",

                                    "bindConfig": {

                                        "converter": function(editPages) {

                                            return editPages;

                                            /*if (editPages.getCount() >= 1) {

                                                return editPages;

                                            } else {

                                                return null;

                                            }*/

                                        }

                                    }

                                }

                            }

                        }

                    }

                },

       

        ]/**SCHEMA_DIFF*/,

        methods: {

            

             initEditPages: function() {

                  console.log("initEditPagesinitEditPagesinitEditPagesinitEditPages");

                            var enabledEditPages = new this.Terrasoft.Collection();

                            var enabledEditPages2 = new this.Terrasoft.Collection();

                            var enabledEditPages3 = new this.Terrasoft.Collection();

                 

                            this.callParent(arguments);

                 

                            var editPages = this.getEditPages();

                              

                            var items = editPages.getItems();

                 

                              var item = items.filter(function(item){return item.get("SchemaName") == 'ClaActivityPageV21';});

                              enabledEditPages.add(item);

                            this.set("EnabledEditPages", enabledEditPages);

                            

                             var item2 = items.filter(function(item){return item.get("SchemaName") == 'ClaActivityPageV23';});

                              enabledEditPages2.add(item2);

                            this.set("EnabledEditPages2", enabledEditPages2);

                 

                             var item3 = items.filter(function(item){return item.get("SchemaName") == 'ClaActivityPageV24';});

                              enabledEditPages3.add(item3);

                            this.set("EnabledEditPages3", enabledEditPages3);

                 

                         

                           

            },

            

        }

    };

});

 

Like 0

Like

2 comments

Hello,

In the Detail schemas for each detail, you should write something like this:

define("UsrSchema26073b05Detail", [], function() {
	return {
		entitySchemaName: "Activity",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			 {
        "operation": "merge",
                    "name": "AddTypedRecordButton",
                    "values": {
                        "click": {"bindTo": "openSpecificPage"},
                    }
                },
		]/**SCHEMA_DIFF*/,
		methods: {
			openSpecificPage: function() {
				if (!this.get("EditPages")) {
					this.initEditPages();
				}
				var pages = this.get("EditPages");
				var pageId = pages.collection.items.find((x) => x.values.Caption === "Call").values.Id;
				this.addRecord(pageId);
 
		},
		}
	};
});

Just switch the Caption of the needed page (or use another parameter to distinguish pages) to the correct one in each schema.

Show all comments