Subscribe to News feed

New Product brochures for Muhimbi’s SharePoint products now available for download

Posted at: 17:29 on 24 September 2009 by Muhimbi

We are currently in the process of revising our marketing material. As we frequently receive requests for brochures from our prospective customers as well as our resellers we have created a flyer, listing the main features, for each of our products.

Brochures can be downloaded from the left hand menu on each product page or from the links below.

PDFConverterBrochure Convert SharePoint Documents to PDF Format

Use the Muhimbi PDF Converter for SharePoint to convert MS-Word or InfoPath documents to PDF Format, either manually using a user friendly interface or automatically using workflow components.

Download PDF, HTML Version 



Download

AuditSuiteBrochure

Configure, Monitor and View Audit logs on your SharePoint Farm.

Automatically enforce, monitor and configure auditing on your entire Web Farm for all existing and new Site Collections. Use the friendly but powerful log viewer to analyse and filter logged audit data.

Download PDF, HTML Version



Download

MuSHBrochure

Reduce URL length using the URL Shortener for SharePoint

The Muhimbi URL Shortener (MuSH) makes it easy to share long and complex web addresses via email, verbally over the phone and social media platforms such as Twitter by reducing the number of characters from hundreds to just a handful.

Download PDF, HTML Version 



Download

WPPBrochure Embed C# or VB code directly in SharePoint Designer Workflows

The Muhimbi Workflow Power Pack for SharePoint allows custom C# or VB.NET code to be embedded in SharePoint Designer Workflows without the need to resort to complex Visual Studio based development or long release cycles.


Download PDF, HTML Version 



Download

Please contact us if you are interested in a localised version of a particular brochure.

.

Labels: , , , , , , ,

Add real-time filtering to all lists and libraries in a SharePoint Site Collection

Posted at: 09:13 on by Muhimbi

InfuserBoxWe love it when third parties start writing code and examples for our products, it makes writing new blog entries very simple and quick. Today we got another cool Infuser script from Jaap Vossers who previously brought us the script that allows Site Settings to be opened using a keyboard shortcut.

Today’s script is a JavaScript based solution that adds filter-as-you-type textboxes to every column of a SharePoint list or document library. It uses jQuery to add the textboxes and perform the filtering.

As an added bonus it adds filtering to field types that normally aren’t filterable, like calculated and note columns.

 InlineListFilter


Jaap has made the code available on CodePlex, but it is probably easier to just paste the code listed below directly into Infuser.

Follow the steps outlined below to add this cool script to your site collection:

  1. Download and install Muhimbi’s free SharePoint Infuser on one of your Web Front End Servers.
     
  2. Ensure you have Designer privileges, more specifically the Add and Customize Pages right.
       
  3. In your SharePoint Site collection, on the Site Actions / Site Settings screen, select Infuse custom content from the Look and Feel column.
     
  4. Paste the code displayed below into Infuser’s code window. If you are using IE then you may want to paste it in WordPad first , otherwise all line breaks are stripped out.
     
  5. Click the Save button, navigate to any list and start filtering.
     

<script src="/_layouts/Muhimbi.Infuser/JQuery/jquery-1.3.2.min.js"></script>
<script>
// SharePoint InstantListFilter - developed by Jaap Vossers
$(document).ready(function()
    jQuery.extend(jQuery.expr[':'], {
       containsIgnoreCase: function(a,i,m) {return (a.textContent||a.innerText||
jQuery(a).text()||'').toLowerCase().indexOf((m[3]||'').toLowerCase())>=0}
     });
 
  $("table.ms-listviewtable tr.ms-viewheadertr").each(function()
  {
    if($("td.ms-vh-group", this).size() > 0)
    {
      return
    }
 
    var tdset = "";
 
    var colIndex = 0;
 
    $(this).children("th,td").each(function()
    {
      if($(this).hasClass("ms-vh-icon"))
      {
        // attachment
        tdset += "<td></td>";
      }
      else
      {
        // filterable
        tdset += "<td><input type='text' class='vossers-filterfield' filtercolindex='" + 
colIndex + "' /></td>";        
      }
 
      colIndex++;
    });
 
    var tr = "<tr class='vossers-filterrow'>" + tdset + "</tr>";
 
    $(tr).insertAfter(this);
  });  
 
 
  $("input.vossers-filterfield")
    .css("border", "1px solid #7f9db9")
    .css("width", "100%")
    .css("margin", "2px")
    .css("padding", "2px")
    .keyup(function()
    {      
      var inputClosure = this;
 
      if(window.VossersFilterTimeoutHandle)
      {
        clearTimeout(window.VossersFilterTimeoutHandle);
      }
 
      window.VossersFilterTimeoutHandle = setTimeout(function()
      {
        var filterValues = new Array();
 
        $("input.vossers-filterfield", $(inputClosure).parents("tr:first")).each(function()
        {        
          if($(this).val() != "")        
          {
            filterValues[$(this).attr("filtercolindex")] = $(this).val();
          }
        });    
 
 
        $(inputClosure).parents("tr.vossers-filterrow").nextAll("tr").each(function()
        {
          var mismatch = false;
 
          $(this).children("td").each(function(colIndex)
          {
            if(mismatch) return;
 
            if(filterValues[colIndex])
            {
              var val = filterValues[colIndex];
 
              // replace double quote character with 2 instances of itself
              val = val.replace(/"/g, String.fromCharCode(34) + String.fromCharCode(34));              
 
              if($(this).is(":not(:containsIgnoreCase('" + val + "'))"))
              {
                mismatch = true;
              }            
            }
          });
 
          if(mismatch)
          {
            $(this).hide();
          }
          else
          {
            $(this).show();
          }    
        });        
 
      }, 250);
    });
});  
</script>

