<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://blog.outonsite.co.uk/blog/rss/xslt"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>OutOnSite Blog</title>
    <link>https://blog.outonsite.co.uk/blog</link>
    <description>Welcome to the OutOnSite Blog</description>
    <generator>Articulate, blogging built on Umbraco</generator>
    <item>
      <guid isPermaLink="false">1435</guid>
      <link>https://blog.outonsite.co.uk/posts/resolving-issue-with-dropdowns-not-working-on-android-devices</link>
      <title>Resolving issue with dropdowns not working on Android devices</title>
      <description>&lt;h2&gt;The problem&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;There's a bug affecting some Android devices which stops some of the dropdown fields such as the "Job Status" one from working within our Job Sheet App. The issue has been identified as being caused by a recent update to the "Google Chrome" App.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;img id="__mcenew" style="border: 1px solid #000000; display: block; margin-left: auto; margin-right: auto;" src="https://blog.outonsite.co.uk/media/1157/screenshot_20230607-183718_outonsite.jpg?width=300&amp;amp;height=617" alt="" width="300" height="617" data-udi="umb://media/9cdb6293080c4567969840a5e2345732" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Workaround&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;We are working on a more permanent fix which will require a new version of our Job Sheet App to be released but in the meantime you can work around this issue by uninstalling the latest updates to the "Chrome" App on your Android device as per instructions below.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;span&gt;Uninstall updates for Chrome App&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Run through the following steps to uninstall updates to "Chrome" on your Android device (screenshot instructions available below):&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Open the &lt;strong&gt;Google Play Store&lt;/strong&gt;, search for "Chrome" then click to open the app store listing.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1161/screenshot_20230607-193452_google-play-store.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/b5929f12ec32429a9004410210f6ca6b" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Click the 3 dots in the top right hand corner.&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1160/screenshot_20230607-183803_google-play-store.jpg?width=321&amp;amp;height=660" alt="" width="321" height="660" data-udi="umb://media/8d8d9903ac6b47e99d8ca787c8aa8a02" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Uncheck &lt;strong&gt;"Enable auto-update"&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1155/screenshot_20230607-183814_google-play-store.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/ebb9ea63ea164d4a8a4e7cc525e87f8b" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Open the &lt;strong&gt;Settings&lt;/strong&gt; App.&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1158/screenshot_20230607-183849_one-ui-home.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/780f7cf1be494e07967d9823497998d1" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Scroll down and select &lt;strong&gt;Apps&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1152/screenshot_20230607-183853_settings.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/8752c136dbef47059e7ad8692795337a" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Scroll down and select &lt;strong&gt;Chrome&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1156/screenshot_20230607-183905_settings.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/d03d605a9fa8491c9ba56e6c458710b6" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Click the 3 dots in the top right hand corner.&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1159/screenshot_20230607-183914_settings.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/6c5d110bfdf24948a56ef2d1c7b502c4" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Click &lt;strong&gt;Uninstall updates&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1153/screenshot_20230607-183925_settings.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/f01756ec745a43e990c5761dcc3a1d67" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Click &lt;strong&gt;Ok&lt;/strong&gt; on the message that appears&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" style="border: 1px solid #000000; display: block; margin-left: auto; margin-right: auto;" src="https://blog.outonsite.co.uk/media/1154/screenshot_20230607-183934_package-installer.jpg?width=320&amp;amp;height=658" alt="" width="320" height="658" data-udi="umb://media/28965766283140b9a2a98ae9c72dd1c1" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Now that the most recent updates to Google Chrome have been uninstalled the issue with the dropdown lists not working in our Job Sheet App should be resolved.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
      <pubDate>Wed, 07 Jun 2023 18:42:12 Z</pubDate>
      <a10:updated>2023-06-07T18:42:12Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1424</guid>
      <link>https://blog.outonsite.co.uk/posts/resolving-the-android-13-keyboard-glitch-fixing-jumping-and-line-break-issues-within-text-editors-on-samsung-devices</link>
      <title>Resolving the Android 13 Keyboard Glitch: Fixing Jumping and Line Break Issues within text editors on Samsung Devices</title>
      <description>&lt;h2&gt;The problem&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;There's a bug affecting Samsung devices like the Samsung Galaxy S22 and S23 Ultra that are running the Android 13 operating system, where the text editor exhibits unusual jumping behaviour and line breaks appear randomly within the text. This bug is caused by a problem with the Samsung Keyboard, which is the default keyboard on Samsung devices.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Confirmation of the problem from other sources&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;The bug has been reported by users on both the Samsung and Android forums (links below) and so far, there's no update from Samsung regarding when it will be fixed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://us.community.samsung.com/t5/Galaxy-S22/Keyboard-Jumping-on-Samsung-S22-Ultra/td-p/2433198" target="_blank"&gt;https://us.community.samsung.com/t5/Galaxy-S22/Keyboard-Jumping-on-Samsung-S22-Ultra/td-p/2433198&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://support.google.com/android/thread/197178297/screen-view-jumping-to-bottom-all-apps-both-phone-tablet-both-physical-screen-kboards" target="_blank"&gt;https://support.google.com/android/thread/197178297/screen-view-jumping-to-bottom-all-apps-both-phone-tablet-both-physical-screen-kboards&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This bug affects multiple applications and web pages with people even reporting that it affects built in features on the phone such as the notes section of the Samsung Contacts app. Unfortunately our Job Sheet App is also affected by this bug.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Workaround&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;As a workaround until Samsung fixes the bug with the Samsung Keyboard, we recommend switching to &lt;strong&gt;Gboard&lt;/strong&gt;, which is Google's keyboard and is the default keyboard for non-Samsung Android devices.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;span&gt;Changing to use Gboard&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Run through the following steps to switch to &lt;strong&gt;Gboard&lt;/strong&gt; instead of the Samsung keyboard (screenshot instructions available below):&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Play Store&lt;/strong&gt; App on your phone.&lt;/li&gt;
