/jsweet-cordova-ionic-example

Step by step tutorial for using JSweet & Ionic

Primary LanguageJavaScript

Ionic exercise: rate your coffee shops [CLIENT]

This exercise shows a basic JSweet + Ionic + Cordova example which communicates with a JAX-RS server api

Pre-requisits

  • Ensure java version is 8 using java -version
  • Ensure maven command line (mvn) is in PATH by typing mvn -version, if command not found, download apache maven 3.3.x and include its bin folder in PATH, then try again
  • Ensure node packet manager (npm) is in PATH by typing npm -v, if command not found, download and install NodeJS, then try again
  • Install Cordova 5.3 if not done yet: npm install cordova@5.3.3 -g, -g switch means install globally
  • Install Ionic 1.7 if not done yet: npm install ionic@1.7.13 -g

Compiling

Compile JSweet using

mvn clean generate-sources

JavaScript files are generated in www/js/app/, check that they are up to date

Running

Just type (change browser if you need anything else)

ionic serve -w chrome

Exercise steps

1. Run the app successfully without modifications

2. Enable the Add button under the coffee shop list

3. Respond to click on this Add button

Add in CoffeeShopListViewModel, the member Runnable onAddClicked; which will respond to click In CoffeeShopListController, assign this member in the given $scope and try to handle as following: $scope.onAddClicked = () -> { console.log("add button clicked"); };

4. Add a create coffee shop view and its controller in App's ionic configuration, with the routing

5. Creates the html file corresponding to your view

Copy the coffee shop list file and replace view content with a form using inline labels (see ionic components) Post to the following server's api method to create your coffee shop: server.post("/coffeeshop/add", $map("name", "test", "address", "test")) // example to add a coffee shop named "test", at address "test address"

6. Save the coffee shop with an add button

Use a runnable which respond to click and call the server using this.server

7. Add a view coffee shop detail view, accessible by clicking on a coffee shop item in the main coffee shop list

Access the coffee shop details through server.get("/coffeeshop/getDetails", { id: '1' }, details -> { /* ... */ console.log(details); })

8. Add, on the detail consultation view, a rate button, using the following api's method:

server.post("/coffeeshop/rate", $map("id", 1, "rate", 4)) // example to rate coffee shop at id 1 with a 4 grade