Labels: , ,

Opening the SharePoint Site Settings screen instantly using a keyboard shortcut

Posted at: 09:18 on 21 September 2009 by Muhimbi

InfuserBox As we are active SharePoint developers, hey it is all we do, we need access to the Site Settings screen on a regular basis. As 'real developers’ we prefer keyboard shortcuts as, quite frankly, picking up the mouse, navigating to the Site Actions menu and then clicking Site Settings is just waaaay too time consuming.

A couple of months ago we came around a cool tool from Jaap Vossers, which installs a web control on your SharePoint server to automatically hook up the ctrl-s key to the Settings screen. As we don’t like to install any new software on our servers we challenged Jaap to rewrite it in such a way that it would work with our free SharePoint Infuser tool, which has the ability to automatically inject any script or HTML in all pages on a site collection without causing any nasty side effects such as ghosting etc.

 InlineSettings

 
It took Jaap a cool hour to change things around, make it look all pretty, and release it as a CodePlex project. It works fantastically and it is now enabled by default on all site collections on our development servers.

Follow the steps outlined below to add this great trick to your site collection:

  1. Download and install Muhimbi’s SharePoint Infuser on one of your Web Front End Servers.
     
  2. Ensure you have Designer privileges, more specifically the Add and Customize Pages right.
       
  3. In your SharePoint Site collection, on the Site Actions / Site Settings screen, select Infuse custom content from the Look and Feel column.
     
  4. Paste the code displayed below into Infuser’s code window. If you are using IE then you may want to paste it in WordPad first , otherwise all line breaks are stripped out.
     
  5. Click the Save button, navigate to any page in the site collection and press ctrl-s.
     
<link rel="stylesheet" type="text/css"
      href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/cupertino/jquery-ui.css"/>
 
<script src="/_layouts/Muhimbi.Infuser/JQuery/jquery-1.3.2.min.js"></script>
<script src="http://js-hotkeys.googlecode.com/files/jquery.hotkeys-0.7.8-packed.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
 
<script type="text/javascript">
function ToggleInlineSiteSettings()
{ 
  var dlg = $("#InlineSiteSettingsWrapper");
 
  if(dlg.dialog("isOpen"))
  {
      $("#InlineSiteSettingsWrapper").dialog('close');  
  }
  else
  {
      $("#InlineSiteSettingsWrapper").dialog('open');      
  }
 
  return false;
}
 
$(document).ready(function()
{ 
  var hasPermissions = $("[id$='_MenuItem_Settings']").size() > 0;
 
  if(hasPermissions)
  {  
      $(document).bind("keydown", "Ctrl+s", ToggleInlineSiteSettings);
 
      var siteSettingsUrl = L_Menu_BaseUrl + "/_layouts/settings.aspx";
 
      $("<div id='InlineSiteSettingsWrapper'></div>")
        .css("background-color", "white")
        .load(siteSettingsUrl + " #ctl00_PlaceHolderMain_SettingLinks")
        .dialog({ width: "90%", modal: true, autoOpen: false});
    }
});
</script>





Labels: , ,

Inserting SharePoint List data into a PDF document using a workflow

Posted at: 18:39 on 02 September 2009 by Muhimbi

merge

As of version 1.4, our PDF Converter for SharePoint supports the refreshing of MS-Word DocProperties with the associated content stored in a Document Library’s custom columns. In essence this functionality allows custom PDF Documents to be created on the fly.

This article shows how to create a system that allows business users to fill out a holiday request form in SharePoint and automatically file the request in PDF format. This example has been kept simple on purpose, feel free to add additional workflow logic to it.

Before you start, make sure the PDF Converter for SharePoint (v1.4 or newer) has been installed and you have access to a site collection with the appropriate rights to create workflows. Some basic knowledge about creating and configuring document libraries is assumed.

