Office 365 – Sharepoint forms after infopath

By peter.stilgoe









Microsoft have announced the end of Infopath forms you can read here.

With this in mind its best to start thinking about building any future forms in upto date technologies:

1) Using the app model rolled out in 2013 / Office 365 using HTML5, CSOM, Jquery, REST

2) Access apps to create forms allowing you to create fairly complex forms (relationships, joins etc) See an example here

3) Excel surveys are quick easy way to create & report on basic question and answer forms which is now available in O365 –> Onedrive. Read about here

Share

Leggi tutto

Office 365: Onedrive for business – Sync issues

By peter.stilgoe









Office 365: Onedrive for business – Common sync issues

Onedrive for business – common sync issues

Share

categoriaOffice 365 commentoNo Comments dataSeptember 14th, 2014
Leggi tutto

Linux VPS performance test

By peter.stilgoe









Ramnode:

CPU model : Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz
Number of cores : 2
CPU frequency : 2600.065 MHz
Total amount of ram : 2048 MB
Total amount of swap : 256 MB
System uptime : 16:00,
Download speed from CacheFly: 87.0MB/s
Download speed from Coloat, Atlanta GA: 12.0MB/s
Download speed from Softlayer, Dallas, TX: 46.6MB/s
Download speed from Linode, Tokyo, JP: 10.9MB/s
Download speed from i3d.net, Rotterdam, NL: 4.08MB/s
Download speed from Leaseweb, Haarlem, NL: 15.1MB/s
Download speed from Softlayer, Singapore: 12.6MB/s
Download speed from Softlayer, Seattle, WA: 93.9MB/s
Download speed from Softlayer, San Jose, CA: 59.5MB/s
Download speed from Softlayer, Washington, DC: 12.2MB/s
I/O speed : 592 MB/s

1and1:

CPU model : AMD Opteron(tm) Processor 6386 SE
Number of cores : 3
CPU frequency : 2800.000 MHz
Total amount of ram : 4096 MB
Total amount of swap : 128 MB
System uptime : 21:22,
Download speed from CacheFly: 11.8MB/s
Download speed from Coloat, Atlanta GA: 2.59MB/s
Download speed from Softlayer, Dallas, TX: 2.77MB/s
Download speed from Linode, Tokyo, JP: 3.46MB/s
Download speed from i3d.net, Rotterdam, NL: 9.04MB/s
Download speed from Leaseweb, Haarlem, NL: 6.42MB/s
Download speed from Softlayer, Singapore: 1.71MB/s
Download speed from Softlayer, Seattle, WA: 3.20MB/s
Download speed from Softlayer, San Jose, CA: 4.18MB/s
Download speed from Softlayer, Washington, DC: 5.07MB/s
I/O speed : 24.6 MB/s

OVH (Located in Europe):

Download speed from CacheFly: 11.8MB/s
Download speed from Coloat, Atlanta GA: 3.99MB/s
Download speed from Softlayer, Dallas, TX: 4.29MB/s
Download speed from Linode, Tokyo, JP: 1.32MB/s
Download speed from i3d.net, Rotterdam, NL: 2.39MB/s
Download speed from Leaseweb, Haarlem, NL: 3.04MB/s

OVH (Located North America):

Download speed from CacheFly: 1.25MB/s
Download speed from Coloat, Atlanta GA: 347KB/s
Download speed from Softlayer, Dallas, TX: 177KB/s

Note: If you are considering a VPS from 1and1, I could not use it for my project, kept getting these errors -

-bash: fork: Cannot allocate memory

You can read about other people having problems with 1and1 VPS’s & resource limits here

Share

categoriaVPS commentoNo Comments dataAugust 14th, 2014
Leggi tutto

Sharepoint 2010 Search Refinement Panel: Some refiners tool tips are bank or empty

By peter.stilgoe









Implemented the Sharepoint search refinment panel on a Sharepoint 2010 enterprise search center.

The content for this search center was tagged using both standard Sharepoint column types and some managed metadata columns.

