samurai_tasks 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +22 -0
- data/app/assets/javascripts/samurai/tasks/application.js +13 -0
- data/app/assets/stylesheets/samurai/tasks/application.css +14 -0
- data/app/controllers/samurai/tasks/application_controller.rb +6 -0
- data/app/controllers/samurai/tasks/tasks_controller.rb +62 -0
- data/app/decorators/models/ability_decorator.rb +18 -0
- data/app/decorators/models/contact_decorator.rb +5 -0
- data/app/decorators/models/user_decorator.rb +3 -0
- data/app/helpers/samurai/tasks/application_helper.rb +6 -0
- data/app/models/samurai/tasks/task.rb +9 -0
- data/app/overrides/add_tasks_link_to_nav.rb +5 -0
- data/app/overrides/add_tasks_list_to_dashboard.rb +5 -0
- data/app/overrides/add_tasks_to_contact.rb +7 -0
- data/app/views/samurai/tasks/overrides/_contact_task_list.html.erb +32 -0
- data/app/views/samurai/tasks/overrides/_dashboard_tasks_list.html.erb +28 -0
- data/app/views/samurai/tasks/overrides/_tasks_link.html.erb +4 -0
- data/app/views/samurai/tasks/tasks/_form.html.erb +49 -0
- data/app/views/samurai/tasks/tasks/edit.html.erb +13 -0
- data/app/views/samurai/tasks/tasks/index.html.erb +37 -0
- data/app/views/samurai/tasks/tasks/new.html.erb +14 -0
- data/app/views/samurai/tasks/tasks/show.html.erb +18 -0
- data/config/routes.rb +5 -0
- data/db/migrate/20150427054436_create_samurai_tasks.rb +15 -0
- data/lib/samurai/tasks.rb +4 -0
- data/lib/samurai/tasks/engine.rb +27 -0
- data/lib/samurai/tasks/version.rb +5 -0
- data/lib/samurai_tasks.rb +2 -0
- data/lib/tasks/samurai/tasks_tasks.rake +4 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/samurai/tasks_test.rb +7 -0
- data/test/test_helper.rb +20 -0
- metadata +136 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 915ff55d3ca2f4162b625d7fe1a3e112c6ddef69
         | 
| 4 | 
            +
              data.tar.gz: bd5d9645d2797ff44741a82e14c28baa81cfdc6d
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 1a5a2b0b70d597d5c99264c4844c373658956774332717cb9d1b15f15f18fe891701dbc1ce3fc8056f0264f8b25c5c05aed270be0b9956b4f1df413b83c0983f
         | 
| 7 | 
            +
              data.tar.gz: edece04fb37d0c952f6ca016fa2091a52583b86c135b69f7a98b895217afeef7cf955f65b0fad3369e46c34dd22fdea927f03fe6c3da263a55dcbd566089b897
         | 
    
        data/MIT-LICENSE
    ADDED
    
    | @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            Copyright 2015 
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 | 
            +
            a copy of this software and associated documentation files (the
         | 
| 5 | 
            +
            "Software"), to deal in the Software without restriction, including
         | 
| 6 | 
            +
            without limitation the rights to use, copy, modify, merge, publish,
         | 
| 7 | 
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 | 
            +
            permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 | 
            +
            the following conditions:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            The above copyright notice and this permission notice shall be
         | 
| 12 | 
            +
            included in all copies or substantial portions of the Software.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 | 
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 | 
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 17 | 
            +
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 18 | 
            +
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 19 | 
            +
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 20 | 
            +
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
    
        data/README.rdoc
    ADDED
    
    
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            begin
         | 
| 2 | 
            +
              require 'bundler/setup'
         | 
| 3 | 
            +
            rescue LoadError
         | 
| 4 | 
            +
              puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
         | 
| 5 | 
            +
            end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            require 'rdoc/task'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            RDoc::Task.new(:rdoc) do |rdoc|
         | 
| 10 | 
            +
              rdoc.rdoc_dir = 'rdoc'
         | 
| 11 | 
            +
              rdoc.title    = 'Samurai::Tasks'
         | 
| 12 | 
            +
              rdoc.options << '--line-numbers'
         | 
