helpdesk 0.0.4 → 0.0.5
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/models/helpdesk/comment.rb +2 -2
- data/app/models/helpdesk/ticket.rb +1 -1
- data/app/views/helpdesk/admin/tickets/_form.html.haml +6 -6
- data/app/views/helpdesk/admin/tickets/_ticket.html.haml +10 -12
- data/app/views/helpdesk/admin/tickets/edit.html.haml +1 -1
- data/app/views/helpdesk/tickets/_ticket.html.haml +7 -7
- data/app/views/helpdesk/tickets/show.html.haml +14 -10
- data/lib/generators/helpdesk/templates/README +6 -1
- data/lib/generators/helpdesk/templates/helpdesk.rb +10 -4
- data/lib/helpdesk.rb +5 -3
- data/lib/helpdesk/engine.rb +5 -0
- data/lib/helpdesk/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2bb016f583e835252086dd3e6af2944dd1faf46
|
4
|
+
data.tar.gz: 530b21639f6552c52b5ecb16311d9dd6b841608f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 570524960d897ebd88eca5cfa53df9773343348e3db4c78c71fe7fd1bb6c082e3581b2ab9165aec5bf6f472a88a6dcc302597f5de086f9c398823f76c7b1c560
|
7
|
+
data.tar.gz: 30edbf3d805a7a9480d0e0965ae09c3dfe5d0f69eca31d6a40a779649e00d6fb7eb88efd7cac27aed8f4aabc50949bbb59e739dab0729135bd044beb06a18f24
|
@@ -13,10 +13,10 @@ module Helpdesk
|
|
13
13
|
def send_email
|
14
14
|
if self.public?
|
15
15
|
if ticket.requester == author
|
16
|
-
Helpdesk::NotificationsMailer.comment_by_requester_notification(self).deliver
|
16
|
+
Helpdesk::NotificationsMailer.comment_by_requester_notification(self).deliver if ticket.requester
|
17
17
|
Helpdesk::NotificationsMailer.comment_by_requester_confirmation(self).deliver if Helpdesk.send_confirmation_emails
|
18
18
|
else
|
19
|
-
Helpdesk::NotificationsMailer.comment_by_helpdesk_notification(self).deliver
|
19
|
+
Helpdesk::NotificationsMailer.comment_by_helpdesk_notification(self).deliver if ticket.requester
|
20
20
|
Helpdesk::NotificationsMailer.comment_by_helpdesk_confirmation(self).deliver if Helpdesk.send_confirmation_emails
|
21
21
|
end
|
22
22
|
end
|
@@ -25,7 +25,7 @@ module Helpdesk
|
|
25
25
|
belongs_to :requester, :class_name => Helpdesk.user_class.to_s
|
26
26
|
belongs_to :assignee, :class_name => Helpdesk.user_class.to_s
|
27
27
|
belongs_to :ticket_type, :class_name => Helpdesk::TicketType
|
28
|
-
has_many :comments, :order => "created_at DESC"
|
28
|
+
has_many :comments, :order => "created_at DESC",:dependent => :destroy
|
29
29
|
|
30
30
|
|
31
31
|
|
@@ -7,17 +7,17 @@
|
|
7
7
|
- @ticket.errors.full_messages.each do |msg|
|
8
8
|
%li
|
9
9
|
= msg
|
10
|
-
= f.input :requester_id, :collection =>
|
11
|
-
= f.input :subject
|
10
|
+
= f.input :requester_id, :collection => (Helpdesk.user_class).all,:label_method=>Helpdesk.display_user_uniq_info.to_sym
|
11
|
+
= f.input :subject
|
12
12
|
= f.input :status, :collection => Helpdesk::Ticket::STATUS_OPTIONS, include_blank: false
|
13
|
-
= f.input :assignee_id, :collection => User.where('helpdesk_admin = ?', true)
|
13
|
+
= f.input :assignee_id, :collection => User.where('helpdesk_admin = ?', true)
|
14
14
|
= f.input :ticket_type_id, :collection => Helpdesk::TicketType.active,include_blank: false
|
15
15
|
- if @ticket.new_record?
|
16
|
-
= f.input :description
|
16
|
+
= f.input :description
|
17
17
|
- else
|
18
18
|
= simple_format @ticket.description
|
19
|
-
|
20
|
-
|
19
|
+
|
20
|
+
|
21
21
|
%div.form-actions
|
22
22
|
= f.button :submit, :class => 'btn-primary'
|
23
23
|
= submit_tag 'Anuluj', :type => :reset, :class => "btn btn-danger"
|
@@ -2,30 +2,29 @@
|
|
2
2
|
%tbody
|
3
3
|
%tr{:class=>ticket.ticket_type.tr_class}
|
4
4
|
%td{colspan:2}
|
5
|
-
%h4
|
5
|
+
%h4
|
6
6
|
="##{ticket.subject}"
|
7
7
|
%tr
|
8
|
-
%td{style:'width:100px'}
|
8
|
+
%td{style:'width:100px'}
|
9
9
|
= I18n::l(ticket.created_at, :format=>:short)
|
10
10
|
- if ticket.requester
|
11
|
-
= ticket.requester.send Helpdesk.
|
11
|
+
= ticket.requester.send Helpdesk.display_user_uniq_info.to_sym
|
12
12
|
%td{rowspan:2}
|
13
13
|
= status_label Helpdesk::Ticket::STATUS_BY_KEY[ticket.status.to_sym], Helpdesk::Ticket::STATUS_CLASS_BY_KEY[ticket.status.to_sym]
|
14
14
|
= ticket.ticket_type.title
|
15
|
-
|
16
|
-
= simple_format ticket.description
|
15
|
+
= auto_link(simple_format(ticket.description), :html => { :target => "_blank" })
|
17
16
|
%tr
|
18
17
|
%td
|
19
18
|
- if ticket.assignee
|
20
19
|
= t('helpdesk.tickets.assignee_to')
|
21
|
-
= ticket.assignee.send Helpdesk.
|
20
|
+
= ticket.assignee.send Helpdesk.display_user_uniq_info.to_sym
|
22
21
|
- else
|
23
22
|
= t('helpdesk.tickets.not_assigned')
|
24
23
|
= link_to ico('star','white') + t('helpdesk.tickets.assign_me'), assign_admin_ticket_path(ticket),class: 'btn btn-mini btn-info'
|
25
24
|
%tr
|
26
25
|
%td
|
27
26
|
%span.btn.disabled
|
28
|
-
= ico('comment')
|
27
|
+
= ico('comment')
|
29
28
|
= ticket.comments.size
|
30
29
|
%td
|
31
30
|
%ul.comments.unstyled
|
@@ -43,18 +42,17 @@
|
|
43
42
|
%div.comment-header
|
44
43
|
-if comment.author == ticket.requester
|
45
44
|
= status_label ico('user','white')+ t('helpdesk.comments.author'),'label-info'
|
46
|
-
|
47
|
-
= comment.author.send Helpdesk.display_user.to_sym
|
45
|
+
= comment.author.send Helpdesk.display_user_uniq_info.to_sym if comment.author
|
48
46
|
%small
|
49
47
|
= time_ago_in_words(comment.created_at)
|
50
48
|
temu
|
51
49
|
%div.comment-body
|
52
|
-
= simple_format
|
53
|
-
|
50
|
+
= auto_link(simple_format(comment.comment), :html => { :target => "_blank" })
|
51
|
+
|
54
52
|
%tr{:class=>ticket.ticket_type.tr_class}
|
55
53
|
%td{colspan:2}
|
56
54
|
- if show_button
|
57
55
|
= link_to 'Show', admin_ticket_url(ticket), class: 'btn btn-block'
|
58
56
|
-elsif edit_button
|
59
57
|
= link_to 'Edit', edit_admin_ticket_url(ticket), class: 'btn btn-primary'
|
60
|
-
|
58
|
+
|
@@ -22,7 +22,7 @@
|
|
22
22
|
-if comment.author == @ticket.requester
|
23
23
|
= status_label ico('user','white')+ t('helpdesk.comments.author'),'label-info'
|
24
24
|
|
25
|
-
= comment.author.send Helpdesk.display_user.to_sym
|
25
|
+
= comment.author.send Helpdesk.display_user.to_sym if comment.author
|
26
26
|
%small
|
27
27
|
= time_ago_in_words(comment.created_at)
|
28
28
|
temu
|
@@ -2,10 +2,10 @@
|
|
2
2
|
%tbody
|
3
3
|
%tr{:class=>ticket.ticket_type.tr_class}
|
4
4
|
%td{colspan:2}
|
5
|
-
%h4
|
5
|
+
%h4
|
6
6
|
="##{ticket.subject}"
|
7
7
|
%tr
|
8
|
-
%td{style:'width:100px'}
|
8
|
+
%td{style:'width:100px'}
|
9
9
|
= I18n::l(ticket.created_at, :format=>:short)
|
10
10
|
- if ticket.requester
|
11
11
|
= ticket.requester.send Helpdesk.display_user.to_sym
|
@@ -13,7 +13,7 @@
|
|
13
13
|
= status_label Helpdesk::Ticket::STATUS_BY_KEY[ticket.status.to_sym], Helpdesk::Ticket::STATUS_CLASS_BY_KEY[ticket.status.to_sym]
|
14
14
|
= ticket.ticket_type.title
|
15
15
|
|
16
|
-
= simple_format
|
16
|
+
= auto_link(simple_format(ticket.description), :html => { :target => "_blank" })
|
17
17
|
%tr
|
18
18
|
%td
|
19
19
|
- if ticket.assignee
|
@@ -22,7 +22,7 @@
|
|
22
22
|
%tr
|
23
23
|
%td
|
24
24
|
%span.btn.disabled
|
25
|
-
= ico('comment')
|
25
|
+
= ico('comment')
|
26
26
|
= ticket.comments.pub.size
|
27
27
|
%td
|
28
28
|
%ul.comments.unstyled
|
@@ -40,14 +40,14 @@
|
|
40
40
|
%div.comment-header
|
41
41
|
-if comment.author != ticket.requester
|
42
42
|
= status_label ico('user','white')+ t('helpdesk.comments.helpdesk'),'label-info'
|
43
|
-
|
43
|
+
|
44
44
|
= comment.author.send Helpdesk.display_user.to_sym
|
45
45
|
%small
|
46
46
|
= time_ago_in_words(comment.created_at)
|
47
47
|
temu
|
48
48
|
%div.comment-body
|
49
|
-
= simple_format
|
50
|
-
|
49
|
+
= auto_link(simple_format(comment.comment), :html => { :target => "_blank" })
|
50
|
+
|
51
51
|
%tr{:class=>ticket.ticket_type.tr_class}
|
52
52
|
%td{colspan:2}
|
53
53
|
- if show_button
|
@@ -2,16 +2,20 @@
|
|
2
2
|
|
3
3
|
= render 'ticket', :ticket=>@ticket, show_button:false
|
4
4
|
|
5
|
-
%table.table
|
6
|
-
%tbody
|
7
|
-
%tr{:class=>@ticket.ticket_type.tr_class}
|
8
|
-
%td{style:'width:100px'}
|
9
5
|
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
- unless @ticket.open?
|
7
|
+
%table.table
|
8
|
+
%tbody
|
9
|
+
%tr{:class=>@ticket.ticket_type.tr_class}
|
10
|
+
%td{style:'width:100px'}
|
11
|
+
%td
|
13
12
|
= t('helpdesk.tickets.ticket_closed')
|
14
|
-
|
13
|
+
- if @ticket.open? || helpdesk_user == @ticket.requester
|
14
|
+
%table.table
|
15
|
+
%tbody
|
16
|
+
%tr{:class=>@ticket.ticket_type.tr_class}
|
17
|
+
%td{style:'width:100px'}
|
18
|
+
%td
|
15
19
|
= simple_form_for(@ticket, :html => {:class => 'form-vertical' }) do |f|
|
16
20
|
- if @ticket.errors.any?
|
17
21
|
%div.error_explanation
|
@@ -28,7 +32,7 @@
|
|
28
32
|
/ , :as => :ckeditor, :input_html => { :ckeditor => {:toolbar => 'mini'},:language => I18n.locale}
|
29
33
|
|
30
34
|
= tickets_form.input :public, :input_html => {:value=>1},:as=>:hidden
|
31
|
-
= tickets_form.input :author_id, :as => :hidden, :input_html => { :value => helpdesk_user.id }
|
35
|
+
= tickets_form.input :author_id, :as => :hidden, :input_html => { :value => helpdesk_user.id }
|
32
36
|
%div
|
33
37
|
= f.button :submit, :class => 'btn-primary'
|
34
|
-
= submit_tag 'Anuluj', :type => :reset, :class => "btn btn-danger"
|
38
|
+
= submit_tag 'Anuluj', :type => :reset, :class => "btn btn-danger"
|
@@ -17,7 +17,12 @@ You need to do some manual setup to get Helpdesk working:
|
|
17
17
|
|
18
18
|
4. Add a helpdesk_user method to your applications application_controller.rb
|
19
19
|
that exposes your current_user
|
20
|
-
|
20
|
+
|
21
|
+
Example, for devise gem:
|
22
|
+
def helpdesk_user
|
23
|
+
current_user
|
24
|
+
end
|
25
|
+
|
21
26
|
5.
|
22
27
|
|
23
28
|
===============================================================================
|
@@ -1,15 +1,21 @@
|
|
1
1
|
require 'helpdesk'
|
2
2
|
|
3
3
|
::Helpdesk.setup do |config|
|
4
|
-
# Class that represents the user
|
4
|
+
# Class that represents the user
|
5
5
|
config.user_class = "User"
|
6
6
|
|
7
|
+
# Method usign to display information about user for users
|
8
|
+
config.display_user = "name"
|
9
|
+
|
10
|
+
# Method usign to display information about user for admins (name+id?)
|
11
|
+
config.display_user_uniq_info = "name"
|
12
|
+
|
7
13
|
# Require User to be present in order to access Helpdesk
|
8
14
|
config.require_user = true
|
9
|
-
|
15
|
+
|
10
16
|
# Base application sign in route name
|
11
|
-
config.sign_in_url = 'sign_in_url'
|
12
|
-
|
17
|
+
config.sign_in_url = 'sign_in_url'
|
18
|
+
|
13
19
|
# Ticket issue types
|
14
20
|
config.issue_types = ['bug', 'change request', 'new feature']
|
15
21
|
|
data/lib/helpdesk.rb
CHANGED
@@ -10,8 +10,10 @@ module Helpdesk
|
|
10
10
|
|
11
11
|
mattr_accessor :display_user
|
12
12
|
|
13
|
+
mattr_accessor :display_user_uniq_info
|
14
|
+
|
13
15
|
mattr_accessor :issue_types
|
14
|
-
|
16
|
+
|
15
17
|
mattr_accessor :mail_server
|
16
18
|
|
17
19
|
mattr_accessor :email
|
@@ -23,9 +25,9 @@ module Helpdesk
|
|
23
25
|
|
24
26
|
mattr_accessor :site_address
|
25
27
|
|
26
|
-
mattr_accessor :helpdesk_name
|
28
|
+
mattr_accessor :helpdesk_name
|
27
29
|
@@helpdesk_name = "Helpdesk"
|
28
|
-
|
30
|
+
|
29
31
|
def self.setup
|
30
32
|
yield self
|
31
33
|
end
|
data/lib/helpdesk/engine.rb
CHANGED
@@ -2,6 +2,11 @@ require 'rails'
|
|
2
2
|
require 'simple_form'
|
3
3
|
require 'state_machine'
|
4
4
|
require 'bootstrap-sass'
|
5
|
+
require 'rails_autolink'
|
6
|
+
require 'simple_form'
|
7
|
+
require 'globalize3'
|
8
|
+
require 'batch_translations'
|
9
|
+
require 'ckeditor'
|
5
10
|
|
6
11
|
module Helpdesk
|
7
12
|
class Engine < ::Rails::Engine
|
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.5
|
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: 2013-
|
11
|
+
date: 2013-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - '>='
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rails_autolink
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: bootstrap-sass
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|