&lt;li&gt;Search for "&lt;strong&gt;Gboard&lt;/strong&gt;" and install it.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Open the &lt;strong&gt;Gboard&lt;/strong&gt; app and follow the on-screen instructions.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;To enable &lt;strong&gt;Gboard&lt;/strong&gt; in your phone's Language &amp;amp; input settings, tap the&lt;span&gt; &lt;/span&gt;&lt;strong&gt;Enable in Settings&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;button within the &lt;strong&gt;GBoard&lt;/strong&gt; App.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Turn on the &lt;/span&gt;&lt;strong&gt;Gboard&lt;/strong&gt;&lt;span&gt; toggle switch and tap &lt;/span&gt;&lt;strong&gt;OK&lt;/strong&gt; in the popup that is shown&lt;span&gt;.&lt;/span&gt;
&lt;div class="article__gallery single-image"&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Tap the&lt;span&gt; &lt;/span&gt;&lt;strong&gt;back&lt;span&gt; &lt;/span&gt;&lt;/strong&gt;icon in the upper-left corner to continue the process.&lt;/li&gt;
&lt;li&gt;Tap&lt;span&gt; &lt;/span&gt;&lt;strong&gt;Select input method&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;and select&lt;span&gt; &lt;/span&gt;&lt;strong&gt;Gboard&lt;/strong&gt;.&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt; &lt;br /&gt;&lt;span&gt;Now that you've switched to &lt;strong&gt;Gboard&lt;/strong&gt;, the strange jumping behavior and line break issues should be resolved in our Job Sheet App and any other affected apps or websites when using your Samsung phone.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Screenshots&lt;/h2&gt;
&lt;p&gt;Below are some screenshots showing the steps for switching to &lt;strong&gt;GBoard&lt;/strong&gt; as your default keyboard:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Install &lt;strong&gt;Gboard&lt;/strong&gt; from the &lt;strong&gt;Play Store&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1148/gboard-step1.png" alt="" data-udi="umb://media/0991d6ae88cb4cfaafac3f02f65f8349" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Open the &lt;strong&gt;Gboard&lt;/strong&gt; App&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1147/gboard-step2.png" alt="" data-udi="umb://media/8dff0f5b625645d3ae3b1df922cded44" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Tap &lt;strong&gt;Enable In Settings&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1146/gboard-step3.png" alt="" data-udi="umb://media/361fff05577b409d99345bc84f2757cc" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Toggle &lt;strong&gt;Gboard&lt;/strong&gt; setting on&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1145/gboard-step4.png" alt="" data-udi="umb://media/d7344d9e10484591933bf2ff82e7deba" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Select &lt;strong&gt;OK&lt;/strong&gt; on the popup&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1144/gboard-step5.png" alt="" data-udi="umb://media/cd09b738df39443eb521424a3ef8afe7" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Go back to the &lt;strong&gt;Gboard&lt;/strong&gt; app&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1143/gboard-step6.png" alt="" data-udi="umb://media/bacd385e16814f3eb5c09f4b7f5d2cb9" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Tap &lt;strong&gt;Select Input Method&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1142/gboard-step7.png" alt="" data-udi="umb://media/98fd2f3bcebb4fdca88495903a757b62" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Select the &lt;strong&gt;GBoard&lt;/strong&gt; option&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1150/gboard-step8.png" alt="" data-udi="umb://media/d6c43b482384405bb75fdb89410a95ff" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Once you have finished &lt;strong&gt;Gboard&lt;/strong&gt; should be showing&lt;br /&gt;as your default keyboard in the &lt;strong&gt;Keyboard list and default&lt;/strong&gt; page &lt;br /&gt;within your &lt;strong&gt;Settings&lt;/strong&gt; app&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" style="display: block; margin-left: auto; margin-right: auto;" src="https://blog.outonsite.co.uk/media/1149/gboard-step9.png" alt="" data-udi="umb://media/4e380cd1fc6d49a5b11b632db1c2043a" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
      <pubDate>Fri, 10 Feb 2023 21:05:12 Z</pubDate>
      <a10:updated>2023-02-10T21:05:12Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1411</guid>
      <link>https://blog.outonsite.co.uk/posts/connect-from-azure-web-app-to-azure-sql-database-in-another-region-using-private-link</link>
      <title>Connect from Azure Web App to Azure SQL Database in another region using Private Link</title>
      <description>&lt;p&gt;If you have an Azure web app that is in one Azure region but you want to connect to a SQL database in another Azure region privately and you do not want to enable public access to the Azure SQL server then one way this can be achieved is by using a Private Link.&lt;/p&gt;
