Support

Customize the User web interface

This page applies to:

The User web interface displays information about the userā€™s account and provides access to features such as TopUp/Pre-Paid Cards. You can tailor the visual design of these pages to make them fit into the look and feel of your internet or intranet site.

Change the branding of the User web interface

  1. Click the Options tab. The General page is displayed.

  2. Scroll to Branding > User web interface section.

    Screenshot showing the options for customizing the 'User web interface' section including the top bar color and logo choices.

    Screenshot of the ā€˜User web interfaceā€™ branding section

  3. To change the headerā€™s background color:

    1. In Background color, enter the name of the required color or its hexadecimal value #RRGGBB. e.g. green or #00ae5b.
  4. To change the header logo:

    1. Click Choose File next to Logo; then locate the header logo image file. The image must be in PNG format and for best results should be sized 154px x 40px.
  5. Click Apply.

The changes are reflected on the User web interface.

Screenshot of a customized User web interface with a custom logo (St Mary's school logo) and a pale colored top bar.

Screenshot of a customized User web interface with a custom logo and color

The navigation menu in the user web interface contains links for the PaperCut services that are enabled and available to the user. In some cases, you might want to add additional external links to this menu. Examples include:

  • Linking to a print policy page on the organizationā€™s intranet.
  • Linking to a page with key contact details.
  • A link to return to the ā€œmainā€ intranet page/portal.

Custom links are displayed above the Log Out item.

  1. Click the Options tab. The General page is displayed.

  2. In the User Features area, select the Add custom links to the user web navigation menu check box.

  3. Click Add link.

  4. Complete the following fields:

    • Label/Textā€”the text that is displayed in the navigation menu.
    • URLā€”the destination of the URL when clicked.
    • Targetā€”the destination where the linked URL will be displayed. For more information about target values, visit w3schools targets page .
      • One common example is to specify _self as the target. This setting means clicking the link will no longer launch a new tab, but will launch the link in the same tab. _blank would tell it to launch the link in a new tab or window.

    Adding a new custom navigation link to the user web interface

    The link is now displayed in the User interface.

    Example custom navigation link in the user web interface

Existing custom links are displayed in the Admin web interface under the Add custom links to the user web navigation menu check box. To delete a link, click the [delete] link next to the relevant link.

Deleting a custom navigation link

The URL in custom navigation links can also contain special replacement fields. E.g. the %user% in http://example.edu/print-policy?u=%user% is replaced with the logged in username to create a URL such as http://example.edu/print-policy?u=tom.

The available special replacement fields are as follows:

FieldDescription
%user%The username of the logged in user.
%user_full_name%The full name of the logged in user.
%user_id%The id/card number of the logged in user.
%user_email%The email address of the logged in user.
%user_office%The office of the logged in user.
%user_department%The department of the logged in user.
%return_url%
A URL that sends the user back to the user web interface. The user is sent back to the Summary page as if they had just logged in, assuming their session has not timed out.

Custom printer maps for Web Print

You can use a graphical map or other custom content instead of the default printer selection list in the Web Print wizard. For more information see Create a Web Print printer map or custom printer list .

Customize the CSS of the User web interface

The design of the User web interface is controlled via HTML ā€œincludeā€ files for the header and footer areas of the page, with page styling controlled via Cascading Style Sheets (CSS). Placing the following files in the PaperCut NG/MF directory structure at [app-path]/server/custom/web supersedes User web interface customizations in the Options > General > Branding section of the Admin web interface.

User web interface customization files

FilenameDescription
user3.css
If this file exists, the contents ofuser3.cssis included as an overriding stylesheet. Use the styles in this file to define fonts, colors and sizes.
NOTE: The number in this file has been incremented from versions prior to 17.2.
header3.inc
If the header include file exists, the HTML in the header area of the pages is replaced with the contents of the file. Save this file inUTF-8encoding for international characters to be displayed correctly.
NOTE: The number in this file has been incremented from versions prior to 17.2.
footer3.inc
If the footer include file exists, the HTML in the footer area of the page is replaced with the contents of the file. Save this file inUTF-8encoding for international characters to be displayed correctly.
NOTE: The number in this file has been incremented from versions prior to 17.2.

Example Customization Scripts

Want to customize the user web interface? Here are some example JavaScript snippets to help you get started. Many of these use jQuery, so you may find the jQuery documentation useful for further customization.

To apply these changes, add the script to the footer3.inc file. Once saved, refresh your browser to see the updates.

Change a navigation menu label

This example script shows how to change the Redeem Card menu item to Activate Card instead:

<script type="text/javascript">
  $(function() {
    $('#linkUserTopUpCards').text('Activate Card');
  });
</script>
Add text to a page

This example script lets you add additional text to a particular page. The script below adds additional help text specifically to the Transfers page.

<script type="text/javascript">
  $(function() {
    if ($('#main h1').text() == 'Transfers') {
      $('#main h1').after("<p>Enter the receiving user's login name in 'Transfer to user'.</p>");
    }
  });
</script>
Hide table columns

Use this example script to hide particular columns from a table on one of the pages - for example the printer names.

<script type="text/javascript">
  $(function() {
    $('th.accountNameColumnHeader').hide();
    $('td.accountNameColumnValue').hide();
    $('th.printerDisplayNameColumnHeader').hide();
    $('td.printerDisplayNameColumnValue').hide();
  });
</script>
Hide print job costs

Use this example script to hide the print job costs from the Recent print jobs page:

<script type="text/javascript">
$(function() {
  //If the title of the page is 'Recent Print Jobs'
  if (document.title.includes('Recent Print Jobs')) {
   //For each print job for current user
   $('table.results td.usageCostColumnValue').each(function() {
      // remove the cost from each row of the usage table
      //$(this).closest('tr').find('td.statusColumnValue a:contains(request refund)').closest('td').remove();
      $(this).text('');
   });
  }
});
</script>
Hide a navigation item

This example will move the Recent Print Jobs menu item from the list:

<script type="text/javascript">
  $(function() {
     // Removing the Recent Print Jobs link from the navigation menu
 $('#linkUserPrintLogs').remove();
 });
</script>
Change the order of the navigation items

This example script will move Web Print menu item to the top of the list.

A better way to do this is to change the initial page shown after the user logs into the User Web Pages, through the admin interface: Options ā†’ General ā†’ User Features ā†’ Initial page displayed after successful login.

<script type="text/javascript">
  $(function() {
     // Change the name below to match the link you'd like to put on the top
     var LINK_TO_MOVE = "Web Print";
 var $navList =  $('div#nav').find('ul');
 var $linkToMove = $navList.find(":contains('" + LINK_TO_MOVE + "')").parents('li');
 $navList.prepend($linkToMove);
 });
</script>

Alternately the example below will change order of the navigation menu links using the link IDs. This will move the Jobs Pending Release link below the Summary link.

<script type="text/javascript">
 $(function() {
  $('#linkUserReleaseJobs').parents('li:first')
                           .remove()
                           .insertAfter($('#linkUserSummary').parents('li:first'));
  });
</script>
Hide the server-name from the printers list in Web Print

Some customers want to hide the server name in from the Web Print printer list because they donā€™t want users to see the server name.

<script type="text/javascript">
  $(function() {
    $('.web-print-printer-list td.displayNameColumnValue label').contents().filter(function() {
	  // text nodes only (so as to avoid selecting the radio button)
      return this.nodeType == 3;
    }).each(function() {
	  var text = $(this).text().trim();
	  // There is a text node before the radio button. Ignore it.
	  if (text.length > 0) {
	    var printerName = text.substring(text.indexOf('\\') + 1);
		$(this).replaceWith(printerName);
      }
    });
  });
</script>
Remove user balance and balance graph

If youā€™re wanting to hide the balance and the balance graph.

<script type="text/javascript">
  $(function() {
    // check that we're on the Summary page
    if ($('#main h1:eq(0)').text() == 'Summary') {
      // hide the current balance display (blanks out the second row in the table)
      $('table.userDataTable tbody tr:eq(1) th').text("");
      $('table.userDataTable tbody tr:eq(1) td').text("");
  // remove the activity heading and balance graph (hides the second heading and following section on the page)
  $('#main h2:eq(0)').next().hide();
  $('#main h2:eq(0)').hide();
}
 });
</script>
Disable ā€˜refund requestā€™ for print jobs based on server

In a multi-tenancy scenario, some customer may be interested in disabling the refund request links for jobs sent via selected servers.

<script type="text/javascript">
 var disableRefundOnServers = [
  //Create a collection of servers to disable the refund request option for
  'marketing-server',
  'science-server'
 ];
$(function() {
//If the title of the page is ā€˜Recent Print Jobsā€™
if ($(ā€™#main h1ā€™).text() == ā€˜Recent Print Jobsā€™) {
//For each printer display name column in the data table
$(ā€™table.results td.printerDisplayNameColumnValueā€™).each(function() {
//Use string functions to extract the printer name
var printerFullName = $(this).text().trim();
var serverName = printerFullName.substring(0, printerFullName.indexOf(ā€™\ā€™));
//If the printer name is in the collection of servers to disable links for
if ($.inArray(serverName, disableRefundOnServers) >= 0) {
//Traverse up and down the DOM for the table to find the refund link and remove it
$(this).closest(ā€™trā€™).find(ā€™td.statusColumnValue a:contains(request refund)ā€™).closest(ā€™tdā€™).remove();
}
});
}
});
</script>

 

 

Comments