| 13 | 
            +
              rdoc.rdoc_files.include('README.rdoc')
         | 
| 14 | 
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
             | 
| 18 | 
            +
            Bundler::GemHelper.install_tasks
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              task default: :test
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            // This is a manifest file that'll be compiled into application.js, which will include all the files
         | 
| 2 | 
            +
            // listed below.
         | 
| 3 | 
            +
            //
         | 
| 4 | 
            +
            // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
         | 
| 5 | 
            +
            // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
         | 
| 6 | 
            +
            //
         | 
| 7 | 
            +
            // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
         | 
| 8 | 
            +
            // compiled file.
         | 
| 9 | 
            +
            //
         | 
| 10 | 
            +
            // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
         | 
| 11 | 
            +
            // about supported directives.
         | 
| 12 | 
            +
            //
         | 
| 13 | 
            +
            //= require_tree .
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            /*
         | 
| 2 | 
            +
             * This is a manifest file that'll be compiled into application.css, which will include all the files
         | 
| 3 | 
            +
             * listed below.
         | 
| 4 | 
            +
             *
         | 
| 5 | 
            +
             * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
         | 
| 6 | 
            +
             * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
         | 
| 7 | 
            +
             *
         | 
| 8 | 
            +
             * You're free to add application-wide styles to this file and they'll appear at the bottom of the
         | 
| 9 | 
            +
             * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
         | 
| 10 | 
            +
             * files in this directory. It is generally better to create a new file per style scope.
         | 
| 11 | 
            +
             *
         | 
| 12 | 
            +
             *= require_tree .
         | 
| 13 | 
            +
             *= require_self
         | 
| 14 | 
            +
             */
         | 
| @@ -0,0 +1,62 @@ | |
| 1 | 
            +
            require_dependency "samurai/application_controller"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Samurai::Tasks
         | 
| 4 | 
            +
              class TasksController < ApplicationController
         | 
| 5 | 
            +
                before_action :set_task, only: [:show, :edit, :update, :destroy]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                # GET /tasks
         | 
| 8 | 
            +
                def index
         | 
| 9 | 
            +
                  @tasks = Task.all
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                # GET /tasks/1
         | 
| 13 | 
            +
                def show
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                # GET /tasks/new
         | 
| 17 | 
            +
                def new
         | 
| 18 | 
            +
                  @task = Task.new
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                # GET /tasks/1/edit
         | 
| 22 | 
            +
                def edit
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                # POST /tasks
         | 
| 26 | 
            +
                def create
         | 
| 27 | 
            +
                  @task = Task.new(task_params)
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  if @task.save
         | 
| 30 | 
            +
                    redirect_to [samurai, @task], notice: 'Task was successfully created.'
         | 
| 31 | 
            +
                  else
         | 
| 32 | 
            +
                    render :new
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                # PATCH/PUT /tasks/1
         | 
| 37 | 
            +
                def update
         | 
| 38 | 
            +
                  if @task.update(task_params)
         | 
| 39 | 
            +
                    redirect_to [samurai, @task], notice: 'Task was successfully updated.'
         | 
| 40 | 
            +
                  else
         | 
| 41 | 
            +
                    render :edit
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                # DELETE /tasks/1
         | 
| 46 | 
            +
                def destroy
         | 
| 47 | 
            +
                  @task.destroy
         | 
| 48 | 
            +
                  redirect_to samurai.tasks_url, notice: 'Task was successfully destroyed.'
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                private
         | 
| 52 | 
            +
                  # Use callbacks to share common setup or constraints between actions.
         | 
| 53 | 
            +
                  def set_task
         | 
| 54 | 
            +
                    @task = Task.find(params[:id])
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  # Only allow a trusted parameter "white list" through.
         | 
| 58 | 
            +
                  def task_params
         | 
| 59 | 
            +
                    params.require(:task).permit(:title, :content, :user_id, :contact_id)
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            require "cancan"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Samurai
         | 
| 4 | 
            +
              module Tasks
         | 
| 5 | 
            +
                class AbilityDecorator
         | 
| 6 | 
            +
                  include CanCan::Ability
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def initialize(user)
         | 
| 9 | 
            +
                    unless user.admin?
         | 