&lt;p&gt;This can be useful if you want to have a region with another instance of your web app setup and ready that can be used in a failover scenario.&lt;/p&gt;
&lt;p&gt;Assuming that you have already setup the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Azure SQL server in primary region.&lt;/li&gt;
&lt;li&gt;Vnet in primary region.&lt;/li&gt;
&lt;li&gt;Azure SQL in primary region firewall locked down to not allow public access (i.e. only access via your Vnet).&lt;/li&gt;
&lt;li&gt;Azure Web App in secondary region.&lt;/li&gt;
&lt;li&gt;Vnet in secondary region.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You now need to create a Private Link where you will select the secondary region in the subscription settings but select the primary SQL server in the resource settings and then select the secondary VNet in the configuration settings (screenshots below).&lt;/p&gt;
&lt;p&gt;Full details of this setup can be found in the following Microsoft documentation but the part that can be a little bit confusing is point 3a in the "Deploy this scenario" section where you actually create the private link in the secondary region which I have explained below: &lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/azure/architecture/example-scenario/sql-failover/app-service-private-sql-multi-region" target="_blank"&gt;https://docs.microsoft.com/en-us/azure/architecture/example-scenario/sql-failover/app-service-private-sql-multi-region&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a new private endpoint and select your secondary resource group (the one for the region that doesn't contain the SQL server you are trying to connect to). It is best practice to have resources from different regions in their own resource group (according to Microsoft, see extract from Microsoft documentation below).&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1139/same-resource-group.png" alt="" data-udi="umb://media/31de2e749481480b84dd939dbb4b02fc" /&gt;&lt;/p&gt;
&lt;p&gt;Give the private endpoint a name bearing in mind that this endpoint will actually show up in the SQL server on the primary region so it is good to differentiate it from the private endpoint you probably already have there that any local (i.e. local region) web apps connect through.&lt;/p&gt;
&lt;p&gt;Select the region that contains your Web App you are trying to connect from (i.e. secondary region).&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1136/step1.png" alt="" data-udi="umb://media/7ac9cfb22a374511a900db3c44747caa" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Select the "Resource type" as "Microsoft.Sql/Servers" and then select the SQL server in the primary region (i.e. the Sql server you are trying to connect to from the secondary region).&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1137/step2.png" alt="" data-udi="umb://media/d086ad8bd45b4c6e8c1bdad4d0cbc484" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Select the "Virtual network (Vnet)" in your secondary region (i.e. the region containing the web app you will be connecting from).&lt;/p&gt;
&lt;p&gt;Select the "PrivateLinkSubnet" in the secondary region.&lt;/p&gt;
&lt;p&gt;Leave all the other settings as default like in the screenshot below.&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" style="border: 1px solid #000;" src="https://blog.outonsite.co.uk/media/1138/step3.png" alt="" data-udi="umb://media/cfa44c4b75874946901e4f638dd60bda" /&gt;&lt;/p&gt;
&lt;p&gt;You can now create this endpoint, what you will find is that this new endpoint will show up under "Private endpoint connections" on the SQL server in the primary region, it will also show up in the Vnet in your secondary region (i.e. the one with your web app) under "Connected devices" with an IP address from your secondary region Vnet IP range, the instructions on the Microsoft documentation linked above mentions in step 3c under "Deploy this scenario" about adding an A record into the DNS but this appears to have already been done so it should now work and you can connect to the SQL database in your primary region from a web app in the secondary region.&lt;/p&gt;</description>
      <pubDate>Mon, 21 Jun 2021 14:26:50 Z</pubDate>
      <a10:updated>2021-06-21T14:26:50Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1381</guid>
      <link>https://blog.outonsite.co.uk/posts/how-small-business-job-scheduling-software-can-improve-efficiency</link>
      <title>How Small Business Job Scheduling Software can Improve Efficiency</title>
      <description>&lt;p&gt;No matter what industry you operate in, the efficiency and productivity of your workforce is a key component to your success. If you’ve noticed a drop in either of these areas, the fault might not lie with your team, but with whether they are being managed effectively.&lt;br /&gt;&lt;br /&gt;&lt;a data-udi="umb://document/637aa11e0c6849c5b3855ee2e7166171" href="#" title="Job Management Software"&gt;Job scheduling software&lt;/a&gt;, such as Webfletch Business Manager, could be the exact solution you need to handle your efficiency concerns. Here are just a few ways that quality job scheduling software can help your small business.&lt;/p&gt;
