Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>SIMPLE RESTful API</title>
- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
- <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/start/jquery-ui.css">
- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.2/css/all.css" integrity="sha384-/rXc/GQVaYpyDdyxK+ecHPVYJSN9bmVFBvjA/9eOB+pb3F2w2N6fc5qB9Ew5yIns" crossorigin="anonymous">
- <script src="http://code.jquery.com/jquery-3.3.1.min.js"></script>
- <script>jQuery.noConflict();</script>
- <script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
- <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
- <style>
- .display-none { display: none; }
- </style>
- </head>
- <body>
- <!-- container // -->
- <div class="container" ng-app="myApp" ng-controller="myFriend" ng-init="getFriends(1)">
- <!-- header // -->
- <div class="jumbotron text-center">
- <h1>Simple RESTful API Example</h1>
- <p><a href="#!" class="btn-add btn btn-primary"><i class="fas fa-user-friends"></i> Add Friend</a></p>
- </div>
- <!-- // header -->
- <!-- view json // -->
- <div style="margin: 20px 0;">
- <textarea id="getalljsondata" rows="5" class="form-control display-none"></textarea>
- <p class="text-right" style="margin-top: 10px;"><a href="#!" class="get-all-data btn btn-info">View JSON</a></p>
- </div>
- <!-- // view json -->
- <!-- list and search // -->
- <div>
- <!-- search // -->
- <div>
- <form>
- <div class="form-group">
- <input type="text" class="form-control" id="search" placeholder="Search..." ng-model="sch">
- </div>
- </form>
- </div>
- <!-- // search -->
- <div>
- <p class="text-right">
- <span id="page">0</span> / <span id="pages">0</span>
- <button class="btn btn-info" ng-click="getFriends(-1)"><i class="fas fa-angle-double-left"></i></button>
- <button class="btn btn-info" ng-click="getFriends(1)"><i class="fas fa-angle-double-right"></i></button>
- </p>
- </div>
- <!-- list table // -->
- <table id="friendstable" class="table table-bordered table-hover">
- <tr class="active">
- <td>id</td>
- <td>name</td>
- <td>city</td>
- <td>Phone</td>
- <td>Email</td>
- <td> </td>
- </tr>
- <tr ng-repeat="f in friends | filter:sch">
- <td>{{ f.id }}</td>
- <td>{{ f.name }}</td>
- <td>{{ f.city }}</td>
- <td>{{ f.phone }}</td>
- <td>{{ f.email }}</td>
- <td>
- <a class="btn-del btn btn-danger btn-sm" href="{{ f.id }}"><i class="fas fa-trash-alt"></i></a>
- <a class="btn-modify btn btn-warning btn-sm" href="{{ f.id }}"><i class="fas fa-pen"></i></a>
- </td>
- </tr>
- </table>
- <!-- // list table -->
- </div>
- <!-- // list and search -->
- </div>
- <!-- // container -->
- <!-- write form dialog // -->
- <div id="write-form-dialog" class="display-none">
- <form id="write-form" onsubmit="return false;">
- <div class="form-group row">
- <label for="friendName" class="col-sm-2 col-form-label">Name</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="friendName" placeholder="friend's name">
- </div>
- </div>
- <div class="form-group row">
- <label for="friendCity" class="col-sm-2 col-form-label">City</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="friendCity" placeholder="friend's city">
- </div>
- </div>
- <div class="form-group row">
- <label for="friendPhone" class="col-sm-2 col-form-label">Phone</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="friendPhone" placeholder="friend's phone number">
- </div>
- </div>
- <div class="form-group row">
- <label for="friendEmail" class="col-sm-2 col-form-label">Email</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="friendEmail" placeholder="friend's phone email">
- </div>
- </div>
- </form>
- </div>
- <!-- // write form dialog -->
- <script>
- var pages = 0;
- var total = 0;
- jQuery.getJSON("./api/pages",function(result){
- pages = result.pages;
- total = result.total;
- jQuery("#pages").text(pages);
- });
- //get all data into textarea
- jQuery(".get-all-data").on("click", function(){
- jQuery.get("/api/friend", function(res){
- jQuery("#getalljsondata").val(res).show();
- });
- });
- var page = 0;
- var app = angular.module("myApp", []);
- app.controller("myFriend", function($scope, $http){
- $scope.friends = [];
- $scope.getFriends = function(num){
- page = page + num;
- if( num == 1) {
- if( page > pages ) page = pages;
- } else if( num == -1 ) {
- if( page < 1 ) page = 1;
- }
- jQuery("#page").text(page);
- $http.get("/api/friend?page=" + page).then(function(result){
- $scope.friends = result.data;
- });
- };
- });
- jQuery("#friendstable").on("click", ".btn-modify", function(event){
- event.preventDefault();
- var id=jQuery(this).attr("href");
- if( ! id ) return;
- jQuery.getJSON("/api/friend/" + id, function(result){
- var friend = result[0];
- //console.log(friend);
- jQuery("#friendName").val(friend.name);
- jQuery("#friendCity").val(friend.city);
- jQuery("#friendPhone").val(friend.phone);
- jQuery("#friendEmail").val(friend.email);
- jQuery("#write-form-dialog").dialog({
- width: 600,
- height: 400,
- modal: true,
- title: "친구 정보 수정",
- buttons: {
- "Save": function(){
- var formdata = {};
- formdata.id = id;
- formdata.mode = "PUT";
- formdata.name = jQuery("#friendName").val();
- formdata.city = jQuery("#friendCity").val();
- formdata.phone = jQuery("#friendPhone").val();
- formdata.email = jQuery("#friendEmail").val();
- saveData(formdata);
- },
- "Close" : function(){
- jQuery(this).dialog("close");
- }
- }
- });
- });
- });
- function saveData(data) {
- if( ! data ) return;
- var url = "./api/friend";
- if( data.id ) url += "/" + data.id;
- jQuery.ajax({
- url: url,
- method: data.mode,
- data: data,
- success: function(result){
- console.log(result);
- var res = jQuery.parseJSON(result);
- if( res.success == "true" ) {
- alert(res.count + "개의 자료가 저장됨");
- location.reload();
- } else {
- alert("데이터 저장 실패");
- }
- }
- });
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment