Google

23 September 2014

Create SharePoint 2013 Hotspot Image

SharePoint logo In earlier versions of SharePoint you could create a hotspot image directly in SharePoint Designer, but from SharePoint Designer 2013 this possibility has been removed. But you can still use hotspot images in SharePoint 2013, and in a new tutorial in the SharePoint links series I show how to do it.

Hotspot image, HTML map
Images that link different areas to different destinations have several names: hotspot images, HTML maps or map images. "Map" comes from a common use for such images – maps where you can click on countries or towns to get mer information.

One such image with clickable regions can replace several text links or buttons on a SharePoint page, and with a good design it makes the page look better. My design in the demo below might not be optimal, but I hope it serves its purpose: to show how to add a hotspot image to SharePoint 2013.
SharePoint hotspot image
Get the code
In the demo below I use SharePoint Designer 2010 to create the hotspots in an image that shows the names of different SharePoint subsites. Regretfully it is not possible to create such images in the 2013 version of SharePoint Designer.

Hotspot or map images can also be created in other ways, but whichever method you use, you need the image HTML code to add the image to a SharePoint 2013 page. Once you have the code, you can just paste it into the page in edit mode.

Image changes
If you have good knowledge of HTML, you may of course also write the code directly in the SharePoint page, but for many SharePoint administrators it is easier to take the first code from SharePoint Designer 2010 or another editor.

Once you have the code in place on the SharePoint page, you only need basic HTML skills to change it. You don't have to create a new image each time you want to change a link, for example. You can just go into edit mode again and change the link directly in the code on the SharePoint page, just like you do with other links.

SharePoint links series
The tutorial about adding a hotspot image to SharePoint 2013 is the last one of those I planned on SharePoint links, but suggestions on more subjects are always welcome. All the demos are published with step by step instructions in the kalmstrom.com Tips section.

By Peter Kalmström
CEO and Systems Designer
kalmstrom.com Business Solutions

19 September 2014

English Proficiency Proof - 10/10

Duolingo score 10 Although I am Swedish, important parts of my professional and personal life have been spent in English speaking environments. I feel comfortable with my English language, but for curiosity I took a test to have an objective rating, to see how good – or bad! – I really am. The result was flattering!

TOEFL iBT
This was not my first English exam. When I came back to Sweden after a year as an exchange student in Pennsylvania, USA, I took the TOEFL iBT test, which is a test for non-native English language speakers who want to  study at U.S. universities. My score was very high, and that made me feel confident I could pursue a career where English proficiency would be necessary.

Duolingo
Duolingo is a platform for language learning and translation. From this year Duolingo offers English exams that they claim relate very well to tests like TOEFL. The tests are taken online, and via a web camera a human proctor makes sure that no assistance is received. It took me only about 20 minutes to get my proof of proficiency.

Practical use most important
With all due deference to exams, the real test of language skills is the practical use. For my own sake, I don't care about the exam at all. I know that I can manage all situations in English, my second language.

However, some potential customers might think there will be a language problem when they see that kalmstrom.com is a Swedish company. I hope they will not hesitate anymore when they read this. Some Swenglish might sneak into my speech even if it does not do so in an exam situation, but there will never be a problem with the understanding.
Proficiency certificate

The Doulingo statement
The text under Language Status in the certificate above reads as follows:

"Expert. Can understand virtually anything heard or read, even intellectually demanding material such as an academic lecture or a book on philosophy. Can use the language fluently and spontaneously in a way that can even be more advanced than an average native speaker."

Next step is to reach the same excellence in Spanish!
Peter Kalmström
CEO and Systems Designer
kalmstrom.com Business Solutions

18 September 2014

Faster kalmstrom.com Solutions In Shared Mailboxes

HelpDesk OSP logotypeToday we have released an update of HelpDesk OSP, the kalmstrom.com Solution that makes it possible to create SharePoint list items directly from Outlook. For users who have HelpDesk OSP installed in a shared mailbox this is an important update, as it makes both Outlook and HelpDesk OSP faster.

Cached Exchange Mode
Exchange logotypeWhen Outlook is configured to use Cached Exchange Mode, it works from a local copy of each user's Microsoft Exchange mailbox. The mailbox is stored in an offline .ost file on the user's computer and is updated periodically from the Exchange Server.

Cached mode is the default setting, and most organizations prefer to use it as the alternative, Online Mode, will slow down the Outlook performance. This has been a problem to kalmstrom.com, because some of our solutions require Online Mode when they are installed in a shared mailbox.

