From 1f2a3a13c634a615070a650d239cbbd7bd10b383 Mon Sep 17 00:00:00 2001 From: luchenqun Date: Thu, 27 Oct 2016 22:14:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95=E4=BA=86=E4=B8=80=E4=B8=8B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=86=E7=B1=BB=E8=B7=9F=E4=B9=A6=E7=AD=BE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/bookmarks-controller.js | 1 - public/scripts/controllers/edit-controller.js | 90 +++++++++++++++++-- .../scripts/controllers/menus-controller.js | 4 +- public/scripts/services/bookmark-service.js | 30 ++++++- public/views/edit.html | 47 ++++------ routes/api.js | 49 +++++++--- 6 files changed, 169 insertions(+), 52 deletions(-) diff --git a/public/scripts/controllers/bookmarks-controller.js b/public/scripts/controllers/bookmarks-controller.js index 3f2cf11..f28f387 100644 --- a/public/scripts/controllers/bookmarks-controller.js +++ b/public/scripts/controllers/bookmarks-controller.js @@ -27,7 +27,6 @@ app.controller('bookmarksCtr', ['$scope', '$stateParams', '$filter', '$window', function getBookmarks(params) { bookmarkService.getBookmarks(params).then( function(data) { - console.log(data); $scope.bookmarks = data; }, function(errorMsg) { diff --git a/public/scripts/controllers/edit-controller.js b/public/scripts/controllers/edit-controller.js index 45b0418..6cb94a1 100644 --- a/public/scripts/controllers/edit-controller.js +++ b/public/scripts/controllers/edit-controller.js @@ -1,13 +1,91 @@ -app.controller('editCtr', ['$scope', '$state', function($scope, $state) { +app.controller('editCtr', ['$scope', '$state', 'bookmarkService', 'pubSubService', function($scope, $state, bookmarkService, pubSubService) { + console.log("Hello , I enter editCtr..."); + init(); semanticInit(); - $scope.addTag = function() { - console.log('Hello , you have click add tag btn......') + $scope.addTags = function() { + console.log('Hello , you have click add tag btn......'); + $scope.newTags = $scope.newTags.replace(",", ","); + var tags = $scope.newTags.split(","); + var params = []; + tags.forEach(function(tag) { + tag = tag.replace(/(^\s*)|(\s*$)/g, '').replace(/\s+/g, ' '); // 去除前后空格,多个空格转为一个空格; + + var find = false; + for (var i = 0; i < $scope.tags.length; i++) { + if ($scope.tags[i].name === tag) { + find = true; + $('.ui.fluid.search.dropdown').dropdown('set selected', $scope.tags[i].id); + } + }; + if (!find) { + params.push(tag); + } + }); + + console.log(params); + + } + $scope.cancel = function() { + console.log('Hello , you have click cancel btn......'); + } + $scope.ok = function() { + console.log('Hello , you have click ok btn......'); + var selectedTags = $('.ui.modal.js-add-bookmark .ui.dropdown').dropdown('get value'); + console.log($scope.url, $scope.title, $scope.description, $scope.public, selectedTags); + + bookmarkService.addBookmark({ + a: 'Hello i love this world' + }).then( + function(data) { + console.log(data); + }, + function(errorMsg) { + console.log(errorMsg); + } + ); + } + + pubSubService.subscribe('MenuCtr.showAddBookmarkMoadl', $scope, function(event, params) { + console.log('subscribe MenuCtr.MenuCtr.showAddBookmarkMoadl', params); + $('.ui.modal.js-add-bookmark').modal('show'); + $('.ui.modal.js-add-bookmark .ui.dropdown').dropdown('clear'); + $('.ui.modal.js-add-bookmark .ui.dropdown').addClass('loading'); + init(); + var params = { + user_id: 1 + }; + getTags(params); + }); + + function getTags(params) { + bookmarkService.getTags(params).then( + function(data) { + $scope.tags = data; + semanticInit(); + $('.ui.modal.js-add-bookmark .ui.dropdown').removeClass('loading'); + }, + function(errorMsg) { + console.log(errorMsg); + } + ); } function semanticInit() { - $('.ui.dropdown').dropdown({ - forceSelection: false, - }); + setTimeout(() => { + $('.ui.dropdown').dropdown({ + forceSelection: false, + maxSelections: 3, + }); + }, 1000); + } + + function init() { + $scope.url = ''; + $scope.title = ''; + $scope.description = ''; + $scope.newTags = ''; + $scope.tags = []; // tag = {id:xxx, name:'yyy'} + $scope.public = '1'; } }]); diff --git a/public/scripts/controllers/menus-controller.js b/public/scripts/controllers/menus-controller.js index 602bc9b..1581e13 100644 --- a/public/scripts/controllers/menus-controller.js +++ b/public/scripts/controllers/menus-controller.js @@ -66,7 +66,9 @@ app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope, }); } $scope.showAddBookmarkMoadl = function() { - $('.ui.modal.js-add-bookmark').modal('show'); + pubSubService.publish('MenuCtr.showAddBookmarkMoadl', { + 'action': 'add' + }); } function semanticInit() { diff --git a/public/scripts/services/bookmark-service.js b/public/scripts/services/bookmark-service.js index 96229bf..0ad537b 100644 --- a/public/scripts/services/bookmark-service.js +++ b/public/scripts/services/bookmark-service.js @@ -21,8 +21,19 @@ app.factory('bookmarkService', ['$http', '$q', function($http, $q) { }); return def.promise; }, - addBookmark: function() { - + addBookmark: function(params) { + var def = $q.defer(); + $http.post('/api/addBookmark/', { + params: params + }) + .success(function(data) { + def.resolve(data); + }) + .error(function(data) { + console.log('Error: ' + data); + def.reject('Failed to get todos'); + }); + return def.promise; }, delBookmark: function() { @@ -49,7 +60,20 @@ app.factory('bookmarkService', ['$http', '$q', function($http, $q) { }); return def.promise; }, - // register: register + addTags: function(params) { + var def = $q.defer(); + $http.post('/api/addTags/', { + params: params + }) + .success(function(data) { + def.resolve(data); + }) + .error(function(data) { + console.log('Error: ' + data); + def.reject('Failed to get todos'); + }); + return def.promise; + }, }; return service; diff --git a/public/views/edit.html b/public/views/edit.html index 042dfe5..7e30e6e 100644 --- a/public/views/edit.html +++ b/public/views/edit.html @@ -5,54 +5,45 @@
-
+
- +
-
+
- +
-
+
-
- + +
-
+
- - + +
- +
-
-
-
- - -
+
+
+ +
-
取消
-
发送
+
取消
+
发送
diff --git a/routes/api.js b/routes/api.js index 69ad487..093bf27 100644 --- a/routes/api.js +++ b/routes/api.js @@ -1,21 +1,21 @@ var api = require('express').Router(); var mysql = require('mysql'); -var client = mysql.createConnection({ - host: '172.24.13.5', - user: 'root', - password: 'root123', - database: 'mybookmarks', - multipleStatements: true, - port: 3306 -}); // var client = mysql.createConnection({ -// host: '127.0.0.1', -// user: 'lcq', -// password: '123456', +// host: '172.24.13.5', +// user: 'root', +// password: 'root123', // database: 'mybookmarks', // multipleStatements: true, // port: 3306 // }); +var client = mysql.createConnection({ + host: '127.0.0.1', + user: 'lcq', + password: '123456', + database: 'mybookmarks', + multipleStatements: true, + port: 3306 +}); client.connect(); api.get('/bookmarks', function(req, res) { @@ -105,8 +105,31 @@ api.get('/bookmarks', function(req, res) { api.get('/tags', function(req, res) { console.log('hello tags', JSON.stringify(req.query)); - var data = ['搜索', '常用', '新闻', '博文', 'JavaScript'] - res.json(data); + var user_id = req.query.user_id; + var sql = "SELECT id, name FROM `tags` WHERE `user_id` = '" + user_id + "'" + client.query(sql, function(error, result, fields) { + if (error) { + res.json({ + error: 'error tags' + }); + } else { + res.json(result); + } + }) +}); + +api.post('/addBookmark', function(req, res) { + console.log('hello addBookmark', JSON.stringify(req.query), JSON.stringify(req.body)); + res.json({ + a: 'i love this world, too!' + }); +}); + +api.post('/addTags', function(req, res) { + console.log('hello addTags', JSON.stringify(req.query), JSON.stringify(req.body)); + res.json({ + a: 'i love this world, too!' + }); }); // client.end();