AD 102 Break out of the box Integrate existing Domino data with modern websites. Karl-Henry Martinsson Deep South Insurance

Size: px
Start display at page:

Download "AD 102 Break out of the box Integrate existing Domino data with modern websites. Karl-Henry Martinsson Deep South Insurance"

Transcription

1 AD 102 Break out of the box Integrate existing Domino data with modern websites Karl-Henry Martinsson Deep South Insurance

2 I AM Swede living in Dallas Sr. Applications Developer, Deep South Insurance Life-long geek Programming since 1982 Ex-Microsoft ( ) Ex-journalist ( , freelance ) Web developer since 1994 Notes/Domino developer since 1996 IBM Champion 2014 and

3 My story Old infrastructure Company unwilling to upgrade Requesting new web applications Wanted modern look, mobile Bootstrap and jquery to the rescue:

4 Agenda Integrate existing Domino data with modern websites Why integrate? Why jquery and not XPages? Separate the workload Client Javascript/jQuery, Ajax, JSON Server Lotusscript Improve the UI Bootstrap Demos All sample code will be available for download at

5 Why integrate? Limited or no migration options Desire to modernize Code re-use Take advantage of the power of Domino No one will know you are using a Domino backend Use existing skillset Learn valuable new skills

6 Why not use Xpages? Infrastructure not supporting XPages No XPages skills Tight deadline no time to learn More control Plugin availability

7 Separate the workload Separate design and code Focus expertise on their respective areas Use established front-end technologies Back-end focus on business logic and data Collaboration is important!

8 Client modern web browser Javascript/jQuery Ajax/JSON HTML and CSS Bootstrap Ajax call JSON data.nsf

9 Server IBM Domino Lotusscript Agents NSF database Existing business logic Can use existing classes/script libraries Works on Domino since R5 Update highly recommended!

10 Where does everything live? HTML pages, CSS files and Javascript Notes page element Notes resources CDN (.js and.css) Server file system in Data/Domino/HTML Another web server Lotusscript agents.nsf on Domino server

11 Development tools Domino Designer Browser with Dev Tools Firefox with Firebug plugin Internet Explorer Developer Tools (built-in) Chrome Developer Tools (built-in) Online resources jsonlint.com Stack Overflow Google Search

12 Ajax Asynchronous Javascript And XML Asynchronous = call processed in background Result is passed back and then processed XML used first, JSON now more common Easier to parse JSON in Javascript Using few lines of jquery code

13 jquery Javascript library Free Very popular Powerful save development time Easy access to web page elements (DOM) Online resources

