SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

29
Michael Greene SharePoint Saturday Tampa June 11, 2011 ENHANCING SHAREPOINT 2010 FOR THE IPAD

Transcript of SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

Page 1: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

Michael Greene

SharePoint Saturday Tampa

June 11, 2011

ENHANCING SHAREPOINT 2010FOR THE IPAD

Page 2: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 2

SHAREPOINT SATURDAY TAMPA

• Welcome to SharePoint Saturday Tampa!

• Introduction

• Please complete & submit speaker evaluation forms

• SharePint

• The Pub, International Mall

• 6 PM

Page 3: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 3

AGENDA

• SharePoint 2010 Compatibility

• Mobile Device Connectivity

• Device Orientation Detection

• CSS Approach

• Scripted Approach

• Branding for Device Orientation Demo

• Cross-Platform Video

• HTML5 Video

• Security Considerations

Page 4: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 4

SHAREPOINT 2010 COMPATIBILITY

• SharePoint 2010 is cross browser compatible

• Fully Supported: IE 7 (32 bit), IE 8 (32 bit), IE 9 (32 bit)

• Supported w/ Limitations: IE 7 (64 bit), IE 8 (64 bit), IE 9 (64 bit),

Firefox 3.6 (Win & non-Win), Safari 4.04 (non-Win)

• Is your custom markup cross browser compatible?

Page 5: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 5

SHAREPOINT 2010 COMPATIBILITY

• SharePoint 2010 is cross browser compatible

• Fully Supported: IE 7 (32 bit), IE 8 (32 bit), IE 9 (32 bit)

• Supported w/ Limitations: IE 7 (64 bit), IE 8 (64 bit), IE 9 (64 bit),

Firefox 3.6 (Win & non-Win), Safari 4.04 (non-Win)

• Is your custom markup cross browser compatible?Safari iPad != Safari iPhone != Safari

iPod

Page 6: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 6

MOBILE DEVICE CONNECTIVITY

WiFi 3G/4G/Internet

External FBAKerberos Delegated by TMG

Utilizes Internal WirelessMay Require VPN*

Page 7: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 7

DEVICE ORIENTATION DETECTION

• Consumer adoption leading to growth in the business sector

• New ability to touch and interact with business data

• Increased user experience

• Efficiently manage limited screen real estate

Page 8: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 8

CSS APPROACHDevice Orientation Detection

Page 9: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 9

CSS APPROACH

• Utilizes orientation aware Cascading Style Sheets (CSS)

• Little overhead, no code or script required

• Detects Portrait vs. Landscape

• Browser determines ratio of browser width vs. height

• Use to display, hide, or change size of elements for specific orientations

• Ideal for integrating orientation detection with site branding

Page 10: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 10

SUPPORTED ORIENTATIONS

Portrait Landscape

Page 11: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 11

• Standard “link” tag with media attribute<link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" />

<link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" />

• Cross-Browser Support<!--[if !IE]><!-->

<link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" />

<link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" />

<!--<![endif]-->

<!--[if IE]>

<link rel="stylesheet" href="Landscape.css" />

<![endif]-->

ATTACHING STYLE SHEETS

Often not needed

Page 12: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 12

• Standard “link” tag<link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" />

<link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" />

• Browser Support<!--[if !IE]><!-->

<link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" />

<link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" />

<!--<![endif]-->

<!--[if IE]>

<link rel="stylesheet" href="Landscape.css" />

<![endif]-->

ATTACHING STYLE SHEETS

All style sheets should be attached after Core.css

and custom CSS registrations.

Page 13: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 13

• Hide Quick Launch when device is in Portrait orientation.

• Hide any content with the “notPortrait” class; similar to the use of “s4-notdlg”.

EXAMPLES

#s4-leftpanel { display: none;}

.s4-ca { margin-left: 0px;}

Portrait.css

.notPortrait { display: none;}

Portrait.css

Page 14: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 14

SCRIPTED APPROACHDevice Orientation Detection

Page 15: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 15

SCRIPTED APPROACH

• Utilizes client-side script (Javascript/jQuery)

• Scripted specifically for iPad

• Identifies numerical orientation value

• Orientation value returned by device hardware/accelerometer

• Uses:

• Bind functions to orientation changes

• Animate element changes

• Make changes to the Document Object Model (DOM)

Page 16: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 16

SUPPORTED ORIENTATIONS

0° 90° 180°-90°

Page 17: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 17

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<script type="text/javascript">

var isiPad = navigator.userAgent.match(/iPad/i) != null; //Boolean, is device iPad

if (isiPad) { // Process only for iPads

ProcessOrientation(window.orientation); // Process initial orientation

window.onorientationchange = function() { // Process on orientation change

ProcessOrientation(window.orientation);

}

function ProcessOrientation(currentOrientation) {

if (currentOrientation == 0 || currentOrientation == 180) {

// Is Portrait

} else if (currentOrientation == 90 || currentOrientation == -90) {

// Is Landscape

}

}

}

</script>

SCRIPTING ORIENTATION DETECTION

Page 18: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 18

• Hide Quick Launch when device is in Portrait orientation.

• Hide any content with the “notPortrait” class; similar to the use of “s4-notdlg”.

EXAMPLES