| 10 | 
            +
                      can :manage, Samurai::Tasks, user_id: user.id
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            # Registers the defined abilities.
         | 
| 18 | 
            +
            Samurai::Ability.register_ability(Samurai::Tasks::AbilityDecorator)
         | 
| @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            if Samurai::Core.available?(:contacts)
         | 
| 2 | 
            +
              Deface::Override.new(:virtual_path => "samurai/contacts/contacts/show",
         | 
| 3 | 
            +
                                   :name => "add_tasks_to_contact",
         | 
| 4 | 
            +
                                   :insert_after => "[data-samurai-hook='contacts_show']",
         | 
| 5 | 
            +
                                   :partial => "overrides/contact_task_list",
         | 
| 6 | 
            +
                                   :namespaced => true )
         | 
| 7 | 
            +
            end
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            <hr>
         | 
| 2 | 
            +
            <div class="panel panel-primary">
         | 
| 3 | 
            +
              <div class="panel-heading">
         | 
| 4 | 
            +
                Tasks for this contact
         | 
| 5 | 
            +
              </div>
         | 
| 6 | 
            +
              <table class="table">
         | 
| 7 | 
            +
                <thead>
         | 
| 8 | 
            +
                  <th>ID</th>
         | 
| 9 | 
            +
                  <th>Title</th>
         | 
| 10 | 
            +
                  <th>Content</th>
         | 
| 11 | 
            +
                  <th>Created On</th>
         | 
| 12 | 
            +
                  <th></th>
         | 
| 13 | 
            +
                </thead>
         | 
| 14 | 
            +
                <tbody>
         | 
| 15 | 
            +
                  <% @contact.tasks.each do |task| %>
         | 
| 16 | 
            +
                    <tr>
         | 
| 17 | 
            +
                      <td><%= task.id  %></td>
         | 
| 18 | 
            +
                      <td><%= task.title  %></td>
         | 
| 19 | 
            +
                      <td><%= task.content %></td>
         | 
| 20 | 
            +
                      <td><%= task.created_at.strftime("%d %b. %Y")%></td>
         | 
| 21 | 
            +
                      <td>
         | 
| 22 | 
            +
                        <%= link_to 'Show', [samurai, task], class: 'btn btn-primary'  %>
         | 
| 23 | 
            +
                        <%= link_to 'Edit', samurai.edit_task_path(task), class: 'btn btn-primary' %>
         | 
| 24 | 
            +
                        <%= link_to 'Destroy', [samurai, task], class: 'btn btn-primary', method: :delete, data: { confirm: 'Are you sure?' }  %>
         | 
| 25 | 
            +
                      </td>
         | 
| 26 | 
            +
                    </tr>
         | 
| 27 | 
            +
                  <% end %>
         | 
| 28 | 
            +
                </tbody>
         | 
| 29 | 
            +
              </table>
         | 
| 30 | 
            +
            </div>
         | 
| 31 | 
            +
             | 
| 32 | 
            +
             | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            <div class="col-md-6">
         | 
| 2 | 
            +
              <div class="panel panel-primary">
         | 
| 3 | 
            +
                <div class="panel-header">
         | 
| 4 | 
            +
                  Last 3 Tasks
         | 
| 5 | 
            +
                </div>
         | 
| 6 | 
            +
                <table class="table">
         | 
| 7 | 
            +
                  <thead>
         | 
| 8 | 
            +
                    <th>ID</th>
         | 
| 9 | 
            +
                    <th>Title</th>
         | 
| 10 | 
            +
                    <th>Content</th>
         | 
| 11 | 
            +
                    <th>Created On</th>
         | 
| 12 | 
            +
                  </thead>
         | 
| 13 | 
            +
                  <tbody>
         | 
| 14 | 
            +
                    <%- current_user.tasks.limit(3).each do |task| %>
         | 
| 15 | 
            +
                      <tr>
         | 
| 16 | 
            +
                        <td><%= task.id  %></td>
         | 
| 17 | 
            +
                        <td><%= task.title %></td>
         | 
| 18 | 
            +
                        <td><%= task.content %></td>
         | 
