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

Size: px
Start display at page:

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

Transcription

1 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. We will be using bootstrap in our project to make it the UI look a little better but it is completely optional if you want to use this in your own project. For this project I will be using CommandBox to generate all my files. TL;DR: View the repo here Lets Begin. Step 1: You can skip this step if you already have a project set up. From CommandBox run: coldbox create app name=cbvue skeleton=rest --installcoldbox This will give us a minimal project with a handlers\basehandler.cfc (needed to make our life easy when creating a REST API) and an handlers\echo.cfc which is an example usage to get you started. Now that we have our project started we need to tweak a few things.

2 First, since this is a template that is expecting to be setup for REST only, the Echo.cfc is set to be the default entry point. Since we want to create a view that accesses a REST API we need to point that to a view. Step 2: Create you default Layout & View. coldbox create layout Main This is going to create our default layout. A layout is the outer template that you content will go inside. The layout will be created in layouts/main.cfm. Navigate to that folder and replace the content with this: <!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initialscale=1"> <title>coldbox & Vue.js</title> <link rel="stylesheet" href=" n.css"> <script type="text/javascript" src=" <script type="text/javascript" src=" </head> <body> <main> <cfoutput>#renderview()#</cfoutput> </main> <script src=" "></script> <script

3 src=" js"></script> </body> </html> This contain some boilerplate code to get our page setup and includes all of our libraries that will be needed. Again, the only libraries needed for this project are vue.js & vue-resource, everything else is just for UI. coldbox create view main\index --helper This will create 2 files: view/main/index.cfm, view/main/indexhelper.cfm. index.cfm will contain the HTML table and form we will be interacting with. indexhelper.cfm (a file automatically included when we load index.cfm) will contain all of our code for vue.js. The helper file is a connivence provided by ColdBox to help organize your code into separate files. Now before we go too far, we need to change the default entry point to be our new index so that we will see the correct view. Navigate to config/coldbox.cfc. In our settings we are going to change: defaultevent = "Main.index", From this point is is time to start your server start --rewritesenable --force As a side note if your on CommandBox latest stable version you can also create a server.json file in the root of your project which will enable you to store all of your settings so when you want to start your server up in CommandBox you just type:

4 start I have included my server.json in the repo if you want to take a look. Step 3. Creating the REST API We need a place to store our data so we will use a model, since we have been using CommandBox to generate our files we will continue to do so: coldbox create model name=contactservice properties=contacts,lastid -- accessors This will create 2 files: models/contactservices.cfc, tests/specs/unit/contactservicestest.cfc. Navigate to our models/contactservices.cfc, file and add this inside your init function: variables.contacts = { "1" : {"id": 1, "firstname": "Scott", "lastname": "Steinbeck", "phone": " ", " ": "scottsteinbeck@ .com" "2" : {"id": 2, "firstname": "Scott", "lastname": "Coldwell", "phone": " ", " ": "scottcoldwell@ .com" "3" : {"id": 3, "firstname": "Jon", "lastname": "Clausen", "phone": " ", " ": "johnclausen@ .com" "4" : {"id": 4, "firstname": "Eric", "lastname": "Peterson", "phone": " ", " ": "ericpeterson@ .com" "5" : {"id": 5, "firstname": "Andrew", "lastname": "Dixon", "phone": " ", " ": "andrewdixon@ .com" "6" : {"id": 6, "firstname": "Gavin", "lastname": "Pickin", "phone": " ", " ": "gavinpickin@ .com" "7" : {"id": 7, "firstname": "Brad", "lastname": "Wood", "phone": " ", " ": "bradwood@ .com" "8" : {"id": 8, "firstname": "Luis", "lastname": "Majano", "phone": " ", " ": "luismajano@ .com" "9" : {"id": 9, "firstname": "Jorge", "lastname": "Reyes", "phone": " ", " ": "jorgereyes@ .com" ;

5 variables.lastid = 10; This is just some default table rows to get us started seeing some data. Instead of adding a database into the mix i thought it would be easier to persist this in the singleton scope to make it simpler to walk though. This just makes it persist across refreshes and starts us at an increment number when we create new items. In case you are new to ColdBox you may be unfamiliar with the SINGLETON scope, it is one of the many scopes provided by WireBox to persist your data. For more detailed information check out: Wirebox Scopes BTW: This model can easily be modified to use a database instead, and the best part is you can do it without ever making any changes to the front end :) Now that our data is created lets create some helper methods for accessing & changing our data. Below your init function paste the following code: /** * Get all contacts */ struct function getall(){ return variables.contacts; /** * save and return all contacts The id to save/update The data record */ struct function save( required contactid, required data ){ // insert, move lastid if( arguments.contactid == 0 ){ arguments.contactid = variables.lastid; arguments.data.id = variables.lastid; variables.lastid++; // Store data variables.contacts[ arguments.contactid ] = arguments.data;

6 return variables.contacts; /** * Remove a contact The incoming ID */ struct function remove( required contactid ){ structdelete( variables.contacts, arguments.contactid ); return variables.contacts; The methods should be pretty self explanatory, they allow us to keep the logic of data manipulation in the model so when we access it we can just simply call getall(), save(), and remove(). This is extremely useful because all of your data logic is separated from the controller and in one place. Since we already had a handler created handlers/echo.cfc I decided to rename this handler to Contacts.cfc and changed its contents. Open up the file once you change the name and copy in the content below: /** * My RESTFul Contact Handler */ component extends="basehandler"{ // Dependency Injection property name="contactservice" inject="contactservice"; This is the base code that will extend our BaseHandler.cfc so we get all our RESTful helpers. Additionally, we inject our ContactService.cfc into our handler to use the helper methods we defined earlier. The first API action is view which will list all of the contacts we have in our data: /** * List All Contacts

7 */ any function view( event, rc, prc ){ prc.response.setdata( contactservice.getall() ); This will grab the data from the session and send it back as JSON Our next action is save which, as it suggests, will save an existing row or add a new one. /** * Save A Contact */ any function save( event, rc, prc ){ var requestbody = deserializejson( tostring( gethttprequestdata().content ) ); var scontacts = contactservice.save( requestbody.id, requestbody ); prc.response.setdata( scontacts ); You will notice something weird here event.gethttpcontent( json=true );, normally you would grab the data from the rc scope, but the vue-resource sends the data through the headers instead of the FORM or URL scope so we have to grab it from there. Once we have the data posted we send the contact data to the ContactService so we can check if it has an existing id, if it is 0 we know its a new record, so we will create the new record, otherwise we will just update the existing data, then we send back the new data. Lastly we will make it so you can delete a contact: /** * Delete An Existing Contact */ any function remove( event, rc, prc ){

8 var scontacts = contactservice.remove( rc.contactid ); prc.response.setdata( scontacts ); Now that our handler is done we need to add our routes for this handler so that we can map our functions to RESTful actions. Open up your config/routes.cfm file and add this line right above the route that says addroute(pattern=":handler/:action?"); -- the order is important. addroute(pattern = 'contacts/:contactid?',handler = 'contacts',action = {GET = 'view', POST = 'save', PUT = 'save', DELETE = 'remove'); Ok, now that we have our RESTful functions ready, we can start working on our front end. Step 4. Creating our view Open up your views/main/index.cfm that you created earlier. Inside you will copy in the html below <div id="app" class="container"> <div class="row"> <div class="col-sm-4"> <div class="panel panel-default"> <div class="panel-heading"> <strong>add/edit Contact</strong> </div> <div class="panel-body"> <div> <div class="form-group"><input v-model="contactitem.firstname" class="form-control" value="" placeholder="first Name"></div> <div class="form-group"><input v-model="contactitem.lastname" class="form-control" value="" placeholder="last Name"></div> <div class="form-group"><input v-model="contactitem.phone" class="form-control" value="" placeholder="phone"></div> <div class="form-group"><input v-model="contactitem. " class="form-control" value="" placeholder=" "></div>

9 <button class="btn <button class="btn </div> </div> </div> </div> <div class="col-sm-8"> <table class="table"> <thead> <tr> <th>first Name</th> <th>last Name</th> <th>phone</th> <th> </th> <th></th> </tr> </thead> <tbody> <tr v-for="contact in contacts"> <td>{{contact.firstname</td> <td>{{contact.lastname</td> <td>{{contact.phone</td> <td>{{contact. </td> type="button" class="btn btn-primary">edit</button></td> type="button" class="btn btn-danger">x</button></td> </tr> </tbody> </table> </div> </div> </div> This creates the html for our Contact Table & Contact Editor. You will notice some odd looking code if you are not familar with Vue.js or Angular JS: v-model="contactitem.firstname"

10 v-for="contact in {{contact. This is how Vue.js communicates with your code.. v-model="contactitem.firstname" v-model, which is part of the form, binds together the form field and the Vue.js controller so they are aware of eachother. v-for="contact in contacts" v-for, is how Vue.js loops through a list of data, this can be used for any type is basically equivalent to the onclick method, accept, this way the even is registered with the Vue.js controller so it can do something when you click it. {{contact. {{contact. is known as handlebar syntax. This is how you define variables so Vue.js knows to replace them with that contact for instance. Step 4. Continued The Vue.js Controller We will copy the following code into the views/main/indexhelper.cfm file. This file gets appended after our views/main/index.cfm. <script>

11 $( document ).ready(function() { new Vue({ // Where the app will be instantiated on the page el: '#app', // Variables that you want it to have access to or start out with data: { contactitem: { id:0, firstname:'', lastname:'', phone:'', '' contacts: [] // When this module is ready run this ready: function() { this.loadcontacts(); // All the methods you want the view to have access to, basically an object of functions methods: { loadcontacts: function() { var _this = this; // Get the list of contacts this.$http.get('/contacts').then(function(result) { // Update the list with the new data _this.$set('contacts', result.data.data); ); loadcontact: function(contact) { // Set the form with the contact row information this.contactitem = contact; savecontact: function() { var _this = this; // Save the new contact information

12 this.$http.post('contacts', _this.contactitem).then(function(result) { // Reset the form to detault _this.contactitem = {id:0, firstname:'', lastname:'', phone:'', ''; // Update the list with the new data return _this.$set('contacts', result.data.data); ); cancelsave: function(){ // Reset the form to detault return this.contactitem = {id:0, firstname:'', lastname:'', phone:'', ''; deletecontact: function(contact) { var _this = this; //Delete the contact this.$http.delete('/contacts/' + contact.id).then(function(result) { // Update the list with the new data _this.$set('contacts', result.data.data); ); ); ); </script> Lastly we have the controller. This is where all the magic happens... el: '#app', Tells Vue that all of our logic will be nested within the <div id="app"></div> data: { contactitem: { id:0,

13 firstname:'', lastname:'', phone:'', '' contacts: [] data is a struct of information it is pulling from, here we are providing defaults but you can also populate the data statically and it will use that information. // When this module is ready run this ready: function() { this.loadcontacts(); loadcontacts: function() { var _this = this; // Get the list of contacts this.$http.get('/contacts').then(function(result) { // Update the list with the new data _this.$set('contacts', result.data.data); ); ready is fired once the Vue Component is loaded. What we are doing here is calling the ajax function that will load our table with data from our ColdBox RESTful API. Gotcha** - Vue only knows about nested data changes if you use its built in functions (.$set,.$delete) otherwise you will be scratching your head for a while

14 _this.$set('contacts', result.data.data); Load Contact - will load in our contact data into the form for editing. Notice the this.contactitem is being set to contact. loadcontact: function(contact) { // Set the form with the contact row information this.contactitem = contact; Here the entire row of data is being sent as an argument when you click on the Edit button. type="button" class="btn btn-primary">edit</button></td> So we are setting the this.contactitem = contact; Now in our code we have the form set up with: v-model="contactitem.firstname" which means as soon as the this.contactitem has updated data it is going to update the v-model that is connected to that data. Once the data is populated in the form we can make edits to it and then click either the submit or the cancel button. The respective code is below.

15 savecontact: function() { var _this = this; // Save the new contact information this.$http.post('contacts', _this.contactitem).then(function(result) { // Reset the form to detault _this.contactitem = {id:0, firstname:'', lastname:'', phone:'', ''; // Update the list with the new data return _this.$set('contacts', result.data.data); ); cancelsave: function(){ // Reset the form to detault return this.contactitem = {id:0, firstname:'', lastname:'', phone:'', ''; Since the default data sends an id = 0 we can decide if we need to create a new item or edit an existing item. Last on our list for the Vue Controller is the Delete. Basically here we are just sending back the id to our API with the delete verb and our API will take care of deleting the entry and returning our new data set back to us. deletecontact: function(contact) { var _this = this; //Delete the contact this.$http.delete('/contacts/' + contact.id).then(function(result) { // Update the list with the new data _this.$set('contacts', result.data.data); ); So thats it. All you need is a few files (Most of which can be generated by CommandBox) and you have got yourself a fully functional contacts manager.

16 The Code: View the repo here Copyright Ortus Solutions, Corp.

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

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

AngularJS. CRUD Application example with AngularJS and Rails 4. Slides By: Jonathan McCarthy

AngularJS. CRUD Application example with AngularJS and Rails 4. Slides By: Jonathan McCarthy AngularJS CRUD Application example with AngularJS and Rails 4 1 Slides By: Jonathan McCarthy Create a new Rails App For this example we will create an application to store student details. Create a new

More information

AngularJS. CRUD Application example with AngularJS and Rails 4. Slides By: Jonathan McCarthy

AngularJS. CRUD Application example with AngularJS and Rails 4. Slides By: Jonathan McCarthy AngularJS CRUD Application example with AngularJS and Rails 4 1 Slides By: Jonathan McCarthy Create a new Rails App For this example we will create an application to store student details. Create a new

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

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

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

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

web-sockets-homework Directions

web-sockets-homework Directions web-sockets-homework Directions For this homework, you are asked to use socket.io, and any other library of your choice, to make two web pages. The assignment is to create a simple box score of a football

More information

Using Visual Studio 2017

Using Visual Studio 2017 C H A P T E R 1 Using Visual Studio 2017 In this chapter, I explain the process for installing Visual Studio 2017 and recreate the Party Invites project from Chapter 2 of Pro ASP.NET Core MVC. As you will

More information

Manual Html A Href Onclick Submit Button

Manual Html A Href Onclick Submit Button Manual Html A Href Onclick Submit Button When you submit the form via clicking the radio button, it inserts properly into Doing a manual refresh (F5 or refresh button) will then display the new updated

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

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

Manual Html A Href Onclick Submit Form

Manual Html A Href Onclick Submit Form Manual Html A Href Onclick Submit Form JS HTML DOM. DOM Intro DOM Methods HTML form validation can be done by a JavaScript. If a form field _input type="submit" value="submit" /form_. As shown in a previous

More information

django-rest-framework-datatables Documentation

django-rest-framework-datatables Documentation django-rest-framework-datatables Documentation Release 0.1.0 David Jean Louis Aug 16, 2018 Contents: 1 Introduction 3 2 Quickstart 5 2.1 Installation................................................ 5

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

AngularJS AN INTRODUCTION. Introduction to the AngularJS framework

AngularJS AN INTRODUCTION. Introduction to the AngularJS framework AngularJS AN INTRODUCTION Introduction to the AngularJS framework AngularJS Javascript framework for writing frontend web apps DOM manipulation, input validation, server communication, URL management,

More information

Dingle Coderdojo 6. Project Part 2 (of 2) - Movie Poster And Actor! - Lookup. Week 6

Dingle Coderdojo 6. Project Part 2 (of 2) - Movie Poster And Actor! - Lookup. Week 6 Dingle Coderdojo 6 Week 6 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 5). Make sure you ve finished that

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

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

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

Produced by. Agile Software Development. Eamonn de Leastar

Produced by. Agile Software Development. Eamonn de Leastar Agile Software Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie Pacemaker

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue Mobile Web Applications Gary Dubuque IT Research Architect Department of Revenue Summary Times are approximate 10:15am 10:25am 10:35am 10:45am Evolution of Web Applications How they got replaced by native

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

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 Notices 2016 Telerik AD. All rights reserved. November 2016 Last updated with new content: Version 1.1 3 Notices 4 Contents Table of Contents Chapter

More information

ColdBox Platform 4.0 AND BEYOND

ColdBox Platform 4.0 AND BEYOND ColdBox Platform 4.0 AND BEYOND Who am I? ColdFusion Architect (12 years) Geek Android Lover Blogger (codersrevolution.com) ColdBox Platform Evangelist Musician Shade-Tree Mechanic Husband (11 years) Dad

More information

Lecture 7. Action View, Bootstrap & Deploying 1 / 40

Lecture 7. Action View, Bootstrap & Deploying 1 / 40 Lecture 7 Action View, Bootstrap & Deploying 1 / 40 Homeworks 5 & 6 Homework 5 was graded Homework 6 was due last night Any questions? 2 / 40 How would you rate the di culty of Homework 6? Vote at http://pollev.com/cis196776

More information

LAMPIRAN. Index.php. <?php. unset($_session["status"]); //session_destroy(); //session_destroy();

LAMPIRAN. Index.php. <?php. unset($_session[status]); //session_destroy(); //session_destroy(); LAMPIRAN Index.php unset($_session["status"]); //session_destroy(); //session_destroy();?>

More information

FatModel Quick Start Guide

FatModel Quick Start Guide FatModel Quick Start Guide Best Practices Framework for ASP.Net MVC By Loma Consulting February 5, 2016 Table of Contents 1. What is FatModel... 3 2. Prerequisites... 4 Visual Studio and Frameworks...

More information

Paythru Remote Fields

Paythru Remote Fields Paythru Remote Fields Paythru Remote Fields are an alternative integration method for the Paythru Client POST API. The integration consists of contructing a basic javascript configuration object and including

More information

THE HITCHHIKERS GUIDE TO. Harper Maddox CTO, EdgeTheory 30 September 2014

THE HITCHHIKERS GUIDE TO. Harper Maddox CTO, EdgeTheory 30 September 2014 THE HITCHHIKERS GUIDE TO! Harper Maddox CTO, EdgeTheory 30 September 2014 DON T PANIC ENJOYMENT OF ANGULAR Services, Modules promises, directives Angular RULEZ I m doing it wrong @#$% Taken from Alicia

More information

High Performance Single Page Application with Vue.js

High Performance Single Page Application with Vue.js High Performance Single Page Application with Vue.js Premise Static HTML and simple web-pages are already a history now. The novel web applications are advanced and do a lots of functionalities. Also,

More information

AngularJS Intro Homework

AngularJS Intro Homework AngularJS Intro Homework Contents 1. Overview... 2 2. Database Requirements... 2 3. Navigation Requirements... 3 4. Styling Requirements... 4 5. Project Organization Specs (for the Routing Part of this

More information

THE LAUNCHER. Patcher, updater, launcher for Unity. Documentation file. - assetstore.unity.com/publishers/19358

THE LAUNCHER. Patcher, updater, launcher for Unity. Documentation file. - assetstore.unity.com/publishers/19358 THE LAUNCHER Patcher, updater, launcher for Unity. Documentation file Index: 1.What does the Launcher do? 2.Workflow 3.How to upload a build? 4.How to configure the launcher client? 1.What does the Launcher

More information

Understanding Angular Directives By Jeffry Houser

Understanding Angular Directives By Jeffry Houser Understanding Angular Directives By Jeffry Houser A DotComIt Whitepaper Copyright 2016 by DotComIt, LLC Contents A Simple Directive... 4 Our Directive... 4 Create the App Infrastructure... 4 Creating a

More information

Akumina Digital Workplace

Akumina Digital Workplace Akumina Digital Workplace Developer Guide Version 1.1 (May 2016) Table of Contents TABLE OF CONTENTS... 2 AN INTRODUCTION TO THE DIGITAL WORKPLACE FRAMEWORK... 3 Understanding Callbacks... 3 Understanding

More information

By the end of this Angular 6 tutorial, you'll learn by building a real world example application:

By the end of this Angular 6 tutorial, you'll learn by building a real world example application: Throughout this Angular 6 tutorial, we'll learn to build a full-stack example web application with Angular 6, the latest version of Angular The most popular framework/platform for building mobile and desktop

More information

Installation Guide. Sitecore Federated Experience Manager. Installation & Configuration Guide

Installation Guide. Sitecore Federated Experience Manager. Installation & Configuration Guide Sitecore Federated Experience Manager Installation Guide Rev: 23 August 2014 Sitecore Federated Experience Manager Installation Guide Installation & Configuration Guide Table of Contents Chapter 1 Overview...

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 4 - Simulating a backend without needing a server (2017-11-03) made by Philip Guo, derived from labs by Michael

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

Simple AngularJS thanks to Best Practices

Simple AngularJS thanks to Best Practices Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it

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

Description: This feature will enable user to send messages from website to phone number.

Description: This feature will enable user to send messages from website to phone number. Web to Phone text message Description: This feature will enable user to send messages from website to phone number. User will use this feature and can send messages from website to phone number, this will

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

Unifer Documentation. Release V1.0. Matthew S

Unifer Documentation. Release V1.0. Matthew S Unifer Documentation Release V1.0 Matthew S July 28, 2014 Contents 1 Unifer Tutorial - Notes Web App 3 1.1 Setting up................................................. 3 1.2 Getting the Template...........................................

More information

Drag and Drop Form Builder. Data Verity #2 Erikka Baker James Miller Jordan Schmerge

Drag and Drop Form Builder. Data Verity #2 Erikka Baker James Miller Jordan Schmerge Drag and Drop Form Builder Data Verity #2 Erikka Baker James Miller Jordan Schmerge June 21, 2016 Table of Contents Introduction Requirements System Architecture Technical Design Component Highlighting

More information

Lab 1 - Introduction to Angular

Lab 1 - Introduction to Angular Lab 1 - Introduction to Angular In this lab we will build a Hello World style Angular component. The key focus is to learn how to install all the required code and use them from the browser. We wont get

More information

We are assuming you have node installed!

We are assuming you have node installed! Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it

More information

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...

More information

Advantages: simple, quick to get started, perfect for simple forms, don t need to know how form model objects work

Advantages: simple, quick to get started, perfect for simple forms, don t need to know how form model objects work 1 Forms 1.1 Introduction You cannot enter data in an application without forms. AngularJS allowed the user to create forms quickly, using the NgModel directive to bind the input element to the data in

More information

JavaScript Performance

JavaScript Performance JavaScript Performance 1 Order Matters 2. 1 home

More information

The core of Tapestry's form support is the Form component. The Form component encloses (wraps around) all the other field components such

The core of Tapestry's form support is the Form component. The Form component encloses (wraps around) all the other field components such Forms and Validation Forms are the traditional way for most web applications to gather significant information from the user. Whether it's a search form, a login screen or a multi-page registration wizard,

More information

Nagaraju Bende

Nagaraju Bende AngularJS Nagaraju Bende Blog Twitter @nbende FaceBook nbende http://angularjs.org Agenda Introduction to AngularJS Pre-Requisites Why AngularJS Only Getting Started MV* pattern of AngularJS Directives,

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

Single Page Applications using AngularJS

Single Page Applications using AngularJS Single Page Applications using AngularJS About Your Instructor Session Objectives History of AngularJS Introduction & Features of AngularJS Why AngularJS Single Page Application and its challenges Data

More information

BlueMix Hands-On Workshop Lab A - Building and Deploying BlueMix Applications

BlueMix Hands-On Workshop Lab A - Building and Deploying BlueMix Applications BlueMix Hands-On Workshop Lab A - Building and Deploying BlueMix Applications Version : 4.00 Last modification date : 13 June 2014 Owner : IBM Ecosystem Development Table of Contents Part 1: Building

More information

Spring Data JPA, Spring Boot, Oracle, AngulerJS 적용게시판실습 게시판리스트보기.

Spring Data JPA, Spring Boot, Oracle, AngulerJS 적용게시판실습 게시판리스트보기. Spring Data JPA, Spring Boot, Oracle, AngulerJS 적용게시판실습 http://ojc.asia, http://ojcedu.com 게시판리스트보기 Spring JDBC 또는 MyBatis로만들때보다쉽고빠르게작성할수있다. 스프링컨트롤러는 RestController를적용했으며, 뷰페이지에 Bootstrap 및 AngulerJS 적용했다.

More information

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

P a g e 1. Danish Technological Institute. Scripting and Web Languages   Online Course k Scripting and Web Languages P a g e 1 Online Course k72853 Scripting and Web Languages P a g e 2 Title Estimated Duration (hrs) JsRender Fundamentals 2 Advanced JsRender Features 3 JavaScript SPA: Getting Started with SPA in Visual

More information

User manual Scilab Cloud API

User manual Scilab Cloud API User manual Scilab Cloud API Scilab Cloud API gives access to your engineering and simulation knowledge through web services which are accessible by any network-connected machine. Table of contents Before

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

Learning Objectives. Description. Your AU Expert(s) Trent Earley Behlen Mfg. Co. Shane Wemhoff Behlen Mfg. Co.

Learning Objectives. Description. Your AU Expert(s) Trent Earley Behlen Mfg. Co. Shane Wemhoff Behlen Mfg. Co. PL17257 JavaScript and PLM: Empowering the User Trent Earley Behlen Mfg. Co. Shane Wemhoff Behlen Mfg. Co. Learning Objectives Using items and setting data in a Workspace Setting Data in Related Workspaces

More information

SEEM4570 System Design and Implementation. Lecture 3 Events

SEEM4570 System Design and Implementation. Lecture 3 Events SEEM4570 System Design and Implementation Lecture 3 Events Preparation Install all necessary software and packages. Follow Tutorial Note 2. Initialize a new project. Follow Lecture Note 2 Page 2. Reset

More information

PlantVisorPRO Plant supervision

PlantVisorPRO Plant supervision PlantVisorPRO Plant supervision Software Development Kit ver. 2.0 Integrated Control Solutions & Energy Savings 2 Contents 1. Key... 5 2. Context... 5 3. File Structure... 6 4. Log Structure and error

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel About the Tutorial Laravel is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create full-featured web applications. Laravel was created by Taylor Otwell.

More information

JQUERYUI - WIDGET FACTORY

JQUERYUI - WIDGET FACTORY JQUERYUI - WIDGET FACTORY http://www.tutorialspoint.com/jqueryui/jqueryui_widgetfactory.htm Copyright tutorialspoint.com Earlier, the only way to write custom controls in jquery was to extend the $.fn

More information

jmaki Overview Sang Shin Java Technology Architect Sun Microsystems, Inc.

jmaki Overview Sang Shin Java Technology Architect Sun Microsystems, Inc. jmaki Overview Sang Shin Java Technology Architect Sun Microsystems, Inc. sang.shin@sun.com www.javapassion.com Agenda What is and Why jmaki? jmaki widgets Using jmaki widget - List widget What makes up

More information

AngularJS Examples pdf

AngularJS Examples pdf AngularJS Examples pdf Created By: Umar Farooque Khan 1 Angular Directive Example This AngularJS Directive example explain the concept behind the ng-app, ng-model, ng-init, ng-model, ng-repeat. Directives

More information

CSE 115. Introduction to Computer Science I

CSE 115. Introduction to Computer Science I CSE 115 Introduction to Computer Science I Road map Review JSON Chat App - Part 1 AJAX Chat App - Part 2 Front End JavaScript first Web Page my content

More information

Web API Lab folder 07_webApi : webapi.jsp your testapijs.html testapijq.html that works functionally the same as the page testapidomjs.

Web API Lab folder 07_webApi : webapi.jsp your testapijs.html testapijq.html that works functionally the same as the page testapidomjs. Web API Lab In this lab, you will produce three deliverables in folder 07_webApi : 1. A server side Web API (named webapi.jsp) that accepts an input parameter, queries your database, and then returns a

More information

Frontend Frameworks. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Frontend Frameworks. SWE 432, Fall 2016 Design and Implementation of Software for the Web Frontend Frameworks SWE 432, Fall 2016 Design and Implementation of Software for the Web Today How do we build a single page app without dying? MVC/MVVM (AngularJS) For further reading: Book: Learning

More information

Modern and Responsive Mobile-enabled Web Applications

Modern and Responsive Mobile-enabled Web Applications Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive

More information

Integrated Dashboard Design

Integrated Dashboard Design Integrated Dashboard Design integrating Zabbix data with other systems Lukasz Lipski IT Operations Specialist, Nordea Bank Polska SA September 2013 NORDEA IT POLAND AND BALTIC COUNTRIES IT support for

More information

HTML 5 Form Processing

HTML 5 Form Processing HTML 5 Form Processing In this session we will explore the way that data is passed from an HTML 5 form to a form processor and back again. We are going to start by looking at the functionality of part

More information

Connecting Angular and CFML

Connecting Angular and CFML Connecting Angular and CFML Trip Ward About Me Senior Technical Specialist at ICF Owner & Chief Consultant at Trir Software Software Architecture and Development ColdFusion(1998), Java, jquery, HTML5,

More information

SportsStore: Administration

SportsStore: Administration C H A P T E R 11 SportsStore: Administration In this chapter, I continue to build the SportsStore application in order to give the site administrator a way of managing orders and products. Managing Orders

More information

User manual Scilab Cloud API

User manual Scilab Cloud API User manual Scilab Cloud API Scilab Cloud API gives access to your engineering and simulation knowledge through web services which are accessible by any network-connected machine. Table of contents Before

More information

Reagent. a ClojureScript interface to React. React Amsterdam Meetup 12 Feb. 2015

Reagent. a ClojureScript interface to React. React Amsterdam Meetup 12 Feb. 2015 Reagent a ClojureScript interface to React React Amsterdam Meetup 12 Feb. 2015 Michiel Borkent Twitter: @borkdude Email: michielborkent@gmail.com Clojure(Script) developer at Clojure since 2009 Former

More information

CSC 615 FINAL EXAM SINGLE PAGE APPS. 1. Introduction

CSC 615 FINAL EXAM SINGLE PAGE APPS. 1. Introduction CSC 615 FINAL EXAM SINGLE PAGE APPS DR. GODFREY C. MUGANDA 1. Introduction For the final exam, you are going to write a single page application that is basically a JAX-RS web service with a HTML5/JavaScript

More information

The starter app has a menu + 2 Views : Dashboard. About

The starter app has a menu + 2 Views : Dashboard. About Front End The starter app has a menu + 2 Views : Dashboard About All views will be based on structure laid down in Layout layout/main.hbs. Includes Semantic-UI CSS library View content will

More information

RPG Web Apps with AJAX, JSON, and jquery. Lab Examples

RPG Web Apps with AJAX, JSON, and jquery. Lab Examples RPG Web Apps with AJAX, JSON, and jquery Lab Examples Jim Cooper Jim.cooper@lambtoncollege.ca Jim.cooper@system-method.ca www.system-method.ca Please send corrections and suggestions to jim.cooper@system-method.ca

More information

SAMPLE CHAPTER IN ACTION. Joachim Haagen Skeie MANNING

SAMPLE CHAPTER IN ACTION. Joachim Haagen Skeie MANNING SAMPLE CHAPTER IN ACTION Joachim Haagen Skeie MANNING Ember.js in Action by Joachim Haagen Skeie Chapter 1 Copyright 2014 Manning Publications brief contents PART 1 EMBER.JS FUNDAMENTALS... 1 1 Powering

More information

Where are my Lucee and Adobe ColdFusion log files on CommandBox servers?

Where are my Lucee and Adobe ColdFusion log files on CommandBox servers? Tweet Where are my Lucee and Adobe ColdFusion log files on CommandBox servers? Brad Wood Apr 10, 2017 As more people are starting to use CommandBox to start their Adobe ColdFusion and Lucee servers, I've

More information

Overview... 4 JavaScript Charting and Metric Insights... 5

Overview... 4 JavaScript Charting and Metric Insights... 5 JAVASCRIPT CHARTING Table of Contents Overview... 4 and Metric Insights... 5 Chart Types...11 Overview of JavaScript chart types...12 d3...13 Highcharts...16 Highstock...18 Google...19 nvd3...21 Dynamic

More information

REST. Web-based APIs

REST. Web-based APIs REST Web-based APIs REST Representational State Transfer Style of web software architecture that simplifies application Not a standard, but a design pattern REST Take all resources for web application

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

Just Mock It! Leveraging Mock Objects

Just Mock It! Leveraging Mock Objects Just Mock It! Leveraging Mock Objects 1 Who am I? Luis Majano - Computer Engineer Born in San Salvador, El Salvador --> President of Ortus Solutions Manager of the IECFUG (www.iecfug.com) Creator of ColdBox,

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

Event : Common Europe Speaker : Koen Decorte CD-Invest nv

Event : Common Europe Speaker : Koen Decorte CD-Invest nv Event : Common Europe 20-06-2017 Speaker : Koen Decorte CD-Invest nv CONTENT WHO ARE WE BACKEND RPG TOOLS FRONT END EXTJS FRAMEWORK JSON INTRO LET RPG TALK JSON BUILD SCREENS IN EXTJS PUTTING EVERYTHING

More information

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 Serverless Single Page Web Apps, Part Four CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 1 Goals Cover Chapter 4 of Serverless Single Page Web Apps by Ben Rady Present the issues

More information

Django AdminLTE 2 Documentation

Django AdminLTE 2 Documentation Django AdminLTE 2 Documentation Release 0.1 Adam Charnock Jul 02, 2018 Contents 1 Contents 3 1.1 Quickstart................................................ 3 1.2 Templates & Blocks Reference.....................................

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

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

Chapter6: Bootstrap 3. Asst.Prof.Dr. Supakit Nootyaskool Information Technology, KMITL

Chapter6: Bootstrap 3. Asst.Prof.Dr. Supakit Nootyaskool Information Technology, KMITL Chapter6: Bootstrap 3 Asst.Prof.Dr. Supakit Nootyaskool Information Technology, KMITL Objective To apply Bootstrap to a web site To know how to build various bootstrap commands to be a content Topics Bootstrap

More information

CSS (Cascading Style Sheets)

CSS (Cascading Style Sheets) CSS (Cascading Style Sheets) CSS (Cascading Style Sheets) is a language used to describe the appearance and formatting of your HTML. It allows designers and users to create style sheets that define how

More information

Roxen Content Provider

Roxen Content Provider Roxen Content Provider Generation 3 Templates Purpose This workbook is designed to provide a training and reference tool for placing University of Alaska information on the World Wide Web (WWW) using the

More information

PHP for PL/SQL Developers. Lewis Cunningham JP Morgan Chase

PHP for PL/SQL Developers. Lewis Cunningham JP Morgan Chase PHP for PL/SQL Developers Lewis Cunningham JP Morgan Chase 1 What is PHP? PHP is a HTML pre-processor PHP allows you to generate HTML dynamically PHP is a scripting language usable on the web, the server

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

At the Forge RJS Templates Reuven M. Lerner Abstract The power of Ajax to fetch and run JavaScript generated by your server-side language. The past few months, I've written a number of articles in this

More information