if (Portrait) { $(“#s4-leftpanel”).hide(); $(“.s4-ca”).css(“marginLeft”, 0);}if (Landscape) { $(“#s4-leftpanel”).show(); $(“.s4-ca”).css(“marginLeft”, “150px”);}

jQuery

if (Portrait) { $(“.notPortrait”).hide();}if (Landscape) { $(“.notPortrait”).show();}

jQuery

Page 19: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 19

• Hide Quick Launch with animation when device is in Portrait orientation.

• Move contents of one container to another, and back again.

ADVANCED EXAMPLES

if (Portrait) { $(“#s4-leftpanel”).animate( [“left”: “=-150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “0px”], “slow” );}if (Landscape) { $(“#s4-leftpanel”).animate( [“left”: “=+150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “150px”], “slow” );}

jQuery

if (Portrait) { $(“#C1”).clone().appendTo(“#C2”); $(“#C1”).html(“”);}if (Landscape) { $(“#C2”).clone().appendTo(“#C1”); $(“#C2”).html(“”);}

jQuery

Page 20: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 20

• Hide Quick Launch with animation when device is in Portrait orientation.

• Move contents of one container to another, and back again.

ADVANCED EXAMPLES

if (Portrait) { $(“#s4-leftpanel”).animate( [“left”: “=-150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “0px”], “slow” );}if (Landscape) { $(“#s4-leftpanel”).animate( [“left”: “=+150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “150px”], “slow” );}

jQuery

if (Portrait) { $(“#C1”).clone().appendTo(“#C2”); $(“#C1”).html(“”);}if (Landscape) { $(“#C2”).clone().appendTo(“#C1”); $(“#C2”).html(“”);}

jQuery

#C1Elemen

tElemen

tElemen

t

#C2#C1 #C2Elemen

tElemen

tElemen

t

#C1Elemen

tElemen

tElemen

t

#C2

Page 21: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 21

• Hide Quick Launch with animation when device is in Portrait orientation.

• Move contents of one container to another, and back again.

ADVANCED EXAMPLES

if (Portrait) { $(“#s4-leftpanel”).animate( [“left”: “=-150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “0px”], “slow” );}if (Landscape) { $(“#s4-leftpanel”).animate( [“left”: “=+150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “150px”], “slow” );}

jQuery

if (Portrait) { $(“#C1”).clone().appendTo(“#C2”); $(“#C1”).html(“”);}if (Landscape) { $(“#C2”).clone().appendTo(“#C1”); $(“#C2”).html(“”);}

jQuery

#C1Elemen

tElemen

tElemen

t

#C2#C1 #C2Elemen

tElemen

tElemen

t

#C1Elemen

tElemen

tElemen

t

#C2

Sales

1st Qtr

2nd Qtr

3rd Qtr

4th Qtr

Cat 1 Cat 2 Cat 3 Cat 4

Chart Title

Cat 1 Cat 2 Cat 3 Cat 4

Chart Title Sales

1st Qtr

2nd Qtr

3rd Qtr

4th Qtr

Page 22: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 22

BRANDING FOR DEVICE ORIENTATION

Demonstration

Page 23: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 23

HTML5Cross-Platform Video

Page 24: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 24

HTML5 VIDEO

• No third party plugin support in the iPad, only option for embedded video is the use of HTML5.

• HTML5 standard dictates support for embedded video with <video> tag

• HTML5 does NOT standardize video format

IE Firefox Safari Chrome Opera iOS

Ogg (Theora/Vorbis)

3.5+ ‡ 5.0+ 10.5+

H.264/AAC/MP4 3.0+ 5.0+ 3.0+

WebM † ‡ 6.0+ 10.6+

‡ Safari will render and video format supported by QuickTime; support for H.264/AACMP4 is shipped with QuickTime while other formats require additional client-side plugins.† WebM video format expected for Internet Explorer 9.0+

Page 25: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 25

HTML5 VIDEO TAG

<video width="640" height="360" controls>

<!-- MP4 must be first for iPad! -->

<source src="__VIDEO__.MP4" type="video/mp4" /> <!-- Safari / iOS video -->

<source src="__VIDEO__.OGV" type="video/ogg" /> <!-- Firefox / Opera / Chrome10 -->

<!-- fallback to Flash: -->

<object width="640" height="360" type="application/x-shockwave-flash“

data="__FLASH__.SWF">

<param name="movie" value="__FLASH__.SWF" />

<param name="flashvars" value="controlbar=over&amp;image=__POSTER__.JPG&amp;

file=__VIDEO__.MP4" />

<!-- fallback image. -->

<img src="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__" title="No video

playback capabilities” />

</object>

</video>

Page 26: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 26

SECURITY CONSIDERATIONSCross-Platform Video

Page 27: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 27

SECURITY CONSIDERATIONS

• iPad passes embedded video requests to QuickTime for rendering

• QuickTime lacks support for any proxy or authentication methods, and iPads cannot join a domain

• Video files must be anonymously accessible

Page 28: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 28

QUESTIONS?

Page 29: SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

04/13/2023MICHAEL GREENE 29

MICHAEL GREENE

@webdes03

mike-greene.com

youtube.mike-greene.com

[email protected]@intellinet.com