| 19 | 
            +
                        <td><%= task.created_at.strftime("%d %b. %Y") %></td>
         | 
| 20 | 
            +
                      </tr>
         | 
| 21 | 
            +
                    <% end %>
         | 
| 22 | 
            +
                  </tbody>
         | 
| 23 | 
            +
                </table>
         | 
| 24 | 
            +
                <div class="panel-body text-center">
         | 
| 25 | 
            +
                  <%= link_to '...', tasks_path  %>
         | 
| 26 | 
            +
                </div>
         | 
| 27 | 
            +
              </div>
         | 
| 28 | 
            +
            </div>
         | 
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            <div class="row">
         | 
| 2 | 
            +
              <div class="col-md-8">
         | 
| 3 | 
            +
              <% if @task.errors.any? %>
         | 
| 4 | 
            +
                <div id="error_explanation">
         | 
| 5 | 
            +
                  <h2>
         | 
| 6 | 
            +
                    <%= pluralize(@task.errors.count, "error") %> prohibited this task from being saved:
         | 
| 7 | 
            +
                  </h2>
         | 
| 8 | 
            +
                  <ul>
         | 
| 9 | 
            +
                    <% @task.errors.full_messages.each do |message| %>
         | 
| 10 | 
            +
                    <li><%= message %></li>
         | 
| 11 | 
            +
                  <% end %>
         | 
| 12 | 
            +
                  </ul>
         | 
| 13 | 
            +
                </div>
         | 
| 14 | 
            +
              <% end %>
         | 
| 15 | 
            +
             | 
| 16 | 
            +
             | 
| 17 | 
            +
             | 
| 18 | 
            +
             | 
| 19 | 
            +
                <div class="form-group">
         | 
| 20 | 
            +
                  <%= f.label :title, class: "control-label"  %>
         | 
| 21 | 
            +
                  <%= f.text_field :title, class: "control-label"  %>
         | 
| 22 | 
            +
                </div>
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                <div class="form-group">
         | 
| 25 | 
            +
                  <%= f.label :content, class: "control-label"  %>
         | 
| 26 | 
            +
                  <%= f.text_area :content, class: "form-control"  %>
         | 
| 27 | 
            +
                </div>
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                <%- if Samurai::Core.available?(:contacts)  %>
         | 
| 30 | 
            +
                <div class="form-group">
         | 
| 31 | 
            +
                  <%= f.label :contact_id, class: "control-label"  %>
         | 
| 32 | 
            +
                  <%= f.select :contact_id, Samurai::Contacts::Contact.all.collect { |p| [ p.email, p.id ] },
         | 
| 33 | 
            +
                    { allow_blank: true }, class: "form-control" %>
         | 
| 34 | 
            +
                </div>
         | 
| 35 | 
            +
              <% end %>
         | 
| 36 | 
            +
              </div>
         | 
| 37 | 
            +
            </div>
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                <div class="form-group">
         | 
| 40 | 
            +
                  <%= f.label :user_id, class: "control-label"  %>
         | 
| 41 | 
            +
                  <%= f.select :user_id, Samurai::User.all.collect { |p| [ p.email, p.id ] },
         | 
| 42 | 
            +
                    { selected: current_user.id }, class: "form-control" %>
         | 
| 43 | 
            +
                </div>
         | 
| 44 | 
            +
              </div>
         | 
| 45 | 
            +
            </div>
         | 
| 46 | 
            +
             | 
| 47 | 
            +
             | 
| 48 | 
            +
             | 
| 49 | 
            +
             | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            <h2>Editing Task</h2>
         | 
| 2 | 
            +
            <hr>
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            <%= form_for([samurai, @task]) do |f|  %>
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            <%= render 'form', f: f %>
         | 
| 7 | 
            +
            <div class="form-group">
         | 
| 8 | 
            +
              <div>
         | 
| 9 | 
            +
                <%= f.submit "Update Task", class: "btn btn-primary"  %>
         | 
| 10 | 
            +
                <%= link_to 'Back', samurai.tasks_path, class: 'btn btn-default'  %>
         | 
| 11 | 
            +
              </div>
         | 
| 12 | 
            +
            </div>
         | 
| 13 | 
            +
            <% end %>
         | 
