European Sharepoint 2013 Hosting Blog
Articles about European Sharepoint Hosting Service
Articles about European Sharepoint Hosting Service
Apr 5th
Mar 25th
1 |
Connect-PnPOnline -Url $siteURL |
1 2 3 |
Get-PnPProvisioningTemplate -Handlers Lists -ListsToExtract $listName -Out ("{0}.xml" -f $templateName) Add-PnPDataRowsToProvisioningTemplate -path ("{0}.xml" -f $templateName) -List $listName -Query '<view></view>' |
1 2 3 4 5 6 7 8 9 10 |
$siteURL = " https://YourSite/sites/SiteCollectionName2" $templateName = "listTemplate" $path = “C:\Users\rijwa\Documents” cd $path Connect-PnPOnline -Url $siteURL Apply-PnPProvisioningTemplate -Path ("{0}.xml" -f $templateName |
1 2 3 4 5 6 7 8 9 |
#Variables for SharePoint Admin Center & Site Collection URL $AdminCenterURL = "https://site-admin.sharepoint.com/" $SiteURL="https://site.sharepoint.com/Sites/marketing" #Connect to SharePoint Online Connect-SPOService -url $AdminCenterURL -Credential (Get-Credential) #Disable DenyAddAndCustomizePages Flag Set-SPOSite $SiteURL -DenyAddAndCustomizePages $False |
Mar 17th
1 |
npm i react-quill |
1 |
import ReactQuill from <span class="string">'react-quill'</span>; |
1 |
var quillObj: any; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<ReactQuill <span class="keyword">ref</span>={(el) => { quillObj = el; }} value={<span class="keyword">this</span>.state.Description} modules={{ toolbar: { container: [ [{ <span class="string">'header'</span>: [1, 2, 3, 4, 5, 6, <span class="keyword">false</span>] }], [<span class="string">'bold'</span>, <span class="string">'italic'</span>, <span class="string">'underline'</span>], [{ <span class="string">'list'</span>: <span class="string">'ordered'</span> }, { <span class="string">'list'</span>: <span class="string">'bullet'</span> }], [{ <span class="string">'align'</span>: [] }], [<span class="string">'link'</span>, <span class="string">'image'</span>], [<span class="string">'clean'</span>], [{ <span class="string">'color'</span>: [] }] ], handlers: { image: <span class="keyword">this</span>.imageHandler } }, table: <span class="keyword">true</span> }} placeholder=<span class="string">"Add a description of your event"</span> onChange={(content, delta, source, editor) => <span class="keyword">this</span>.onDescriptionChange(content, editor)} id=<span class="string">"txtDescription"</span> /> |
1 2 3 4 5 |
handlers: { image: <span class="keyword">this</span>.imageHandler } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<span class="keyword">public</span> async imageHandler() { <span class="keyword">const</span> input = document.createElement(<span class="string">'input'</span>); input.setAttribute(<span class="string">'type'</span>, <span class="string">'file'</span>); input.setAttribute(<span class="string">'accept'</span>, <span class="string">'image/*'</span>); input.click(); input.onchange = async () => { var file: any = input.files[0]; var formData = <span class="keyword">new</span> FormData(); formData.append(<span class="string">'image'</span>, file); var fileName = file.name; <span class="keyword">const</span> res = await <span class="keyword">this</span>.uploadFiles(file, fileName, quillObj); }; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
<span class="keyword">public</span> async uploadFiles(uploadFileObj, filename, quillObj) { var libraryName = <span class="string">"ImageFiles"</span>; var context = <span class="keyword">this</span>.props.context; var siteUrl = <span class="keyword">this</span>.props.context.pageContext.site.absoluteUrl; var currentdate = <span class="keyword">new</span> Date(); var fileNamePredecessor = currentdate.getDate().toString() + currentdate.getMonth().toString() + currentdate.getFullYear().toString() + currentdate.getTime().toString(); filename = fileNamePredecessor + filename; <span class="comment">//To Upload in root folder</span> var apiUrl = `${siteUrl}/_api/Web/Lists/getByTitle(<span class="string">'${libraryName}'</span>)/RootFolder/Files/Add(url=<span class="string">'${filename}'</span>, overwrite=<span class="keyword">true</span>)`; <span class="keyword">const</span> digestCache: IDigestCache = <span class="keyword">this</span>.props.context.serviceScope.consume(DigestCache.serviceKey); digestCache.fetchDigest( <span class="keyword">this</span>.props.context.pageContext.web.serverRelativeUrl) .then(async (digest: <span class="keyword">string</span>): Promise<<span class="keyword">void</span>> => { <span class="keyword">try</span> { <span class="keyword">if</span> (uploadFileObj != <span class="string">''</span>) { fetch(apiUrl, { method: <span class="string">'POST'</span>, headers: { <span class="string">'Content-Type'</span>: <span class="string">'application/json;odata=verbose'</span>, <span class="string">"X-RequestDigest"</span>: digest }, body: uploadFileObj <span class="comment">// This is your file object</span> }).then((response) => { console.log(response); <span class="keyword">const</span> range = quillObj.getEditorSelection(); var res = siteUrl + <span class="string">"/"</span> + listName + <span class="string">"/"</span> + filename; quillObj.getEditor().insertEmbed(range.index, <span class="string">'image'</span>, res); }).<span class="keyword">catch</span>((error) => console.log(error) ); } } <span class="keyword">catch</span> (error) { console.log(<span class="string">'uploadFiles : '</span> + error); } }) } |
Mar 12th
This is a quick tutorial covering how to clear your SPD 2013 Cache. That is handy, especially when working with SPD 2010 and SPD 2013. Clearing the cache will remove any of your past connection history as well provide you a “clean slate” to work from. The cache is not even cleared after doing a reinstall, so this really is the only way to clear it.
Versioning with check-in/out are great but not always preferred, and certainly not infallible. As I learned on a project a few years ago that recently bit me again when my new machine was not similarly configured, SharePoint Designer has a dirty little habit of caching files, including say the XML/XSLT, JS and CSS you might be working with on your site.
No need to fret though; buried in the settings of each version is a toggle that will ensure SPD never sets you back by loading a cached file.
Procedure:
a.Click the address bar
SharePoint Designer 2010 and 2013
Mar 3rd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
{ "debugMode": true, "elmType": "div", "attributes": { "class": "ms-borderColor-neutralTertiary" }, "style": { "width": "99%", "border-top-width": "0px", "border-bottom-width": "1px", "border-left-width": "0px", "border-right-width": "0px", "border-style": "solid", "margin-bottom": "16px", "background-color": "#026d70" }, "children": [{ "elmType": "div", "style": { "display": "flex", "box-sizing": "border-box", "align-items": "center" }, "children": [{ "elmType": "div", "attributes": { "iconName": "Group", -Use icon as per your requirement "class": "ms-fontSize-42 ms-fontWeight-regular ms-fontColor-white", "title": "Details" }, "style": { "flex": "none", "padding": "0px", "padding-left": "5px", "height": "36px" } }] }, { "elmType": "div", "attributes": { "class": "ms-fontColor-neutralSecondary ms-fontWeight-bold ms-fontSize-24" }, "style": { "box-sizing": "border-box", "width": "100%", "text-align": "left", "padding": "21px 12px", "overflow": "hidden", "color": "white" }, "children": [{ "elmType": "div", "txtContent": "New Form" - This is the Form Title }] }] } |
The above JSON is self-explanatory, which has three div.’s, first div is for main container div for header and next two for below…
Click on preview button to see the applied JSON configuration to header.
Here in the above JSON, Section is used to divide the fields in multi column views. Use the column display name to put that column section if any field not mention the section then that field/column will automatically display in the last section.You can see the JSON is self-explanatory so you can add any number of sections here in the JSON.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
{ "debugMode": true, "elmType": "div", "style": { "width": "100%", "text-align": "left", "overflow": "hidden", "border-top-width": "1px" }, "children": [{ "elmType": "div", "style": { "width": "100%", "margin-top": "20px", "margin-bottom": "10px", "height": "4px", "background-color": "#026d70" } }] } |
The above JSON is just to add some border margin below the body, and you can refer the header JSON to add div children in this section if you want. Just complete all these steps and your list form will look better than the default list form, just click on Save button as highlighted in the below screen.
Feb 25th
3rd party solutions like https://feed2json.org or https://rss2json.com.
https://feed2json.org is open source but has limitations as below
It does not support CORS.
https://rss2json.com free version has limitations as below