jQuery Library for SharePoint Web Services (SPServices) 2014.02 Released
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 |
Marc…. When i use this latest release in sharepoint 2010 new form for spautocomplete the one with required field is working good but not the one without required field. Please help
Avinash:
Could you please post more details in the discussions on Codeplex?
Thanks,
M.
the new fix is using ‘Like’ expression when querying DOM, so be careful not to have similarity on field names (My case was: “Country”, “Dealer” & “Dealer Users”)
Jamil:
Can you explain a bit more, please? Do you mean you’ve found a bug?
M.
Does SPSetMultiSelectSizes still work for SP2013? I’ve been having some trouble implementing it. Perhaps my references are off? Thanks for all the work you’ve done.
Thomas:
I believe I’ve used it in 2013. What happens when you try? Any errors?
M.
Not working in SharePoint 2016
Mr. Anderson,
I am attempting to utilize spservices on a sp2013 site. We are using the default .aspx page, and not a publishing page. Spservices works on the default publishing page, but not on the plain web part page. Any idea what the problem is? It appears as if SPservices is not loading, though the exact same code works fine on a publishing page.
Turns out on SP 2016 it returns alerts only for the current user.
How can I get all the alerts for all the users how have alerts on a list?