| @@ -0,0 +1,37 @@ | |
| 1 | 
            +
            <p id="notice"><%= notice %></p>
         | 
| 2 | 
            +
            <%= link_to 'New Task', samurai.new_task_path, class: 'pull-right btn btn-primary'  %>
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            <h2>Listing Tasks</h2>
         | 
| 5 | 
            +
            <hr>
         | 
| 6 | 
            +
            <div class="panel panel-primary">
         | 
| 7 | 
            +
              <div class="panel-heading">
         | 
| 8 | 
            +
                My Tasks
         | 
| 9 | 
            +
              </div>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            <table class="table">
         | 
| 12 | 
            +
              <thead>
         | 
| 13 | 
            +
                <th>ID</th>
         | 
| 14 | 
            +
                <th>Title</th>
         | 
| 15 | 
            +
                <th>Content</th>
         | 
| 16 | 
            +
                <th>Created At</th>
         | 
| 17 | 
            +
                <th></th>
         | 
| 18 | 
            +
              </thead>
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              <tbody>
         | 
| 21 | 
            +
                <% @tasks.each do |task| %>
         | 
| 22 | 
            +
                  <tr>
         | 
| 23 | 
            +
                    <td><%= task.id  %></td>
         | 
| 24 | 
            +
                    <td><%= task.title  %></td>
         | 
| 25 | 
            +
                    <td><%= task.content%></td>
         | 
| 26 | 
            +
                    <td><%= task.created_at.strftime("%d %b. %Y") %></td>
         | 
| 27 | 
            +
                    <td>
         | 
| 28 | 
            +
                      <%= link_to 'Show', [samurai, task], class: 'btn btn-primary'  %>
         | 
| 29 | 
            +
                      <%= link_to 'Edit', samurai.edit_task_path(task), class: 'btn btn-primary'  %>
         | 
| 30 | 
            +
                      <%= link_to 'Destroy', [samurai, task], class: 'btn btn-primary', method: :delete, data: { confirm: 'Are you sure?' }  %>
         | 
| 31 | 
            +
                    </td>
         | 
| 32 | 
            +
                  </tr>
         | 
| 33 | 
            +
                <% end %>
         | 
| 34 | 
            +
              </tbody>
         | 
| 35 | 
            +
            </table>
         | 
| 36 | 
            +
            </div>
         | 
| 37 | 
            +
            <br>
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            <h2>New Task</h2>
         | 
| 2 | 
            +
            <hr>
         | 
| 3 | 
            +
            <%= form_for([samurai, @task]) do |f|  %>
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            <%= render 'form', f: f %>
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            <div class="form-group">
         | 
| 8 | 
            +
              <div>
         | 
| 9 | 
            +
                <%= f.submit "Create Task", class: "btn btn-primary"  %>
         | 
| 10 | 
            +
                <%= link_to 'Back', samurai.tasks_path, class: 'btn btn-default'  %>
         | 
| 11 | 
            +
              </div>
         | 
| 12 | 
            +
            </div>
         | 
| 13 | 
            +
            <% end %>
         | 
| 14 | 
            +
             | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            <h2><%= @task.title  %></h2>
         | 
| 2 | 
            +
            <hr>
         | 
| 3 | 
            +
            <div class="row">
         | 
| 4 | 
            +
              <div class="col-md-8">
         | 
| 5 | 
            +
                <strong>Title:</strong>
         | 
| 6 | 
            +
                <%= @task.title  %>
         | 
| 7 | 
            +
                <br>
         | 
| 8 | 
            +
                <strong>Content:</strong>
         | 
| 9 | 
            +
                <%= @task.content  %>
         | 
| 10 | 
            +
                <br>
         | 
| 11 | 
            +
                <strong>User:</strong>
         | 
| 12 | 
            +
                <%= @task.user.email  %>
         | 
| 13 | 
            +
                <br/>
         | 
| 14 | 
            +
              </div>
         | 
| 15 | 
            +
            </div>
         | 
| 16 | 
            +
            <hr>
         | 
| 17 | 
            +
            <%= link_to 'Edit', samurai.edit_task_path(@task), class: "btn btn-primary"  %>
         | 