&lt;h3&gt;Prevent employee fatigue&lt;/h3&gt;
&lt;p&gt;Job scheduling software lets you see at a glance which employees are doing what. You can see which members of staff are taking on the most jobs, the lengthiest jobs, and so on. This allows you to distribute the incoming work most effectively, reducing the risk of overworking any members of your team.&lt;/p&gt;
&lt;h3&gt;Less time spent scheduling&lt;/h3&gt;
&lt;p&gt;The main attraction of job scheduling software is that it reduces the time you have to spend actually scheduling. The old way of keeping a calendar or diary and sending email, phone, or text updates to your field team could take hours of your working week. With a program like Webfletch Business Manager, the scheduling is handled at the same time that you approve the job. You add the details of the job, assign it to a member of staff and it is populated immediately to the calendar and your main dashboard. This saves you time that could be more usefully spent elsewhere in the business.&lt;/p&gt;
&lt;h3&gt;Easy-to-handle changes&lt;/h3&gt;
&lt;p&gt;With job scheduling software you can re-assign a job at the click of a button and know that your team are made aware of the changes in real-time. This helps you to streamline your field team. If a member of staff is dealing with a job in a certain location and another one crops up that could be fitted in the same day, you can do it then and there. Likewise, if a member of the team calls in sick, you can reassign instantly, ensuring their replacement has all the information they need on their job sheet, even at the last minute.&lt;/p&gt;
&lt;h3&gt;Planning for the future&lt;/h3&gt;
&lt;p&gt;Job scheduling software can also show you where your company is headed in the immediate future. It can show a reasonable approximation of you cash flow based on invoices sent out, as well as future work based on quotes accepted. This allows you to plan for the future – taking on temporary staff where need, or financing the growth of your business.&lt;br /&gt;&lt;br /&gt;If you’re a business looking to improve the efficiency of your team, then sign up today to the Webfletch Business Manager and take advantage of our free, 30-day, no-obligation trial.&lt;/p&gt;</description>
      <pubDate>Tue, 05 May 2020 10:15:54 Z</pubDate>
      <a10:updated>2020-05-05T10:15:54Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1350</guid>
      <link>https://blog.outonsite.co.uk/posts/what-is-the-best-job-management-software</link>
      <title>What is the best job management software?</title>
      <description>&lt;div class="formatted_content"&gt;
