helpdesk 0.0.9 → 0.0.10
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 +4 -4
- data/app/controllers/helpdesk/admin/base_controller.rb +1 -1
- data/app/controllers/helpdesk/admin/tickets_controller.rb +7 -5
- data/app/controllers/helpdesk/application_controller.rb +11 -7
- data/app/controllers/helpdesk/tickets_controller.rb +6 -6
- data/app/models/helpdesk/ticket.rb +1 -1
- data/app/views/helpdesk/admin/tickets/index.html.haml +6 -4
- data/app/views/helpdesk/admin/tickets/list.html.haml +2 -1
- data/app/views/helpdesk/tickets/_form.html.haml +8 -8
- data/app/views/helpdesk/tickets/_ticket.html.haml +1 -1
- data/config/initializers/globalize.rb +4 -0
- data/config/locales/helpdesk.en.yml +76 -3
- data/config/locales/helpdesk.pl.yml +5 -5
- data/config/routes.rb +2 -2
- data/db/migrate/20130521105605_create_helpdesk_ticket_types.rb +20 -1
- data/lib/generators/helpdesk/install_generator.rb +12 -0
- data/lib/generators/helpdesk/templates/README +10 -15
- data/lib/helpdesk/version.rb +1 -1
- metadata +22 -8
- data/db/migrate/20130521132216_add_tr_class_to_ticket_type.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3de15e09a8fa89ce2f0ad4e71245b6bf51c29c5f
|
4
|
+
data.tar.gz: d4071186fc44ba53952a7c1875db4bc1c5a94081
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6165cf2a2673f78627a432b5fe12f1387c056ebbbae507e59d0507273e39e3cf024420dcd873d5930fc3fd998033e1c9b43f0f6e4f29bc1228333ccc6a241f4a
|
7
|
+
data.tar.gz: 5003f8c0923b7fe7433198cd3127bdb69738511e585d69bfe5b1ab80b9774a6228eed4d050bce67c42f6fd5b4a86c669ed3149f40167fd6a2e80970b52a3be79
|
@@ -2,16 +2,18 @@ class Helpdesk::Admin::TicketsController < Helpdesk::Admin::BaseController
|
|
2
2
|
|
3
3
|
def index
|
4
4
|
if params[:tickets] == 'unassigned'
|
5
|
-
@tickets = Helpdesk::Ticket.unassigned
|
5
|
+
@tickets = Helpdesk::Ticket.unassigned.scoped
|
6
6
|
elsif params[:tickets] == 'closed'
|
7
|
-
@tickets = Helpdesk::Ticket.closed
|
7
|
+
@tickets = Helpdesk::Ticket.closed.scoped
|
8
8
|
elsif params[:tickets] == 'active'
|
9
|
-
@tickets = Helpdesk::Ticket.active
|
9
|
+
@tickets = Helpdesk::Ticket.active.scoped
|
10
10
|
elsif params[:tickets] == 'all'
|
11
|
-
@tickets = Helpdesk::Ticket.all
|
11
|
+
@tickets = Helpdesk::Ticket.all.scoped
|
12
12
|
else
|
13
|
-
@tickets = my_tickets.active
|
13
|
+
@tickets = my_tickets.active.scoped
|
14
14
|
end
|
15
|
+
@tickets = @tickets.page(params[:page])
|
16
|
+
|
15
17
|
render 'list'
|
16
18
|
end
|
17
19
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Helpdesk
|
2
|
-
class ApplicationController <
|
2
|
+
class ApplicationController < ApplicationController
|
3
3
|
before_filter :ensure_user, :if => Proc.new { Helpdesk.require_user }
|
4
|
-
|
4
|
+
|
5
5
|
helper Helpdesk::Engine.helpers
|
6
|
-
|
6
|
+
|
7
7
|
|
8
8
|
|
9
9
|
layout 'helpdesk/user'
|
@@ -14,11 +14,15 @@ module Helpdesk
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
|
17
|
+
def default_url_options(options={})
|
18
|
+
{ :locale => I18n.locale}
|
19
19
|
end
|
20
|
-
|
21
|
-
|
20
|
+
|
21
|
+
# def helpdesk_admin?
|
22
|
+
# helpdesk_user && (can? :manage, 'helpdesk')
|
23
|
+
# end
|
24
|
+
# helper_method :helpdesk_admin?
|
25
|
+
|
22
26
|
|
23
27
|
|
24
28
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Helpdesk
|
2
|
-
class TicketsController < ApplicationController
|
2
|
+
class TicketsController < Helpdesk::ApplicationController
|
3
3
|
# GET /tickets
|
4
4
|
# GET /tickets.json
|
5
5
|
def index
|
@@ -22,7 +22,7 @@ module Helpdesk
|
|
22
22
|
# GET /tickets/1.json
|
23
23
|
def show
|
24
24
|
@tickets_count = Helpdesk::Ticket.where(:requester_id => helpdesk_user.id).active.count
|
25
|
-
@ticket = Ticket.find(params[:id])
|
25
|
+
@ticket = Helpdesk::Ticket.find(params[:id])
|
26
26
|
|
27
27
|
respond_to do |format|
|
28
28
|
format.html # show.html.erb
|
@@ -34,7 +34,7 @@ module Helpdesk
|
|
34
34
|
# GET /tickets/new.json
|
35
35
|
def new
|
36
36
|
@tickets_count = Helpdesk::Ticket.where(:requester_id => helpdesk_user.id).active.count
|
37
|
-
@ticket = Ticket.new
|
37
|
+
@ticket = Helpdesk::Ticket.new
|
38
38
|
@ticket.status = Helpdesk::Ticket::STATUSES[0][0]
|
39
39
|
|
40
40
|
respond_to do |format|
|
@@ -45,13 +45,13 @@ module Helpdesk
|
|
45
45
|
|
46
46
|
# GET /tickets/1/edit
|
47
47
|
def edit
|
48
|
-
@ticket = Ticket.find(params[:id])
|
48
|
+
@ticket = Helpdesk::Ticket.find(params[:id])
|
49
49
|
end
|
50
50
|
|
51
51
|
# POST /tickets
|
52
52
|
# POST /tickets.json
|
53
53
|
def create
|
54
|
-
@ticket = Ticket.new(params[:ticket])
|
54
|
+
@ticket = Helpdesk::Ticket.new(params[:ticket])
|
55
55
|
@ticket.requester = helpdesk_user
|
56
56
|
@ticket.status = Helpdesk::Ticket::STATUSES[0][0]
|
57
57
|
|
@@ -69,7 +69,7 @@ module Helpdesk
|
|
69
69
|
# PUT /tickets/1
|
70
70
|
# PUT /tickets/1.json
|
71
71
|
def update
|
72
|
-
@ticket = Ticket.find(params[:id])
|
72
|
+
@ticket = Helpdesk::Ticket.find(params[:id])
|
73
73
|
|
74
74
|
respond_to do |format|
|
75
75
|
if @ticket.update_attributes(params[:ticket])
|
@@ -62,7 +62,7 @@ module Helpdesk
|
|
62
62
|
|
63
63
|
new_subject = "#{sprintf '%02d',time.year-2000}#{sprintf '%02d',time.month}#{sprintf '%02d',time.day}"
|
64
64
|
|
65
|
-
day_num =
|
65
|
+
day_num = Helpdesk::Ticket.where(created_at: Date.today.beginning_of_day..Date.today.end_of_day).count+1
|
66
66
|
new_subject += "-#{sprintf '%04d',day_num}: "
|
67
67
|
self.subject = new_subject + subject.to_s
|
68
68
|
self.subject.strip!
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
%table.table.table-hover
|
10
10
|
%thead
|
11
|
-
%tr
|
11
|
+
%tr
|
12
12
|
%th= t('helpdesk.status')
|
13
13
|
%th ID
|
14
14
|
%th Issue Type
|
@@ -16,7 +16,7 @@
|
|
16
16
|
%th Requester
|
17
17
|
%th Requested
|
18
18
|
%th Assignee
|
19
|
-
%th
|
19
|
+
%th
|
20
20
|
|
21
21
|
%tbody
|
22
22
|
- @tickets.each do |ticket|
|
@@ -29,12 +29,14 @@
|
|
29
29
|
%td
|
30
30
|
- if ticket.requester
|
31
31
|
= ticket.requester.send Helpdesk.display_user.to_sym
|
32
|
-
%br
|
32
|
+
%br
|
33
33
|
= ticket.requester.phone
|
34
|
-
%br
|
34
|
+
%br
|
35
35
|
= ticket.requester.email
|
36
36
|
%td= I18n::l(ticket.created_at, :format=>:short)
|
37
37
|
%td= ticket.assignee if ticket.assignee
|
38
38
|
%td= link_to 'Show', admin_ticket_url(ticket)
|
39
39
|
%br
|
40
40
|
|
41
|
+
= paginate @tickets
|
42
|
+
|
@@ -8,26 +8,26 @@
|
|
8
8
|
- @ticket.errors.full_messages.each do |msg|
|
9
9
|
%li
|
10
10
|
= msg
|
11
|
-
/ = f.input :subject
|
11
|
+
/ = f.input :subject
|
12
12
|
/ = f.input :ticket_type_id, collection: Helpdesk::TicketType.active, include_blank: false
|
13
13
|
%div.subject
|
14
14
|
%input{:value=>@ticket.subject,:name=>"ticket[subject]",:type => "text",:placeholder => t('helpdesk.tickets.subject')}
|
15
15
|
%select{:name=>"ticket[ticket_type_id]"}
|
16
|
-
-
|
16
|
+
- Helpdesk::TicketType.all.each do |type|
|
17
17
|
%option{:value=>type.id, selected: type.id == @ticket.ticket_type_id}
|
18
|
-
= type.
|
19
|
-
|
18
|
+
= type.title
|
19
|
+
|
20
20
|
- if @ticket.new_record?
|
21
21
|
%div.content
|
22
22
|
%textarea{:value=>@ticket.description,:name=>"ticket[description]",:type => "text",:placeholder => t('helpdesk.tickets.description')}
|
23
23
|
- else
|
24
24
|
= @ticket.description
|
25
|
-
|
25
|
+
|
26
26
|
= f.simple_fields_for :comments do |tickets_form|
|
27
27
|
- unless tickets_form.object.persisted?
|
28
|
-
= tickets_form.input :comment
|
29
|
-
= tickets_form.input :public, :hint => 'Requester can see this comment (public comment)'
|
30
|
-
= tickets_form.input :author_id, :as => :hidden, :input_html => { :value => helpdesk_user.id }
|
28
|
+
= tickets_form.input :comment
|
29
|
+
= tickets_form.input :public, :hint => 'Requester can see this comment (public comment)'
|
30
|
+
= tickets_form.input :author_id, :as => :hidden, :input_html => { :value => helpdesk_user.id }
|
31
31
|
%hr
|
32
32
|
%div.textRight
|
33
33
|
%a#feedbackCancel{:class=>"btn white"}
|
@@ -1,7 +1,80 @@
|
|
1
1
|
en:
|
2
2
|
|
3
3
|
helpdesk:
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
Show: Show
|
5
|
+
edit: Edit
|
6
|
+
Destroy: Delete
|
7
|
+
name: Helpdesk
|
8
|
+
new_ticket: New
|
9
|
+
tickets:
|
10
|
+
new: New Issue
|
11
|
+
my: My Issue
|
12
|
+
unassigned: Wnassigned
|
13
|
+
closed: Closed Issues
|
14
|
+
all: All issues
|
15
|
+
title: Issues
|
16
|
+
active: Active Issues
|
17
|
+
assignee_to: Assigned to
|
18
|
+
assign_me: I take it
|
19
|
+
not_assigned: Not assigned
|
20
|
+
is_now_assigned: "Issue % {subject} has been assigned to you"
|
21
|
+
visible_to_autor: Visible to the author - send an email
|
22
|
+
you_have_no_tickets: "No issues "
|
23
|
+
ticket_closed: Issues closed
|
24
|
+
subject: Subject of
|
25
|
+
Description: Content
|
26
|
+
ticket: Issue
|
27
|
+
comments:
|
28
|
+
title: Comments
|
29
|
+
note: Memo
|
30
|
+
send: Sent
|
31
|
+
received: Received
|
32
|
+
note: note
|
33
|
+
author: Re. author
|
34
|
+
helpdesk: Re. BOK
|
35
|
+
ticket_types:
|
36
|
+
title: Types of issues
|
37
|
+
new: A new type of issues
|
38
|
+
all: All kinds of issues
|
39
|
+
active: Active types of issues
|
40
|
+
inactive: Inactive types of issues
|
7
41
|
|
42
|
+
dashboard: Dashboard
|
43
|
+
|
44
|
+
subscribers:
|
45
|
+
title: Subscribers
|
46
|
+
confirmed: Confirmed subskrybenci
|
47
|
+
unconfirmed: Unconfirmed
|
48
|
+
all: All Subscribers
|
49
|
+
new: Add Subscriber
|
50
|
+
|
51
|
+
faqs:
|
52
|
+
title: FAQ
|
53
|
+
active: Active Questions
|
54
|
+
inactive: Inactive questions
|
55
|
+
all: All the questions
|
56
|
+
new: New Question
|
57
|
+
by: by
|
58
|
+
faq:
|
59
|
+
active: active
|
60
|
+
inactive: inactive
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
activerecord:
|
65
|
+
models:
|
66
|
+
Helpdesk: helpdesk
|
67
|
+
helpdesk/ticket: Issue
|
68
|
+
helpdesk/comment: Comment
|
69
|
+
attributes:
|
70
|
+
helpdesk/comment:
|
71
|
+
comment: Additional description
|
72
|
+
public: Visible/Send Email
|
73
|
+
helpdesk/ticket:
|
74
|
+
requester_id: Requester
|
75
|
+
subject: Subject
|
76
|
+
Status: Status
|
77
|
+
assignee_id: Assigned
|
78
|
+
ticket_type_id: Type of notification
|
79
|
+
Description: Description
|
80
|
+
comments: More details
|
@@ -29,7 +29,7 @@ pl:
|
|
29
29
|
note: Notatka
|
30
30
|
send: Wysłane
|
31
31
|
received: Odebrane
|
32
|
-
note: notatka
|
32
|
+
note: notatka
|
33
33
|
author: Odp. autora
|
34
34
|
helpdesk: Odp. BOK
|
35
35
|
ticket_types:
|
@@ -41,12 +41,12 @@ pl:
|
|
41
41
|
|
42
42
|
dashboard: Dashboard
|
43
43
|
|
44
|
-
subscribers:
|
45
|
-
title:
|
44
|
+
subscribers:
|
45
|
+
title: Subskrybenci
|
46
46
|
confirmed: Potwierdzeni subskrynenci
|
47
47
|
unconfirmed: Niepotwierdzeni
|
48
|
-
all: Wszyscy
|
49
|
-
new: Dodaj
|
48
|
+
all: Wszyscy subskrybenci
|
49
|
+
new: Dodaj subskrybenta
|
50
50
|
|
51
51
|
faqs:
|
52
52
|
title: FAQ
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
Helpdesk::Engine.routes.draw do
|
2
|
-
|
2
|
+
# Rails.application.routes.draw do
|
3
3
|
scope "(:locale)", :locale => /pl|en/ do
|
4
|
-
|
5
4
|
# Admin only roots
|
6
5
|
namespace :admin do
|
7
6
|
resources :tickets do
|
@@ -14,6 +13,7 @@ Helpdesk::Engine.routes.draw do
|
|
14
13
|
resources :subscribers
|
15
14
|
root :to => "dashboard#index"
|
16
15
|
end
|
16
|
+
|
17
17
|
resources :faqs, :only => [ :index ]
|
18
18
|
resources :tickets, :except => [ :edit, :destroy ]
|
19
19
|
root :to => "tickets#index"
|
@@ -3,10 +3,29 @@ class CreateHelpdeskTicketTypes < ActiveRecord::Migration
|
|
3
3
|
create_table :helpdesk_ticket_types do |t|
|
4
4
|
t.integer :position
|
5
5
|
t.boolean :active,:default=>1,:null=>false
|
6
|
-
|
6
|
+
t.string :tr_class
|
7
7
|
t.timestamps
|
8
8
|
end
|
9
9
|
Helpdesk::TicketType.create_translation_table! :title => :string
|
10
|
+
|
11
|
+
|
12
|
+
tt = [["Sugestia","Sugestion","warning"],
|
13
|
+
["Pochwała","Appreciation","success"],
|
14
|
+
["Błąd","Complaint","error"],
|
15
|
+
["Pytanie","Enquiry","info"],
|
16
|
+
["Kontakt","Contact","contact"]]
|
17
|
+
|
18
|
+
tt.each do |item|
|
19
|
+
I18n.locale = :pl
|
20
|
+
type = Helpdesk::TicketType.new
|
21
|
+
type.title = item[0]
|
22
|
+
I18n.locale = :en
|
23
|
+
type.title = item[1]
|
24
|
+
type.tr_class = item[2]
|
25
|
+
type.active = true
|
26
|
+
type.save!
|
27
|
+
end
|
28
|
+
|
10
29
|
end
|
11
30
|
|
12
31
|
def down
|
@@ -19,6 +19,18 @@ module Helpdesk
|
|
19
19
|
def show_readme
|
20
20
|
readme "README" if behavior == :invoke
|
21
21
|
end
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
def add_engine_to_route
|
26
|
+
route "mount Helpdesk::Engine, :at => '/helpdesk'"
|
27
|
+
end
|
28
|
+
|
29
|
+
def run_rake
|
30
|
+
rake "helpdesk:install:migrations"
|
31
|
+
rake "db:migrate"
|
32
|
+
end
|
33
|
+
|
22
34
|
end
|
23
35
|
end
|
24
36
|
end
|
@@ -5,24 +5,19 @@ You need to do some manual setup to get Helpdesk working:
|
|
5
5
|
1. Review settings in new config/initializers/helpdesk.rb and update where
|
6
6
|
neccessary.
|
7
7
|
|
8
|
-
2.
|
9
|
-
|
10
|
-
mount Helpdesk::Engine, :at => "support"
|
11
|
-
|
12
|
-
3. Install and run the migrations
|
13
|
-
|
14
|
-
rake helpdesk:install:migrations
|
15
|
-
|
16
|
-
rake db:migrate
|
17
|
-
|
18
|
-
4. Add a helpdesk_user method to your applications application_controller.rb
|
8
|
+
2. Add a helpdesk_user & helpdesk_admin method to your applications application_controller.rb
|
19
9
|
that exposes your current_user
|
20
10
|
|
21
11
|
Example, for devise gem:
|
22
|
-
|
23
|
-
|
24
|
-
|
12
|
+
helper_method :helpdesk_user
|
13
|
+
def helpdesk_user
|
14
|
+
current_user
|
15
|
+
end
|
16
|
+
|
17
|
+
def helpdesk_admin?
|
18
|
+
current_user.admin?
|
19
|
+
end
|
25
20
|
|
26
|
-
|
21
|
+
3. Notnihg to do! Yey!
|
27
22
|
|
28
23
|
===============================================================================
|
data/lib/helpdesk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: helpdesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Beynon Wacław Łuczak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|
@@ -168,16 +168,16 @@ dependencies:
|
|
168
168
|
name: bootstrap-sass
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - '
|
171
|
+
- - '='
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 2.3.2.2
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - '
|
178
|
+
- - '='
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
180
|
+
version: 2.3.2.2
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rails
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,6 +276,20 @@ dependencies:
|
|
276
276
|
- - '>='
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: kaminari
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - '>='
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :runtime
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - '>='
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
279
293
|
description: 'Helpesk includes: tickets, ticket_types, faq, subscribers'
|
280
294
|
email:
|
281
295
|
- john@beynon.org.uk, waclaw@luczak.it
|
@@ -374,6 +388,7 @@ files:
|
|
374
388
|
- app/views/layouts/helpdesk/_topuser.html.haml
|
375
389
|
- app/views/layouts/helpdesk/admin.html.haml
|
376
390
|
- app/views/layouts/helpdesk/user.html.haml
|
391
|
+
- config/initializers/globalize.rb
|
377
392
|
- config/initializers/simple_form.rb
|
378
393
|
- config/locales/helpdesk.en.yml
|
379
394
|
- config/locales/helpdesk.pl.yml
|
@@ -384,7 +399,6 @@ files:
|
|
384
399
|
- db/migrate/20120420104051_create_helpdesk_tickets.rb
|
385
400
|
- db/migrate/20120423113938_create_helpdesk_comments.rb
|
386
401
|
- db/migrate/20130521105605_create_helpdesk_ticket_types.rb
|
387
|
-
- db/migrate/20130521132216_add_tr_class_to_ticket_type.rb
|
388
402
|
- db/migrate/20130522085614_create_helpdesk_faqs.rb
|
389
403
|
- db/migrate/20130522090420_create_helpdesk_subscribers.rb
|
390
404
|
- lib/generators/helpdesk/install_generator.rb
|
@@ -417,7 +431,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
417
431
|
version: '0'
|
418
432
|
requirements: []
|
419
433
|
rubyforge_project:
|
420
|
-
rubygems_version: 2.
|
434
|
+
rubygems_version: 2.1.11
|
421
435
|
signing_key:
|
422
436
|
specification_version: 4
|
423
437
|
summary: Rails mountable engine providing basic helpdesk functionality for your applications
|