| 18 | 
            +
            <%= link_to 'Back', samurai.tasks_path, class: 'btn btn-default'  %>
         | 
    
        data/config/routes.rb
    ADDED
    
    
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            class CreateSamuraiTasks < ActiveRecord::Migration
         | 
| 2 | 
            +
              def change
         | 
| 3 | 
            +
                create_table :samurai_tasks_tasks do |t|
         | 
| 4 | 
            +
                  t.string :title
         | 
| 5 | 
            +
                  t.text :content
         | 
| 6 | 
            +
                  t.references :user, index: true
         | 
| 7 | 
            +
                  t.references :contact, index: true
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  t.timestamps null: false
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                add_foreign_key :samurai_tasks_tasks, :samurai_users
         | 
| 13 | 
            +
                add_foreign_key :samurai_tasks_tasks, :samurai_contacts_contacts
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            module Samurai
         | 
| 2 | 
            +
              module Tasks
         | 
| 3 | 
            +
                class Engine < ::Rails::Engine
         | 
| 4 | 
            +
                  isolate_namespace Samurai::Tasks
         | 
| 5 | 
            +
                  paths["app/views"] << "app/views/samurai/tasks"
         | 
| 6 | 
            +
                
         | 
| 7 | 
            +
                  initializer :append_migrations do |app|
         | 
| 8 | 
            +
                    unless app.root.to_s.match(root.to_s)
         | 
| 9 | 
            +
                      config.paths["db/migrate"].expanded.each do |p|
         | 
| 10 | 
            +
                        app.config.paths["db/migrate"] << p
         | 
| 11 | 
            +
                      end
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                  config.to_prepare do
         | 
| 16 | 
            +
                    Dir.glob(Engine.root.join("app", "decorators", "**", "*_decorator*.rb")) do |c|
         | 
| 17 | 
            +
                      Rails.configuration.cache_classes ? require(c) : load(c)
         | 
| 18 | 
            +
                    end
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
             | 
    
        data/test/test_helper.rb
    ADDED
    
    | @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            # Configure Rails Environment
         | 
| 2 | 
            +
            ENV["RAILS_ENV"] = "test"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            require File.expand_path("../..//config/environment.rb",  __FILE__)
         | 
| 5 | 
            +
            ActiveRecord::Migrator.migrations_paths = [File.expand_path("../..//db/migrate", __FILE__)]
         | 
| 6 | 
            +
            require "rails/test_help"
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            # Filter out Minitest backtrace while allowing backtrace from other libraries
         | 
| 9 | 
            +
            # to be shown.
         | 
| 10 | 
            +
            Minitest.backtrace_filter = Minitest::BacktraceFilter.new
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            # Load support files
         | 
| 13 | 
            +
            Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            # Load fixtures from the engine
         | 
| 16 | 
            +
            if ActiveSupport::TestCase.respond_to?(:fixture_path=)
         | 
| 17 | 
            +
              ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
         | 
| 18 | 
            +
              ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "files"
         | 
| 19 | 
            +
              ActiveSupport::TestCase.fixtures :all
         | 
| 20 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,136 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: samurai_tasks
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.1
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - rocknrollmarc
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2015-04-27 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: rails
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '4.2'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '4.2'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: samurai_core
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :runtime
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: deface
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '1.0'
         | 
| 48 | 
            +
              type: :runtime
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '1.0'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: sqlite3
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ">="
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - ">="
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0'
         | 
| 69 | 
            +
            description: SamuraiCRM task feature module.
         | 
| 70 | 
            +
            email:
         | 
| 71 | 
            +
            - rocknrollmarc@gmail.com
         | 
| 72 | 
            +
            executables: []
         | 
| 73 | 
            +
            extensions: []
         | 
| 74 | 
            +
            extra_rdoc_files: []
         | 
| 75 | 
            +
            files:
         | 
| 76 | 
            +
            - MIT-LICENSE
         | 
| 77 | 
            +
            - README.rdoc
         | 
| 78 | 
            +
            - Rakefile
         | 
| 79 | 
            +
            - app/assets/javascripts/samurai/tasks/application.js
         | 
| 80 | 
            +
            - app/assets/stylesheets/samurai/tasks/application.css
         | 
