{"version":3,"sources":["tour-enduser.js"],"names":["$","ajaxSetup","cache","$tourContent","doingScreenshot","autoStart","data","startAtStepKey","tooltip","selector","on","e","preventDefault","$reflexChildren","this","find","length","trigger","alert","ScrollToTopOfContent","attr","browserSupportsFullscreen","fullscreenButton","css","requestFullscreen","document","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","window","resize","inFullscreenMode","positionFooter","addEventListener","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","position","ctrlKey","altKey","lastTourPageLoaded","tour","Tour","name","onStart","appInsights","trackEvent","Name","_options","onEnd","location","assign","onRequestFullscreen","steps","key","container","placement","delay","title","content","shortcuts","keyboardEquivalentsText","onShow","i","LoadTourPage","element","reflex","onShown","PreloadModelImage","hotspots","step","hotspotCssClass","next","left","top","autoscroll","dfd","Deferred","when","then","resolve","promise","scrollLeft","display","onHide","prev","reflexCssClass","keyboard","debug","storage","orphan","duration","template","onTrace","Step","startAtStep","len","pageName","params","historyUrl","pageTitle","path","replace","historyObj","type","stepKey","stepIndex","url","tourContentDiv","console","html","load","response","status","xhr","supportsHistoryApi","pushHistoryUrl","history","pushState","replaceState","animate","scrollTop","PageUrl","Status","Response","responseText","reject","trackPageView","URL","$footer","children","innerHeight","height","bottom","src","Image","elementId","scrollPos","$element","offsetTop","msFullscreenEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","rfs","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","call","ActiveXObject","wscript","SendKeys","setCurrentStep","init","ended","restart","start","hasClass","addClass"],"mappings":"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","file":"tour-enduser.min.js","sourcesContent":["$(function () {\r\n \"use strict\";\r\n\r\n // Dont cache page responses for development\r\n $.ajaxSetup({ cache: false });\r\n\r\n // Keep a reference to the tour content element\r\n var $tourContent = $('#tour-content');\r\n\r\n // Flag indicating if we're doing a screen shot\r\n var doingScreenshot = false;\r\n\r\n // See if the tour should auto-start\r\n var autoStart = $tourContent.data('autostart');\r\n\r\n // See if we are starting at a particular step by specifying the key\r\n var startAtStepKey = $tourContent.data('startatstepkey');\r\n\r\n // Setup tooltips for any content loaded\r\n $tourContent.tooltip({ selector: 'a[data-toggle=\"tooltip\"]' });\r\n\r\n // Handle clicking on any anchor element in the tour content\r\n $tourContent.on('click', 'a[href=\"#\"]', function (e) {\r\n e.preventDefault();\r\n\r\n // See if the link contains one of our hotspots that is currently active\r\n // and if so then trigger the elements click event otherwise display a message\r\n // that the link isnt currently active.\r\n var $this = $(this);\r\n var $reflexChildren = $this.find('div.tour-step-element-reflex, div.tour-step-element-hotspot');\r\n if ($reflexChildren.length > 0) {\r\n $($reflexChildren[0]).trigger('click');\r\n }\r\n else {\r\n alert('This link is not functional at this point in the tour.');\r\n }\r\n });\r\n\r\n // Handle clicking on the 'back to process' and 'back to stage' links in the tour content\r\n $tourContent.on('click', 'a[class=\"backtoprocesslink\"], a[class=\"backtostagelink\"]', function (e) {\r\n e.preventDefault();\r\n\r\n // Scrol the content so the diagram is at the top\r\n ScrollToTopOfContent($(this).attr('href'));\r\n });\r\n\r\n // Setup fullscreen mode if supported\r\n if (browserSupportsFullscreen()) {\r\n var fullscreenButton = $('#fullscreen-button');\r\n\r\n // Make the button visible;\r\n fullscreenButton.css('display', 'block');\r\n\r\n // Hook the click event of the fullscreen button to request full screen for the content\r\n fullscreenButton.on('click', function () {\r\n requestFullscreen($tourContent[0]);\r\n });\r\n\r\n // Hook the button in the generated content footer to exit full screen mode\r\n $tourContent.on('click', '#exit-fullscreen-button', function () {\r\n exitFullscreen();\r\n });\r\n\r\n // On a window resize reposition the footer when in fullscreen mode\r\n $(window).resize(function () {\r\n if (inFullscreenMode()) {\r\n positionFooter();\r\n }\r\n });\r\n\r\n // Handle the switch in and out of full screen mode\r\n document.addEventListener(getFullscreenChangeEventName(), function (e) {\r\n // When leaving full screen mode put footer back to normal positioning\r\n if (!inFullscreenMode()) {\r\n // Set the footer back to a static position\r\n $(\"#generated-footer\").css({ position: 'static' });\r\n\r\n }\r\n });\r\n }\r\n\r\n // Handle tablet button press to hide and size stuff for screen capture\r\n $('#tablet-button').on('click', function (e) {\r\n // Only hide anything if the CTRL key is also pressed\r\n if (e.ctrlKey) {\r\n doingScreenshot = true;\r\n\r\n $('#contact-tab').css('display', 'none');\r\n $('#observer').css('display', 'none');\r\n $('#fullscreen-button').css('display', 'none');\r\n\r\n // If the ALT key is also pressed then fix the width and reduce the shadow\r\n if (e.ctrlKey && e.altKey) {\r\n $('#tourframe').css('width', '930px').css('box-shadow', '0 0 20px 1px rgba(0,0,0,0.5)');\r\n }\r\n }\r\n });\r\n\r\n // Keep track of the last tour page that was loaded\r\n var lastTourPageLoaded = null;\r\n var shortDelay = 1000;\r\n var mediumDelay = 1500;\r\n var longDelay = 2500;\r\n\r\n /* variables to keep track of where the user has been */\r\n var drilldownIndianapolisFactory = false;\r\n\r\n // Instance the tour\r\n var tour = new Tour({\r\n // Name is used in CSS classes for the tour as a whole plus individual steps\r\n name: 'enduser',\r\n onStart: function () {\r\n // Log event that a tour has been started\r\n appInsights.trackEvent(\"TourStarted\", { Name: tour._options.name });\r\n },\r\n onEnd: function () {\r\n // Log event that a tour has been stopped\r\n appInsights.trackEvent(\"TourEnded\", { Name: tour._options.name });\r\n\r\n // Return to the tours page\r\n if (!doingScreenshot) {\r\n return window.location.assign(\"/tours\");\r\n }\r\n },\r\n onRequestFullscreen: function () {\r\n // Switch the tour content to full screen mode\r\n return requestFullscreen($tourContent[0]);\r\n },\r\n steps: [\r\n // Step 0: Showing global overview give General Intro\r\n {\r\n key: '',\r\n container: '#tour-content',\r\n placement: 'top',\r\n delay: shortDelay,\r\n title: 'XSOL Workplace Business Model Tour',\r\n content: '

This tour is taken from the perspective of an end-user exploring the output generated from a XSOL model for the the ficticious enterprise ‘ACME Global’.

It uses visual representations of the organization’s structure to aid the users understanding of the business and where they fit in.


' + keyboardEquivalentsText(),\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewGlobalPartial');\r\n }\r\n },\r\n // Step 1: Showing global overview get user to drill down by clicking the USA flag\r\n {\r\n key: 'navigation-global',\r\n container: '#generated-content',\r\n element: '#us',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Visual Navigation',\r\n content: '