What I noticed was that when you hover over some of the refiners on the refinement panel the tooltip would display as expected eg. ‘Refine by: Form’ but for others the tooltip would display without the term, it would just display as ‘Refine by:’

This seems like a bug to me, the fix for this is to modify the XSLT of the refinement panel webpart, edit the webpart & replace the OOTB XSLT:

<a href="{$SecureUrl}" title="{$RefineByHeading}: {$UrlTooltip}">
<xsl:value-of select="Value"/>
</a>

With the following:

<a href="{$SecureUrl}" title="{$RefineByHeading}: $UrlTooltipAdjusted}">
<xsl:value-of select="Value"/>
</a>  

<xsl:variable name="UrlTooltipAdjusted">
 <xsl:call-template name="format-tooltip">
 <xsl:with-param name="tooltip" select="$UrlTooltip" />
 <xsl:with-param name="string" select="Value" />
 </xsl:call-template>
</xsl:variable>  

<xsl:template name="format-tooltip">
 <xsl:param name="tooltip" />
 <xsl:param name="string" />
 <xsl:choose>
 <xsl:when test="$tooltip != ''">
 <xsl:value-of select="$tooltip" />
 </xsl:when>
 <xsl:otherwise>
 <xsl:value-of select="$string" />
 </xsl:otherwise>
 </xsl:choose>
</xsl:template>

Now the refiners should display in all tooltips as expected in the refinement panel.

When googling this I could only find a single person blogging about this which suggests the problem may only occur in very special circumstances, however if you are facing the issue the above will fix it.

Thanks to: http://www.itidea.nl/index.php/empty-tooltip-in-refinement-panel/

Share

Leggi tutto

XSL: How to combine multiple onclick events in XSL

By peter.stilgoe









How to combine multiple onclick events in XSL:

<xsl:attribute name="onclick">
   <xsl:value-of select='concat("javascript:window.open(","&apos;",link,"&apos;,&apos;newwin&apos;,&apos;left=50,top=150,width=812,height=450,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No&apos;);")' />
	_gaq.push(['_trackEvent', 'Feature Image', 'click', '<xsl:value-of select="ga_id"/>']);
</xsl:attribute>

Share

Leggi tutto

Sharepoint 2010: How to allow duplicate column display names

By peter.stilgoe









Through the Sharepoint GUI if you try & enter a display name for a column that already exists, you will get an error message saying a column already exists with that name, choose another name.

To get round this once you are on either the fldnew.aspx or fldedit.aspx page, enter the below in the address bar of your browser:

javascript:g_FieldName={};alert('ok');

This will disable the validation on that page & allow you to create column names with the same display names as existing columns.

Not that you should ever want to! But can come in handy when trying to carry out remedial things done on the platform before your time!

Share

Leggi tutto

Sharepoint 2010: How to copy a Sharepoint page with all webparts included

By peter.stilgoe









How to copy a Sharepoint page with all webparts included:

1) Open the site in SharePoint Designer 2010 & browse to the ‘Pages’ library

2) Create a ‘Temp’ folder

3) Right click the page you want to copy and select ‘Copy’

4) ‘Paste’ the page into the ‘Temp’ folder

5) Rename the page & copy it back to your ‘Pages’ library

Now open the page in your browser, you should see an exact copy of your original page inclusing all webparts.

Share

Leggi tutto

Sharepoint: How to create a url to force a document to download instead of open

By peter.stilgoe









In Sharepoint if you need to create a URL to a document or image and force it to download instead of displaying, use a URL like:

http://spsite/_layouts/download.aspx?SourceUrl=http://spsite/Images/image1.jpg

Share

Leggi tutto

Stock trading: Always trade your plan

By peter.stilgoe









- Market in confirmed up trend

- Breakout from solid base with 40%+ increase in volume

- Quarterly earnings 25% +

- Return on equity (ROE) 17% +

- Relative strength rising

- Qtrs rising sponsorship 3+

- Tight hard stop loss $2

- Dont trade in 1st 15 minutes of market opening

- Leave emotions at the door

Share

categoriaStockmarket commentoNo Comments dataFebruary 2nd, 2013
Leggi tutto