Update: This article mentions several times that this only works with DocProperties in documents saved in pre-Office 2007 based MS-Word documents. As of version 3.0 of the product we also support fields inserted using MS-Word 2007 Quick Parts.

So, with that out of the way let’s get going.
 

Create and configure the Document Library
 

  1. Create a document library named ‘Holiday Requests’.
     
  2. Create the following columns (feel free to create a new Content Type, but it is not necessary for this demo)
     
    1. Column name: Requester, Type: Person or Group
    2. Column name: StartDate, Type: Date and Time
    3. Column name: EndDate, Type: Date and Time
    4. Column name: Reason, Type: Choice, Choices: Holiday, Personal leave, Skiving
    5. Column name: Status, Type: Choice, Choices: Pending, Approved, Denied, You are fired
    6. Column name: Remarks, Type: Multiple Lines of Text
       

  3. In the document library, create a folder named  ‘Approved Requests’.
     

We should now have something that resembles the screenshot below. Note that I have removed some of the default columns from the view.

EmptyDocLib


Create the MS-Word Template
 

Follow the instructions below to create the template or download it from our site.

  1. In the new Document Library create a new Document and immediately save it in MS-Word 2003 format as ‘Holiday Request.doc’. Do not use MS-Word 2007 format initially as it will not allow you to insert DocProperties ‘the MS-Word 2003 way’ (See the list of issues at the end of this article).
     
  2. Close the document.
     
  3. Edit the properties for the document that was just saved and give each field a temporary value. If this is not done then MS-Word 2007 does not allow the DocProperties to be inserted (nice!).
     
  4. Edit the previously saved document and insert a 2x6 table into the document.
     
  5. In the left most column add the name of each of the previously inserted columns. Feel free to use spaces and additional descriptions as this is just text that will be converted as is.
     
  6. In the right most column enter each corresponding DocProperty from MS-Word 2007’s Insert / Quick Part / Field / DocProperty list. (When using MS-Word 2003, use Insert / Field / DocProperty. From memory, I don’t have Word 2003 here).
     
  7. Clear the content of all fields from MS-Word or save the document and clear all fields using SharePoint.
     
  8. If you know how to then make this document the default template for the Document Library. Otherwise leave the document where it is.
     

We now have something that looks like the following document. Note that I have right clicked on each DocProperty and selected Toggle Field Codes in order to visualise them.

WordTemplate 

Create and configure the workflow  

  1. Start SharePoint Designer and open the site collection that contains the ‘Holiday Requests’ library.
     
  2. From the File menu select New > Workflow.
     
  3. On the first screen of the Workflow wizard, specify the following settings:
     
    • Name the workflow ‘Convert Holiday Requests to PDF Format’.
       
    • Select the ‘Holiday Requests’ list.
       
    • Select the 2nd and 3rd checkboxes to make sure the workflow is triggered whenever a document is created or (its status) is updated.
       
    • Click the ‘Next’ button to proceed.

     

We need to create a workflow consisting of 2 steps. As we will be updating the value of a column, we cannot convert the document in the same step as the changed value has not yet been persisted to the Document Library. By moving the ‘Convert to PDF’ action to the 2nd step we ensure the latest changes are available to the PDF Converter.  

Step 1 – Check Status and update if needed.

  1. From the ‘Conditions’ menu select ‘Compare Holiday Requests field’. This inserts the ‘If value equals value condition.
     
  2. Click the first ‘value’ and select ‘Status’.
     
  3. Click the second ‘value’ and select ‘Approved’ from the list.
     
  4. In the ‘Actions’ menu select ‘Set Field in Current Item’.
     
  5. Click ‘field’ and set it to ‘Status’.
     
  6. To mess around with the requester, and to show modified properties are automatically included in the PDF file, set ‘value’ to ‘You are fired’.
      workflow1

Step 2 – Convert to PDF

  1. Insert a new step and name it ‘Convert to PDF’
     
  2. Add a Condition, as described above, to check if the ‘Status’ is now set to ‘You are fired’.
     
  3. From the ‘Actions’ menu select' ‘Convert to PDF’.
     
  4. The following action is inserted:

    Convert this document to this url using the same file name and include / exclude meta data. Store the converted item details in List ID: Variable: List ID, Item ID: Variable: List Item ID.

    Let’s examine what the various options mean:
     
    1. this document:  Specify which document to convert. Click this option and make sure ‘Current Item’ is selected.
       
    2. this url: Specify the location the converted file will be written to. The following options are available:
       
      1. Leave it empty: When no value is specified then the converted document is written to the same folder as where the source file is located.
         
      2. Site Relative URL: By specifying a URL relative to the current site, e.g. ‘subsite/shared documents/PDF Files’, any folder location in the current site collection can be targeted. This is the option we want to use so enter Holiday Requests/Approved Requests.
         
      3. Web Application relative URL: Using a URL that is relative to the entire web application, e.g. ‘/sites/Press Office/Public Documents/To Distribute’, any folder location in any site collection can be targeted.

    3. the same file name: The name of the converted file can be specified here. In our case we’ll leave it empty to make sure we use the same name as the original document.
       
    4. include / exclude meta data: In case of sensitive documents we may want to strip any custom SharePoint columns from the file. Select ‘Include’.
       
    5. Variable: List ID: A new workflow variable named ‘List ID’ is automatically created. After the file has been converted, this variable will contain the ID of the list the converted file was saved to. This can later be fed into another action in order to manipulate this file further.
       
    6. Variable: List Item ID: A new workflow variable named ‘List Item ID’ is automatically created. After the file has been converted, this variable will contain the ID of the item the converted file was saved to. This can later be fed into another action in order to manipulate this file further.
       

  5. Click ‘Finish’ to save and activate the Workflow