| 81 | 
            +
            - app/controllers/samurai/tasks/application_controller.rb
         | 
| 82 | 
            +
            - app/controllers/samurai/tasks/tasks_controller.rb
         | 
| 83 | 
            +
            - app/decorators/models/ability_decorator.rb
         | 
| 84 | 
            +
            - app/decorators/models/contact_decorator.rb
         | 
| 85 | 
            +
            - app/decorators/models/user_decorator.rb
         | 
| 86 | 
            +
            - app/helpers/samurai/tasks/application_helper.rb
         | 
| 87 | 
            +
            - app/models/samurai/tasks/task.rb
         | 
| 88 | 
            +
            - app/overrides/add_tasks_link_to_nav.rb
         | 
| 89 | 
            +
            - app/overrides/add_tasks_list_to_dashboard.rb
         | 
| 90 | 
            +
            - app/overrides/add_tasks_to_contact.rb
         | 
| 91 | 
            +
            - app/views/samurai/tasks/overrides/_contact_task_list.html.erb
         | 
| 92 | 
            +
            - app/views/samurai/tasks/overrides/_dashboard_tasks_list.html.erb
         | 
| 93 | 
            +
            - app/views/samurai/tasks/overrides/_tasks_link.html.erb
         | 
| 94 | 
            +
            - app/views/samurai/tasks/tasks/_form.html.erb
         | 
| 95 | 
            +
            - app/views/samurai/tasks/tasks/edit.html.erb
         | 
| 96 | 
            +
            - app/views/samurai/tasks/tasks/index.html.erb
         | 
| 97 | 
            +
            - app/views/samurai/tasks/tasks/new.html.erb
         | 
| 98 | 
            +
            - app/views/samurai/tasks/tasks/show.html.erb
         | 
| 99 | 
            +
            - config/routes.rb
         | 
| 100 | 
            +
            - db/migrate/20150427054436_create_samurai_tasks.rb
         | 
| 101 | 
            +
            - lib/samurai/tasks.rb
         | 
| 102 | 
            +
            - lib/samurai/tasks/engine.rb
         | 
| 103 | 
            +
            - lib/samurai/tasks/version.rb
         | 
| 104 | 
            +
            - lib/samurai_tasks.rb
         | 
| 105 | 
            +
            - lib/tasks/samurai/tasks_tasks.rake
         | 
| 106 | 
            +
            - test/integration/navigation_test.rb
         | 
| 107 | 
            +
            - test/samurai/tasks_test.rb
         | 
| 108 | 
            +
            - test/test_helper.rb
         | 
| 109 | 
            +
            homepage: https://rocknrollmarc.github.io
         | 
| 110 | 
            +
            licenses:
         | 
| 111 | 
            +
            - MIT
         | 
| 112 | 
            +
            metadata: {}
         | 
| 113 | 
            +
            post_install_message: 
         | 
| 114 | 
            +
            rdoc_options: []
         | 
| 115 | 
            +
            require_paths:
         | 
| 116 | 
            +
            - lib
         | 
| 117 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 118 | 
            +
              requirements:
         | 
| 119 | 
            +
              - - ">="
         | 
| 120 | 
            +
                - !ruby/object:Gem::Version
         | 
| 121 | 
            +
                  version: '0'
         | 
| 122 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 123 | 
            +
              requirements:
         | 
| 124 | 
            +
              - - ">="
         | 
| 125 | 
            +
                - !ruby/object:Gem::Version
         | 
| 126 | 
            +
                  version: '0'
         | 
| 127 | 
            +
            requirements: []
         | 
| 128 | 
            +
            rubyforge_project: 
         | 
| 129 | 
            +
            rubygems_version: 2.2.2
         | 
| 130 | 
            +
            signing_key: 
         | 
| 131 | 
            +
            specification_version: 4
         | 
| 132 | 
            +
            summary: SamuraiCRM feature.
         | 
| 133 | 
            +
            test_files:
         | 
| 134 | 
            +
            - test/integration/navigation_test.rb
         | 
| 135 | 
            +
            - test/samurai/tasks_test.rb
         | 
| 136 | 
            +
            - test/test_helper.rb
         |