&lt;div&gt;When it comes to choosing job management software for your business, there’s an awful lot of competition out there. With such a large array of software solutions, contract models, service packages and more to wade through, choosing the best can be difficult?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;So, what makes the best job management software for you and your team?&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;Easy-to-use&lt;/h3&gt;
This is key. Your job management software is going to be used by nearly every member of your company, whether they work in the board room or out in the field. You need a solution that can be easily understood and operated by all your team, even those who might be less tech-savvy than the others.&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;Flexible&lt;/h3&gt;
There are some job management solutions that are tailored to a specific industry or sector. Whilst this might seem to make some sense, it’s rarely a good idea. For a start, it restricts future growth – many companies (either through choice or necessity) diversify their skill set as they expand, offering more to their clients. With a tightly-regimented job management software, you can find yourself having to reinvest in a new software solution. Likewise, if you’re working with sub-contractors and freelancers, you need the flexibility to account for their unique work roles within your team.&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;Contract-free&lt;/h3&gt;
In any business, circumstances can change at the drop of a hat. What works for you right now, might not do following a major restructure, merger, or similar change to the corporate landscape. Being tied in to a long-term contract might not only stifle future growth, but also result in wasted money should the time come to stop using it.&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;Try before you buy&lt;/h3&gt;
Job management software is a major investment and rarely something you can get to grips with in a matter of hours. When choosing your solution, you need one that offers a free trial period – one that lets you immerse yourself in the software. Ideally, this trial should involve no exchange of financial details, and no obligation to purchase. After all, if the product is all that they say it is, neither of those is necessary.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;At Webfletch, we are widely considered one of the best job management software solution providers on the market. We fulfil all of the above requirements and more and have a client base consisting of hundreds of satisfied customers. For more information, or to sign up for a free, 30-day trial, &lt;a data-udi="umb://document/212b668c5db04128b15292da6ecf6dce" href="#" title="Contact"&gt;get in touch&lt;/a&gt; with us today.&lt;/div&gt;
&lt;/div&gt;</description>
      <pubDate>Thu, 27 Feb 2020 10:44:35 Z</pubDate>
      <a10:updated>2020-02-27T10:44:35Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1338</guid>
      <link>https://blog.outonsite.co.uk/posts/webfletch-business-manager-discount-code</link>
      <title>WebFletch Business Manager discount code</title>
      <description>&lt;p&gt;We are currently offering a 20% discount off the subscription price for the first 6 months of your subscription. To get this offer you need to enter the following discount code when signing up for a free trial and subscribe before 31/12/2019.&lt;/p&gt;
&lt;p&gt;You can sign up for your free trial here: &lt;a href="/"&gt;https://crm.webfletch.co.uk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The discount code for 20% off is: &lt;strong&gt;20OFF6&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 19 Oct 2019 17:27:32 Z</pubDate>
      <a10:updated>2019-10-19T17:27:32Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1325</guid>
      <link>https://blog.outonsite.co.uk/posts/filter-sharepoint-calendar-view</link>
      <category>SharePoint Development</category>
      <title>Filter SharePoint Calendar view</title>
      <description>&lt;p&gt;Okay, so the plan here is to create a filter for a single SharePoint calendar making it easy to colour code the events and filter based on a calendar column. This is not using multiple calendars or calendar overlays, this is for a single calendar, for example, a calendar for booking out meeting rooms or pool cars.&lt;/p&gt;