Problem solved!
Now our clever Lead Developer, Jayant Rimza, has found a solution to the problem. He has figured out a way to make our products work also with the Cached Mode, and now when his idea has been tested we know that it works well.

HelpDesk OSP is the first Outlook add-on to have the new resolution implemented. Before release our developers also fixed a two minor bugs that only affected a few users.

More updates
Calendar Browser icon Two more of our products has the same issue with Cached Exchange Mode and shared mailbox installation as HelpDesk OSP, and we will of course implement the resolution there too. We will soon update our resource booking solution Calendar Browser and our add-on for issue tracking, Folder HelpDesk.
Folder HelpDesk logo
Soon users with shared mailbox installations of these two kalmstrom.com Solutions will be able to switch to Cached Mode and thus get a faster Outlook.

Upgrade
kalmstrom.com upgrade iconIf your organization uses HelpDesk OSP with a shared mailbox I recommend you to upgrade your installation. Upgrades are always included in the kalmstrom.com Subscriptions, just like support.

Try
kalmstrom.com download iconDo you need a solution that can convert Outlook e-mails into SharePoint list items? Or do you want to be able to create SharePoint list items directly from Outlook? In that case I hope you want to download HelpDesk OSP for Outlook and SharePoint and evaluate it for 30 days.

By Peter Kalmström
CEO and Systems Designer
kalmstrom.com Business Solutions

16 September 2014

SharePoint Archive Solution - First Test Version

SP Archive for SharePoint logotype Today I welcome my mother, Kate, to the blog. She is responsible for the kalmstrom.com documentation and has just tried the first version of SP Archive, our new solution for SharePoint list archiving. Here she will tell you how it is used.
Kate Kalmstrom image
In an earlier blog post Peter wrote about his idea for a new solution that would archive SharePoint list items. Now the development is in its final phase, and the responsible developer, Jitu Patidar, has given me the first version to try and comment.

Backup or clean lists, libraries and calendars
SP Archive can be used with all kinds of lists – common lists but also libraries and calendars, because technically they are lists too. There is a checkbox for removal of the archived items, so SP Archive can be utilized either as a backup tool or for cleaning SharePoint lists without having to delete items when lists get too long.

SharePoint list limit
SharePoint has a list limit of 5000 items, and when you exceed it you will get problems. This is especially important to know if you are using Office 365 SharePoint Online, as it gives less control than other versions.

Because of this list limit you have to clean long lists either you want to do it or not. List items can often be archived with a workflow, and we have instructions on how to do that in the kalmstrom.com Tips section. However, with a workflow you can never decide in detail what should be archived. SP Archive gives you that possibility.

Choose site, list, field and item
SP Archive can send items from all kinds of SharePoint lists to a database, and you can select in detail exactly what to archive. The selection is made in several steps, but of course you don't have to make them all each time you archive:
  1. SharePoint site
  2. SharePoint list
  3. List fields to be included
  4. Items to be included
When you only use SP Archive for one list and always include the same list fields, you only have to make the fourth selection each time.

Settings and Archive dialogs
When you open SP Archive you will see a window with buttons for Archive and Settings. In the Settings dialog you can add or remove sites and lists. Once you have added a site or list to the settings, you can go to the Archive dialog and make your selection on what to archive.

Next time you will open the Archive dialog directly and only use the Settings when you want to change something that concerns the sites or lists.

My first impression of SP Archive is very good. It is easy to understand and use, and I think many organizations will find it helpful. Now I will make sure that everything is documented in time for the release, which should not be too far away.

Kate Kalmstrom
Sales and Marketing
kalmstrom.com Business Solutions

11 September 2014

SharePoint Dynamic JavaScript Loading

SharePoint logotype Two weeks ago we published a blog post written by kalmstrom.com Lead Developer Jayant Rimza, where he described several solutions to the JavaScript problem that occurs with SharePoint 2013 Minimal Download Strategy.

That post has been so popular that we decided to create a SharePoint development entry in the kalmstrom.com Tips section. We hope our developers will contribute with more tips in the future. There you can find the SharePoint MDS and JavaScript article now, and the post below is also published in the Tips section. Once again Jayant "holds the pen", this time to explain how to best load JavaScript files in SharePoint:

