In the screenshot I can not see the notification panel on Portal Workspace when portal user logs in. I want it to be visible to portal user in case of notification comes. Or else if there is another approach to notify portal user then please suggest.

Thanks

Like 0

Like

2 comments

Hello Ramnath, 

Unfortunately, there is no OOB tools or information about partner customizations available which would add the notification panel for the portal user.
We will pass this request as an idea to the responsible R&D team so they will consider the possibility of adding the requested functionality in future Creatio releases. 

Kind regards,
Roman

Roman Brown,

I wanted the notification panel on Portal Workspace for process/requests he need to complete. The process has a pre-configured page. Which needs to be filled by Portal user. But process will only show in notification. Not in the Case I build on the section page. 

Is there any other way to notify user to access and complete the process.

Thanks

Ramnath

Show all comments

Hello. i'd like to hide the 'Run Process' -button in the Side Panel for certain Roles.
As well as change the contents of the drop-down of the 'Home' -button next to it.

Like 0

Like

3 comments

Dear Julius, 

In order to hide the button menu, you need to override the basic functionality, which involves development within the system.

Firstly, you need to override basic schema LeftPanelTopMenuModule. Please find the loadMenu method. There you can see that visibility of the button in based on user type. You can add your custom method to check current user rights and set the visibility based on the response result:

Here is an example of how to check current user role. In the example we are hiding the Menu button form non-administrators role. You can adjust the code up to your needs. (the example involves creating of custom CSS style and adding it to the schema dependencies):

 

As for the list of menu items, please take a look at  loadItemsMainMenu method, which is responsible for its logic.

Hope you will find it helpful.

Regards,

Anastasia

Anastasia Botezat,

 

How do you override the LeftPanelTopMenuModule module? I cannot create a replacing client module, so not sure how I would go about this. Is it no longer possible to do this?

Hi Harvey Adcock,

 

In order to replace "LeftPanelTopMenuModule" client module schema, please follow the steps described below:

 

1. Please go to Configuration > Add > Module

2. In the appeared empty module, please add the code below:

define("UsrLeftPanelTopMenuModule", ["LeftPanelTopMenuModule", "LeftPanelTopMenuModuleResources"],
 function() {
 Ext.define("Terrasoft.UsrLeftPanelTopMenuModule", {
 override: "Terrasoft.LeftPanelTopMenuModuleViewModel",
 /*
 * @override
 */
			...
 });
 }
);

Also, please add Title "UsrLeftPanelTopMenuModule" and Name "UsrLeftPanelTopMenuModule", choose the package. Important: do not set the parent object. Save the module.

 

3. Then, you need to replace "BootstrapModulesV2". Here is the article on how to replace client module schema:

 

https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-client-module-schema

 

4. In a new replacing client schema, please insert the code below:

 

define("BootstrapModulesV2", ["UsrLeftPanelTopMenuModule"], function() {
	return {};
});

Set "BootstrapModulesV2" as Title and Name, set "BootstrapModulesV2" (NUI) as a parent object, set replace parent input checked. 

 

5. Save the changes and hard-reload the page. 

Show all comments

Hello I am trying to show/hide the 'Run Process' button for some specific roles.

As well as the content in the 'Home' drop-down menu.

 

How can I do this?

Best regards,

Like 0

Like

5 comments

Hi,

If you intend to modify the basic top menu item, please take a look at LeftPanelTopMenuModule schema. It is responsible for menu items and methods, which regulate visibility and click handling. 

Particularly, you would be interested in getTopMenuConfig method, which returns a collection of menu items. Among others, you can find StartProcessMenu item. You can override its visibility property to set it to your role, or bind it to the custom method. 

Same goes for the "Home" drop down - MainMenu item in the LeftPanelTopMenuModule schema. 

Regards,

Anastasia

Hi Anastasia,

I have created a module  extending LeftPanelTopMenuModule  and customized the visible property (to false) of  StartProcessMenu item.

And now where to use this newly created module UsrClientTopLeftMenu to see the changes.

Note:

I found that this LeftPanelTopMenuModule is used in Workplace selection menu (LeftPanelClientWorkplaceMenu). I could not replace Workplace selection menu also.