&lt;p&gt;Below is an example of the finished SharePoint calendar with the colour coded filters added. Clicking on one of the calendar filters will filter the calendar for that particular event type/resource making it easier to read.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1099/sharepoint-calendar-filter.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1099/sharepoint-calendar-filter.jpg?width=800" alt="Sharepoint calendar filter" data-udi="umb://media/bdcb2b91b40e4d74b26ea5182a59c76e" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So as you can see the calendar looks nice and colourful and it is easy to see which events relate to which event type/resource. The following image shows what happens when you select one of the filters (the example below shows "Event Type 4" selected).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1100/sharepoint-calendar-filtered.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1100/sharepoint-calendar-filtered.jpg?width=800" alt="Sharepoint calendar filtered" data-udi="umb://media/dd171d083c52402dbbc31f1f23a11021" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now you can see what the finished calendar filters look like let's get started on making it work.&lt;/p&gt;
&lt;h2&gt;Step 1 - Create an event type column&lt;/h2&gt;
&lt;p&gt;The first thing to do is create a column for your event type/resource. This is what you want to filter your calendar on, so for example, if you were creating a calendar for booking out meeting rooms you would call this column "Meeting room". This column needs to be of type "Choice" and it probably best to set this so that it is mandatory. Add the choices available in the box provided and save the column when you are ready.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1098/sharepoint-calendar-column.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1098/sharepoint-calendar-column.jpg" alt="Sharepoint calendar column" data-udi="umb://media/268cf2b358cc454291a511f27fe71ccd" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step 2 - Create a calculated column&lt;/h2&gt;
&lt;p&gt;Now this is the clever part that makes the whole thing work, you now need to create a "Calculated column" that will combine the column you created in step 1 and also the column that contains the information you want to show on the calendar, in this example we have used the standard "Title" column.&lt;/p&gt;
&lt;p&gt;In the formula box you need to combine the columns with a separator that we will apply changes to later on using Jquery. The separator we have used is three pipes "|||" so the formula we need is as follows &lt;strong&gt;="|||"&amp;amp;[Event Type]&amp;amp;"|||"&amp;amp;Title&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1096/sharepoint-calculated-column.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1096/sharepoint-calculated-column.jpg" alt="Sharepoint calculated column" data-udi="umb://media/058b17a598b747c0bbdb03123f8f643c" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step 3 - Edit calendar view to show the calculated column&lt;/h2&gt;
&lt;p&gt;What we need to do now is edit the "Calendar" view so that it shows the new calculated column. We need to change the "&lt;strong&gt;Month View Title&lt;/strong&gt;", "&lt;strong&gt;Week View Title&lt;/strong&gt;" and "&lt;strong&gt;Day View Title&lt;/strong&gt;" to our newly created calculated column, in this example it will be "EventTypeTitle". Then change the "&lt;strong&gt;Week View Sub Heading&lt;/strong&gt;" and "&lt;strong&gt;Day View Sub Heading&lt;/strong&gt;" to the other column you want to show on those views, we have used "Event Type".&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1097/sharepoint-calendar-change-view.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1097/sharepoint-calendar-change-view.jpg?width=800" alt="Sharepoint calendar change view" data-udi="umb://media/3e1e5a19bd3c41059019bdd392ffd21c" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you now looked at the calendar after saving your new view you would notice it looks a bit odd because it will be showing a combination of two columns with the separator as well but don't worry because we are going to add some Jquery to automatically replace this with the correct colour and text.&lt;/p&gt;
&lt;h2&gt;Step 4 - Create the Jquery/HTML file and add it to your SharePoint site&lt;/h2&gt;
&lt;p&gt;This is where the magic happens, you now need to create a HTML file (yes HTML, not JS), where you will add the HTML to show the filters and the Jquery to make it all work. I'm not going to explain every part of the code in detail, but the basics are as follows. &lt;/p&gt;
&lt;p&gt;We have a variable called "calendarObjects" at the top where you must add the same options you added to the column in step 1 (these must be entered exactly as you did above as this is case sensitive), you also add the HEX value for the colour of the filter. There is probably a clever way in SharePoint you could automatically pull these through so that your script doesn't have to be updated when you add a new event type so please &lt;a rel="noopener noreferrer" data-udi="umb://document/212b668c5db04128b15292da6ecf6dce" href="#" target="_blank" title="Contact"&gt;contact me&lt;/a&gt; if you have a good solution for this.&lt;/p&gt;
&lt;p&gt;The rest of the script can be left as it is, what happens is when the calendar loads it finds the events on the page, splits them with the separator and determines which colour to set them as, then it shows the second part of your calculated column as the actual title for the event.&lt;/p&gt;
&lt;p&gt;When you click on a filter it hides all the other events and just shows the events that match what you clicked, it also expands any days that have multiple events (you will notice on the first image above that we have some days that show "x more items").&lt;/p&gt;
&lt;p&gt;You can download the HTML file as a .txt below. All you need to do is edit it to add your own variables at the top and change it from a TXT file to a HTML file before you upload it to SharePoint.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" data-udi="umb://media/545ac9250d4a4af0ab7ddb5af33c617a" href="https://blog.outonsite.co.uk/blog/media/1104/calendar-script.txt" target="_blank" title="calendar-script.txt"&gt;Download the HTML calendar script file here&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step 5 - Add the script to the calendar page&lt;/h2&gt;
&lt;p&gt;Now that you have created your HTML file, you first need to put it somewhere it can be accessed, the easiest option is probably to create a library in SharePoint called "Scripts" and copy the file to there. Be sure to give it a name that relates to your current calendar because if you have multiple calendars you want to add filters for you will need a HTML file for each one with the relevant event types/resources variable.&lt;/p&gt;
&lt;p&gt;Once you have the HTML file uploaded you need to add it to the Calendar page. To do this you need to "edit" the calendar page, then click "Add a Web Part".&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1102/edit-page-add-web-part.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1102/edit-page-add-web-part.jpg?width=800" alt="Edit page add web part" data-udi="umb://media/1cd8e18b73724ff389d6e507b15d9ee8" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now select "Media and Content" in the "Categories" section and choose "Content Editor".&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1101/add-content-editor.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1101/add-content-editor.jpg?width=800" alt="Add content editor" data-udi="umb://media/c1e522718b124d529247412b3a369904" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hover over the newly added Web Part and click the little arrow in the top right-hand corner, then edit the web part, in the Content Editor add the location to your HTML file in the "Content Link" field. You may also want to edit the appearance to hide the title and border of this Web Part.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1103/script-conent-link.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1103/script-conent-link.jpg?width=800" alt="Script content link" data-udi="umb://media/ca78687b4008438ca54ac13a75995e1a" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then click "OK" and stop editing your page and as if by magic your Calendar filters should now be showing and you can filter your events.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1099/sharepoint-calendar-filter.jpg" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt; &lt;img src="https://blog.outonsite.co.uk/media/1099/sharepoint-calendar-filter.jpg?width=800" alt="Sharepoint calendar filter" data-udi="umb://media/bdcb2b91b40e4d74b26ea5182a59c76e" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Any questions or if anyone has some great ideas of how this can be improved then &lt;a rel="noopener noreferrer" data-udi="umb://document/212b668c5db04128b15292da6ecf6dce" href="#" target="_blank" title="Contact"&gt;contact us&lt;/a&gt; to let us know.&lt;/p&gt;</description>
      <pubDate>Fri, 14 Jun 2019 21:27:30 Z</pubDate>
      <a10:updated>2019-06-14T21:27:30Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1320</guid>
      <link>https://blog.outonsite.co.uk/posts/application-insights-causing-high-cpu-100-on-azure-web-app</link>
      <category>Software Development</category>
      <title>Application insights causing high CPU 100% on Azure Web App</title>
      <description>&lt;p&gt;So recently we noticed that we were having spikes in the CPU on our Azure Web App plan and spent some time looking into it to try and find the root cause. We have 4 Web Apps running with our App Plan and narrowed down which one was causing the spikes (it was our main application). The CPU spikes were often hitting 100% and they were enough to cause our autoscale to kick in and scale out our App Plan to another instance to cope with the load.&lt;/p&gt;
