diff --git a/app/assets/javascripts/add-book.js b/app/assets/javascripts/add-book.js new file mode 100644 index 0000000..d5bf2aa --- /dev/null +++ b/app/assets/javascripts/add-book.js @@ -0,0 +1,61 @@ +$(document).ready(function(){ + + + var searchBook = function(){ + var query = $('.key-word').val(); + if(query.replace(/\s+/, "") ===""){ + return false; + } + $.ajax({ + url:'https://api.douban.com/v2/book/search?alt=xd&q='+ query, + dataType:"jsonp", + success:function(json){ + console.log(json); + showBooks(json); + } + }); + + } + + var showBooks = function(json){ + $('.books').empty().append('

'+json.count+'条结果

'); + var books = json.books; + books = $.isArray(books) ? books : books.toArray() + for(var i=0;i'); + var coverImage = $('
'); + var info = $('
'); + //info detail + title = $('

'+books[i].title+'

'); + info.append(title); + if(books[i].author && books[i].author.length > 0){ + var author = $('

作者:'+books[i].author[0]+'

'); + info.append(author); + } + if(books[i].isbn13){ + var isbn = $('

ISBN:'+books[i].isbn13+'

'); + info.append(isbn); + } + if(books[i].publisher){ + var publisher = $('

出版社:'+books[i].publisher+'

'); + info.append(publisher); + } + coverImage.append(''); + var tempForm = '
' + +'' + +'' + +'' + +'' + +'
'; + var addToLib = $(tempForm); + book.append(coverImage).append(info).append(addToLib); + $('.books').append(book).append('
'); + + } + $('.add-to-lib').bind('click',addBookToLib); + } + + $('.search-book').bind('click',searchBook); + + +}); \ No newline at end of file diff --git a/app/assets/javascripts/book.js b/app/assets/javascripts/book.js index da4a634..d96a97b 100644 --- a/app/assets/javascripts/book.js +++ b/app/assets/javascripts/book.js @@ -1,7 +1,7 @@ $(document).ready(function(){ - loadBook = function(){ + var loadBook = function(){ var isbn = $('input.isbn').val(); if(isbn === null){ return; @@ -15,7 +15,7 @@ $(document).ready(function(){ } }); } - displayBookInfo = function(json){ + var displayBookInfo = function(json){ $('img.cover').attr('src',json.images.large); var ul = $('div.span4 ul'); ul.append('
  • 副标题:'+json.subtitle+'
  • '); diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index da0be49..5c6607b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -9,6 +9,7 @@ class ApplicationController < ActionController::Base @current_user = User.find_by_name session[:name] end + puts "!!~~~~~~~" +@current_user.to_s end def sign_in(name,avatar) diff --git a/app/controllers/book_controller.rb b/app/controllers/book_controller.rb index 6c18bae..f95e69a 100644 --- a/app/controllers/book_controller.rb +++ b/app/controllers/book_controller.rb @@ -1,5 +1,6 @@ class BookController < ApplicationController before_filter :current_user + skip_before_filter :verify_authenticity_token ,:only => [:add_to_lib] def view @book = Book.find_by_id params[:id] @@ -29,6 +30,21 @@ class BookController < ApplicationController @current_user.borrow book @msg = 'Borrowed success.' end - redirect_to :back, notice: 'Borrowed book success.' + redirect_to :back, notice: @msg + end + + def add + render :add + end + + def add_to_lib + unless @current_user + redirect_to '/login',alert: "You need login." + return + end + + @current_user.books.create name:params[:title], image:params[:image],isbn: params[:isbn] + @msg = 'This book has been succeed to add to library.' + redirect_to :back, notice: @msg end end diff --git a/app/views/book/add.html.slim b/app/views/book/add.html.slim new file mode 100644 index 0000000..3bc4fa9 --- /dev/null +++ b/app/views/book/add.html.slim @@ -0,0 +1,12 @@ +- content_for :javascript_includes do + = javascript_include_tag 'add-book' + +- if flash[:notice] + div.alert.alert-success = flash[:notice] +div.row-fluid + div style="text-align:center" + div.form-search style="margin:0 auto; display: inline-block;" + div.input-append + input.search-query.key-word type="text" style="width:22em" placeholder="请输入书名或者ISBN进行搜索" + a.btn.search-book type="submit" 搜索 + div.books style="margin-bottom:1em;" diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index c8b6a79..7f9dfb2 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -19,6 +19,8 @@ html ul.nav li a href="" 书架 + li + a href="/books/add" 添加图书 ul.nav.pull-right -if @current_user != nil li diff --git a/config/routes.rb b/config/routes.rb index 8bc4643..0f1ac43 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,9 @@ Libr::Application.routes.draw do root to:'home#index' + match 'books/add' => 'book#add' match 'books/:id' => 'book#view' + post 'books' => 'book#add_to_lib' post 'books/:id/borrow' => 'book#borrow' get '/search/book/:arg' =>'book#search' get '/login' => 'user#login' diff --git a/lib/douban_auth.rb b/lib/douban_auth.rb index 73cba36..df19e04 100644 --- a/lib/douban_auth.rb +++ b/lib/douban_auth.rb @@ -26,7 +26,6 @@ module Douban_Auth response = http.post(path, data, headers) response = JSON.parse response.body - puts "!!!!!!!!!!!!!!!!!!" + response.to_s response['access_token'] end