14 Calling Ajax using jquery $.ajax({ url: '/websites/example.nsf/ajax_getuserdetails?openagent', data: {name: Karl-Henry Martinsson }, cache: false }).done(function(data) { // Process returned data here }).fail(function(e) { // Process failed call here }); or $.ajax({ url: '/websites/example.nsf/ajax_getuserdetails?openagent', data: {name: username}, cache: false }).success(function(data) { // Process returned data here }); Can be more complex.done(),.fail() and.always() Arguments passed as JSON cache: false cache buster

15 JSON JavaScript Object Notation Describe data as Javascript objects Preferred to XML in web applications Less chatty (less bandwidth) Very easy to access values directly in Javascript Any data types, including other objects Array of objects

16 Generate JSON on Domino?ReadViewEntries&OutputFormat=JSON Available in Domino Can be hard to parse Formula in Notes view Lotusscript agent Generate your own JSON Test at JSONLint.com Use JSON classes o o My Class.JSON JSON Lotusscript Classes by Troy Reimer (OpenNTF.org)

17 Generate JSON on Domino Xpages Style XPages agent (SSJS XAgent) Domino and XPages knowledge Better performance than Lotusscript REST Services control from Extension Library Domino and ExtLib on server

18 Demo 1 Text/HTML response First button will update specified element with text Static text - stored in the Javascript source code Second button will trigger an Ajax call to server Server agent returns plain text No parsing of name-value pairs No database lookups or other server interaction Returned text can contain HTML Javascript updates specified element with returned text Google as CDN for jquery jquery also hosted by Microsoft and others

19 Demo 1 Web page <!DOCTYPE HTML ><html> <head> <title>demo 1 - MWLUG 2015</title> <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script> </head> <body> <div id="content"></div> <button id="btndisplaystaticcontent">show content from page</button> <button id="btndisplayservercontent">load content from server</button> <script> $(document).ready(function () { // Update content div with content from this page $('#btndisplaystaticcontent').click( function() { var content = "This is some static content from this page"; $('#content').html(content); }); // Update content div with content from server $('#btndisplayservercontent').click( function() { $.ajax({ url: 'ajax_demo1?openagent', cache: false }).done(function(data) { $('#content').html(data); }); }); }); </script> </body> </html>

20 Demo 1 Lotusscript agent Option Public Option Declare Sub Initialize '*** MIME Header to tell browser what kind of data we will return Print "content-type: text/html" '*** Content (HTML) to return to calling browser Print "This is content loaded from the server.<br>" Print "<em>this</em> text is returned as <strong>html</strong>.<br>" End Sub Agent settings

21

22 Demo 2 Text/HTML response Read text field, pass to server Return and display computed text Simple URL class

23 Demo 2 Web page <!DOCTYPE HTML ><html> <head> <title>demo 2 - MWLUG 2015</title> <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script> </head> <body> Name: <input type="text" id="username"></input> <br> <br> <button id="btndisplayservercontent">load content from server</button> <br> <br> <div id="content"></div> <script> $(document).ready(function () { // Update content div with dynamic content $('#btndisplayservercontent').click( function() { // Get username from input field var username = $('#username').val(); // Make Ajax call to server, passing user name as argument $.ajax({ url: 'ajax_demo2?openagent', data: {name: username}, cache: false }).done(function(data) { $('#content').html(data); }); }); }); </script> </body> </html>

24 Demo 2 Lotusscript agent Option Public Option Declare Use "Class.URL" Sub Initialize '--- Local Notes classes used in agent Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument '--- Custom classes Dim url As URLData '*** Create new URLData object Set url = New URLData() '*** MIME Header to tell browser what kind of data we will return Print "content-type: text/html" '*** Check reqired values for this agent If url.isvalue("name")=false Then Print "Missing argument 'name'." Exit Sub End If '*** Process name argument If url.getvalue("name")="" Then Print "'Name' is empty." Else Print "Hello, " + url.getvalue("name") + "!" End If End Sub

25 Demo 2 URL Class Class URLData p_urldata List As String Public Sub New() Dim session As New NotesSession Dim webform As NotesDocument Dim tmp As String Dim tmparr As Variant Dim tmparg As Variant Dim i As Integer '*** Get document context (in-memory NotesDocument) Set webform = session.documentcontext '*** Get HTTP GET argument(s) after?openagent tmp = FullTrim(StrRight(webform.GetItemValue("Query_String")(0), OpenAgent&")) If tmp = "" Then '*** Get HTTP POST argument(s) tmp = FullTrim(webform.GetItemValue("Request_Content")(0))) End If '*** Separate name-value pairs into array tmparr = Split(tmp,"&") '*** Loop through array, split each name-value/argument For i = LBound(tmparr) To UBound(tmparr) tmparg = Split(tmparr(i),"=") p_urldata(lcase(tmparg(0))) = Decode(tmparg(1)) Next End Sub

26 Demo 2 URL Class %REM Function GetValue %END REM Public Function GetValue(argname As String) As String If IsValue(argname) Then GetValue = p_urldata(lcase(argname)) Else GetValue = "" End If End Function %REM Function IsValue %END REM Public Function IsValue(argname As String) As Boolean IsValue = IsElement(p_urldata(LCase(argname))) End Function '*** Private functions for this class Private Function Decode(txt As String) As String Dim tmp As Variant Dim tmptxt As String tmptxt = Replace(txt,"+"," ") tmp = & tmptxt & ") ) Decode = tmp(0) End Function End Class

27

28 Demo 3 Return JSON data Status - success or error Multiple values Error message Case sensitive!

29 Demo 3 Lotusscript JSON class Simplify JSON creation Add values (strings) and fix quotes within value Add boolean values (true/false) Set status (success or error) Send MIME type and JSON string back

30 Demo 3 Lotusscript agent Option Public Option Declare Use "Class.JSON" Sub Initialize '--- Custom class Dim json As JSONData '*** Create new JSONData object Set json = New JSONData() '*** Generate JSON to return Call json.setvalue("phonenumber", " ") Call json.setvalue(" ", "texasswede@gmail.com") Call json.setvalue("name", "Karl-Henry Martinsson") json.success = True Call json.sendtobrowser() End Sub

31 Demo 3 Return JSON data <body> <br> <button id="btndisplayservercontent">load user info</button> <br> <br> <div id="userinfo"> <div> User Name: <span id="username"></span> </div> <div> Phone number: <span id="userphonenumber"></span> </div> <div> Address: <span id="user "></span> </div> </div> <div id="errorinfo"></div> </body> Use span elements to hold values id attribute used to identify element Must be unique on page

32 Demo 3 Return JSON data $.ajax({ url: 'ajax_demo3?openagent', cache: false }).success(function(data) { if(data.status=="success") { // Populate the different fields and display the section $('#userphonenumber').html(data.phonenumber); $('#user ').html(data. ); $('#username').html(data.name); $("#userinfo").fadein(1500); } else { // Display error message passed from server $("#errorinfo").html(data.errormsg); $("#errorinfo").fadein(1000); } }); Very little code needed Put values into specified elements Case is important!

33

34 Twitter Bootstrap Open source front-end framework CSS + some jquery Responsive Themes, color schemes and plugins CDN or local copy 3 rd party resources and plugins

35 Example of web application using Bootstrap

36 Another Bootstrap web application The password reset application pictured above is a free download. You can get it at

37 Benefits of using Bootstrap Rapid development Responsive Cross-browser Plenty of resources Actively being developed

38 Potential issues with Bootstrap Only supporting the latest browsers Major changes between v2 and v3 Version specific plugins Some plugins not themeable

39 Using Bootstrap <meta name="viewport" content="width=device-width, initial-scale=1"> <title>demo 4 - MWLUG 2015</title> <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> <link href="demo4.css" rel="stylesheet"> Viewport meta tag control scaling

40 Using Bootstrap <meta name="viewport" content="width=device-width, initial-scale=1"> <title>demo 4 - MWLUG 2015</title> <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> <link href="demo4.css" rel="stylesheet"> Minified Bootstrap from BootstrapCDN.com // - works with and without SSL Will not work on local webpages, page must be on a server Local CSS located after Bootstrap CSS

41 Demo 4 Adding Bootstrap Link to Bootstrap and local CSS file Local CSS used for minor tweaks Bootstrap markup in HTML Two columns Button in left column Result in right column Responsive - columns will stack

42 Demo 4 Adding Bootstrap HTML <head> <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> <link href="demo4.css" rel="stylesheet"> HTML <body> <div class="container"> <div class="row"> <div class="col-md-6"> <button class="btn btn-primary" id="btndisplayservercontent">load user info</button> </div> <div id="userinfo" class="well col-md-6"> <label>user Name:</label> <div class="jsondata" id="username"></div> <label>phone number:</label> <div class="jsondata" id="userphonenumber"></div> <label> Address:</label> <div class="jsondata" id="user "></div> </div> </div> <div class="alert alert-danger" id="errorinfo"></div> </div>

43 Demo 4 Adding Bootstrap demo4.css container { margin-top: 20px; } label { font-size: 10pt; margin-bottom: 0px; margin-top: 10px; } label:first-child { } margin-top: 0px;.jsonData { } font-size: 12pt; Add 20 pixel margin to top of page Make label text smaller, remove bottom margin and add top margin, except on the first label Set the text size of JSON data returned to 12pt

44 Demo 4 Adding Bootstrap jquery // Hide error section and user info section $("#errorinfo").hide(); $("#userinfo").hide(); // Update content div with dynamic content $('#btndisplayservercontent').click( function() { // Make Ajax call to server $.ajax({ url: 'ajax_demo3?openagent', cache: false }).success(function(data) { if(data.status=="success") { // Populate the different fields and display the section $('#userphonenumber').html(data.phonenumber); $('#user ').html(data. ); $('#username').html(data.name); $("#userinfo").fadein(1500); } else { // Display error message passed from server $("#errorinfo").html(data.errormsg); $("#errorinfo").fadein(1000); } }); });

45

46 Demo 5 Process JSON data-json= JSON_data_element data- prefix is standard.each() Read value and get corresponding JSON $(this) current element in jquery data[ Name ] will return the JSON value Name

47 Demo 5 Process JSON jquery // For each element with class jsondata $(".jsondata").each( $("div[data-json]").each( function() function() { { // Get the field name from the custom attribute data-json // and set the content of the current element to // the corresponding JSON value jsonfield = $(this).attr("data-json"); $(this).html(data[jsonfield]); }); HTML <div id="userinfo" class="well col-md-6"> <label>user Name:</label> <div class="jsondata" id=user"name" data-json="name"></div> <label>phone number:</label> <div class="jsondata" id="userphonenumber" data-json="phonenumber"></div> <label> Address:</label> <div class="jsondata" id="user " data-json=" "></div> </div>

48

49 Demo 6 Process JSON (another way) JSON name = id of element to put data in Less HTML markup Still very little code, and very flexible Add # in front of element name! jquery $.each(data, function(id, item) { elementname = "#" + id; elementvalue = data[id]; $(elementname).html(elementvalue); }); HTML <label>user Name:</label> <div id="name"></div> <label>phone number:</label> <div id="phonenumber"></div> <label> Address:</label> <div id=" "></div>

50

51 Demo 7 Bootstrap plugin Plugin Get it at CDN hosted version at CloudFlare.com Minimal HTML markup Javascript mainly to define columns and settings

52 Demo 7 Bootstrap plugin HTML <div id="tabletoolbar"> <div class="toolbartext">my Contacts</div> </div> <table id="contacttable"></table> jquery (partial) $("#ContactTable").bootstrapTable({ url: 'ajax_demo7_getallcontacts?openagent', search: true, showrefresh: true, pagination: true, pagesize: 25, classes: "table-condensed table-hover table-striped tablecontent", toolbar: "#tabletoolbar", columns: [{ field: 'FirstName', title: 'First Name', width: 80, sortable: true }, { field: 'LastName', title: 'Last Name', width: 90, sortable: true }, {

53 Demo 7 Bootstrap Table plugin Lotusscript code (partial) '*** Get all documents in view to process Set db = session.currentdatabase Set view = db.getview("(lookupcontactsbylastname)") Set col = view.allentries '*** Start of JSON string jsonstring = '*** Loop through all entries and build JSON to return Set entry = col.getfirstentry Do Until entry Is Nothing '*** Build JSON for each entry and add to string Set json = New JSONData() Call json.setvalue("lastname", CStr(entry.ColumnValues(0))) Call json.setvalue("firstname", CStr(entry.ColumnValues(1))) Call json.setvalue("company", CStr(entry.ColumnValues(2))) Call json.setvalue("address", CStr(entry.ColumnValues(3))) Call json.setvalue("city", CStr(entry.ColumnValues(4))) Call json.setvalue("state", CStr(entry.ColumnValues(5))) Call json.setvalue("zip", CStr(entry.ColumnValues(6))) Call json.setvalue("docunid", CStr(entry.ColumnValues(9))) '*** Add new JSON to existing JSON string jsonstring = jsonstring + json.getjson() + "," + Chr$(13) Set entry = col.getnextentry(entry) Loop '*** Remove the trailing comma and line break if we have data If Len(jsonString) > 4 then jsonstring = Left$(jsonString,Len(jsonString)-2) End If '*** Add brackets for array jsonstring = "[ " + Chr$(13) + jsonstring + Chr$(13) + ] '*** MIME Header to tell browser what kind of data we will send Print "content-type: application/json" '*** Send JSON back to browser Print jsonstring

54 Demo 7 Bootstrap Table plugin

55

56 Demo 8 Simple contact database Table of contacts use bootstrap-table plugin Click on user to display more details about them Buttons Edit Save New Delete Add refresh/reload of table when updated

57 Demo 8 Simple contact database Lotusscript agents needed ajax_demo8_getallcontacts (reused from Demo 7) ajax_demo8_getcontactdetails ajax_demo8_savecontact o o If DocUNID is blank, create new contact Otherwise update existing contact ajax_demo8_deletecontact HTML page changes Add section for contact details Detect click on row to display details Add buttons and jquery code

58 Demo 8 Simple contact database HTML buttons <button class="btn btn-sm btn-primary" id="btnnewcontact">new</button> <button class="btn btn-sm btn-primary" id="btneditcontact">edit</button> <button class="btn btn-sm btn-success" id="btnsavecontact">save</button> <button class="btn btn-sm btn-danger pull-right" id="btndeletecontact">delete</button> jquery Edit and New buttons //*** Button actions $("#btneditcontact").on("click", function(e) { editcontact(); }); $("#btnnewcontact").on("click", function() { editcontact(); // Empty all input fields $('input[data-notesfield]').each( function() { $(this).val(""); }); // Empty hidden DocUNID field $("#docunid").attr("data-unid",""); // Hide Delete button $("#btndeletecontact").hide(); });

59 Demo 8 Simple contact database jquery Save button $("#btnsavecontact").on("click", function() { $("#btnsavecontact").hide(); var json = new Object(); // Store field values in JSON object var docunid = $("#docunid").attr("data-unid"); json["docunid"] = docunid; $('input[data-notesfield]').each( function() { var id = $(this).attr("id"); var notesfield = $(this).attr("data-notesfield"); json[notesfield] = $(this).val(); }); // Perform a call to the server to save values $.ajax({ url: "ajax_demo8_savecontact?openagent", type: "POST", data: json }).done(function(data) { if (data.status=="error") { alert("failure: " + data.msg); } else if (data.status=="success") { setreadmode(); // Convert INPUT back to DIV $("#contacttable").bootstraptable("refresh", {silent: true}); }).fail( function(e) { alert("failure!","failed to save contact. Error: " + e.errorthrown); }); $("#btneditcontact").show(); });

60 Demo 8 Simple contact database jquery Delete button $("#btndeletecontact").on("click", function(e) { var docunid = $("#docunid").attr("data-unid"); $.ajax({ url: "ajax_demo8_deletecontact?openagent", type: "POST", data: {DocUNID: docunid } }).done(function(data) { if (data.status=="error") { alert("failure: " + data.msg); } else if (data.status=="success") { $("#contacttable").bootstraptable("refresh", {silent: true}); // Empty all input fields $('input[data-notesfield]').each( function() { $(this).val(""); }); // Empty all div with Notes data $('div[data-notesfield]').each( function() { $(this).html(""); }); // Empty hidden DocUNID storage $("#docunid").attr("data-unid","") $("#btndeletecontact").hide(); $("#btneditcontact").hide(); } }).fail( function(e) { alert("failure!","failed to delete contact. Error: " + e.errorthrown); }); });

61 Demo 8 Simple contact database jquery Detect click on table row // Detect click on row in table $("#contacttable").on('click-row.bs.table', function (e, row, $element) { // Convert INPUT fields back to DIV just in case setreadmode(); // Hide save button if visible $("#btnsavecontact").hide(); // Get DocUNID value in table and load corresponding values from server var unid = row.docunid; displaydetails(unid); });

62 Demo 8 Simple contact database jquery Load contact details from server and display on page // Get contact details from Domino server and populate fields // using the DocUIND value as lookup key function displaydetails(docunid) { $.ajax({ url: 'ajax_demo8_getcontactdetails?openagent', data: {DocUNID: docunid}, cache: false }).success(function(data) { if(data.status=="success") { // For each element with data-notesfield attribute $('div[data-notesfield]').each( function() { notesfield = $(this).attr("data-notesfield"); if (data[notesfield]!=null) { fieldvalue = data[notesfield]; $(this).html(fieldvalue); } }); // Store DocUNID in enmpty div for later use $("#docunid").attr("data-unid",data.docunid); // Display previously hidden editand delete buttons $("#btneditcontact").show(); $("#btndeletecontact").show(); } }); }

63 Demo 8 Simple contact database jquery Change between DIV and INPUT // Put contact details into edit mode by changing DIV to INPUT function editcontact() { $("#btneditcontact").hide(); // Change all div with Notes data to input $('div[data-notesfield]').each( function() { var id = $(this).attr("id"); var notesfield = $(this).attr("data-notesfield"); var input = "<input class='jsondata inputnotesfield form-control input-sm' id='" + id input = input + "' data-notesfield='" + notesfield + "' value='" + $(this).html() + "'></input>"; $(this).replacewith(input) }); $("#btnsavecontact").show(); $("#btneditcontact").hide(); } // Put contact details into read mode by changing INPUT to DIV function setreadmode() { $('input[data-notesfield]').each( function() { var id = $(this).attr("id"); var notesfield = $(this).attr("data-notesfield"); var div = "<div class='jsondata displaynotesfield' id='" + id div = div + "' data-notesfield='" + notesfield + "'>" + $(this).val() + "</div>"; $(this).replacewith(div) }); }

64

65 Demo 9 Calendar using Domino data Similar to Demo 8, but using FullCalendar plugin Get it at Lotusscript agents ajax_demo9_getallevents Returning events between specific days Calendar automatically sends start and end date ajax_demo8_geteventdetails ajax_demo8_updateevent Triggered when moving event or changing duration Arguments: DocUNID, start date and end date

66 Demo 9 Calendar using Domino data Calendar points to JSON of event data jquery Display calendar and load JSON of event data from server var eventsource = 'ajax_demo9_getallevents?openagent'; $("#notescalendar").fullcalendar({ events: eventsource }); Calendar adds start and end dates to URL Agent returns events within date range

67 Demo 9 Calendar using Domino data Lotusscript agent ajax_demo9_getallevents (partial code) '*** Local variables to hold arguments passed from URL Dim startdate As String Dim enddate As String '*** Other local variables Dim jsontext As String '*** Create new URLData object Set url = New URLData() '*** Create new JSONData object Set json = New JSONData() '*** Check start date and convert from ISO to US date format If url.isvalue("start") Then startdate = ISOtoUS(url.GetValue("start")) Else startdate = "01/01/1980" End If '*** Check end date and convert to US date format If url.isvalue("end") Then enddate = ISOtoUS(url.GetValue("end")) Else enddate = "12/31/2199" End If

68 Demo 9 Calendar using Domino data Lotusscript agent ajax_demo9_getallevents (partial code) '*** Send MIME header to browser Print "content-type: application/json" jsontext = "" Set db = session.currentdatabase Set view = db.getview("events") Set col = view.allentries Set entry = col.getfirstentry() Do Until entry Is Nothing If CDat(entry.ColumnValues(0))>=CDat(startdate) Then If CDat(entry.ColumnValues(0))<=CDat(enddate) Then Call json.setvalue("id", CStr(entry.ColumnValues(5))) Call json.setvalue("title",cstr(entry.columnvalues(3))) Call json.setvalue("start", Format$(CDat(entry.ColumnValues(0)),"mm/dd/yyyy hh:nn ampm")) Call json.setvalue("end", Format$(entry.ColumnValues(1),"mm/dd/yyyy hh:nn ampm")) '*** Make the entry editable in calendar (allow changing date/time) Call json.setboolean("editable", True) End If End If jsontext = jsontext + json.getjson() + "," + Chr$(13) Set entry = col.getnextentry(entry) Loop If Len(jsontext)>4 Then jsontext = Left$(jsontext,Len(jsontext)-2) End If Print "[ " + jsontext + " ]"

69 Demo 9 Calendar using Domino data FullCalendar plugin Trigger code on click, resize and drop (move) eventclick: function(calevent, jsevent, view) { var unid = calevent.id; displayeventdetails(unid); }, eventresize: function(event, delta, revertfunc) { if (!confirm(event.title + " will now end at " + event.end.format("h:mm a") + "\nare you sure?")) { revertfunc(); } else { var unid = event.id; updateevent(unid,event.start.format("mm/dd/yyyy hh:mm a"),event.end.format("mm/dd/yyyy hh:mm a")); displayeventdetails(unid) } }, eventdrop: function(event, delta, revertfunc) { var prompt = event.title + "<br>was moved to " + event.start.format("mm/dd/yyyy") prompt = prompt + " at " + event.start.format("h:mm a"); bootbox.confirm(prompt + "<br>are you sure you want to do that?", function(result) { if(result==true) { var unid = event.id; updateevent(unid,event.start.format("mm/dd/yyyy hh:mm a"),event.end.format("mm/dd/yyyy hh:mm a")); displayeventdetails(unid) } else { revertfunc(); } }); }

70 Demo 9 Calendar using Domino data Javascript code Update event on server function updateevent(docunid,startdt,enddt) { var json = new Object(); json["docunid"] = docunid; json["eventstart"] = startdt; json["eventend"] = enddt; // Perform a call to the server to save new event date/time $.ajax({ url: "ajax_demo9_updateevent?openagent", type: "POST", data: json }).done(function(data) { if (data.status=="error") { bootstrapalert(data.msg,"danger"); } else if (data.status=="success") { bootstrapalert(data.msg,"success"); } }).fail( function(e) { bootstrapalert("failed to create progress note. Error: " + e.errorthrown,"danger"); }); }

71 Demo 9 Calendar using Domino data Lotusscript agent ajax_demo9_updateevent (partial code) '--- Local variables Dim startdate As String Dim enddate As String '*** Get document Set db = session.currentdatabase If url.getvalue("docunid")<>"" Then Set doc = db.getdocumentbyunid(url.getvalue("docunid")) End If '*** Check that we found a document, otherwise exit If doc Is Nothing Then Set json = New JSONData() json.success = False json.seterrormsg("failed to locate document '" & url.getvalue("docunid")) Call json.sendtobrowser() Exit Sub End If Call doc.replaceitemvalue("eventstart",cdat(url.getvalue("eventstart"))) Call doc.replaceitemvalue("eventend",cdat(url.getvalue("eventend"))) Call doc.save(true,false) Set json = New JSONData() json.success = True json.setmsg("updated '" & doc.getitemvalue("eventtitle")(0) & "' with new date/time") Call json.sendtobrowser()

72

73 JSON Real Life Example List of medical codes in Domino Consumed in a drop-down MagicSuggest plugin: HTML <label>axis II</label> <div class="magicsuggest" id="dsm4axis2" name="dsm4axis2"></div> jquery // Axis II var DSM4Axis2 = $('#DSM4Axis2').magicSuggest({ name: 'DSM4Axis2', resultasstring: true, Width: 630, MaxDropHeight: 200, style: 'height: 28px;', displayfield: 'description', valuefield: 'id', sortorder: 'description', emptytext: 'Select value for Axis II (DSM-IV)', data: '/database.nsf/ajax_getdsm4codes?openagent&axis=2' });

74 JSON Real Life Example JSON generated by agent ajax_getdsm4codes [ {"id":"301","description":"paranoid Personality Disorder"}, {"id":"301.13","description":"cyclothymic Disorder"}, {"id":"301.2", "description":"schizoid Personality Disorder"}, {"id":"301.22","description":"schizotypal Personality Disorder"}, {"id":"301.4","description":"obsessive-compulsive Personality Disorder"}, {"id":"301.5","description":"histrionic Personality Disorder"}, {"id":"301.6","description":"dependent Personality Disorder"}, {"id":"301.7","description":"antisocial Personality Disorder"}, {"id":"301.81","description":"narcissistic Personality Disorder"}, {"id":"301.82","description":"avoidant Personality Disorder"}, {"id":"301.83","description":"borderline Personality Disorder"}, {"id":"301.9","description":"personality Disorder NOS"} ] MagicSuggest rendered in browser:

75 Summary Ajax/JSON efficient to access Domino data CRUD using server based agents (Lotusscript) jquery and Bootstrap to speed up development Plugins available for free Some new easy-to-learn knowledge required Skills beneficial on other platforms as well

76 Questions?

77 Thank you! Presentation & Sample Code:

78 Demo Links Presentation & Sample Database

Break out of The Box Integrate existing Domino data with modern websites. Karl-Henry Martinsson, Deep South Insurance

Break out of The Box Integrate existing Domino data with modern websites. Karl-Henry Martinsson, Deep South Insurance 1100 - Break out of The Box Integrate existing Domino data with modern websites Karl-Henry Martinsson, Deep South Insurance 1100 - Break out of The Box Integrate existing Domino data with modern websites

More information

Elementary! Incorporating BlueMix, Node-RED and Watson in Domino applications

Elementary! Incorporating BlueMix, Node-RED and Watson in Domino applications Elementary! Incorporating BlueMix, Node-RED and Watson in Domino applications Our Amazing Sponsors MWLUG 2017 Karl-Henry Martinsson CEO, Demand Better Solutions, LLC In the IT industry for 29 years Full

More information

Working Bootstrap Contact form with PHP and AJAX

Working Bootstrap Contact form with PHP and AJAX Working Bootstrap Contact form with PHP and AJAX Tutorial by Ondrej Svestka Bootstrapious.com Today I would like to show you how to easily build a working contact form using Boostrap framework and AJAX

More information

Using Development Tools to Examine Webpages

Using Development Tools to Examine Webpages Chapter 9 Using Development Tools to Examine Webpages Skills you will learn: For this tutorial, we will use the developer tools in Firefox. However, these are quite similar to the developer tools found

More information

Front-End UI: Bootstrap

Front-End UI: Bootstrap Responsive Web Design BootStrap Front-End UI: Bootstrap Responsive Design and Grid System Imran Ihsan Assistant Professor, Department of Computer Science Air University, Islamabad, Pakistan www.imranihsan.com

More information

Responsive Web Design and Bootstrap MIS Konstantin Bauman. Department of MIS Fox School of Business Temple University

Responsive Web Design and Bootstrap MIS Konstantin Bauman. Department of MIS Fox School of Business Temple University Responsive Web Design and Bootstrap MIS 2402 Konstantin Bauman Department of MIS Fox School of Business Temple University Exam 3 (FINAL) Date: 12/06/18 four weeks from now! JavaScript, jquery, Bootstrap,

More information

Web Development and HTML. Shan-Hung Wu CS, NTHU

Web Development and HTML. Shan-Hung Wu CS, NTHU Web Development and HTML Shan-Hung Wu CS, NTHU Outline How does Internet Work? Web Development HTML Block vs. Inline elements Lists Links and Attributes Tables Forms 2 Outline How does Internet Work? Web

More information

This project will use an API from to retrieve a list of movie posters to display on screen.

This project will use an API from   to retrieve a list of movie posters to display on screen. Getting Started 1. Go to http://quickdojo.com 2. Click this: Project Part 1 (of 2) - Movie Poster Lookup Time to put what you ve learned to action. This is a NEW piece of HTML, so start quickdojo with

More information

Part 1: jquery & History of DOM Scripting

Part 1: jquery & History of DOM Scripting Karl Swedberg: Intro to JavaScript & jquery 0:00:00 0:05:00 0:05:01 0:10:15 0:10:16 0:12:36 0:12:37 0:13:32 0:13:32 0:14:16 0:14:17 0:15:42 0:15:43 0:16:59 0:17:00 0:17:58 Part 1: jquery & History of DOM

More information

Stamp Builder. Documentation. v1.0.0

Stamp  Builder. Documentation.   v1.0.0 Stamp Email Builder Documentation http://getemailbuilder.com v1.0.0 THANK YOU FOR PURCHASING OUR EMAIL EDITOR! This documentation covers all main features of the STAMP Self-hosted email editor. If you

More information

BEFORE CLASS. If you haven t already installed the Firebug extension for Firefox, download it now from

BEFORE CLASS. If you haven t already installed the Firebug extension for Firefox, download it now from BEFORE CLASS If you haven t already installed the Firebug extension for Firefox, download it now from http://getfirebug.com. If you don t already have the Firebug extension for Firefox, Safari, or Google

More information

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML UI Course (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) HTML: Introduction The World Wide Web (WWW) and history of HTML Hypertext and Hypertext Markup Language Why HTML Prerequisites Objective

More information

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group 2008 IBM Corporation Agenda XPage overview From palette to properties: Controls, Ajax

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Introduction to Computer Science Web Development

Introduction to Computer Science Web Development Introduction to Computer Science Web Development Flavio Esposito http://cs.slu.edu/~esposito/teaching/1080/ Lecture 14 Lecture outline Discuss HW Intro to Responsive Design Media Queries Responsive Layout

More information

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148 Index Numbers & Symbols (angle brackets), in HTML, 47 : (colon), in CSS, 96 {} (curly brackets), in CSS, 75, 96. (dot), in CSS, 89, 102 # (hash mark), in CSS, 87 88, 99 % (percent) font size, in CSS,

More information

Session 5. Web Page Generation. Reading & Reference

Session 5. Web Page Generation. Reading & Reference Session 5 Web Page Generation 1 Reading Reading & Reference https://en.wikipedia.org/wiki/responsive_web_design https://www.w3schools.com/css/css_rwd_viewport.asp https://en.wikipedia.org/wiki/web_template_system

More information

Jquery Manually Set Checkbox Checked Or Not

Jquery Manually Set Checkbox Checked Or Not Jquery Manually Set Checkbox Checked Or Not Working Second Time jquery code to set checkbox element to checked not working. Apr 09 I forced a loop to show checked state after the second menu item in the

More information

Jquery Ajax Json Php Mysql Data Entry Example

Jquery Ajax Json Php Mysql Data Entry Example Jquery Ajax Json Php Mysql Data Entry Example Then add required assets in head which are jquery library, datatable js library and css By ajax api we can fetch json the data from employee-grid-data.php.

More information

Web Technology for Test and Automation Applications

Web Technology for Test and Automation Applications Web Technology for Test and Automation Applications Fanie Coetzer - FSE Demo Operator Technician Engineers Your boss Test Sequencer 3 Goal I know nothing I know what it takes to get started on web applications

More information

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery. HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets

More information

Improving Notes/Domino Database performance. November 12, 2014 Paul Albright

Improving Notes/Domino Database performance. November 12, 2014 Paul Albright Improving Notes/Domino Database performance November 12, 2014 Paul Albright Paul_albright@us.ibm.com Agenda Views Forms Agents or Code Form properties XPages Resource Links Q & A 2 Views Some things that

More information

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević Frontend guide Everything you need to know about HTML, CSS, JavaScript and DOM Dejan V Čančarević Today frontend is treated as a separate part of Web development and therefore frontend developer jobs are

More information

Programmazione Web a.a. 2017/2018 HTML5

Programmazione Web a.a. 2017/2018 HTML5 Programmazione Web a.a. 2017/2018 HTML5 PhD Ing.Antonino Raucea antonino.raucea@dieei.unict.it 1 Introduzione HTML HTML is the standard markup language for creating Web pages. HTML stands for Hyper Text

More information

PHP & My SQL Duration-4-6 Months

PHP & My SQL Duration-4-6 Months PHP & My SQL Duration-4-6 Months Overview of the PHP & My SQL Introduction of different Web Technology Working with the web Client / Server Programs Server Communication Sessions Cookies Typed Languages

More information

Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc

Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc 2010 by the individual speaker Sponsors 2010 by the individual speaker Speaker Information Independent Consultant,

More information

Static Webpage Development

Static Webpage Development Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for PHP Given below is the brief description for the course you are looking for: - Static Webpage Development Introduction

More information

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments. Web Development WEB101: Web Development Fundamentals using HTML, CSS and JavaScript $2,495.00 5 Days Replay Class Recordings included with this course Upcoming Dates Course Description This 5-day instructor-led

More information

UX/UI Controller Component

UX/UI Controller Component http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:mrte:ux_ui:ux_ui_controller_component_3.5 UX/UI Controller Component Outline egovframework offers the user an experience to enjoy one of the most

More information

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

Professional Course in Web Designing & Development 5-6 Months

Professional Course in Web Designing & Development 5-6 Months Professional Course in Web Designing & Development 5-6 Months BASIC HTML Basic HTML Tags Hyperlink Images Form Table CSS 2 Basic use of css Formatting the page with CSS Understanding DIV Make a simple

More information

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1 Make a Website A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1 Overview Course outcome: You'll build four simple websites using web

More information

Markup Language. Made up of elements Elements create a document tree

Markup Language. Made up of elements Elements create a document tree Patrick Behr Markup Language HTML is a markup language HTML markup instructs browsers how to display the content Provides structure and meaning to the content Does not (should not) describe how

More information

UNIVERSITY OF TORONTO Faculty of Arts and Science APRIL 2016 EXAMINATIONS. CSC309H1 S Programming on the Web Instructor: Ahmed Shah Mashiyat

UNIVERSITY OF TORONTO Faculty of Arts and Science APRIL 2016 EXAMINATIONS. CSC309H1 S Programming on the Web Instructor: Ahmed Shah Mashiyat UNIVERSITY OF TORONTO Faculty of Arts and Science APRIL 2016 EXAMINATIONS CSC309H1 S Programming on the Web Instructor: Ahmed Shah Mashiyat Duration - 2 hours Aid Sheet: Both side of one 8.5 x 11" sheet

More information

Kendo UI. Builder by Progress : Using Kendo UI Designer

Kendo UI. Builder by Progress : Using Kendo UI Designer Kendo UI Builder by Progress : Using Kendo UI Designer Copyright 2017 Telerik AD. All rights reserved. December 2017 Last updated with new content: Version 2.1 Updated: 2017/12/22 3 Copyright 4 Contents

More information

JSN PageBuilder 2 User Manual

JSN PageBuilder 2 User Manual JSN PageBuilder 2 User Manual Introduction About JSN PageBuilder 2 JSN PageBuilder 2 is the latest innovation of Joomla PageBuilder with great improvements in terms of design, features, and user experience.

More information

Basics of Web Technologies

Basics of Web Technologies Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for Web Designing Given below is the brief description for the course you are looking for: Introduction to Web Technologies

More information

Ajax Ajax Ajax = Asynchronous JavaScript and XML Using a set of methods built in to JavaScript to transfer data between the browser and a server in the background Reduces the amount of data that must be

More information

JQUERYUI - SORTABLE. axis This option indicates an axis of movement "x" is horizontal, "y" is vertical. By default its value is false.

JQUERYUI - SORTABLE. axis This option indicates an axis of movement x is horizontal, y is vertical. By default its value is false. JQUERYUI - SORTABLE http://www.tutorialspoint.com/jqueryui/jqueryui_sortable.htm Copyright tutorialspoint.com jqueryui provides sortable method to reorder elements in list or grid using the mouse. This

More information

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment Web UI Survey of Front End Technologies Web UI 1 Web Challenges and Constraints Desktop and mobile devices - mouse vs. touch input, big vs. small screen Highly variable runtime environment - different

More information

Working with Database. Client-server sides AJAX JSON Data formats Working with JSON data Request Response Bytes Database

Working with Database. Client-server sides AJAX JSON Data formats Working with JSON data Request Response Bytes Database Working with Database Client-server sides AJAX JSON Data formats Working with JSON data Request Response Bytes Database Web programming Basic Web Programming: HTML CSS JavaScript For more Dynamic Web Programming:

More information

Oracle APEX 18.1 New Features

Oracle APEX 18.1 New Features Oracle APEX 18.1 New Features May, 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

Quick.JS Documentation

Quick.JS Documentation Quick.JS Documentation Release v0.6.1-beta Michael Krause Jul 22, 2017 Contents 1 Installing and Setting Up 1 1.1 Installation................................................ 1 1.2 Setup...................................................

More information

Website Development with HTML5, CSS and Bootstrap

Website Development with HTML5, CSS and Bootstrap Contact Us 978.250.4983 Website Development with HTML5, CSS and Bootstrap Duration: 28 hours Prerequisites: Basic personal computer skills and basic Internet knowledge. Course Description: This hands on

More information

The Benefits of CSS. Less work: Change look of the whole site with one edit

The Benefits of CSS. Less work: Change look of the whole site with one edit 11 INTRODUCING CSS OVERVIEW The benefits of CSS Inheritance Understanding document structure Writing style rules Attaching styles to the HTML document The cascade The box model CSS units of measurement

More information

Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server

Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server CIS408 Project 5 SS Chung Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server The catalogue of CD Collection has millions

More information

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me?

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me? The web should be fast. Executive Summary Performance Report for: https://edwardtbabinski.us/blogger/social/index Report generated: Test Server Region: Using: Analysis options: Tue,, 2017, 4:21 AM -0400

More information

Project Part 2 (of 2) - Movie Poster And Actor! - Lookup

Project Part 2 (of 2) - Movie Poster And Actor! - Lookup Getting Started 1. Go to http://quickdojo.com 2. Click this: Project Part 2 (of 2) - Movie Poster And Actor! - Lookup This is an extension of what you did the last time (the Movie Poster lookup from Week

More information

Brief Intro to Firebug Sukwon Oh CSC309, Summer 2015

Brief Intro to Firebug Sukwon Oh CSC309, Summer 2015 Brief Intro to Firebug Sukwon Oh soh@cs.toronto.edu CSC309, Summer 2015 Firebug at a glance One of the most popular web debugging tool with a colleccon of powerful tools to edit, debug and monitor HTML,

More information

N/A. JSN PageBuilder 2 Configuration Manual Introduction. System Requirements. Product Usage. Joomla Requirements. Server Requirement

N/A. JSN PageBuilder 2 Configuration Manual Introduction. System Requirements. Product Usage. Joomla Requirements. Server Requirement JSN PageBuilder 2 Configuration Manual Introduction About JSN PageBuilder 3 JSN PageBuilder 3 is the latest innovation from Joomla! PageBuilder, with great improvements to the interface, features, and

More information

PASS4TEST 専門 IT 認証試験問題集提供者

PASS4TEST 専門 IT 認証試験問題集提供者 PASS4TEST 専門 IT 認証試験問題集提供者 http://www.pass4test.jp 1 年で無料進級することに提供する Exam : 70-480 Title : Programming in HTML5 with JavaScript and CSS3 Vendor : Microsoft Version : DEMO Get Latest & Valid 70-480 Exam's

More information

Sections and Articles

Sections and Articles Advanced PHP Framework Codeigniter Modules HTML Topics Introduction to HTML5 Laying out a Page with HTML5 Page Structure- New HTML5 Structural Tags- Page Simplification HTML5 - How We Got Here 1.The Problems

More information

Making a live edit contact list with Coldbox REST & Vue.js

Making a live edit contact list with Coldbox REST & Vue.js Tweet Making a live edit contact list with Coldbox REST & Vue.js Scott Steinbeck Mar 28, 2016 Today we will be making a contact database that you can quickly and easily manage using ColdBox and Vue.js.

More information

JavaScript: Introduction, Types

JavaScript: Introduction, Types JavaScript: Introduction, Types Computer Science and Engineering College of Engineering The Ohio State University Lecture 19 History Developed by Netscape "LiveScript", then renamed "JavaScript" Nothing

More information

HTML5. HTML5 Introduction. Form Input Types. Semantic Elements. Form Attributes. Form Elements. Month Number Range Search Tel Url Time Week

HTML5. HTML5 Introduction. Form Input Types. Semantic Elements. Form Attributes. Form Elements. Month Number Range Search Tel Url Time Week WEB DESIGNING HTML HTML - Introduction HTML - Elements HTML - Tags HTML - Text HTML - Formatting HTML - Pre HTML - Attributes HTML - Font HTML - Text Links HTML - Comments HTML - Lists HTML - Images HTML

More information

CHAPTER 2 MARKUP LANGUAGES: XHTML 1.0

CHAPTER 2 MARKUP LANGUAGES: XHTML 1.0 WEB TECHNOLOGIES A COMPUTER SCIENCE PERSPECTIVE CHAPTER 2 MARKUP LANGUAGES: XHTML 1.0 Modified by Ahmed Sallam Based on original slides by Jeffrey C. Jackson reserved. 0-13-185603-0 HTML HELLO WORLD! Document

More information

Create-A-Page Design Documentation

Create-A-Page Design Documentation Create-A-Page Design Documentation Group 9 C r e a t e - A - P a g e This document contains a description of all development tools utilized by Create-A-Page, as well as sequence diagrams, the entity-relationship

More information

Software. Full Stack Web Development Intensive, Fall Lecture Topics. Class Sessions. Grading

Software. Full Stack Web Development Intensive, Fall Lecture Topics. Class Sessions. Grading Full Stack Web Development Intensive, Fall 2017 There are two main objectives to this course. The first is learning how to build websites / web applications and the assets that compose them. The second

More information

HTML. Mohammed Alhessi M.Sc. Geomatics Engineering. Internet GIS Technologies كلية اآلداب - قسم الجغرافيا نظم المعلومات الجغرافية

HTML. Mohammed Alhessi M.Sc. Geomatics Engineering. Internet GIS Technologies كلية اآلداب - قسم الجغرافيا نظم المعلومات الجغرافية HTML Mohammed Alhessi M.Sc. Geomatics Engineering Wednesday, February 18, 2015 Eng. Mohammed Alhessi 1 W3Schools Main Reference: http://www.w3schools.com/ 2 What is HTML? HTML is a markup language for

More information

The Structure of the Web. Jim and Matthew

The Structure of the Web. Jim and Matthew The Structure of the Web Jim and Matthew Workshop Structure 1. 2. 3. 4. 5. 6. 7. What is a browser? HTML CSS Javascript LUNCH Clients and Servers (creating a live website) Build your Own Website Workshop

More information

Adaptations by PVII responsive and then creates your page instantly Al Sparber & Gerry Jacobsen PVII

Adaptations by PVII responsive and then creates your page instantly Al Sparber & Gerry Jacobsen PVII Adaptations by PVII is a Dreamweaver extension that allows you to select from 5 unique responsive layouts and then creates your page instantly. We hope you enjoy using this product as much as we did making

More information

Programming web design MICHAEL BERNSTEIN CS 247

Programming web design MICHAEL BERNSTEIN CS 247 Programming web design MICHAEL BERNSTEIN CS 247 Today: how do I make it?! All designers need a medium. Napkin sketches aren t enough.! This week: core concepts for implementing designs on the web! Grids!

More information

Controlled Assessment Task. Question 1 - Describe how this HTML code produces the form displayed in the browser.

Controlled Assessment Task. Question 1 - Describe how this HTML code produces the form displayed in the browser. Controlled Assessment Task Question 1 - Describe how this HTML code produces the form displayed in the browser. The form s code is displayed in the tags; this creates the object which is the visible

More information

Discovery Service Infrastructure for Test- bädden

Discovery Service Infrastructure for Test- bädden Discovery Service Infrastructure for Test- bädden för EID 2.0 Implementation guidelines Version 0.70 2013-04-24 This document describes the discovery service infrastructure for testbädden for EID 2.0 and

More information

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.3/css/materialize.min.css">

<link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.3/css/materialize.min.css> About the Tutorial Materialize is a UI component library created with CSS, JavaScript, and HTML. Materialize UI components help in constructing attractive, consistent, and functional web pages and web

More information

Here is an example of a spending report-type Dashboard. This would be a great tool for a Sales Manager.

Here is an example of a spending report-type Dashboard. This would be a great tool for a Sales Manager. iphone Dashboard handbook Introduction Welcome to the iphone Dashboard Handbook, your one-stop source for learning about and creating 4D iphone Dashboards. iphone Dashboards are data-at-a-glance summaries

More information

Mobile Web Development

Mobile Web Development Mobile Web Development By Phil Huhn 2013-04-30 2013 Northern Software Group Agenda Web-site issues for mobile devices Responsive Design Media Queries Twitter Bootstrap As-is (themes) less variables.less

More information

Purpose of this doc. Most minimal. Start building your own portfolio page!

Purpose of this doc. Most minimal. Start building your own portfolio page! Purpose of this doc There are abundant online web editing tools, such as wordpress, squarespace, etc. This document is not meant to be a web editing tutorial. This simply just shows some minimal knowledge

More information

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components Module 5 JavaScript, AJAX, and jquery Module 5 Contains 2 components Both the Individual and Group portion are due on Monday October 30 th Start early on this module One of the most time consuming modules

More information

jquery in Domino apps

jquery in Domino apps jquery in Domino apps Henry Newberry XPages Developer, HealthSpace USA, Inc. Agenda What is jquery Samples of jquery features Why jquery instead of Dojo jquery and forms editing jquery and AJAX / JSON

More information

WCMS Responsive Design Template Upgrade Training

WCMS Responsive Design Template Upgrade Training WCMS Responsive Design Template Upgrade Training The purpose of this training session is to provide training to site owners, who are upgrading their WCMS content to the new Responsive Design (RD) template.

More information

Css Manually Highlight Current Link Nav Link

Css Manually Highlight Current Link Nav Link Css Manually Highlight Current Link Nav Link way to automatically highlight the "current" link. And I can manually add the following CSS to each page to get them highlighted, but I want to avoid added.

More information

Lotus Using JavaScript in IBM Lotus Domino 7 Applications.

Lotus Using JavaScript in IBM Lotus Domino 7 Applications. Lotus 190-753 Using JavaScript in IBM Lotus Domino 7 Applications http://killexams.com/exam-detail/190-753 B. Remove the input validation formulas. Code a function to validate the user input and call this

More information

Ten good practices for ASP.NET MVC applications

Ten good practices for ASP.NET MVC applications Ten good practices for ASP.NET MVC applications Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e Options for Web development Fully serverside Fully clientside Hybrid SPA And

More information

Create First Web Page With Bootstrap

Create First Web Page With Bootstrap Bootstrap : Responsive Design Create First Web Page With Bootstrap 1. Add the HTML5 doctype Bootstrap uses HTML elements and CSS properties that require the HTML5 doctype. 2. Bootstrap 3 is mobile-first

More information

Introduction to AngularJS

Introduction to AngularJS CHAPTER 1 Introduction to AngularJS Google s AngularJS is an all-inclusive JavaScript model-view-controller (MVC) framework that makes it very easy to quickly build applications that run well on any desktop

More information

Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE!

Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE! Want to read more? You can buy this book at oreilly.com in print and ebook format. Buy 2 books, get the 3rd FREE! Use discount code: OPC10 All orders over $29.95 qualify for free shipping within the US.

More information

Paul Withers Intec Systems Ltd By Kind Permission of Matt White and Tim Clark

Paul Withers Intec Systems Ltd By Kind Permission of Matt White and Tim Clark XPages Blast Paul Withers Intec Systems Ltd By Kind Permission of Matt White and Tim Clark Lead Developer at Matt White Creators of IdeaJam and IQJam Creator of XPages101.net Founder member of the LDC

More information

Designing for diverse devices. Dr. Andres Baravalle

Designing for diverse devices. Dr. Andres Baravalle Designing for diverse devices Dr. Andres Baravalle 1 Outline Web 2.0 Designing for diverse devices 2 Web 2.0 Web 2.0 Web 2.0 is one of neologisms commonly in use in the Web community According to Tim O

More information

NukaCode - Front End - Bootstrap Documentation

NukaCode - Front End - Bootstrap Documentation Nuka - Front End - Bootstrap Documentation Release 1.0.0 stygian July 04, 2015 Contents 1 Badges 3 1.1 Links................................................... 3 1.2 Installation................................................

More information

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript PHP Curriculum Module: HTML5, CSS3 & JavaScript Introduction to the Web o Explain the evolution of HTML o Explain the page structure used by HTML o List the drawbacks in HTML 4 and XHTML o List the new

More information

University of Washington, CSE 154 Homework Assignment 8: Baby Names

University of Washington, CSE 154 Homework Assignment 8: Baby Names University of Washington, CSE 154 Homework Assignment 8: Baby Names This assignment is about using Ajax to fetch data in text, HTML, XML, and JSON formats. Every 10 years, the Social Security Administration

More information

"a computer programming language commonly used to create interactive effects within web browsers." If actors and lines are the content/html......

a computer programming language commonly used to create interactive effects within web browsers. If actors and lines are the content/html...... JAVASCRIPT. #5 5.1 Intro 3 "a computer programming language commonly used to create interactive effects within web browsers." If actors and lines are the content/html...... and the director and set are

More information

HTML and CSS a further introduction

HTML and CSS a further introduction HTML and CSS a further introduction By now you should be familiar with HTML and CSS and what they are, HTML dictates the structure of a page, CSS dictates how it looks. This tutorial will teach you a few

More information

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services Ajax Contents 1. Overview of Ajax 2. Using Ajax directly 3. jquery and Ajax 4. Consuming RESTful services Demos folder: Demos\14-Ajax 2 1. Overview of Ajax What is Ajax? Traditional Web applications Ajax

More information

Get in Touch Module 1 - Core PHP XHTML

Get in Touch Module 1 - Core PHP XHTML PHP/MYSQL (Basic + Advanced) Web Technologies Module 1 - Core PHP XHTML What is HTML? Use of HTML. Difference between HTML, XHTML and DHTML. Basic HTML tags. Creating Forms with HTML. Understanding Web

More information

Chapter 7 BMIS335 Web Design & Development

Chapter 7 BMIS335 Web Design & Development Chapter 7 BMIS335 Web Design & Development Site Organization Use relative links to navigate between folders within your own site o Sometimes dividing your site into folders makes maintenance and updating

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...

More information

Mobile Site Development

Mobile Site Development Mobile Site Development HTML Basics What is HTML? Editors Elements Block Elements Attributes Make a new line using HTML Headers & Paragraphs Creating hyperlinks Using images Text Formatting Inline styling

More information

University of Washington, CSE 190 M Homework Assignment 8: Baby Names

University of Washington, CSE 190 M Homework Assignment 8: Baby Names University of Washington, CSE 190 M Homework Assignment 8: Baby Names This assignment is about using Ajax to fetch data from files and web services in text, HTML, XML, and JSON formats. You must match

More information

Website Report for test.com

Website Report for test.com NeatWidget contact@neatwidget.com.au neatwidget.com.au Website Report for test.com This report grades your website on the strength of a range of important factors such as on-page optimization, off-page

More information

Tutorials Php Y Jquery Mysql Database Without Refreshing Code

Tutorials Php Y Jquery Mysql Database Without Refreshing Code Tutorials Php Y Jquery Mysql Database Without Refreshing Code Code for Pagination using Php and JQuery. This code for pagination in PHP and MySql gets. Tutorial focused on Programming, Jquery, Ajax, PHP,

More information

Configuring Ad hoc Reporting. Version: 16.0

Configuring Ad hoc Reporting. Version: 16.0 Configuring Ad hoc Reporting Version: 16.0 Copyright 2018 Intellicus Technologies This document and its content is copyrighted material of Intellicus Technologies. The content may not be copied or derived

More information

Helpline No WhatsApp No.:

Helpline No WhatsApp No.: TRAINING BASKET QUALIFY FOR TOMORROW Helpline No. 9015887887 WhatsApp No.: 9899080002 Regd. Off. Plot No. A-40, Unit 301/302, Tower A, 3rd Floor I-Thum Tower Near Corenthum Tower, Sector-62, Noida - 201309

More information

Anatomy of an HTML document

Anatomy of an HTML document Anatomy of an HTML document hello World hello World This is the DOCTYPE declaration.

More information

ITEC447 Web Projects CHAPTER 9 FORMS 1

ITEC447 Web Projects CHAPTER 9 FORMS 1 ITEC447 Web Projects CHAPTER 9 FORMS 1 Getting Interactive with Forms The last few years have seen the emergence of the interactive web or Web 2.0, as people like to call it. The interactive web is an

More information

HTML & CSS. Rupayan Neogy

HTML & CSS. Rupayan Neogy HTML & CSS Rupayan Neogy But first My Take on Web Development There is always some tool that makes your life easier. Hypertext Markup Language The language your web browser uses to describe the content

More information

Session 11. Ajax. Reading & Reference

Session 11. Ajax. Reading & Reference Session 11 Ajax Reference XMLHttpRequest object Reading & Reference en.wikipedia.org/wiki/xmlhttprequest Specification developer.mozilla.org/en-us/docs/web/api/xmlhttprequest JavaScript (6th Edition) by

More information

Lecture : 3. Practical : 2. Course Credit. Tutorial : 0. Total : 5. Course Learning Outcomes

Lecture : 3. Practical : 2. Course Credit. Tutorial : 0. Total : 5. Course Learning Outcomes Course Title Course Code WEB DESIGNING TECHNOLOGIES DCE311 Lecture : 3 Course Credit Practical : Tutorial : 0 Total : 5 Course Learning Outcomes At end of the course, students will be able to: Understand

More information

SPARK. User Manual Ver ITLAQ Technologies

SPARK. User Manual Ver ITLAQ Technologies SPARK Forms Builder for Office 365 User Manual Ver. 3.5.50.102 0 ITLAQ Technologies www.itlaq.com Table of Contents 1 The Form Designer Workspace... 3 1.1 Form Toolbox... 3 1.1.1 Hiding/ Unhiding/ Minimizing

More information