Sharepoint 2010: Bulk edit Sharepoint list items using Powershell

By peter.stilgoe









Change a single Sharepoint list item (with a known ID):

$SPAssignment = Start-SPAssignment
$SPWeb = Get-SPWeb http://yourintranet/sitename -AssignmentCollection $spAssignment
$SPList = $SPWeb.Lists["Contacts"]
$SPItem = $SPList.GetItemById("982")
$SPItem["Company"] = "New value"
$SPItem.Update()
Stop-SPAssignment $SPAssignment

Change multiple Sharepoint list items (with a known field value)

$SPAssignment = Start-SPAssignment
$SPWeb = Get-SPWeb http://yourintranet/sitename -AssignmentCollection $spAssignment
$SPList = $SPWeb.Lists["Contacts"]
$SPItems = $SPList.Items | Where { $_["Company"] -eq "Old value" }
foreach($item in $SPItems){
$item["Consultant"] = "New value"
$item.Update()
}
Stop-SPAssignment $SPAssignment

Share

Leggi tutto

Sharepoint 2010 – Solution stuck on Retracting

By peter.stilgoe









On our Sharepoint 2010 Dev farm we we’re trying to remove solutions from Central Admin & they were just stuck on ‘retracting’

Turns out the the Sharepoint Timer Service had stopped, start the Sharepoint Timer Service and your solutions should start to retract as expected.

Share

Leggi tutto

How to format a date field in a CQWP

By peter.stilgoe









To format a date field in a Sharepoint Content Query Webpart (CQWP) you can do the following:

1) Edit your itemstyle.xsl

2) Add a reference to

xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"

3) Now you can use the following syntax to format your date

xsl:value-of select="ddwrt:FormatDate(@field, 2057, 3)"/>

4) Save your itemstyle.xsl & your date should be formatted

Share

Leggi tutto

Sharepoint 2010: Add top link navigation bar to Enterprise Search Center

By peter.stilgoe









The Enterprise Search Center in Sharepoint 2010 uses the minimal.master masterpage which doesn’t have any navigation meaning that if you dont find the search result you’re looking for you cant easily navigate away from the site.

To add the top links navigation bar, edit the masterpage & find:

<div>
<asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server" />
</div>

Above the

<div>

paste in the below code:

<!-- Add to minimal.master before the div containing PlaceHolderTitleBreadcrumb to add top navigation to Enterprise Search Center -->
<div class="s4-lp s4-toplinks" style="padding-top:5px; padding-bottom:5px; background-image:url(/_layouts/images/selbg.png); background-repeat:no-repeat;
background-color:#f6f6f6; vertical-align:middle; min-height:25px; border-top:1px solid #e0e0e0;
border-bottom:1px solid #b8babd">
    <asp:ContentPlaceHolder id="PlaceHolderTopNavBar" runat="server">
    <h2 class="ms-hidden" style="width: 14px; height: 14px">
    <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,topnav_pagetitle%>" EncodeMethod="HtmlEncode"/></h2>
            <asp:ContentPlaceHolder id="PlaceHolderHorizontalNav" runat="server">
<SharePoint:AspMenu
  ID="TopNavigationMenuV4"
  Runat="server"
  EnableViewState="false"
  DataSourceID="topSiteMap"
  AccessKey="<%$Resources:wss,navigation_accesskey%>"
  UseSimpleRendering="true"
  UseSeparateCss="false"
  Orientation="Horizontal"
  StaticDisplayLevels="2"
  MaximumDynamicDisplayLevels="1"
  SkipLinkText=""
  CssClass="s4-tn"/>
<SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" Id="topNavigationDelegate">
    <Template_Controls>
        <asp:SiteMapDataSource
          ShowStartingNode="False"
          SiteMapProvider="SPNavigationProvider"
          id="topSiteMap"
          runat="server"
          StartingNodeUrl="sid:1002"/>
    </Template_Controls>
</SharePoint:DelegateControl>
                        </asp:ContentPlaceHolder>
                </asp:ContentPlaceHolder>