&lt;p&gt;The strange thing was that these spikes were sometimes occurring at times when the load of the application should be quite low (i.e. out of regular working hours). We raised a ticket with Azure support and managed to help identify the Web App causing the spikes (which we already knew) and gave us some suggestions for how to try and debug the issue. Their suggestions included running "Proactive CPU Monitoring" and "Collect .NET Profiler Trace" from the Diagnostic Tools in our web application.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1091/diagnostic-tools.png" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1091/diagnostic-tools.png?width=800" alt="Diagnostic tools" data-udi="umb://media/b0d2ded119d943eca72a1b5c9a673319" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We looked through the dump and logs files these tools produced but couldn't find any concrete evidence as to what in our application could be causing the spikes. So we decided to turn to Application Insights, were we getting hit by bots? Were we under some sort of attack? Who knows, but we through Application Insights to the rescue which should show us what is going on at the time of the CPU spikes.&lt;/p&gt;
&lt;p&gt;So we started going through the Application Insights data looking at around the time of the high CPU to see if we could see something in our code that could be triggering it. We found that around the time of each CPU spike there was the following "Trace" showing in Application Insights.&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1092/application-insights-profiler-started.png?width=636" alt="Application insights profiler started" data-udi="umb://media/e61d157fea6440398b5d5bb52d737a04" /&gt;&lt;/p&gt;
&lt;p&gt;This event seems to be related to Application Insights Profiler functionality which collects profiling traces to help you see where time is spent in code. Could it be that Application Insights, the tool we were using to try and debug our high CPU problem was actually the cause of it or was this just a coincidence?&lt;/p&gt;
&lt;p&gt;Well, we decided to try changing the Application Insights Collection Level from the "Recommended" setting to the "Basic" setting which turns off some of the functionality including the "Profiler" feature.&lt;/p&gt;
&lt;p&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1095/collection-level-basic.png?width=707" alt="Collection level basic" data-udi="umb://media/a0045f696ef144cca2ef8a7ec5c502f7" /&gt;&lt;/p&gt;
&lt;p&gt;We monitored the CPU of our Azure Web App over the next few days and here are the results.&lt;/p&gt;
&lt;p&gt;The screenshot below shows the average CPU of our Web App Plan from Wedneday to Saturday the week before we made the changes to the Application Insights Collection Level. As you can see there are two hugh spikes in CPU where it is running at 100% Wednesday evening and another one during the day on Thursday, also there are various spikes during any given day where the CPU hits around 60%.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1094/azure-high-cpu.png" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1094/azure-high-cpu.png?width=800" alt="Azure high CPU" data-udi="umb://media/82bac4853e53472f99f4f38ce6f597ba" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The next screenshot below shows the CPU average of our Web App from Wednesday to Saturday the following week, we made the change to the Application Insights settings Wednesday evening (you can see the obvious reduction in CPU from this point onwards).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.outonsite.co.uk/blog/media/1093/application-insights-100-cpu.png" class="highslide" onclick="return hs.expand(this, { slideshowGroup: 1 })"&gt;&lt;img id="__mcenew" src="https://blog.outonsite.co.uk/media/1093/application-insights-100-cpu.png?width=800" alt="Application insights 100 CPU" data-udi="umb://media/2677bfaf90e84d1c96c25e49167768b7" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It seems quite clear that changing the Application Insights settings have made a huge difference on our CPU. The features of Application Insights are great and no doubt very useful for most people but it seems if you are trying to keep the cost low for your Azure App Plan and don't need all the features turned on all the time then I would definitely consider changing the Collection Level to Basic. &lt;/p&gt;</description>
      <pubDate>Mon, 03 Jun 2019 14:16:12 Z</pubDate>
      <a10:updated>2019-06-03T14:16:12Z</a10:updated>
    </item>
  </channel>
</rss>