The Future of SharePoint Server

I came across an interesting article by Cameron Dwyer. In it he looks at the future of the SharePoint brand. As any SP admin knows, Microsoft has been really pushing the cloud-based technology of the 365 suite, which currently includes a limited version of SharePoint.

I’m still on the fence when it comes to cloud-based technologies. I just have a feeling that it’s too much like a car which can ONLY be repaired at an authorized dealership. I’m old-school IT – I want to be able to pop the hood and change the oil if needed.

At any rate, take a look at Cameron’s post and see what you think – he makes some very valid observations.

Is the SharePoint brand going away?

Advertisements

Replace SharePoint 2013 Branding Text

One of the more annoying things in SP 2013 (for me, at least) is the new branding text in the upper left corner. By default it simply says “SharePoint”, which IMO reinforces a bad user habit – referring to their sites as “SharePoint” instead of whatever the site is actually called. When your company has 50 sites all built on SharePoint, it quickly gets annoying to hear “SharePoint is down.” or “I can’t get to SharePoint.” That’s like saying “Word is down” because one document won’t open. Instead I usually train my users to refer to the site by its title (i.e. – “Company Intranet Portal”, “HR Department Site”, etc.) to differentiate it from any other SP sites I might be responsible for.

Replacing the branding text can be done, but it’s generally a pain and there’s no obvious straight-forward way of doing it. Several custom themes that you can download or purchase have the text removed or replaced, but there don’t seem to be many articles on HOW to replace it if you want to.

brandingtext
Once the page renders, this is actually just a plain DIV with the word “SharePoint” in it. So what I did is write a quick jQuery script that replaces that DIV with my own content, then called that script in the header of my custom master page (you ARE using a custom master page and not modifying the original, right?). Now not only can I put what I want there, I can also style it how I want using the custom class I inserted when I replaced the DIV. Here’s the script – just save it as “branding.js” or whatever you want, put it in your site collection’s style/script library, then call it in your custom master:


$(function(){

$('.ms-core-brandingText').replaceWith('<div class="ms-core-brandingText"><span class="ms-core-brandingTagline">powered by</span> SharePoint 2013</div>');

});

Simple Accordion Quick Launch

A frequent request is to have the Quick Launch menu in SharePoint expand & collapse like the tree view. This “accordion” style menu can be achieved through various methods using JavaScript and/or jQuery. One of the better scripts I’ve found for this comes from Sanna Marilka over at Bordering.NET. The script did almost everything I wanted right off the bat, but it needed a few slight alterations. The first issue was that if you clicked on a link inside the already-expanded category, the category closed instead of following the link. Brendan Horner posted a fix for that in the comments on the page, so the version below has that fix included.

The second issue is that with the fixed version of the script, the father span (ie – category link) could no longer be independently styled. So to fix that, I ended up adding the class to the actual anchor tag instead of the span under it. Now you can apply styling to the parent categories. In my example below, I’m simply adding a bullet icon to the background of the categories that have children items. Continue reading

R.I.P. InfoPath

If you haven’t heard, Microsoft announced a while back that InfoPath was going away. We’re 2/3 of the way through the year so far, and still no concrete word on what will replace it, or even if we’ll be able to migrate existing InfoPath forms. John Liu has collected some good links regarding the fiasco on his blog at the link below.

http://johnliu.net/blog/2014/2/1/infopaths-future-and-what-everyones-saying.html

Personally, I think Microsoft is shooting themselves in the foot here. They’ve spent years trying to convince people to use InfoPath for electronic forms, and now that it’s finally somewhat mainstream, they’re pulling the plug with no clear replacement in sight yet. Unless they come out with something outstanding that migrates well, I have a feeling that a lot of clients will be hanging onto SharePoint 2010 or 2013 a lot longer than they would otherwise simply for InfoPath support.

So far it seems like existing InfoPath functionality will be divided up into various Office products like Access & Word, although some functionality is going away for good. We’ll have to wait and see what they’re cooking up, but I’m not optimistic.

 

 

Color coding on a SharePoint 2013 Calendar

