0.0
No commit activity in last 3 years
No release in over 3 years
TaskManager can help you to manage your routine tasks effectually.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

TaskManager

Build Status Dependency Status Code Climate

TaskManager是一个可挂载的Rails引擎(Mountable Rails Engine),因此您可以在Rails应用中通过挂载的方式来使用。另外,TaskManager使用了PostgreSQL的hstore特性,因此TaskManager只能工作在PostgreSQL数据库之上。

屁话:鉴于PostgreSQL的宽松的免费使用政策,以及其越来越出色的性能,强烈建议您使用之。

依赖

  • PostgreSQL数据库

    # Ubuntu
    sudo apt-get install postgresql-contrib

安装

  • 安装Gem包

    在您的Rails应用程序的Gemfile文件中添加:

    gem 'task-manager', '~>0.1.3'

    然后,运行bundle install

  • 创建数据库表

    • 生成数据库迁移文件
    rake task_manager:install:migrations
    • 创建数据库表
    rake db:migrate

使用说明

挂载TaskManager API

编辑config/routes.rb文件,在其中挂载TaskManager路由。

mount TaskManager::Engine => "/task-manager"

使用rake routes命令,检查是否正常挂载成功。如果挂载成功,命令行中将会有如下输出:

Routes for TaskManager::Engine:
api_plans GET    /api/plans(.:format)     task_manager/api/v1/plans#index {:format=>"json"}
          POST   /api/plans(.:format)     task_manager/api/v1/plans#create {:format=>"json"}
api_plan  PUT    /api/plans/:id(.:format) task_manager/api/v1/plans#update {:format=>"json"}
          DELETE /api/plans/:id(.:format) task_manager/api/v1/plans#destroy {:format=>"json"}
api_tasks GET    /api/tasks(.:format)     task_manager/api/v1/tasks#index {:format=>"json"}
api_task  DELETE /api/tasks/:id(.:format) task_manager/api/v1/tasks#destroy {:format=>"json"}

详细的接口使用说明请查看TaskManager API文档

界面

ExtJS
  • 导入资源文件

app/assets/javascripts/application.js文件中添加:

// 代码需要放置在导入ExtJS库之后
//= require task-manager/extjs

app/assets/stylesheets/application.css文件中添加:

/*= require task-manager/extjs */

app/assets/javascripts/extjs/app.js文件中controllers添加:

controllers: [..., 'TM.controller.Plans', 'TM.controller.Tasks'];

后台

Ruby Project
  • app/controllers/task_manager下创建AssigneesController.rb文件:

示例:

# -*- encoding: utf-8 -*-
module TaskManager
  class AssigneesController < ApplicationController
    respond_to :json
  
    def index
      departments = Department.all
      assignees = departments.inject([]) do |c, i|
        c << {
          id: i.id,
          parent_id: i.parent_id,
          name: i.name,
          class_name: i.class.name
        }
      end
      # 或者使用如下方式
      # assignees = departments.inject([]) { |c, i| c << i.as_json }
  
      result = {
        total: assignees.count,
        assignees: assignees
      }
  
      render json: result, status: :ok
    end
  end
end
  • config/routes.rb文件中添加:
resources :assignees, only: [:index], module: 'TaskManager'

使用rake routes命令,检查是否添加成功。如果成功,命令行中将会有如下输出:

Routes for TaskManager::Engine:
assignees GET    /assigneess(.:format)     TaskManager/assignees#index {:format=>"json"}

开发指南

  • 安装依赖包
bundle install
  • 创建数据库
cd path/to/task-manager/spec/dummy

# 说明:需要根据您安装的数据库设置,修改path/to/task-manager/spec/dummy/config/database.yml中的相应配置

# 创建开发数据库
rake db:create db:migrate db:seed RAILS_ENV=development

# 创建测试数据库
rake db:create db:migrate db:seed RAILS_ENV=test
  • 运行后端测试(Ruby)
cd path/to/task-manager
rake
  • 运行前端测试(Javascript)
cd path/to/task-manager/spec/dummy
rails s

然后,打开浏览器访问:http://localhost:3000/siesta。 待页面打开后,点击打开页面的运行按钮进行前端测试。

  • 查看Demo应用
cd path/to/task-manager/spec/dummy
rails s

然后,打开浏览器访问:http://localhost:3000/extjs