Images and links can be combined to navigate through the enterprise structure to enable users to explore or access the content they need. In this example a global map and flags have been used to show the geographic locations of several businesses in ‘Acme Global’.


Click the hotspot or press “Next” to drill down and view information about ‘Acme Inc.’ based in the USA.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewGlobalPartial');\r\n },\r\n onShown: function () {\r\n // Load the USA overview process image in anticipation of going to that next\r\n PreloadModelImage('uuid_078A107B-091B-4260-9206-7F3095ABFB72_view_p0.png');\r\n }\r\n },\r\n // Step 2: Showing USA overview get user to drill down again by clicking on the factory, or destribution icons\r\n {\r\n key: 'navigation-usa',\r\n container: '#generated-content',\r\n placement: 'topright',\r\n hotspots: [{ element: '#factory-indianapolis', step: 3 }/*, { element: '#factory-houston', step: 3 }*/],\r\n hotspotCssClass: 'tour-step-element-ring', //'tour-step-element-reflex',\r\n title: 'Visual Navigation (Cont.)',\r\n// content: '

Any number of levels can be created in this way using images, photos, diagrams etc to guide the user to the information they require.


Click either of the two hotspots to view further information about the associated ‘Acme Inc.’ facilites.

',\r\n content: '

Any number of levels can be created in this way using images, photos, diagrams etc to guide the user to the information they require.


Click on the hotspot to drill into the associated ‘Acme Inc.’ facility.