workflow2
 

Test The Workflow
 

Test the workflow as follows. Note that MS-Word 2007 can be a bit picky with DocProperties so make sure to save each document in MS-Word 2003 format.

  1. If you have made the document the default template then select ‘New’ in the document library, otherwise copy a new version of the template manually into the library.
     
  2. Specify all properties, either from SharePoint or MS-Word. Don’t set the status to Approved.
     
  3. Save and Close the document if it is still open.
     
  4. Use SharePoint to edit the properties of the document and set the ‘Status’ to ‘Approved’. Update any other properties as well if you wish.
     
  5. Once the workflow has finished you will find a PDF file in the Approved Requests folder.

The generated PDF file now looks as follows. Note that the User ID is inserted rather than the user name. I’ll leave it as a exercise for the reader to retrieve this information and insert the full user name using a DocProperty. ConvertedPDF

 

Please note that the current implementation has some limitations:

  1. DocProperties containing spaces and quotes are not supported: DocProperty field names are not allowed to contains spaces or double quotes (").
     
  2. Custom Formatting in DocProperties is not supported: When a DocProperty contains additional formatting information then this is not automatically applied. For example {DOCPROPERTY DateField \@ "yyyy/MM/dd"}.
     
  3. Doc Properties inserted using MS-Word 2007 'Quick Parts' are not supported: Currently the PDF Converter only supports DocProperties that have been inserted using the 'pre MS-Word 2007' Insert Field -> DocProperty functionality. Please do not use MS-Word 2007's Insert -> Quick Parts -> Document Property.

For full details, see version 1.4’s release notes. We expect to resolve these issues in the next few weeks.

Update: This article mentions several times that this only works with DocProperties in documents saved in pre-Office 2007 based MS-Word documents. As of version 3.0 of the product we also support fields inserted using MS-Word 2007 Quick Parts.

Labels: , , ,

New release of Workflow enabled PDF Converter for SharePoint – v1.4.0.0

Posted at: 15:52 on 01 September 2009 by Muhimbi

PDFConverterBox

We are pleased to announce the new version of the Muhimbi PDF Converter. Some useful new functionality has been added including the inclusion of DocProperties in the converted PDF files, the fidelity of the converted documents has been improved and support for the French language has been added as well. See below for the full details.

For those not familiar with the product, the PDF Converter for SharePoint is a light weight solution (4MB download) that allows end-users to convert common document types, such as doc, docx, rtf, InfoPath, txt etc, to PDF format from within SharePoint without the need to install MS-Word or Adobe Acrobat on the server. It integrates at a deep level with SharePoint and leverages facilities such as the Audit log, localisation, security and tracing. It runs on both WSS 3 as well as MOSS and is available in English, German, Dutch, French and Japanese. For detailed information check out the product page as well as this blog posting describing how to use the PDF Converter from A SharePoint Designer Workflow.

The number of improvements in this version is considerable. The main ones are as follows:

292 Create French Translation.
578 Added support for refreshing DocProperties with SharePoint columns. See the release notes for some outstanding issues.
622 Improved conversion engine, most notably:
- Improved overall quality of converted documents.
- Improved conversion of complex tables.
- Resolved various cropping issues.
- Improved support for Open Document files.
575 Conversion Engine - Font sizes defined in table styles are ignored.
498 Conversion Engine - Cropped images are displayed completely.
367 Conversion Engine – Fixed ‘Document graphics description contains line segment of zero length’.
336 Conversion Engine – Improved support for converting MHT files created with IE7 and IE8.
503 Workflow Action – Improved German Translation.


workflow2

Convert files using the User Interface or an automated Workflow


For more information check out the:

 
As always, feel free to contact us using Twitter, our Blog, regular email or subscribe to our newsletter.

 

Download your free trial here (4MB). You don’t even have to register, but we would appreciate it if you did.
.

.

Labels: , ,

Need support from experts?

Access our Forum

Download Free Trials