define("UsrClientTopLeftMenu", ["LeftPanelTopMenuModule"],
function(resources,LeftPanelUtilities) {
    Ext.define("Terrasoft.configuration.UsrClientTopLeftMenu", {
    	alternateClassName: "Terrasoft.UsrClientTopLeftMenu",
        extend: "Terrasoft.LeftPanelTopMenuModule",
 
        // extend functions
       	getTopMenuConfig: function() {
       			this.callParent(arguments);
				var menuConfig = [
					{
						id: "collapse-button",
						tag: "CollapseMenu",
						className: "Terrasoft.HoverMenuButton",
						style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
						classes: {
							imageClass: ["button-image-size"],
							wrapperClass: ["collapse-button-wrapperEl"]
						},
						imageConfig: resources.localizableImages.collapseIconSvg,
						click: {
							bindTo: "collapseSideBar"
						},
						hint: this.getCollapseSideBarMenuItemCaptionConfig(),
						markerValue: this.getCollapseSideBarMenuItemCaptionConfig()
					},
					{
						id: "menu-button",
						tag: "MainMenu",
						className: "Terrasoft.HoverMenuButton",
						style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
						hint: {bindTo: "getMenuButtonHint"},
						markerValue: resources.localizableStrings.MenuButtonHint,
						classes: {
							imageClass: ["button-image-size"],
							wrapperClass: ["menu-button-wrapperEl"]
						},
						imageConfig: resources.localizableImages.menuIconSvg,
						menu: {
							items: {bindTo: "MainMenuItems"},
							"alignType": "tr?",
							"ulClass": "position-fixed"
						},
						delayedShowEnabled: {
							bindTo: "Collapsed"
						},
						showDelay: this.get("ShowDelay"),
						hideDelay: this.get("HideDelay")
					},
					{
						id: "menu-startprocess-button",
						tag: "StartProcessMenu",
						className: "Terrasoft.HoverMenuButton",
						style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
						hint: {bindTo: "getStartProcessMenuButtonHint"},
						markerValue: resources.localizableStrings.StartProcessButtonHint,
						classes: {
							imageClass: ["button-image-size"],
							wrapperClass: ["menu-startprocess-button-wrapperEl"]
						},
						imageConfig: resources.localizableImages.processIconSvg,
						menu: {
							items: {bindTo: "startProcessMenu"},
							"alignType": "tr?",
							"ulClass": "position-fixed"
						},
						click: {
							bindTo: "startProcessMenuButtonClick"
						},
						visible: false,
						delayedShowEnabled: {
							bindTo: "Collapsed"
						},
						showDelay: this.get("ShowDelay"),
						hideDelay: this.get("HideDelay")
					},
					{
						id: "menu-quickadd-button",
						tag: "quickAddMenu",
						className: "Terrasoft.HoverMenuButton",
						style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
						classes: {
							imageClass: ["button-image-size"],
							wrapperClass: ["menu-quickadd-button-wrapperEl"]
						},
						hint: {
							bindTo: "getQuickAddHint"
						},
						markerValue: resources.localizableStrings.AddButtonHint,
						imageConfig: resources.localizableImages.quickaddIconSvg,
						menu: {
							items: {bindTo: "quickAddMenu"},
							"alignType": "tr?",
							"ulClass": "position-fixed"
						},
						visible: {
							bindTo: "IsSSP",
							bindConfig: {
								converter: function(value) {
									return !value;
								}
							}
						},
						delayedShowEnabled: {
							bindTo: "Collapsed"
						},
						showDelay: this.get("ShowDelay"),
						hideDelay: this.get("HideDelay")
					}
				];
				return menuConfig;
			},
 
    });
});

 

Bhoobalan Palanivelu,

Please use the following approach to hide the "Run process" button from the top menu module:

 

1) Create a module called UsrLeftPanelTopMenuModule with the following content:

define("UsrLeftPanelTopMenuModule", ["LeftPanelTopMenuModule"],
    function() {
        Ext.define("Terrasoft.configuration.UsrLeftPanelTopMenuModuleViewModel", {
            alternateClassName: "Terrasoft.UsrLeftPanelTopMenuModuleViewModel",
            override: "Terrasoft.LeftPanelTopMenuModuleViewModel",
            getTopMenuConfig: function() {
                var esq = this.callParent(arguments);
                var index = esq.map(function(e) { return e.id; }).indexOf("menu-startprocess-button");
                if (index > -1) {
                    esq.splice(index, 1);
                }
                return esq;
            }
        });
    }
);

2) Create a replacing view model for BootstrapModulesV2 model:

with the following content:

define("BootstrapModulesV2", ["UsrLeftPanelTopMenuModule"], function() {
	return {};
});

3) Relogin to the application

 

As a result the button will be hidden:

Best regards,

Oscar

Hello Oleg Drobina,

 

Could you please help me with an approach to apply the above splice method only for non-administrator users?

 

Thank you for all your help.

 

 

Mouna RACHIDI,

Hi, in the getTopMenuConfig you can get the value of the current user like this:

var currentUserId = Terrasoft.SysValue.CURRENT_USER.value;

Then you can write a esq request to a table to see if the user has the role of a system administrator:

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                        rootSchemaName: "SysAdminUnitInRole"
 });

var esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "SysAdminUnitId", currentUserId );
var esqSecondFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "SysAdminUnitRoleId", "83A43EBC-F36B-1410-298D-001E8C82BCAD");

 

Note, 83A43EBC-F36B-1410-298D-001E8C82BCAD is the Id of role "System administrators" in the SysAdminUnit table.

If you found the values, then you just var this.callParent(arguments);, and if not, you apply the code that Oleg provided.

 

Show all comments