A common request from users is that calendar entries can be color coded for easy visual identification. SharePoint offers a limited version of this with the calendar overlay functionality. I say “limited” because you can only color by calendar or category, and you can only pick from the dozen or so colors offered in the drop-down. Mark Wilson, however, has offered a much better solution – one that lets you use any colors you want AND any string or choice column on the item. The solution is simple to implement, too – it’s just a calculated field you add to your list items and a text file you put somewhere on your site. The text file contains both the CSS styles and the JQuery script used in the solution, so it’s fully customizable for anyone who knows how.

Here’s a link to Mark’s post on the solution, with download links:

http://www.planetwilson.co.uk/sharepoint-2013-colour-calendar-v2/

SharePoint: Refreshing the page after you close a modal dialog

SharePoint 2010 introduced the modal popup dialog – many settings & features open a nice-looking dialog window rather than changing your current location or opening a whole new window like they did in previous versions. It’s all smoke and mirrors, of course – in reality you’re still opening a different window, it’s just a nice little formatted one that acts like a dialog box instead of a browser window. SP2010 comes with a packaged function for opening these windows called OpenPopUpPage, and it’s used like the following example:

modal-refresh1

This example opens an InfoPath list form. The “?IsDlg=1” part tells it not to show the navigation & other site elements. Overall, this is a handy way to deliver forms & settings pages without interrupting the user experience. Sometimes, though, you need to refresh the original page after the user finishes with the modal dialog – when changing content on the page, for example. In my case, I just tacked a window.reload(); onto the end and thought I was done. What I found, though, was that the refresh was occurring in tandem with the popup… which effectively killed the popup.

A quick google session found a few solutions, the first few of which involved writing my own function to replace the OOTB SharePoint one or overly-complicated JQuery. The fifth result I looked at, however, had a very simple solution that does exactly what I want. Turns out that all  you have to do is add the RefreshPage attribute to the event like so:

modal-refresh2

This one little change tells the function to refresh the page after closing the popup. Nice.

CSS: How to align a child element with no assigned class

While designing a site using the Responsive theme from TopSharePoint, I ran into a slight snag. Several of my pages consisted of a single CEWP that called a text file stored in a library for the actual content. Any of the pages that were set up this way looked fine in IE8 & IE9 but in Firefox or Chrome the actual CEWP was sitting beside the fixed width page, to the right. After a lot of F12 and a whole lot of #@!$% I finally isolated the layer that was off – it was the dynamically-generated table between the #pageContent layer and the actual CEWP code. This table is generated by SharePoint to house the web part, and it has no class associated with it. So the mystery became how to control that table without a class and without making it look off in IE. The solution, as it turns out, was a single CSS style:

cab-page-css-fix

 

 

The style on line 85 was part of the Responsive CSS, but it was the only reference I could find to the #pageContent layer. To affect the child table, I ended up adding line 86 with a left float. This caused the table to leap back over to the left where I wanted it.

Calling a child element like this may seem like basic CSS to some designers, but I’ll admit it had me banging my head on the desk for quite a while. Hopefully this will help someone else from experiencing the same frustration.

Embedding SharePoint list data into an InfoPath form

It may be a little dated now, but the following article by Clayton Cobb gives an excellent explanation of how to embed SharePoint list data directly into your InfoPath form. Anyone who’s tried to do this has undoubtedly run into the problem he describes – the list items may pull into the repeating table correctly, but they don’t stay with the form once saved. If you open a submitted form later, it won’t have the same items as when it was submitted. This is because the items are only viewed in the form, not saved into the XML of the form like other fields are.

Clayton’s answer is a free plug-in by Qdabra that allows you to copy the list structure directly into the XML as a table. I have a “shopping cart” type of form solution I’m working on currently, and I’ll definitely be giving this a try.

http://claytoncobb.wordpress.com/2009/08/03/infopath-copy-sharepoint-list-data-to-main-data-source/

Finding mismatched features after SharePoint migration

I recently performed a migration of a site collection from SharePoint 2007 to SharePoint 2010 using the DocAve migration tool. Afterwards, whenever I tried to access the Site Collection Features or Site Features screen on the 2010 site, I would get the oh-so-helpful error message sporting a correlation ID and not much else. In most cases, the next step would be to find the correlation ID in the ULS logs and troubleshoot accordingly. In this case, however, the correlation ID listed in the error didn’t show up anywhere in the logs. So, after much head-banging and silent cursing, here’s what I came up with: Continue reading