Jayant Rimza photo When you are coding SharePoint using JavaScript, you need to load JavaScript files, and SharePoint offers multiple ways to do that. The major methods are to register the file on a page, to always load the file by using the SharePoint CustomAction in Module and to load the file on demand by using the Script on Demand function. This is valid for all SharePoint versions.

When a JavaScript file is registered on a page it is only available for that page, and this normally works good.
The problem comes when you are modifying the SharePoint ribbon using CustomAction and your CustomAction requires multiple JavaScript files. Then there are two loading methods available, to always load the files or to load them on demand.

 It is not good to always load JavaScript files. It will slow down the entire SharePoint performance, because it loads the JavaScript files on every SharePoint page and most often you do not need them all. You might only need them when a page is loaded or custom actions are executed.

JavaScript Always Loaded
Here I will first explain how to always load JavaScript or JavaScript code blocks. By using this method you can write check or condition when you want to load other JavaScript files.
JavaScript logo
From SharePoint CustomAction in Module you can register a JavaScript file and the file will be loaded in the entire SharePoint site. Only use this method when you really need to use the file all over SharePoint.

You can use this code to check condition and load other JavaScript files. You can use below code to register JavaScript in entire site:

<CustomAction
    Location="ScriptLink"
    ScriptSrc="/mymodule/js/myjavascriptfile.js" Sequence="100">

ScriptSrc is the Path of the JavaScript file.
You can directly write a block of JavaScript using CustomAction of the SharePoint module.

<CustomAction
    Location="ScriptLink"
    ScriptBlock="alert('script block loaded');"
    Sequence="100"> 
 

 Script on Demand 

SharePoint provides a function to load JavaScript on Demand (“SP.SOD”). By Script on Demand you can load a JavaScript file by a SharePoint function, and it will provide a callback to execute code when the JavaScript file is loaded. This is a good approach to load JavaScript files and improve overall SharePoint performance. 

There are three steps to load a script on demand: first add “notify script” at the end of the dynamic load JavaScript file, then register the file and finally execute the load function.
  1. SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs
    At the end of the file that is going to load dynamically you need to add this line of code:

     SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs("myjavascriptfile.js");

    The Argument in the function "myjavascriptfile.js" is the key for that file. It does not have to be a file name, I only used the filename to avoid confusion. This key should be the same when you register the dynamic loading file and execute the load function.

    The key should be different for different JavaScript files, because internally SharePoint stores them in associate array with this key and value as path.
  2.  SP.SOD.registerSod
    This function is used to register the file for the Script on Demand that you want to load later.

    var thisUrl = "";

            if (_spPageContextInfo.webServerRelativeUrl !== "/") {
                thisUrl = _spPageContextInfo.webServerRelativeUrl;
            }
    SP.SOD.registerSod("myjavascriptfile.js", thisUrl + "/mymodule/js/ myjavascriptfile.js");

    SP.SOD.registerSod accepts two arguments, the key for the file and its SharePoint path. This function registers the file in the SharePoint memory so that it will be loaded dynamically.
  3.  SP.SOD.executeFunc
    Use this function when you want to load the JavaScript file and execute the method.

    SP.SOD.executeFunc(“myjavascriptfile.js”, functionName, fn);
     
    function fn(){
            alert(“my JavaScript file loaded dynamically”);       
    }

    This SharePoint function accepts three arguments: the key, the name of the function and the callback function that is executed after the file has been loaded. The key should be the same that you used in the method “SP.SOD.registerSOD”. (You can pass null into the second argument, because it is not mandatory. I always pass null in SP.SOD.executeFunc(“myjavascriptfile.js”, null, fn)

    Note that the callback function “fn” should not be in the file that is going to load. Instead it should be in the file or block that is loading the JavaScript file. After this callback function you can use all functions and variables of the dynamic loaded JavaScript File.

Summary
  • Do not always load all your files in SharePoint using CustomAction. It will slow down SharePoint performance.
  • You can load files when they are needed by SOD at event, button click, page load etc.
  • First add a line at the end of the JavaScript file that will notify SharePoint that the file is loaded completely: SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs("key");
  • Register the file using the function SP.SOD.registerSod("key", “jspath");
  • Use executeFunc to load the file when needed. This method executes a callback function once the loading is done by SharePoint: SP.SOD.executeFunc(“key”, null, callback);
  • In all three steps to load the files dynamically, the key must be the same as for the JavaScript file.

Jayant Rimza
Lead Developer
kalmstrom.com Business Solutions