Just in time for the holiday gift-giving season, I’m releasing SPServices 2014.02. This is the second release in 2014 (which you should be able to glean from the release name). If you’re using an earlier version of SPServices, I strongly recommend an upgrade. Read on.
The most important change in this release is due to an egregious error on my part that goes way back to 2013.01. Paul Tavares (@paul_tavares) spotted quite a while back and I was just too dumb to realize how important it was to fix. The net effect of my mistake was that SPServices was always caching requests, regardless how you set cacheXML. On pages where we simply called SPServices a few times on page load, it usually wouldn’t make much of a difference, but a little more memory might be required for the browser. However, in things like Single Page Applications (SPAs) which use SPServices for the data transport layer (See my blog post series: Single-Page Applications (SPAs) in SharePoint Using SPServices), it could make a *huge* difference. It effectively meant that for every unique request, we were caching data whether we should or not. Over a long page lifespan, that could add up to a lot of memory eaten up. Bad news. All better now.
I found out over the last few months the insidious ” Required Field” issue that I thought I had fixed completely in 2014.01 wasn’t totally fixed. For folks on SharePoint 2010 who applied last December’s CU, the markup in the DOM was a little different than the fix I had put into 2014.01. (See: Office 365 Update Changes ‘Display Name’ on Required Fields) This *should* be fixed for everyone now. Please let me know if you see any issues going forward. And Microsoft, please don’t do that again.
There is a handful of new operations in this release, added due to user requests:
- WebPartPages.SaveWebPart2
- RecordsRepository.GetRecordRouting
- RecordsRepository.GetRecordRoutingCollection
- RecordsRepository.GetServerInfo
- RecordsRepository.SubmitFile
Finally, I recently moved my SPServices development repository over to Github at sympmarc/SPServices. I’m still getting my feet wet with Github (See: SPServices and Github – This Time I Mean It), but I plan to have my most current work available there going forward. I’ll still be posting the releases over on the Codeplex site, and I’ll monitor the issues there as well. I’m hoping that by using Github, we’ll have more people contributing to SPServices. It’s always been a community-driven project, but I’d love to get more direct contributions.
This release will be, as all of the recent releases have been, available on cdnjs as soon as possible. If you’d like to serve up SPServices from a CDN, cdnjs is the place to get it. cdnjs hosts a lot of JavaScript libraries that don’t have enough coverage to interest the big boy CDNs, so check it out in any case.
Finally, I want to thank Paul Tavares again for his help with SPServices over the years and with this release in particular. Both he and Josh McCarty (@joshmcrty) have also been trying to help get me over onto Github for a long time, but my thick skull just hasn’t gotten it before. I’m using Jetbrains Webstorm as my IDE these days and the Github integration there has finally made Github make sense to me. As we say here in Massachusetts, “light dawns on Marblehead“.
As usual, there are also a number of additional changes to fix existing bugs or improve efficiency (yes, I’m still able to improve on my old code, and I expect that will continue).
You can see the full list of enhancements and improvements on the download page. Note the link to the Issue Tracker items for this release. For posterity, here are links to the release notes showing all the fixes and improvements from the Issue Tracker on Codeplex.
New Functionality
Issue Tracker Item | Function | Description |
---|
New Operations
Web Service | Operation | Options | MSDN Documentation | Issue Tracker Item | |
---|---|---|---|---|---|
WebPartPages | DeleteWebPart | pageUrl, storageKey, storage | WebPartPagesWebService.DeleteWebPart Method | 10273 | |
WebPartPages | SaveWebPart2 | pageUrl, storageKey, webPartXml, storage, allowTypeChange | WebPartPagesWebService.SaveWebPart2 Method | 10273 | |
ALPHA6 | RecordsRepository | GetRecordRouting | recordRouting | RecordsRepository.GetRecordRouting Method | 10257 |
RecordsRepository | GetRecordRoutingCollection | NA | RecordsRepository.GetRecordRoutingCollection Method | 10257 | |
RecordsRepository | GetServerInfo | NA | RecordsRepository.GetServerInfo Method | 10257 | |
RecordsRepository | SubmitFile | fileToSubmit, properties, recordRouting, sourceUrl, userName | RecordsRepository.GetRecordRouting Method | 10257 |
Bug Fixes and Efficiency
Issue Tracker Item | Function | Description | |
---|---|---|---|
10267 | $().SPServices.SPComplexToSimpleDropdown | Possible bug in SPComplexToSimpleDropdown | |
10253 | $().SPServices.SPFindMMSPicker | SPFindMMSPicker missing from 2014.01 | |
10279 | $().SPServices.SPGetListItemsJson | SPGetListItemsJson Doesn’t Handle Attachments Correctly | |
10284 | $().SPServices.SPFilterDropdown | SPFilterDropdown Not filtering dropdown column. | |
10272 | $().SPServices.SPGetCurrentSite | $().SPServices.SPGetCurrentSite Documentation | |
ALPHA5 | 10277 | $().SPServices.SPGetCurrentUser | fix for SPGetCurrentUser at webUrl / |
10248 | $().SPServices.SPGetCurrentUser | Trouble with SPSservices and Sharepoint Form | |
10265 | $().SPServices.SPGetCurrentUser | $().SPServices.SPGetCurrentUser isn’t returning ID | |
10254 | $().SPServices.SPDisplayRelatedInfo | SPDisplayRelatedInfo – DIV named improperly with Required field | |
10256 | $().SPServices.SPCascadeDropdowns | SPCascadeDropdowns Required Lookup issue | |
10262 | $().SPServices.SPComplexToSimpleDropdown | SPComplexToSimpleDropdown – required fields get renamed without the ‘Required Field’ appended to the field name | |
10146 | $().SPServices | ResolvePrincipals with addToUserInfoList=true requires SOAPAction | |
10271 | $().SPServices.SPGetListItemsJson | SPGetListItemsJson not using defaults.webURL | |
10283 | $().SPServices.SPGetListItemsJson | CAMLViewName not working? | |
ALPHA7 | 10182 | $().SPServices | async on version 2013.01 and caching |
10298 | $().SPServices | GetTermSets argument names are slightly wrong | |
10299 | $().SPServices | WebUrl not working |