',\r\n next: -1,\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewUsaPartial');\r\n },\r\n onShown: function () {\r\n // Load the Indianapolis Factory overview process image in anticipation of going to that next\r\n PreloadModelImage('uuid_97236F07-B462-49AB-BFAF-81F569BE6D91_view_p0.png');\r\n }\r\n },\r\n // Step 3: Showing Indianapolis factory overview\r\n {\r\n key: 'visualization-highlevel',\r\n container: '#generated-content',\r\n placement: 'topleft',\r\n title: 'High Level Process Visualization',\r\n content: '

Here a diagram of a factory has been overlaid with the main flows and the departments involved in the flows.

',\r\n onShow: function (tour, i) {\r\n /* Set flag so we know the user has taken this path */\r\n drilldownIndianapolisFactory = true;\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step 4: Showing Indianapolis factory overview highlighting receiving stock\r\n {\r\n key: 'visualization-receiving',\r\n container: '#generated-content',\r\n element: '#receiving',\r\n placement: 'right',\r\n title: 'Receiving Stock',\r\n content: '

It shows the flow for the receipt of materials and the relationship with other flows.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step 5: Showing Indianapolis factory overview highlighting manufacturing\r\n {\r\n key: 'visualization-manufacturing',\r\n container: '#generated-content',\r\n element: '#workshop',\r\n placement: 'right',\r\n title: 'Manufacturing',\r\n content: '

It shows the flow of raw materials through the manufacturing process to become finished goods.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step 6: Showing Indianapolis factory overview highlighting shipping\r\n {\r\n key: 'visualization-shipping',\r\n container: '#generated-content',\r\n element: '#shipping',\r\n placement: 'left',\r\n title: 'Shipping',\r\n content: '

Then it shows the flow of finished goods through to the dispatch of those goods.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step 7: Showing Indianapolis factory overview getting user to drill down to the sales process \r\n {\r\n key: 'visualization-salesprocess',\r\n container: '#generated-content',\r\n element: '#sales-process',\r\n reflex: true,\r\n placement: 'top',\r\n title: 'A linked Process',\r\n content: '

Lets explore one of the processes linked to from the diagram.

Click the hotspot or press “Next” to drill down and view information about the ‘Sales Process’.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n },\r\n onShown: function () {\r\n // Load the 'Sales Process' process image in anticipation of going to that next\r\n PreloadModelImage('uuid_6ED5AFF5-01E5-4B98-ACF2-15E5AC6262B7_view_p0.png');\r\n }\r\n },\r\n // Step 8: Showing Sales process flow\r\n {\r\n key: 'workflow-salesprocess',\r\n container: '#generated-content',\r\n placement: 'absolute',\r\n left: 20,\r\n top: 262,\r\n title: 'Workflow for the Sales Process',\r\n content: '

XSOL processes are made up of ‘Stages’ , which represent the work done by an individual at that point in the process, and flow control elements such as conditions , that connect the Stages/work together.

' +\r\n '

Scroll down and across to view all the Stages and flow constructs that define this process.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessSalesQuoteToCashPartial');\r\n }\r\n },\r\n // Step 9: Showing Sales process notes\r\n {\r\n key: 'workflow-salesprocess-processnotes',\r\n container: '#generated-content',\r\n element: '#process-notes',\r\n placement: 'top',\r\n autoscroll: true,\r\n title: 'Additional Information',\r\n content: '

As well as the flow diagram, which is a very visual representation of the process definition, additional information such as user defined notes can be added.

' +\r\n '

In this instance some notes about the process owner and status have been captured and are grouped and presented in a table.

' +\r\n '
' +\r\n '

The separate Process Workflow tour goes into much more detail about what can be displayed for processes.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessSalesQuoteToCashPartial');\r\n }\r\n },\r\n // Step 10: Showing sales process highlighting 'receive sales request' stage\r\n {\r\n key: 'workflow-receivesalesrequeststage-drilldown',\r\n container: '#flow-diagram-container',\r\n element: '#stage-receive-sales-request',\r\n autoscroll: false,\r\n reflex: true,\r\n placement: 'right',\r\n title: 'What goes on in a Stage?',\r\n content: '

As mentioned earlier Stages are where the actual work is done so click on the ‘Receive Sales Request’ Stage or press “Next” to see what it contains.

',\r\n onShow: function (tour, i) {\r\n var dfd = $.Deferred();\r\n\r\n // Wait for the page to load then scroll to the very top\r\n $.when(LoadTourPage(tour, i, '_ProcessSalesQuoteToCashPartial')).then(\r\n function () {\r\n // Wait to the scroll animation to finish\r\n $.when(ScrollToTopOfContent()).then(\r\n function () {\r\n dfd.resolve();\r\n });\r\n });\r\n\r\n return dfd.promise();\r\n },\r\n onShown: function () {\r\n // Load the 'Receive Sales Request' stage image in anticipation of going to that next\r\n PreloadModelImage('uuid_6ED5AFF5-01E5-4B98-ACF2-15E5AC6262B7_stage_18_p0.png');\r\n }\r\n },\r\n // Step 11: Showing 'receive sales request' stage\r\n {\r\n key: 'workflow-receivesalesrequeststage',\r\n container: '#generated-content',\r\n placement: 'absolute',\r\n left: '50%',\r\n top: 310,\r\n title: 'Receive Sales Request Stage',\r\n content: '

XSOL Stages are defined by the flow of activities/tasks that are needed to complete the work encompassed by the stage. When flow in a Stage is complete, by reaching a node, the next stage or stages from the process work flow are scheduled for other people involved in the process to complete.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageReceiveSalesRequestPartial');\r\n }\r\n },\r\n // Step 12: Showing 'receive sales request' roles\r\n {\r\n key: 'workflow-receivesalesrequeststage-roles',\r\n container: '#generated-content',\r\n element: '#stage-roles',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Assigned Roles',\r\n content: '

In XSOL roles are assigned to each Stage to specify who performs the work of the Stage. For this Stage we can see that the ‘Sales Person’ role has been assigned.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageReceiveSalesRequestPartial');\r\n }\r\n },\r\n // Step 13: Showing 'receive sales request' stage notes\r\n {\r\n key: 'workflow--receivesalesrequeststage-notes',\r\n container: '#generated-content',\r\n element: '#stage-flownodes',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Notes on the activities/tasks',\r\n content: '

As well as the flow diagram, flow can be presented texually along with accompanying notes of different types including images etc to provide the user with guidance on performing the activities such as policy, proceedures and forms.

' + \r\n '

Scroll down to see some notes added for some of the activities in this stage.


' + \r\n '

The separate Process Workflow Tour covers what can be done with process output in much more detail.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageReceiveSalesRequestPartial');\r\n }\r\n },\r\n // Step 14: Showing 'receive sales request'\r\n {\r\n key: 'workflow-receivesalesrequeststage-drillup',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the Process',\r\n content: '

We’ve finished looking at the ‘Receive Sales Request’ stage so click the button or press “Next” to return to the ‘Sales Process’.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageReceiveSalesRequestPartial');\r\n }\r\n },\r\n // Step 15: Showing sales role highlighting 'create sales order' stage\r\n {\r\n key: 'workflow-createsalesorderstage-drilldown',\r\n container: '#flow-diagram-container',\r\n element: '#stage-create-sales-order',\r\n reflex: true,\r\n autoscroll: true,\r\n placement: 'left',\r\n title: 'Another Stage',\r\n content: '

Now explore the activities and flow that make up the ‘Create Sales Order’ Stage by clicking on the Stage or pressing “Next”.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessSalesQuoteToCashPartial');\r\n },\r\n onShown: function () {\r\n // Move the flow diagram over a bit so we can see the stage\r\n $('#image33').scrollLeft(300);\r\n // Load the 'Create Sales Order' stage image in anticipation of going to that next\r\n PreloadModelImage('uuid_6ED5AFF5-01E5-4B98-ACF2-15E5AC6262B7_stage_67_p0.png');\r\n }\r\n },\r\n // Step 16: Showing 'Create Sales Order' stage\r\n {\r\n key: 'workflow-createsalesorderstage',\r\n container: '#generated-content',\r\n placement: 'absolute',\r\n left: '50%',\r\n top: 325,\r\n title: '‘Create Sales Order’ Stage',\r\n content: '

Here is the flow of activities/tasks the Sales Person must follow to complete the stage and allow the next stage or stages to be started by other people involved in the process.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 17: Showing 'Create Sales Order' roles\r\n {\r\n key: 'workflow-createsalesorderstage-roles',\r\n container: '#generated-content',\r\n element: '#stage-roles',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Assigned Roles',\r\n content: '

For the ‘Create Sales Order’ Stage we can see that the ‘Sales Person’ and the ‘Sales Manager’ roles have been assigned which means that anyone assigned to either of these roles does the work for this Stage.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 18: Showing 'Create Sales Order' stage\r\n {\r\n key: 'workflow-createsalesorderstage-notes',\r\n container: '#generated-content',\r\n element: '#stage-notes',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Stage Notes',\r\n content: '

For this stage notes have added to the stage itself to give the viewer overall direction on creating sales orders.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 19: Showing 'Create Sales Order' stage\r\n {\r\n key: 'workflow-createsalesorderstage-tasknotes',\r\n container: '#generated-content',\r\n element: '#notes-example',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'General Activity/Task Notes',\r\n content: '

Additionally notes have been added for the first activity to provide specific instructions, plus an example of what the application to enter orders looks like.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 20: Showing 'Create Sales Order' stage\r\n {\r\n key: 'workflow-createsalesorderstage-hyperlinknotes',\r\n container: '#generated-content',\r\n element: '#links-example',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Activity/Task Link Notes',\r\n content: '

Finally in a separate group of notes a link to relevant reference documention and a link to invoke the order entry application itself have been added.

' +\r\n '

The number and name of note groups and the notes defined within them is completely defined by the process modeller.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 21: Showing 'Create Sales Order' stage pointing to drop down menu\r\n {\r\n key: 'workflow-createsalesorderstage-flowlinks',\r\n container: '#generated-content',\r\n element: '#dropdownMenu1',\r\n reflex: true,\r\n autoscroll: true,\r\n placement: 'bottom',\r\n title: 'Flow Diagram Links',\r\n content: '

These same links can be included on flow diagrams to provide easy access to the relevant information and applications.


Click the in the diagram, or press “Next”, to see the links that have been defined for this activity/task.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 22: Showing 'Create Sales Order' stage with drop down menu showing\r\n {\r\n key: 'workflow-createsalesorderstage-salesorderapp',\r\n container: '#generated-content',\r\n element: '#system-link',\r\n reflex: true,\r\n placement: 'bottom',\r\n title: 'Task Links',\r\n content: '

The same two links from the task we just looked at are also shown here.


Click the highlighted link, or press “Next”, to simulate opening the order entry application.

',\r\n onShow: function (tour, i) {\r\n var dfd = $.Deferred();\r\n\r\n // Wait for the page to load then trigger the drop down menu\r\n $.when(LoadTourPage(tour, i, '_StageCreateSalesOrderPartial')).then(\r\n function () {\r\n // Show the menu\r\n $('#dropdownMenu1-menu').css({ 'display': 'block' });\r\n\r\n dfd.resolve();\r\n\r\n return;\r\n });\r\n\r\n return dfd.promise();\r\n },\r\n onShown: function () {\r\n // Load the 'Sales Order Entry' image in anticipation of going to that next\r\n PreloadModelImage('E10%20Sales%20Order%20Screen1a.png');\r\n },\r\n onHide: function () {\r\n // Hide the menu\r\n $('#dropdownMenu1-menu').css({ 'display': 'none' });\r\n }\r\n },\r\n // Step 23: Showing Create Sales Order application\r\n {\r\n key: 'workflow-createsalesorderstage-drillup',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n placement: 'right',\r\n reflex: true,\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n prev: 21, /* As dropdown menu isnt visible otheriwse */\r\n content: '

We’ve finished looking at the ‘Sales Order Entry’ stage and the ‘Sales Process’ so click the button, or press “Next”, to go back to the ‘Indianapolis Factory’.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=E10%20Sales%20Order%20Screen1a.png&desc=Sales%20Order%20Entry&parentpagetitle=Indianapolis%20Factory');\r\n }\r\n },\r\n // Step 24: Showing Indianapolis factory overview\r\n {\r\n key: 'visualization-departments',\r\n container: '#generated-content',\r\n element: '#desks',\r\n placement: 'top',\r\n title: 'Departments',\r\n content: '

The factory overview diagram also includes desks in various departments to show how the various roles fit into the processes.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step 25: Showing Indianapolis factory overview get user to drill down by clicking sales dept\r\n {\r\n key: 'visualization-departments-sales',\r\n container: '#generated-content',\r\n element: '#salesoffice',\r\n reflex: true,\r\n placement: 'top',\r\n //prev: 23,\r\n title: 'The Sales Department',\r\n content: '

Let’s explore the roles and activites performed by the people in the sales department.

' +\r\n '

Click the highlighted link, or press “Next”, to drill down.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n },\r\n onShown: function () {\r\n // Load the 'Factory Sales Office' image in anticipation of going to that next\r\n PreloadModelImage('uuid_D630FEE6-3AB3-49B5-9CB8-3EBC8AAEC9BC_view_p0.png');\r\n }\r\n },\r\n // Step 26: Showing Indianapolis factory sales office\r\n {\r\n key: 'visualization-salesdepartment',\r\n container: '#generated-content',\r\n element: '#salespersonrole',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'What do staff do?',\r\n next: 31,\r\n hotspots: [\r\n { element: '#orderentryerp', step: 27 },\r\n { element: '#salesorderform', step: 28 },\r\n { element: '#linkedinprofile', step: 29 },\r\n { element: '#emailenquiry', step: 30 }],\r\n content:\r\n '

As well as links to XSOL content, links can direct the user to additional content such as public websites, intranet pages, documents etc. ' +\r\n 'Explore some optional links to things the sales people do by clicking on objects highlighted by blue stars, corresponding to the links that have been added to the diagram.

' +\r\n '

When you are ready to explore all the stages performed by the sales role click the orange hotspot or press “Next”

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactorySalesOfficePartial');\r\n },\r\n onShown: function () {\r\n // Load the images accessible from this page\r\n PreloadModelImage('Epicor%20Order%20Entry.jpg');\r\n PreloadModelImage('Sales%20Order%20Form.jpg');\r\n PreloadModelImage('email-sample.png');\r\n }\r\n },\r\n // Step 27: Showing ERP Order entry\r\n {\r\n key: 'vizualization-oneclickaccess-erpapplication',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the Sales Office',\r\n prev: 26,\r\n next: 26,\r\n content: '

Provide quick access to frequently used applications.


Click the button, or press “Next”, to return to the sales office.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=Epicor%20Order%20Entry.jpg&desc=Order%20Entry&parentpagetitle=Indianapolis%20sales%20office');\r\n }\r\n },\r\n // Step 28: Showing Sales Order Form\r\n {\r\n key: 'vizualization-oneclickaccess-document',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n placement: 'right',\r\n reflex: true,\r\n title: 'Return to the Sales Office',\r\n prev: 26,\r\n next: 26,\r\n content: '

Provide quick access to frequently used document.


Click the button, or press “Next”, to return to the sales office.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=Sales%20Order%20Form.jpg&desc=Order%20Entry&parentpagetitle=Indianapolis%20sales%20office');\r\n }\r\n },\r\n // Step 29: Showing Employee profile\r\n {\r\n key: 'vizualization-oneclickaccess-details',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the Sales Office',\r\n prev: 26,\r\n next: 26,\r\n content: '

Provide quick access to information about staff.


Click the button, or press “Next”, to return to the sales office.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=JohnPopup.png&desc=desc=John%20Blackham&parentpagetitle=Indianapolis%20sales%20office');\r\n }\r\n },\r\n // Step 30: Showing Email Form\r\n {\r\n key: 'vizualization-oneclickaccess-emailclient',\r\n container: '#tour-content',\r\n placement: 'absolute',\r\n top: 30,\r\n left: 30,\r\n prev: 26,\r\n next: 26,\r\n title: 'Provide quick access to send an email',\r\n content: '',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactorySalesOfficePartial');\r\n }\r\n },\r\n // Step 31: Showing sales role\r\n {\r\n key: 'workflow-salesrole',\r\n container: '#generated-content',\r\n placement: 'absolute',\r\n top: 20,\r\n left: '50%',\r\n title: 'Sales Person Role',\r\n content: '

As we saw earlier, roles are assigned to the stages in one or more processes. This enables a full picture of where each role is involved in each of the processes defined in the model. Essentially a job description for the role and a launch pad for users in the role to do their daily work.

',\r\n prev: 26,\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 32: Showing sales role and sales process stages\r\n {\r\n key: 'workflow-salesrole-salesprocess',\r\n container: '#generated-content',\r\n element: '#sales-process-stages',\r\n placement: 'bottom',\r\n title: 'Sales Process Work',\r\n content: '

Here we can see the stages the role has been assigned to in the ‘Sales Process’ process.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 33: Showing sales role highlighting 'receive sales request' stage\r\n {\r\n key: 'workflow-salesrole-receivesalesrequeststage',\r\n container: '#generated-content',\r\n element: '#receive-sales-request',\r\n reflex: true,\r\n reflexCssClass: 'tour-step-element-reflex',\r\n placement: 'right',\r\n title: 'Drill Down to the Stage',\r\n content: '

A person in the ‘Sales Person’ role can view information about the work they need to perform the ‘Receive Sales Request’ stage by drilling down. Click the link or press “Next” to view the stage.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 34: Showing 'receive sales request' stage\r\n {\r\n key: 'workflow-receivesalesrequeststage-drilluptorole',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n placement: 'right',\r\n reflex: true,\r\n autoscroll: true,\r\n title: 'Return to the ‘Sales Person’ Role',\r\n content: '

Here we see the same information for the stage as we did drilling down from the ‘Sales Process’.

' +\r\n '

Click the button or press “Next” to return to the ‘Sales Person’ role.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageReceiveSalesRequestPartial');\r\n }\r\n },\r\n // Step 35: Showing sales role highlighting 'create sales order' stage\r\n {\r\n key: 'workflow-salesrole-createsalesorderstage',\r\n container: '#generated-content',\r\n element: '#create-sales-order',\r\n reflex: true,\r\n reflexCssClass: 'tour-step-element-reflex',\r\n placement: 'right',\r\n title: 'Drill down to another Stage',\r\n content: '

Similarly they can view information about the work they need to perform the ‘Create Sales Order’, or any other stage, by drilling down. Click the link or press “Next” to view the stage.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 36: Showing 'create sales order' stage\r\n {\r\n key: 'workflow-createsalesorderstage-drilluptorole',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n placement: 'right',\r\n reflex: true,\r\n autoscroll: true,\r\n title: 'Return to the ‘Sales Person’ Role',\r\n content: '

Again we see the same information for the stage as we did drilling down from the ‘Sales Process’.

' +\r\n '

Click the button or press “Next” to return to the ‘Sales Person’ role.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 37: Showing sales role and customer returns stages\r\n {\r\n key: 'workflow-salesrole-customerreturnsprocess',\r\n container: '#generated-content',\r\n element: '#customer-returns-stages',\r\n placement: 'right',\r\n title: 'Customer Returns Work',\r\n content: '

Here we can see the stages the role has been assigned to in the ‘Customer Returns’ process.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 38: Showing sales person role\r\n {\r\n key: 'workflow-salesrole-drillup',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n placement: 'right',\r\n reflex: true,\r\n autoscroll: true,\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n content: '

We’ve finished looking at the ‘Sales Person’ role.

' +\r\n '

Click the button or press “Next” to return to the ‘Indianapolis Factory’ role.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 39: Showing Indianapolis factory overview external links\r\n {\r\n key: 'visualization-oneclickaccess-factory',\r\n container: '#generated-content',\r\n placement: 'absolute',\r\n top: 270,\r\n left: '50%',\r\n hotspots: [{ element: '#machining', step: 40 }, { element: '#shipping-website', step: 44 }, { element: '#machinesetup', step: 42 }, { element: '#qaform', step: 43 }, { element: '#shipping-company', step: 41 }],\r\n title: 'More Shortcut Links',\r\n content: '

Explore some of the additional content linked to this diagram by clicking on objects highlighted by blue stars. When you are ready to continue the tour press “Next”

',\r\n next: 45,\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n },\r\n onShown: function () {\r\n // Load the images accessible from this page\r\n PreloadModelImage('Machining%20SOP.png');\r\n PreloadModelImage('QA%20Inspection%20Form.png');\r\n }\r\n },\r\n // Step 40: Showing machining video\r\n {\r\n key: 'visualization-oneclickaccess-machiningvideo',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n prev: 39,\r\n next: 39,\r\n content: '

As the video is associated with an image of the machine the user can find this type of information very easily.


Click to return to the Indianapolis factory.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_VideoPartial', 'videoId=0nR-FZMqJog&desc=Machining%20Video&parentpagetitle=Indianapolis%20Factory%20Layout');\r\n }\r\n },\r\n // Step 41: Showing shipping website\r\n {\r\n key: 'visualization-oneclickaccess-shippingwebsite',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n prev: 39,\r\n next: 39,\r\n content: '

Accessing a suppliers website.


Click to return to the Indianapolis factory.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_WebsitePartial', 'url=https://www2.rlcarriers.com/freight/shipping/pickup-request&desc=Request%20A%20Pickup&parentpagetitle=Indianapolis%20Factory%20Layout');\r\n }\r\n },\r\n // Step 42: Showing machine setup form \r\n {\r\n key: 'visualization-oneclickaccess-machinesetupform',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n prev: 39,\r\n next: 39,\r\n content: '

Access frequently used documents such as machine setup instructions.


Click to return to the Indianapolis factory.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=Machining%20SOP.png&desc=Machine%20Setup%20Instructions&parentpagetitle=Indianapolis%20Factory%20Layout');\r\n }\r\n },\r\n // Step 43: Showing QA form \r\n {\r\n key: 'visualization-oneclickaccess-qaform',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n prev: 39,\r\n next: 39,\r\n content: '

Access frequently used forms or applications.


Click to return to the Indianapolis factory.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=QA%20Inspection%20Form.png&desc=QA%20Inspection%20Form&parentpagetitle=Indianapolis%20Factory%20Layout');\r\n }\r\n },\r\n // Step 44: Showing shipping company\r\n {\r\n key: 'visualization-oneclickaccess-shippingcompany',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to the ‘Indianapolis Factory’',\r\n prev: 39,\r\n next: 39,\r\n content: '

Access a website to make a pickup request.


Click to return to the Indianapolis factory.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_WebsitePartial', 'url=https://rlcarriers.com/&desc=Shipping%20Company%20Website&parentpagetitle=Indianapolis%20Factory%20Layout');\r\n }\r\n },\r\n // Step 45: Showing Indianapolis factory\r\n {\r\n key: 'visualization-factory-drillup',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Return to ‘Acme Inc.’',\r\n prev: 39,\r\n next: 2,\r\n content: '

We’ve finished looking at the ‘Indianapolis Factory’.

' +\r\n '

Click the button or press “Next” to return to ‘Acme Inc.’

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n\r\n\r\n\r\n\r\n // Step 44: Showing 'Create Sales Order' stage\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n placement: 'absolute',\r\n left: '50%',\r\n top: 325,\r\n title: 'Create Sales Order Stage',\r\n content: '

Here is the flow of activities/tasks the Sales Person must follow to complete the stage and allow the next stage or stages to be started by other people involved in the process.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 45: Showing 'Create Sales Order' stage\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#stage-notes',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Stage Notes',\r\n content: '

For this stage notes have added to the stage itself to give the viewer overall direction on creating sales orders.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 30: Showing 'Create Sales Order' stage\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#notes-example',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Activity/Task Notes',\r\n content: '

Additionally notes have been added for the first activity to provide specific instructions, plus an example of what the application to enter orders looks like.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 31: Showing 'Create Sales Order' stage\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#links-example',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Activity/Task Links',\r\n content: '

Finally there are links to relevant reference documention and a link to invoke the order entry application itself.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 32: Showing 'Create Sales Order' stage pointing to drop down menu\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#dropdownMenu1', \r\n reflex: true,\r\n autoscroll: true,\r\n placement: 'bottom',\r\n title: 'Flow Diagram Links',\r\n content: '

These same links can be included on flow diagrams to provide easy access to the relevant information and applications.


Click the in the diagram, or press “Next”, to see the links that have been defined for this activity/task.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 33: Showing 'Create Sales Order' stage with drop down menu showing\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#system-link',\r\n reflex: true,\r\n //autoscroll: true,\r\n placement: 'bottom',\r\n title: 'Task Links',\r\n content: '

The same two links from the task are shown here.


Click the highlighted link, or press “Next”, to simulate opening the order entry application.

',\r\n onShow: function (tour, i) {\r\n var dfd = $.Deferred();\r\n\r\n // Wait for the page to load then trigger the drop down menu\r\n $.when(LoadTourPage('_StageCreateSalesOrderPartial')).then(\r\n function () {\r\n $('#dropdownMenu1-menu').css({ 'display': 'block' });\r\n\r\n dfd.resolve();\r\n return;\r\n //return ShowDropdown('#dropdownMenu1');\r\n });\r\n\r\n return dfd.promise();\r\n },\r\n onHide: function () {\r\n $('#dropdownMenu1-menu').css({ 'display': 'none' });\r\n //return HideDropdown('#dropdownMenu1');\r\n }\r\n },\r\n // Step 34: Showing Create Sales Order application\r\n {\r\n key: '',\r\n element: '#back',\r\n placement: 'right',\r\n title: 'Go Back',\r\n prev: 32,\r\n content: '

Click to go back to the create sales order stage.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_DocumentImagePartial', 'image=E10%20Sales%20Order%20Screen1a.png&desc=Sales%20Order%20Entry');\r\n }\r\n },\r\n // Step 35: Showing Create Sales Order application\r\n {\r\n key: '',\r\n element: '#back',\r\n placement: 'right',\r\n title: 'Go Back',\r\n content: '

Click to go back to the create sales person role.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_StageCreateSalesOrderPartial');\r\n }\r\n },\r\n // Step 36: Showing Create Sales Order application\r\n {\r\n key: '',\r\n element: '#back',\r\n placement: 'right',\r\n title: 'Go Back',\r\n content: '

Click to go back to the sales office.

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleSalesPartial');\r\n }\r\n },\r\n // Step 37: Showing Create Sales Order application\r\n {\r\n key: '',\r\n element: '#back',\r\n placement: 'right',\r\n title: 'Go Back',\r\n content: '

Click to go back to the Indianapolis factory

',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactorySalesOfficePartial');\r\n }\r\n },\r\n\r\n\r\n // Step x: Showing Indianapolis factory overview get user to drill down by clicking sales dept\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#purchaseorder',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Drill down to the Purchasing Process',\r\n content: 'To view the flow for the purchasing process the user can click on a link added to the diagram.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step x: Showing factory overview get user to drill down by clicking purchasing\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#purchaseorder',\r\n reflex: true,\r\n placement: 'right',\r\n title: 'Drill down to the Purchasing Process',\r\n content: 'To view the flow for the purchasing process the user can click on a link added to the diagram.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step x: Showing purchasing process show general info\r\n {\r\n key: '',\r\n container: '#tour-content',\r\n placement: 'topright',\r\n title: 'Purchasing Process Information',\r\n content: 'More in-depth information about process workflow can be found in the separate \"Process Workflow\" tour but for now...',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessPurchasingPartial');\r\n }\r\n },\r\n // Step x: Showing purchasing process diagram\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#image15',\r\n autoscroll: true,\r\n placement: 'bottom',\r\n title: 'Process Flow Diagram',\r\n content: 'You can see the flow of work between participants in the process using ESL flow constructs, See more about ESL in the separate \"ESL Tour\".',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessPurchasingPartial');\r\n }\r\n },\r\n // Step x: Showing purchasing process notes\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#notes',\r\n autoscroll: true,\r\n placement: 'bottom',\r\n title: 'Custom Defined Notes',\r\n content: 'You can also see any number of custom defined notes for the process, in this case formatted as a table.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessPurchasingPartial');\r\n }\r\n },\r\n // Step x: Showing purchasing process flownodes\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#processflownodes',\r\n autoscroll: true,\r\n placement: 'top',\r\n title: 'Process Flow Node Detail',\r\n content: 'Followed by more information for each of the flow nodes including links to the relevant content.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessPurchasingPartial');\r\n }\r\n },\r\n // Step x: Showing purchasing process go back up to the factory overview\r\n {\r\n key: '',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'bottom',\r\n title: 'Navigate Back',\r\n content: 'Click to go back to the
Illinois factory overview.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_ProcessPurchasingPartial');\r\n }\r\n },\r\n // Step x: Showing Factory Overview for drill down to role\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#purchasing',\r\n reflex: true,\r\n placement: 'top',\r\n title: 'Purchasing',\r\n content: 'As well as linking to processes the user can link to roles.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_OverviewFactoryIndianapolisPartial');\r\n }\r\n },\r\n // Step x: Showing buyer role\r\n {\r\n key: '',\r\n container: '#tour-content',\r\n placement: 'topright',\r\n title: 'Role Participation',\r\n content: 'Roles assigned to the stages means for each role you get a full picture of where they are involved in each of the processes.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleBuyerPartial');\r\n }\r\n },\r\n // Step x: Showing buyer role - Starting processes\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#process-groups-for-initiation',\r\n placement: 'bottom',\r\n autoscroll: true,\r\n title: 'Processes the Role can start',\r\n content: 'These are links to processes the role can start.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleBuyerPartial');\r\n }\r\n },\r\n // Step x: Showing buyer role - participating processes\r\n {\r\n key: '',\r\n container: '#generated-content',\r\n element: '#process-groups-for-participation',\r\n placement: 'top',\r\n autoscroll: true,\r\n title: 'Stages that the Role participates in',\r\n content: 'These are links to the stages in processes the role participates in.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleBuyerPartial');\r\n }\r\n },\r\n // Step 18: Showing buyer role - go back up to the factory overview\r\n {\r\n key: '',\r\n container: function () {\r\n if (inFullscreenMode()) {\r\n return '#tour-content';\r\n }\r\n else {\r\n return 'body';\r\n }\r\n },\r\n element: '#parent',\r\n reflex: true,\r\n placement: 'bottom',\r\n title: 'Navigate Back',\r\n content: 'Click to go back to the
Illinois factory overview.',\r\n onShow: function (tour, i) {\r\n return LoadTourPage(tour, i, '_RoleBuyerPartial');\r\n }\r\n }\r\n ],\r\n /* Turn off auto scrolling as we are displaying on a scrolling 'page' within the main page */\r\n autoscroll: true, \r\n container: 'body',\r\n keyboard: true,\r\n debug: false, \r\n storage: false,\r\n orphan: true,\r\n duration: false,\r\n delay: false,\r\n reflexCssClass: 'tour-step-element-ring',\r\n template:\r\n '
' +\r\n '
' +\r\n '

' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n '' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
',\r\n onTrace: function (tour, step) {\r\n\r\n // Log an event to Application Insights giving details about the tour step displayed\r\n appInsights.trackEvent(\"TourStep\", { Name: tour._options.name, Step: step.key });\r\n }\r\n });\r\n\r\n // Add a reference to the tour variable on the body so we can interogate it later \r\n $('body').data('xs-tour', tour);\r\n\r\n // Start at the beginning by default \r\n var startAtStep = 0;\r\n\r\n // If a start key has been specified see if we can find the matching step and update the step to start with\r\n if (startAtStepKey) {\r\n // Find a step with a matching key\r\n for (var i = 0, len = tour._options.steps.length; i < len; i++) {\r\n if (tour._options.steps[i].key === startAtStepKey) {\r\n // Specify that we will start at this step\r\n startAtStep = i;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // When this script runs the page that hosts the tour is being loaded which means we came from a real URL\r\n // and dont need to push the URL to the browser history.\r\n tour.pushHistoryUrl = false;\r\n\r\n // Setup the tour to start at the appropriate step\r\n if (startAtStep !== 0) {\r\n // But when starting from a particular step we dont need to push the history URL\r\n tour.setCurrentStep(startAtStep);\r\n }\r\n\r\n // Initialize the tour\r\n tour.init();\r\n\r\n // Either start the tour straight away or handle the start button click\r\n if (autoStart) {\r\n // Start the tour\r\n if (tour.ended()) {\r\n tour.restart();\r\n }\r\n else {\r\n tour.start(true);\r\n }\r\n } else {\r\n // Hook up a handler onto the start tour button\r\n $('#tour-start').on('click', function (e) {\r\n e.preventDefault();\r\n\r\n if ($(this).hasClass('disabled')) {\r\n return;\r\n }\r\n $(this).addClass('disabled');\r\n\r\n if (tour.ended()) {\r\n tour.restart();\r\n }\r\n else {\r\n tour.start(true);\r\n }\r\n });\r\n }\r\n\r\n function ShowDropdown(dropdownId) {\r\n var dfd = $.Deferred();\r\n\r\n $(dropdownId).popover('show').on('shown.bs.popover', function () {\r\n dfd.resolve();\r\n });\r\n\r\n return dfd.promise();\r\n }\r\n\r\n function HideDropdown(dropdownId) {\r\n var dfd = $.Deferred();\r\n\r\n $(dropdownId).popover('hide').on('hidden.bs.popover', function () {\r\n dfd.resolve();\r\n });\r\n\r\n return dfd.promise();\r\n }\r\n\r\n // Load content for a tour page into the appropriate element\r\n function LoadTourPage(tour, i, pageName, params) {\r\n\r\n // Build up the history URL for the step\r\n var step = tour._options.steps[i];\r\n var historyUrl = '/tours/enduser';\r\n var pageTitle = 'Business Model Tour ';\r\n if (step.key && step.key.length > 0) {\r\n var path = step.key.replace(/-/g, '/');\r\n historyUrl += '/' + path;\r\n pageTitle += '- ' + path + ' ';\r\n }\r\n pageTitle += '• XSOL';\r\n var historyObj = { type: 'tour', name: tour._options.name, stepKey: step.key, stepIndex: i, pageTitle: pageTitle, url: historyUrl };\r\n\r\n // Dont load the page if the requested page is already loaded.\r\n // Note: Each step tries to load the page it uses so that going back to a previous or random\r\n // step will load to appropriate content.\r\n if (lastTourPageLoaded === pageName) {\r\n\r\n // Push an entry to the browser history so we can see the URL and come back if requested\r\n if (tour.pushHistoryUrl && supportsHistoryApi()) {\r\n history.pushState(historyObj, '', historyUrl);\r\n if (tour._options.debug) {\r\n console.debug('Push existing page: ' + historyObj.type + ', ' + historyObj.name + ', ' + historyObj.step + ', ' + historyUrl);\r\n }\r\n\r\n // Update the title of the page\r\n document.title = historyObj.pageTitle;\r\n\r\n // Log this as a page view so it appears in the analytics \r\n appInsights.trackPageView(historyUrl, document.URL);\r\n }\r\n\r\n return;\r\n }\r\n\r\n var url = '/tours/enduser/page/' + pageName;\r\n if (params) {\r\n url = url + '?' + params;\r\n }\r\n var dfd = $.Deferred();\r\n var tourContentDiv = $('#tour-content');\r\n\r\n if (tour._options.debug) {\r\n console.debug('XSOL: Set page loading..');\r\n }\r\n\r\n // Show loading...\r\n tourContentDiv.html('


Loading...

');\r\n\r\n // Load the page content\r\n tourContentDiv.load(url, function (response, status, xhr) {\r\n if (status === 'success' || status === 'notmodified') {\r\n if (tour._options.debug) {\r\n console.debug('XSOL: Page loaded');\r\n }\r\n\r\n // Remember the current page\r\n lastTourPageLoaded = pageName;\r\n\r\n // Manipulate the browser history if supported\r\n if (supportsHistoryApi()) {\r\n if (tour.pushHistoryUrl) {\r\n // Push an entry to the browser history so we can see the URL and come back if requested\r\n history.pushState(historyObj, '', historyUrl);\r\n }\r\n else {\r\n // Update the entry for the browser history adding state information so we can come back if requested\r\n history.replaceState(historyObj, '', historyUrl);\r\n }\r\n\r\n // Update the title of the page\r\n document.title = historyObj.pageTitle;\r\n\r\n // Add debug message\r\n if (tour._options.debug) {\r\n console.debug((tour.pushHistoryUrl ? 'Push' : 'Replace') + ' new page: ' + historyObj.type + ', ' + historyObj.name + ', ' + historyObj.step + ', ' + historyUrl);\r\n }\r\n }\r\n\r\n // For subsequent steps in this tour instance we need to push the history URL\r\n tour.pushHistoryUrl = true;\r\n\r\n // When in full screen mode adjust the position of the footer for 'short' pages\r\n if (inFullscreenMode()) {\r\n positionFooter();\r\n }\r\n\r\n // Scroll to the top of the page\r\n $('#tour-content').animate({ scrollTop: 0 }, 0, function () {\r\n if (tour._options.debug) {\r\n console.debug('XSOL: Page scrolled');\r\n }\r\n\r\n // Loading is done\r\n dfd.resolve();\r\n });\r\n } else {\r\n // Log an event to Application Insights \r\n appInsights.trackEvent(\"TourPageLoadFailed\", { PageUrl: url, Status: xhr.status, Response: xhr.responseText });\r\n\r\n // Page load failed so show an error\r\n $('#tour-content').html('


Page ' + pageName + ' for the visualization tour failed to load.
Please contact XSOL to report the issue.

');\r\n dfd.reject();\r\n }\r\n });\r\n\r\n // Return the promise to ensure the calling code waits\r\n return dfd.promise();\r\n }\r\n\r\n // For pages without much content we may need to push the footer to the bottom of the page\r\n function positionFooter() {\r\n var $footer = $('#generated-footer');\r\n\r\n if (($('#generated-content').children().innerHeight() + $footer.height()) < $('#generated-content').height()) {\r\n $footer.css({\r\n position: 'absolute'\r\n }).css({\r\n bottom: '0px'\r\n });\r\n } else {\r\n $footer.css({\r\n position: 'static'\r\n });\r\n }\r\n }\r\n\r\n // To help speed up navigation to the next page we can load the main image for the page into the cache\r\n function PreloadModelImage(src) {\r\n if (tour._options.debug) {\r\n console.debug('XSOL: Pre-load model image ' + src);\r\n }\r\n var image = new Image();\r\n image.src = '/Images/tour/model/' + src;\r\n }\r\n\r\n function ScrollToTopOfContent(elementId) {\r\n var dfd = $.Deferred();\r\n\r\n // If an element id is supplied then find its offset from the top\r\n var scrollPos = 0;\r\n var $element = $(elementId);\r\n if ($element.length === 1) {\r\n scrollPos = $element[0].offsetTop;\r\n }\r\n\r\n // Scroll so the element is displayed at the top\r\n $('#generated-content').animate({ scrollTop: scrollPos }, 600, function () {\r\n dfd.resolve();\r\n });\r\n\r\n return dfd.promise();\r\n }\r\n\r\n function ScrollToBottomOfContent() {\r\n var dfd = jQuery.Deferred();\r\n\r\n $('#generated-content').animate({ scrollTop: $('#generated-content')[0].scrollHeight }, 1200, function () {\r\n dfd.resolve();\r\n });\r\n\r\n return dfd.promise();\r\n }\r\n\r\n function browserSupportsFullscreen() {\r\n return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled;\r\n }\r\n\r\n function inFullscreenMode() {\r\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\r\n }\r\n\r\n function requestFullscreen(element) {\r\n var rfs = element.requestFullscreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen;\r\n if (typeof rfs !== 'undefined' && rfs) {\r\n rfs.call(element);\r\n } else if (typeof window.ActiveXObject !== 'undefined') {\r\n // for Internet Explorer\r\n var wscript = new ActiveXObject('WScript.Shell');\r\n if (wscript !== null) {\r\n wscript.SendKeys('{F11}');\r\n }\r\n }\r\n }\r\n\r\n function exitFullscreen() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n document.msExitFullscreen();\r\n }\r\n }\r\n\r\n function getFullscreenChangeEventName() {\r\n if (document.fullscreenEnabled) {\r\n return 'fullscreenchange';\r\n } else if (document.webkitFullscreenEnabled) {\r\n return 'webkitfullscreenchange';\r\n } else if (document.mozFullScreenEnabled) {\r\n return 'mozfullscreenchange';\r\n } else {\r\n return 'MSFullscreenChange';\r\n }\r\n }\r\n\r\n function keyboardEquivalentsText() {\r\n var shortcuts = '
,
Navigate backwards and forwards through the tour.
e
End the tour at it's current step.
';\r\n if (browserSupportsFullscreen())\r\n {\r\n shortcuts += '
Enter
Enter full screen mode.
Esc
Leave full screen mode.
';\r\n }\r\n\r\n return '

Keyboard shortcuts:

' + shortcuts + '
';\r\n }\r\n}\r\n);\r\n\r\n"]}