SharePoint Framework (SPFx) – Full Bleed WebPart Tutorial

I have recently had the need to get into SharePoint development and custom WebParts. One of the problems I had was whitespace, I had a modern SharePoint page with a single webpart that I wanted to use all available space. This is possible with a page capable of a Full-width column (Only available in Communication Sites, see here for instructions https://blog.velingeorgiev.com/how-add-spfx-webpart-full-width-column). But I needed more, I needed something to fit into an existing site on a Modern Page utilising an existing Classic Team Site template.

I figured I could use a simple style override to make this work for me. The following solution works well for my situation, but please note that it is completely unsupported by Microsoft and needs to be thoroughly testing in your own environment before considering its use. I have only tested this with a single WebPart on a page in a Single Column Layout.

Once you have a basic WebPart template created (Microsoft has plenty of documentation on how to do this), add jquery as a project dependency.

npm install jquery @types/jquery

Add an include in your .ts or .tsx file

import * as jQuery from "jquery";

Simply add the following lines in the WebPart initialisation section.

public onInit(): Promise<void> {
    return super.onInit().then(_ => {
        jQuery("#workbenchPageContent").prop("style", "max-width: none");
        jQuery(".SPCanvas-canvas").prop("style", "max-width: none");
        jQuery(".CanvasZone").prop("style", "max-width: none");
    });
}

On page load, your WebPart will have all available space on the page to use. If your testing this in your own WebPart, not the initial CSS for the .container class has a max-width set that will limit your WebPart from using more space.

For a complete functional demo please see https://github.com/littlejon/FullBleedWebPartTutorial

Automatic Deployment Rules – Download Failed – System Center 2012 Configuration Manager

I have just started setting up a new System Center 2012 Configuration Manager server to test in my environment came up against an error that really didn’t make any sense at first.

After running the Automatic Deployment Rule it came up with the Error Code 0x87D20417 further investigation inside the logs in (C:\Program Files\Microsoft Configuration Manager\Logs) found the following entry in the ruleengine.log

Failed to download the update from internet. Error = 5

There was also a status message from SMS_RULE_ENGINE with Severity: Error

Content download failed.
Message: Failed to download one or more content files.
Source: SMS Rule Engine.

When I configured the the new Deployment Package in the “Select deployment package for this automatic deployment rule” section I created a new file share for the package. I set the NTFS permissions as specified in the documentation “Operations and Maintenance for Software Updates in Configuration Manager“.

What I failed to do was allow CHANGE permissions at the share level as I left that at the default READ ONLY setting.

Once I added the CHANGE permission the Automatic Deployment Rule ran and downloaded the software successfully.

Fixed: Location Based Reminders Not Available in iOS 5

If you are having troubles finding location based reminders on your iOS 5 device you are probably using an Exchange based email account. If you have an Exchange account setup on your iPhone or iPad the new reminders app in iOS 5 will be using your Exchange Tasks List. It seems that the Exchange Tasks don’t support the metadata required to have a location based reminder.

To fix this issue you need to add a new Reminder List to your device. This can be easily done by tapping the Edit List button on the main reminders screen (this button has three horizontal lines on it).

Click Edit in the top right corner.

Under the On My iPhone section in the list, tap on Create New List…

Give it a name.

Click Done, and then Done again.

If you swipe sideways you will notice you have a new Reminder List called whatever you named it above. If you now add a reminder in your new list, then go into that reminder and tap “Show More…” you will now have to option to tap on Remind Me, At a Location.

Commvault Simpana 9.0 with Granular File Recovery for Linux under VMWare

I am currently going through the process of installing a brand new Commvault installation. One thing I am evaluating is doing most of my backups via the Virtual Server iDataAgent, this will give me “bare metal” recovery of my VM’s as well as cover my individual file restore requirements. As at Simpana 8 granular file level recovery was only supported for NTFS volumes but with the release of Simpana 9 the documentation has been updated to remove the NTFS requirement. Also a nice little line that also says “Granular file-level recoveries are now supported for Linux-based VMware virtual machines.” under the new features in the documentation for Simpana 9.

So testing begins, and you would imagine given the above information that file-level recoveries for Linux would just work. Problem is it just doesn’t work out of the box, after hours of playing with settings and tick boxes and reading forum posts I finally found the solution I needed to get file-level recovery working.

Ok, so to get Linux backup working you need to add a registry entry on the Virtual Server iDataAgent proxy server (the documentation for which can be found here).

HKEY_LOCAL_MACHINE\SOFTWARE\CommVault Systems\Galaxy\Instance001\VirtualServer

Then add the following DWORD value

LinuxMetadataSupport    REG_DWORD    0x00000001

Restart the Commvault agent on the VMWare server for good measure and now take your backup.

As for file system support it seems very limited. I have tested the following setups:

Ubuntu Host
sda1 /boot ext3
sda3 / reiserfs
sda4 /data ext4

Centos Host
LVM2 with partition formatted in ext3

The only file systems that backed up were the EXT3 file systems, LVM appears to be supported as well. One can only assume that EXT2 would be supported, but I haven’t tested this.

Overall this solution can only get better, as more file systems are supported and the option to backup the linux systems on a file level are brought into the GUI it can only get easier from here. Personally I plan on moving forward using the Virtual Server iDataAgent to backup all my VM’s that don’t have special applications on them (ie, database, AD, and Exchange).