</div>

Share

Leggi tutto

Infopath: Repeating Table outputs as one long string with no delimiters

By peter.stilgoe









In an Infopath form I was using a repeating table to collect a random number of external users email addresses. The repeating section worked fine in collecting the email addresses but when you came to do anything with the data they were captured as one long string with out any delimiters.

My repeating table was called ‘ExternalUsers’ with a repeating field called ‘ExternalEmailAddress’. To solve this problem I added another text field called ‘ExternalEmailDelimited’.

Then on ‘ExternalEmailDelimited’ I added a default value as FX:

substring(eval(eval(ExternalEmailAddress[. != ""], 'concat(";", .)'), ".."), 2)

I also added a Set Field Value rule on ‘ExternalEmailDelimited’ as FX:

substring(eval(eval(ExternalEmailAddress[. != ""], 'concat(";", .)'), ".."), 2)

Now my repeating table works as normal but I have the email addresses outputted in a hidden field called ‘ExternalEmailDelimited’ which had each email address delimited by a “;” and thus is now usable in Sharepoint, Workflows etc etc

Share

Leggi tutto

SharePoint 2010 CSS Reference Chart

By peter.stilgoe









An excellent resource Sharepoint 2010 CSS reference chart

Sharepoint 2010 CSS Reference Chart

Share

Leggi tutto

Sharepoint: DVWP BCS Webpart Error while executing web part: System.InvalidProgramException: Common Language Runtime detected an invalid program

By peter.stilgoe









Came in this morning and had an error on some of our pages displaying external data using business connectivity services in Sharepoint 2010. This was strange as its been working fine for months & as far as I was aware nobody had been doing any work on this.

The error in the Sharepoint logs was:

Error while executing web part: System.InvalidProgramException: Common Language Runtime detected an invalid program

In our case running an IIS reset on our Sharepoint Web Front End servers fixed the problem.

#glitch

Share

Leggi tutto

K2 Blackpearl Blackpoint Error: Unable to modify workflow : Server did not recognize the value of HTTP Header SOAPAction

By peter.stilgoe









In K2 Blackpearl / Blackpoint We were getting the following error when publishing a workflow:

Unable to modify workflow : Server did not recognize the value of HTTP Header SOAPAction: SourceCode.SharePoint.WebServices/ScheduleModifyWorkflow.

After contacting K2 support they advised this error occurs if the K2 Server and SharePoint components are on different versions. I reapplied the latest K2 update to all the Sharepoint servers in the farm & the problem is now fixed.

Share

Leggi tutto

Sharepoint: Assign a welcome page to a teamsite with publishing NOT enabled

By peter.stilgoe









In Sharepoint you cannot assign a new welcome page via site settings unless the publishing feature is enabled. However you can do this programmatically using the following code:

using (SPSite _siteCollection = new SPSite("http://Sharepoint/MyTeamSite")) {
    using (SPWeb _site = _siteCollection.RootWeb) {
        SPFolder _rootFolder = _site.RootFolder;
        _rootFolder.WelcomePage = "Pages/NewWelcomePage.aspx";
        _rootFolder.Update();
    }
}

Share

Leggi tutto

Facebook kit for Sharepoint

By peter.stilgoe









Facebook kit for Sharepoint

The Facebook Kit for SharePoint (FKS) provides your end users with many great SharePoint web parts that leverage the Facebook Connect API. These Facebook web parts will provide great “Social” value to you sites, and will help connect your employees to each other!

The FKS infrastructure helps minimize the steps to get Facebook Connect social functionality into your SharePoint sites by deploying many of the dependancies via a feature, making it easily consumable by your end users!

http://philwicklund.com/freeware/fks/

Share

Leggi tutto

Sharepoint Skype status field

By peter.stilgoe









Sharepoint Skype status field: Allows to create a column that shows the current Skype status of the entered account name. Great for extending the presence information.

- possibility to configure the field to display small skype status icon
- possibility to decide the behaviour after clicking on the status (chat, call, account information etc)

http://skypestatusfield.codeplex.com/

Share

Leggi tutto