SlideShare a Scribd company logo
SharePoint and the
User Interface with
JavaScript
Colin Phillips :: SharePoint MVP :: itgroove
March 2015
The Magic Glue to Bring
Interactive Pages to Life
Who I am: Colin Phillips
My Background
 16+ Years in Technology
 Today: SharePoint Consultant and MVP (with itgroove)
 Previously:
12 Years Developing Software, IT Infrastructure Projects, Workflows, and Many Other Related Topics
 B.Sc. in Computer Science from UVic
My Socialness
Blog: mmman.itgroove.net / Twitter: @itgroove_colin
Where to learn more
cphillips@itgroove.net
What is JavaScript?
• JavaScript (or JS) is a powerful language that has the capacity to do many very simple things
(such as reload a webpage) or can be the basis of entire (typically web-based) applications
• Developed by Brendan Eich of Netscape in the mid-90s, it (along with influence from Microsoft
and their version “JScript") ultimately became the basis of the standard ECMAScript
• Strictly speaking, “JavaScript is an object-based scripting language that is lightweight and cross-
platform. JavaScript is not compiled but interpreted.”
• Supported by a broad coalition of companies - no single person or company controls it
On a side note, I actually met and spent a number of days with Brendan and the Mozilla team in 2001 as
part of attending a conference & being asked to join them at the Netscape campus
Who / Where / Why?
• JavaScript can be used by almost anyone – but that doesn’t mean they should. 
• Typically used by front-end web developers to add interactivity to web pages
• Most often combined together with HTML and CSS to create interactive web pages
• "JavaScript is one of the world's most popular programming languages. Virtually
every personal computer in the world has at least one JavaScript interpreter
installed on it and in active use.“
• Rather than asking, “What is the future of JavaScript?” the right thing to say is
JavaScript is the future. Another answer to the same question is JavaScript will
stay relevant as long as people use the Internet.
JavaScript Libraries / Frameworks
• JavaScript is extremely popular and lots of people have made “libraries”
(or “frameworks”) for it - small packages which simplify writing code or
performing a specific function, very well
• Most often open source and combined with HTML & a browser
• Including, but not limited to: (there are lots more)
• Chart.js (and many other charting libraries)
• Dojo Toolkit (web apps, mobile, charting cross-browser)
• ExtJS (data aggregation, dashboards & BI)
• AppJS & App.js (cross-platform desktop / mobile apps with JS/HTML/CSS)
• Kendo UI (Very well constructed, but $ – from Telerik)
Technology and Ghostbusters are amongst
my favourite things 
Popular JavaScript Library #1: jQuery
According to Google, “jQuery is a fast, small, and feature-rich JavaScript library. It makes
things like HTML document traversal and manipulation, event handling, animation, and
Ajax much simpler with an easy-to-use API that works across a multitude of browsers.”
• jQuery can make lots of (formerly) complex tasks trivial because of the nature of how
it abstracts the complex portions of JavaScript away
• Simply include jQuery in a web page (with a <script> include), then you can start
using the shortcut syntax (like “$(document).ready(alert(‘hi’));”) in a <script> block
• We use jQuery all the time because writing much of the equivalent JavaScript out by
hand is tedious, and cross-browser compatibility is a huge pain in raw JavaScript
Popular JavaScript Library #2: TypeScript
• “TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.” (Like SASS for CSS)
• JavaScript is “loosely typed” – so a variable can act like a string in one statement, a
number in the next statement, a date after that, or even an object
• TS Allows JavaScript to act more like “strongly typed” languages such as C++ or Java
• In other words, a character data type, must operate like a character data type, and not like
anything else – or else you’ll get a compile error
• My own personal opinion is that TypeScript is cool, and probably helpful to some, but I
love how JS is loosely typed, so it’s not as interesting to me
Application Frameworks
• Node.js - Web applications with real-time, two-way connections, where both
the client and server can initiate communication (individual creator)
• AngularJS (by Google)
• Ember.js (spinoff of SproutCore)
• Backbone.js (by developer of CoffeeScript)
• ReactJS (by Facebook & Instagram)
• Many many others
One or a combination of several may
be the best option for your web app.
SharePoint and JavaScript
• In SharePoint 2013, using JavaScript is the only way to perform certain
types of functionality (like Conditional Formatting)
• 2013 introduced a new list/library display override called “JSLink”. You
can use this to create your own / modify an existing view
• Of course, nearly anything you can do outside of SharePoint with
JavaScript can also be done within SharePoint – just not a lot of people
are that adventurous
• JavaScript is a key component of the new SharePoint App model – lots of
modern SharePoint Apps are written with JavaScript and JS Frameworks
Below: JSLink in Action
SharePoint JSLink Code Sample
• At it’s most basic, you’re telling
SharePoint to override it’s default list view
mechanism, and use the custom one you
define instead
• In this case, when the column “MoreText”
is seen, output that column’s text in bold
(using a simple HTML tag <b>)
• For the nerds, yes, it’s just a bunch of
nested objects with some JSON using an
anonymous function (which is called once
SP is ready) – but it can do SO much!
(function () {
// Initialize the variables for overrides objects
var overrideCtx = {}; overrideCtx.Templates = {};
/* Using the Fields override leaves the rest of the rendering intact, but
allows control over one or more specific fields in the existing view – this
is just one of many ways to use the override */
overrideCtx.Templates.Fields = {
'MoreText' : { 'View' : '<b>' + ctx.CurrentItem.MoreText + '</b>' }};
/* Register the template overrides. */
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();
CSOM – Client Side Object Model
Now we’re cooking with napalm
• The Client Side Object Model (CSOM) is a collection of methods exposed to programmers to allow
you to speak directly to objects in SharePoint
• In other words, you can do lookups on lists or libraries using JavaScript, add new items, even modify
existing list / library items
• The JSOM – JavaScript Object Model exposes the same objects as the CSOM
• The CSOM is constantly being developed. New API’s are being exposed in Office365 all the time
• The CSOM is an important part of the SharePoint App Model. You use the CSOM to communicate
with SharePoint to retrieve data for your app, then can further manipulate it using JavaScript, or
present that data using HTML/CSS
• The CSOM isn’t exclusively for JavaScript, you can use it with C# & VB.net as well, and many other
languages (even things like Perl, PHP, PowerShell or any language that can speak web services) Yes, this is a real book 
And has really good reviews!
Example 1: Visual, Responsive Location Chooser
• All items are defined by a SharePoint list
• Each item has a label (Location X), an
image, and a URL (destination upon click)
• Using the new JSLink technique in SP2013,
we’re able to take that simple information,
and using an HTML template, turn that into
a dynamic, responsive, flowing layout that
presents visually stunning
Example 2: Effective Visual Layout of SharePoint List Data
• Here’s one of the landing pages for the
previous example
• One list entry represents the entire top
portion of the page
• Each of the Properties (in the details) are just
a column in that single list entry
• Again uses the JSLink technique to translate
list content into a powerful visual
representation
Example 3: Self Service Employee HR Dashboard
• Responsive design
• Uses a charting library (JQPlot)
• Some include transitions
• Each “box” is just a webpart
• Some web parts use both back-end
server side logic, while the front end
uses JavaScript for final presentation
Example 4: Custom Mysite Landing Page
• Tabbed interface (on right) allows
the bottom portion of the screen
to be a broken down collection of
details about each user
• Uses the JSLink technique at the
bottom to “inject” an image on
the left, and an “Action” on the
right, otherwise the rest is just
regular list data
Example 5: HR Recruitment Job Posting Mgmt Tool
• Adding large, interactive buttons and
making “sections” interactive (with
status) added greatly the sites’ overall
usability
• Uses the JavaScript CSOM to
dynamically update and query list data
• When each button is clicked
• Upon page load (to update the
button status’)
• And when the site is first created
• Also enforces permissions (on Office
Use Only column)
Comparison of Old to New
Example 6: Company Portal HomePage
• Another example of using the JSLink
technique on SharePoint list data to layout
several webparts
• That’s an interesting cupcake policy
Demo
Things to Show
• Consultant Dashboard
- Conditional Formatting
- Elimination of empty web parts
- Floating ball icons
• Mega / Micro Menus
• Projects Dashboard (Time/money/scope & barometer)
• Time Entry modals
• Client Details drop down (taking you to the client
dashboard)
• Landing page photo rotator
• Collapsible divs
• Tabs
• URL Shortener
• LED Dashboard (with auto refresh)
Summary
• JavaScript has been around for many years and is only getting
stronger – it’ll be around for as long as the web is
• Combined with libraries (like jQuery), you can make some
awesome little tweaks to add a lot of value, for little expense
• In SharePoint:
• The new layout possibilities using JSLink are nearly
endless, and very easy to make into a reality
• The CSOM brings to life a whole world of possibilities, and
is the foundation of SharePoint Apps
• When your users get it, and it’s easy for them, you’ve built it right
Questions?
Contact Info
Colin Phillips
cphillips@itgroove.net
blog: mmman.itgroove.net
Twitter: @itgroove_colin

More Related Content

What's hot

Content by query web part
Content by query web partContent by query web part
Content by query web partIslamKhattab
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
SPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery LibrariesSPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery LibrariesMark Rackley
 
SharePoint Performance
SharePoint PerformanceSharePoint Performance
SharePoint Performance
Jeroen Schoenmakers
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITPros
Paul Hunt
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
Chad Schroeder
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slideFabio Franzini
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
Fabio Franzini
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
Paul Hunt
 
SharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingSharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side Rendering
Bill Wolff
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form Usability
Mark Rackley
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsMark Rackley
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
Mark Rackley
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
Mark Rackley
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
Mark Rackley
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
Mark Rackley
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPath
Mark Rackley
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
Mark Rackley
 

What's hot (20)

Content by query web part
Content by query web partContent by query web part
Content by query web part
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
SPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery LibrariesSPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery Libraries
 
SharePoint Performance
SharePoint PerformanceSharePoint Performance
SharePoint Performance
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITPros
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 
SharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingSharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side Rendering
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form Usability
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentials
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPath
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
 

Viewers also liked

Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Chris O'Brien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien
 
Image Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web PartImage Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web Part
GSoft
 
Enhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web DesignEnhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web Design
Eric Overfield
 
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Wendy Neal
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3
Ryan McIntyre
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with Bootstrap
Thomas Daly
 
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesSharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
Muawiyah Shannak
 

Viewers also liked (8)

Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
 
Image Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web PartImage Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web Part
 
Enhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web DesignEnhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web Design
 
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with Bootstrap
 
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesSharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
 

Similar to SharePoint and the User Interface with JavaScript

Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
D'arce Hess
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
Marc D Anderson
 
SharePoint 2013 Preview
SharePoint 2013 PreviewSharePoint 2013 Preview
SharePoint 2013 Preview
Regroove
 
React.js at Cortex
React.js at CortexReact.js at Cortex
React.js at Cortex
Geoff Harcourt
 
A Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptA Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with Javascript
SharePoint Saturday New Jersey
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Ofer Zelig
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba - .toster
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
Derek Jacoby
 
Welcome to React.pptx
Welcome to React.pptxWelcome to React.pptx
Welcome to React.pptx
PraveenKumar680401
 
Intro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteIntro to jQuery @ Startup Institute
Intro to jQuery @ Startup Institute
Rafael Gonzaque
 
Intro javascript build a scraper (3:22)
Intro javascript   build a scraper (3:22)Intro javascript   build a scraper (3:22)
Intro javascript build a scraper (3:22)
Thinkful
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
Donation Website.pptx
Donation Website.pptxDonation Website.pptx
Donation Website.pptx
ssuser5c1807
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
ASG
 
Frontend as a first class citizen
Frontend as a first class citizenFrontend as a first class citizen
Frontend as a first class citizen
Marcin Grzywaczewski
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampChris Love
 
An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
Michał Taberski
 
JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
Franz Inc. - AllegroGraph
 

Similar to SharePoint and the User Interface with JavaScript (20)

Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
 
SharePoint 2013 Preview
SharePoint 2013 PreviewSharePoint 2013 Preview
SharePoint 2013 Preview
 
React.js at Cortex
React.js at CortexReact.js at Cortex
React.js at Cortex
 
A Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptA Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with Javascript
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba -
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
 
Welcome to React.pptx
Welcome to React.pptxWelcome to React.pptx
Welcome to React.pptx
 
Intro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteIntro to jQuery @ Startup Institute
Intro to jQuery @ Startup Institute
 
Intro javascript build a scraper (3:22)
Intro javascript   build a scraper (3:22)Intro javascript   build a scraper (3:22)
Intro javascript build a scraper (3:22)
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
Donation Website.pptx
Donation Website.pptxDonation Website.pptx
Donation Website.pptx
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Frontend as a first class citizen
Frontend as a first class citizenFrontend as a first class citizen
Frontend as a first class citizen
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
 
An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
 
2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni
 
JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
 

More from Regroove

What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022
Regroove
 
New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022
Regroove
 
New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022
Regroove
 
Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove
 
What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022
Regroove
 
What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021
Regroove
 
What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021
Regroove
 
What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021
Regroove
 
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
Regroove
 
What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021
Regroove
 
What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021
Regroove
 
Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021
Regroove
 
Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021
Regroove
 
Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021
Regroove
 
Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021
Regroove
 
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout RoomsVictoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Regroove
 
Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021
Regroove
 
Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020
Regroove
 
Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020
Regroove
 
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Regroove
 

More from Regroove (20)

What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022
 
New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022
 
New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022
 
Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022
 
What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022
 
What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021
 
What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021
 
What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021
 
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
 
What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021
 
What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021
 
Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021
 
Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021
 
Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021
 
Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021
 
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout RoomsVictoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
 
Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021
 
Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020
 
Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020
 
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
 

Recently uploaded

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 

Recently uploaded (20)

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 

SharePoint and the User Interface with JavaScript

  • 1. SharePoint and the User Interface with JavaScript Colin Phillips :: SharePoint MVP :: itgroove March 2015 The Magic Glue to Bring Interactive Pages to Life
  • 2. Who I am: Colin Phillips My Background  16+ Years in Technology  Today: SharePoint Consultant and MVP (with itgroove)  Previously: 12 Years Developing Software, IT Infrastructure Projects, Workflows, and Many Other Related Topics  B.Sc. in Computer Science from UVic My Socialness Blog: mmman.itgroove.net / Twitter: @itgroove_colin Where to learn more cphillips@itgroove.net
  • 3. What is JavaScript? • JavaScript (or JS) is a powerful language that has the capacity to do many very simple things (such as reload a webpage) or can be the basis of entire (typically web-based) applications • Developed by Brendan Eich of Netscape in the mid-90s, it (along with influence from Microsoft and their version “JScript") ultimately became the basis of the standard ECMAScript • Strictly speaking, “JavaScript is an object-based scripting language that is lightweight and cross- platform. JavaScript is not compiled but interpreted.” • Supported by a broad coalition of companies - no single person or company controls it On a side note, I actually met and spent a number of days with Brendan and the Mozilla team in 2001 as part of attending a conference & being asked to join them at the Netscape campus
  • 4. Who / Where / Why? • JavaScript can be used by almost anyone – but that doesn’t mean they should.  • Typically used by front-end web developers to add interactivity to web pages • Most often combined together with HTML and CSS to create interactive web pages • "JavaScript is one of the world's most popular programming languages. Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use.“ • Rather than asking, “What is the future of JavaScript?” the right thing to say is JavaScript is the future. Another answer to the same question is JavaScript will stay relevant as long as people use the Internet.
  • 5. JavaScript Libraries / Frameworks • JavaScript is extremely popular and lots of people have made “libraries” (or “frameworks”) for it - small packages which simplify writing code or performing a specific function, very well • Most often open source and combined with HTML & a browser • Including, but not limited to: (there are lots more) • Chart.js (and many other charting libraries) • Dojo Toolkit (web apps, mobile, charting cross-browser) • ExtJS (data aggregation, dashboards & BI) • AppJS & App.js (cross-platform desktop / mobile apps with JS/HTML/CSS) • Kendo UI (Very well constructed, but $ – from Telerik) Technology and Ghostbusters are amongst my favourite things 
  • 6. Popular JavaScript Library #1: jQuery According to Google, “jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.” • jQuery can make lots of (formerly) complex tasks trivial because of the nature of how it abstracts the complex portions of JavaScript away • Simply include jQuery in a web page (with a <script> include), then you can start using the shortcut syntax (like “$(document).ready(alert(‘hi’));”) in a <script> block • We use jQuery all the time because writing much of the equivalent JavaScript out by hand is tedious, and cross-browser compatibility is a huge pain in raw JavaScript
  • 7. Popular JavaScript Library #2: TypeScript • “TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source.” (Like SASS for CSS) • JavaScript is “loosely typed” – so a variable can act like a string in one statement, a number in the next statement, a date after that, or even an object • TS Allows JavaScript to act more like “strongly typed” languages such as C++ or Java • In other words, a character data type, must operate like a character data type, and not like anything else – or else you’ll get a compile error • My own personal opinion is that TypeScript is cool, and probably helpful to some, but I love how JS is loosely typed, so it’s not as interesting to me
  • 8. Application Frameworks • Node.js - Web applications with real-time, two-way connections, where both the client and server can initiate communication (individual creator) • AngularJS (by Google) • Ember.js (spinoff of SproutCore) • Backbone.js (by developer of CoffeeScript) • ReactJS (by Facebook & Instagram) • Many many others One or a combination of several may be the best option for your web app.
  • 9. SharePoint and JavaScript • In SharePoint 2013, using JavaScript is the only way to perform certain types of functionality (like Conditional Formatting) • 2013 introduced a new list/library display override called “JSLink”. You can use this to create your own / modify an existing view • Of course, nearly anything you can do outside of SharePoint with JavaScript can also be done within SharePoint – just not a lot of people are that adventurous • JavaScript is a key component of the new SharePoint App model – lots of modern SharePoint Apps are written with JavaScript and JS Frameworks Below: JSLink in Action
  • 10. SharePoint JSLink Code Sample • At it’s most basic, you’re telling SharePoint to override it’s default list view mechanism, and use the custom one you define instead • In this case, when the column “MoreText” is seen, output that column’s text in bold (using a simple HTML tag <b>) • For the nerds, yes, it’s just a bunch of nested objects with some JSON using an anonymous function (which is called once SP is ready) – but it can do SO much! (function () { // Initialize the variables for overrides objects var overrideCtx = {}; overrideCtx.Templates = {}; /* Using the Fields override leaves the rest of the rendering intact, but allows control over one or more specific fields in the existing view – this is just one of many ways to use the override */ overrideCtx.Templates.Fields = { 'MoreText' : { 'View' : '<b>' + ctx.CurrentItem.MoreText + '</b>' }}; /* Register the template overrides. */ SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); })();
  • 11. CSOM – Client Side Object Model Now we’re cooking with napalm • The Client Side Object Model (CSOM) is a collection of methods exposed to programmers to allow you to speak directly to objects in SharePoint • In other words, you can do lookups on lists or libraries using JavaScript, add new items, even modify existing list / library items • The JSOM – JavaScript Object Model exposes the same objects as the CSOM • The CSOM is constantly being developed. New API’s are being exposed in Office365 all the time • The CSOM is an important part of the SharePoint App Model. You use the CSOM to communicate with SharePoint to retrieve data for your app, then can further manipulate it using JavaScript, or present that data using HTML/CSS • The CSOM isn’t exclusively for JavaScript, you can use it with C# & VB.net as well, and many other languages (even things like Perl, PHP, PowerShell or any language that can speak web services) Yes, this is a real book  And has really good reviews!
  • 12. Example 1: Visual, Responsive Location Chooser • All items are defined by a SharePoint list • Each item has a label (Location X), an image, and a URL (destination upon click) • Using the new JSLink technique in SP2013, we’re able to take that simple information, and using an HTML template, turn that into a dynamic, responsive, flowing layout that presents visually stunning
  • 13. Example 2: Effective Visual Layout of SharePoint List Data • Here’s one of the landing pages for the previous example • One list entry represents the entire top portion of the page • Each of the Properties (in the details) are just a column in that single list entry • Again uses the JSLink technique to translate list content into a powerful visual representation
  • 14. Example 3: Self Service Employee HR Dashboard • Responsive design • Uses a charting library (JQPlot) • Some include transitions • Each “box” is just a webpart • Some web parts use both back-end server side logic, while the front end uses JavaScript for final presentation
  • 15. Example 4: Custom Mysite Landing Page • Tabbed interface (on right) allows the bottom portion of the screen to be a broken down collection of details about each user • Uses the JSLink technique at the bottom to “inject” an image on the left, and an “Action” on the right, otherwise the rest is just regular list data
  • 16. Example 5: HR Recruitment Job Posting Mgmt Tool • Adding large, interactive buttons and making “sections” interactive (with status) added greatly the sites’ overall usability • Uses the JavaScript CSOM to dynamically update and query list data • When each button is clicked • Upon page load (to update the button status’) • And when the site is first created • Also enforces permissions (on Office Use Only column)
  • 18. Example 6: Company Portal HomePage • Another example of using the JSLink technique on SharePoint list data to layout several webparts • That’s an interesting cupcake policy
  • 19. Demo Things to Show • Consultant Dashboard - Conditional Formatting - Elimination of empty web parts - Floating ball icons • Mega / Micro Menus • Projects Dashboard (Time/money/scope & barometer) • Time Entry modals • Client Details drop down (taking you to the client dashboard) • Landing page photo rotator • Collapsible divs • Tabs • URL Shortener • LED Dashboard (with auto refresh)
  • 20. Summary • JavaScript has been around for many years and is only getting stronger – it’ll be around for as long as the web is • Combined with libraries (like jQuery), you can make some awesome little tweaks to add a lot of value, for little expense • In SharePoint: • The new layout possibilities using JSLink are nearly endless, and very easy to make into a reality • The CSOM brings to life a whole world of possibilities, and is the foundation of SharePoint Apps • When your users get it, and it’s easy for them, you’ve built it right
  • 21. Questions? Contact Info Colin Phillips cphillips@itgroove.net blog: mmman.itgroove.net Twitter: @itgroove_colin

Editor's Notes

  1. In Slide Show mode, click the arrow to enter the PowerPoint Getting Started Center.