Custom Forms in Classic SharePoint and Power Automate DLP Heads Up

On April 25th, 2020 we received message center notification MC210713 in our tenant indicating there was going to be a feature deprecation in SharePoint Designer impacting custom form creation.  If your organization has completely adopted the modern SharePoint experience this notification will not impact you in anyway. On April 23rd, 2020 we received message center notification MC210568 indicating there were updates to Power Platform Data Loss Prevention capabilities.  This update removes the “data governance blocker” for organizations that have yet to enable Power Automate nee Flow and Power Apps within their environment.  Ironically the latter announcement indicated the starting date of the Data Loss Prevention capability updates was April 22nd, 2020…nice timing there Microsoft😊. Feel free to read on to understand how the two are related, especially if your still using Classic SharePoint sites with customizations in your environment! Continue reading “Custom Forms in Classic SharePoint and Power Automate DLP Heads Up”

Uploading multiple attachments in SharePoint with one Input

misc3_bgI ran into the problem of not being able to upload an indefinite number of attachments to a SharePoint list item.  Using a file input could only upload file per input and I needed to allow the user to upload as many as they wanted.  I ended up following this blog post.

To select multiple files in one file input, the JavaScript plugin jquery.multifile.js is needed.  With this plugin, all you need to do to select multiple files is include multiple=”multiple” and class=”multi” on the file input.  When you choose a file it shows up below the input like this:

Continue reading “Uploading multiple attachments in SharePoint with one Input”

Javascript Bug in Mozilla Firefox

Mike BerrymanI recently ran into an issue with a javascript element appearing incorrectly in Firefox. If you don’t know, in javascript you’re able to define a function after the line number that you actually call it in the code. This is possible because the browser (whichever that browser may be) will parse through the javascript before running any of it. This is to ensure that syntax is valid, memory is properly allocated, and the browser properly understands the function you declare so it knows what to do when the function is called.

HOWEVER, if you have a function declaration within an if block, AND said declaration occurs after you try to use it, Firefox won’t understand the function and throw an error.

Continue reading “Javascript Bug in Mozilla Firefox”

Utilize flowjs as an Angular Directive

Mike BerrymanI’ve been working on an angular project that has a requirement to allow users to upload documents, pictures and videos to the site.  As a part of the upload process, after the user has selected their file, but before it’s actually uploaded to the server, the user needs to supply some metadata about the file.  Being a responsive, highly stylized site, the client didn’t want the standard input control with type=”file”. Instead they wanted the user to click an “Add file”-type button that would pop up the explorer window for the user to pick a file, and then once the file is picked, prompt the user for the required metadata before performing the actual upload.

Continue reading “Utilize flowjs as an Angular Directive”

​RESTful Web Service Authentication Changes

Mike BerrymanI was trying to alter the authentication schema being used by one of our mobile apps.  This app communicates via REST web service calls to the server over a secure connection, so we were initially passing username/password as plaintext to the server for authentication with no issues. Every call to the web services re-authenticated the user to make sure they were still allowed to access the requested resource.  The username/passwords were stored on the mobile device in a way that’s inaccessible to the user.

Continue reading “​RESTful Web Service Authentication Changes”

Fix for Footer Shift in jQuery Mobile Toolbar

Mike BerrymanI was using the jQuery Mobile toolbar widget for iOS to create a tablet log-in page. I was using the “always show” feature of the jQuery toolbar in order to keep it locked in place on the screen (which makes the header and footer visible no matter where I scroll on the page).

Continue reading “Fix for Footer Shift in jQuery Mobile Toolbar”

Creating a Google Docs Spreadsheet-like interface

misc2As you may know, a Google Docs Spreadsheet acts almost exactly like Microsoft Excel but is completely web-based. In addition, it automatically saves the changes to a cell once the user has exited the cell. So the features that I am going to demonstrate are:

  1. Creating the basic html table
  2. Highlighting editable cells when moused over
  3. Adding a textbox to make cells editable
  4. Making the textbox invisible
  5. Using JavaScript & jQuery to capture changes when edited
  6. Adding an MVC Action method to save the changes
  7. Report that the changes were saved