Sol Web Solutions Blog

Sol Web Solutions Blog is aimed to help, inform, educate and enable our site visitors.

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Login
    Login Login form
Recent blog posts

Video tutorial on Joomla access control for menu items and articles.  This video explains how to have specific group & access view control for menu items and articles.  

We use an example of runners, and the main runner page is seen by logged in users, but there are runner specific child menu items that are only seen by those specific other runners can see their pages.  This may be a scenario where coaches have special and secret training plans for certain runners, and that information shouldn't been seen by other runners.

The groups are created, followed by access levels, menu items and articles are tied to those Joomla access levels, then users are assigned to the groups.  The video walks through the backend creation, front end example of Joomla access control on specific menu items, then a re-cap in the backend.

I hope this video helps others, as it did help with a specific need on our development.

Hits: 664

User request to have a SharePoint 2013 list hyperlink column to open in a new tab.  

The code (my hyperlink is the 4th column in the list) that worked even when going to page 2 in the list view:

$(function() {
        var $t;

        var interval = setInterval(function() {
            $t = $(">tbody tr td:nth-child(4) a");

              $(this).attr("target", "_blank");
        }, 1000);

Special thanks for the help on this issue to Patrick_Liang (MSFT CSG, Partner)

Hits: 1710

Dealing with SharePoint 2007 Calendar view. We are trying some javascript via a content editor to hide the "12:00 AM" when viewing the data from a calendar view.

Via a Content Editor Web Part we hid all instances of "12:00 AM" via:

<script type="text/j-avascript">
var el = document.getElementsByTagName('a');

for(var i=0; i < el.length; i++) {
      el[i].innerHTML = el[i].innerHTML.replace("12:00 AM","");
Hits: 817

User reported they could open a 2007 InfoPath form from the library/list view, but couldn't open the link from Outlook or copying the URL into another/new browser tab. The errors seen where either:

  • The form has been closed
  • The following file is not a valid InfoPath form template

We knew the template/form itself was valid because brand new forms were working correctly.

How did we fix it?

  1. In right side "Available Views" for the library, click "Relink Documents" 
  2. From "Template Link" column, click right dropdown list icon and you'll see the one or more templates appear as options >> this is your first clue this is where the problem arises...there should only be 1
  3. A correct link should simply end in "/Forms/templates.xsn" 
  4. You can verify this link/URL by going to the Form Library Settings >> Advanced Settings 
  5. Have a look @ the "Template URL:" value (you can double click + Copy the URL) 
  6. Paste this URL into Notepad 
  7. Notice URL should be similar to "site/Forms/template.xml" 
  8. Back to "Relink Documents" view >> Template Link column 
  9. Clicking one of the 2+ values in this particular library shows at the end of the VERY LONG & INCORRECT template link we can see the problem starting just after the initial "/Forms/template.xsn" where the string begins "?SaveLocation=http://*" 
  10. There should be nothing with "?SaveLocation" 
  11. To fix a particular row check the "Relink" checkbox, then the button/link named "Relink Selected Documents" at the left top area of the data rows. 
  12. Users should now be able to open the link from Outlook, new browser tab, etc. 

**** How did it get this way?

Make sure users have the IE add-on SharePointOpenXMLDocument enabled.

Hits: 3393

We were trying to move several meeting workspaces from a 5th level sub-site to a 2nd level site within the same site collection.  We know regular sites at the same or different level can be moved, but for some reason the meeting workspaces won't move.  Publishing feature is activated on the destination, and we have moved test sibling sites into different sibling sites.  Error we keep getting is:

'Site in question' cannot be moved or copied into itself or one of its subsites

Looks like you just need to be patient to get these workspaces to move!  ~=^)

1. Move modal comes up
2. select destination
3. *** wait for modal window to post back
4. then you can click "OK" to move the actual sites

Hits: 2333

Creating custom SharePoint 2013 templates could possibly render the page ribbon incorrectly.  


Custom styling can have a tendency to interfere with the default SharePoint 2013 styling...particularly the ribbon.  Box sizing has a lot to do with how dropdown lists and images are displayed in the ribbon.

Box-sizing allows us to specify how we want the browser to calculate the CSS box model. 

In particular, should the “width” of a box or container include padding and the border, or is the width just what is inside of the padding? 

Content-box means that the specified width and height do not include margins, borders, or padding. 

Border-box, on the other hand is similar to how Internet Explorer determines width and height when a document is rendered in Quirks mode

...meaning the width and height include the border and padding, but not the margin.

 The following CSS can help you with your ribbon displaying properly after using custom SharePoint design in your templates:

*, *:before, *:after {

   -webkit-box-sizing: content-box; /*border-box causes many issues with SP*/

   -moz-box-sizing: content-box; /*border-box causes many issues with SP*/

   box-sizing: content-box; /*border-box causes many issues with SP*/


* [class^="span"], * [class^="span"]:before, , * [class^="span"]:after {

   -webkit-box-sizing: border-box; /*re-enable border-box for framework spans*/

   -moz-box-sizing: border-box; /*re-enable border-box for framework spans*/

   box-sizing: border-box; /*re-enable border-box for framework spans*/


img {

   max-width: none;

   width: auto;


* [class^="span"] img {

   max-width: 100%; /*for images inside span grid*/


#scriptWPQ2 img,, #applist img {

   /*within a span may still need to have width of image not 100% for SP2013 OOTB features/imges*/

   width: auto;

   max-width: none;


.ms-siteactions-imgspan {

   float: none;

   margin: 0px;




/*Custom Styles to Fix Ribbon Layout Issues*/


#s4-ribbonrow [class*="span"] {

   float: none;

   margin-left: 0px;

   line-height: 1.2em;

} {

   height: 21px; /*14 was from first try*/

   padding: 3px 7px 2px;




@media (min-width: 1200px) {

   header > .container-fluid, nav#topnav > .container-fluid, footer > .container-fluid,

   .footer-bottom  > .container-fluid  {

      max-width: 1160px;

      margin-left: auto;

      margin-right: auto;


   #main {

      max-width: 1200px;

      margin-left: auto;

      margin-right: auto;




/*Fix Absolutely Positioned divs in a Grid Framework*/


header > .container-fluid {

   position: relative;


header .searchbox {

   bottom: auto;

   right: auto;

   position: relative;

   float: right;

   margin-top: 60px;

   text-align: left;

   width: 260px;


header #searchInputBox input[type=text]{

   box-shadow: none;

   transition: none;

   -moz-transition: none;

   -webkit-transition: none;


Hits: 3025

Posted by on in SharePoint

To fix “Workflow failed on start (retrying)” error we did the following:

1. From the local machine/development machine, the Visual Studio solution property for “Assembly Deployment Target” is set as “GlobalAssemblyCache” shown below:


2. Double click the package file in the solution

3. Click "Advanced" tab near the bottom of the page

4. Click "Add" >> "Add Existing Assembly" from "Add" button near top of screen

5. Click ellipses button next to Source Path

6. Navigate to where you project's bin\Debug folder is located

7. Select the .dll file which holds the name of your project

8. From the "Add Existing Assembly" modal window, select "WebApplication" option

9. Click "Ok" and "Deploy"

10. Navigate to the bin/Debug folder for the Visual Studio project, and the .wsp file is what needs to be pushed to the SharePoint Server

Hits: 21826

In case you need to remove the SharePoint Library ribbon option of "Upload Document" to a library:


...and have the following scenario presented to the user:


  1. Open the library in SharePoint designer
  2. Open the "All Documents" view (in our case)
  3. Find the ending tag for <asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
  4. Just before </asp:Content> insert the following CSS as shown below:


<style type="text/css">
hide the New Document, Upload Document, New Folder on left side of ribbon, have to use the back slashes to escape the dots in the element ID
#Ribbon\.Documents\.New {display:none;}


Hits: 14461

Posted by on in Reporting
Line chart series to start at 0

I have a line chart series that is for accounting.  A sample query would pull back 12 rows (1 row for each month, Jan - December), and the columns would show the dollar amounts for separate buckets of money allocations.  What I'm trying to do is have the series chart line start @ 0 (we're trying to mimic another chart that does the same thing).

Hits: 6787

Some custom jQuery to autopopulate a text field via localStorage was used in a Content Editor on our NewForm.aspx page for a SharePoint 2010 list:

<script src="/.../jquery.js" type="text/j-avascript"></script>

<script type="text/j-avascript">
window.on-load = function(){
                window.setTimeout(readyCall, 1000);
function readyCall(){
     var piddata = localStorage.getItem('myPID');

It's working as expected and auto-populating our field, but the top ribbon (especially the Attach File) in the ribbon was disabled.

The ribbon was finally enabled by using:

<script type="text/j-avascript">
   var e = $("input[id$='ctl00_m_g_..._TextField']");
   var piddata = localStorage.getItem('myPID');   

Hits: 20338

Posted by on in Facebook
Pin a Facebook post to the top of my page

Facebook offers a feature called "pinning a post" on Timeline. This means that you are able to attach any post to the top of your page, positioning it so that visitors will see it right away. If you have a post promoting your latest social campaign, you definitely want to sponsor it by pinning it to the top! Here's how:

1. Log into your Facebook account.
2. Hover your mouse over the right corner of the post that you want to use. A downward arrow appears.
3. Click on the arrow button.
4. Select "Pin to top" from the dropdown menu. Your post moves to the top of your Timeline. A yellow ribbon will also appear, to remind you that it's pinned.

*** Note: You can always remove the pin - just click the downward arrow and select "Unpin from Top."

Tagged in: Facebook
Hits: 12532

When submitting a document to a Records Center with the "Send Document to Repository" workflow action, there is a parameter called "this destination router".

Click the "this destination router" link and enter the full URL to your SharePoint Records Center, including the suffix of _vti_bin/officialfile.asmx.

Hits: 10679

If you are editing the Collect Signature workflow in SharePoint Designer 2010, and don't see the following action available:

Send Document to Repository could be b/c that workflow is a globally reusable workflow and not specific to a library or content type...which is what the action "Send Document To Repository" needs.

Try these steps:

  1. Go to the root SharePoint site and create a content type
  2. Go to your target library where you need to do this "Send Document to Repository" action, and associate the content type created in step #1
  3. Go to the root SharePoint site
  4. Open SharePoint Designer
  5. "Copy/Modify" the Collect Signatures SharePoint 2010 Workflow
  6. On "Create Reusable Workflow" pop-up / modal window select the bottom dropdown list "Content Type" you created in step #1
  7. Now when the new workflow is open, type "Send" to filter back 3 options for your workflow "Actions"
  8. You should see "Send Document To Repository" option now available
Hits: 11092

Posted by on in SharePoint

If you are getting the following error when trying to save a workflow as a template in SharePoint Designer, as I was trying to do with a collect signature workflow:

'the server was unable to create your template'

...try taking out some characters for the new name of the workflow.  That worked in my scenario.

Special thanks to author here for pointing me in the right direction:


Hits: 28321

You may get an error of "The server could not complete your request" when trying to copy and modify a Collect Signatures Workflow in SharePoint 2010.

Instead of doing this from a sub-site, go to the root site and try the same thing in SharePoint designer.

That fixed my issue.

Hits: 14583

For a Records Library Versioning Settings, we had the "Create major versions" turned on, but the versioning was still adding an underscore and random characters to the end of the file name.

To fix this issue, we had to go back into the Content Organizer feature and make sure "Use SharePoint Versioning" was set in the "Duplicate Submissions" area.

1. Go to Site Settings / Content Organizer: Settings

2. Go down to the "Duplicate Submissions" area

3. Check "Use SharePoint versioning"

If you don't see the changes >> i.e. the versioning take affect and only show a single file name, and version history is only seen via the edit sub-menu, make sure the Central Admin Content Organizer Processing timer is set to what you need via:

Central Administration --> Monitoring --> Review job definitions --> Content Organizer Processing

Hits: 105260

Posted by on in SharePoint

Calculate age of SharePoint list itemEver wonder how you can calculate the age of the list items in SharePoint? The Today() function is not allowed in calculated fields, so what's the trick?

Hits: 84121

To find the value in an InfoPath form, we had to take a different approach than when using the DispForm.aspx page.

As usual, we loaded the .js file in the SharePoint site via a document library, and used either Firefox or Chrome to find the id of the textbox or element that stored the value we wanted to put into localStorage.

Hits: 17256

1. First create the data source in your Datasets folder.

In my case, my dataset is called dsStatusDDL because I'm pulling a status field from a SharePoint list.First create the data source in your Datasets folder.

Hits: 96852

Posted by on in Reporting

I had a customer request to hide a row conditionally, but when the report rendered in the browser the hidden row still took up spacing on the report.

I found this post thanks to Frank v.d. Laar:

Try to set the Hidden property of the Static Row Group under the Details Group, in this case the whole row will disappear instead of the content of the textboxes.

If you are using Report Builder, you need to switch to Advanced Mode (make sure that the Properties and the Grouping windows are displayed, go to the upper right side of the Grouping window and press the black triangle), click on the second "Static" item under the "(Details)" group and you can set the Hidden property on the Properties window.

Hits: 52777

Help Today

Send an email here!

Sol Web Solutions will be glad to help you anytime with general or technical questions, suggestions or comments.

Website Hosting

Web Hosting

Sol News

We will not share, trade, or sell any of your information in any way. Your privacy is completely respected.