Dynamic Logo on Service Portal

arnabbose
Tera Expert

Hi,

How can we have a Dynamic logo based on users company in Service Portal?

I want to use gs.getUser().getCompanyID() in server side and populate this according to company.

I have already cloned and created a custom header from Stock Header , but can anyone tell me how I can establish this?

find_real_file.png

1 ACCEPTED SOLUTION

Hi Arnab,



I just tried as b-rad has suggested which may help you :


Steps:


1. Clone "Stock Header" widget.


2. Make changes as described in step 4 & 5.


3. Goto your portal Themes and update "Header" field value with newly created widget (clone of stock header).



4.- Add below server script where you need to query and assign image URL :


var company_id = gs.getUser().getCompanyID();


//var grGetCompanyLogo = new GlideRecord('table_name');



data.company_logo_url = 'image URL'; // when you get image path


if(data.company_logo_url =='')


        data.company_logo_url = false; // When you don't get dynamic image path




5. Update below HTML :


  <a class="navbar-brand" ng-if="::!portal.logo && !data.company_logo_url" href="?id={{::portal.homepage_dv}}"><span>{{::portal.title}}</span></a>


          <a class="navbar-brand navbar-brand-logo" ng-if="::portal.logo && !data.company_logo_url" href="?id={{::portal.homepage_dv}}">


                        <img ng-src="{{::portal.logo}}" />


          </a>



          <a class="navbar-brand" ng-if="!data.company_logo_url" href="?id={{c.data.portal_home_url}}"><span>{{c.data.portal_title}}</span></a>


          <a class="navbar-brand navbar-brand-logo" ng-if="data.company_logo_url" href="?id={{c.data.portal_home_url}}">


                      <img ng-src="{{c.data.company_logo_url}}" />


          </a>



Here we are checking :


if the custom company logo url is set/present then show custom logo else show portal logo (just in-case when image URL is blank) you may change as per your requirement.


View solution in original post

12 REPLIES 12

Brad Tilton
ServiceNow Employee
ServiceNow Employee

You would need to create a mapping somewhere, whether it be a new table or on the company record, of the company to logo relationship. Then in the server script portion of the header widget you would grab the correct image location for that company and then populated it in the html section much like it's populated oob.


I believe OOB its taking from here...




find_real_file.png





find_real_file.png


Yeah the oob should give you some direction on how to display the image based on the results from the server.


i believe somewhere in this portion in the custom header widget it has to be updated, not able to figure out how exactly...




find_real_file.png