helpdesk 0.0.30 → 0.0.31
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/assets/javascripts/helpdesk/admin/tickets.js +1 -5
- data/app/assets/javascripts/helpdesk/faqs.js +14 -2
- data/app/assets/stylesheets/helpdesk/faqs.css.scss +77 -3
- data/app/controllers/helpdesk/admin/faqs_controller.rb +15 -4
- data/app/controllers/helpdesk/faqs_controller.rb +10 -1
- data/app/models/helpdesk/faq.rb +31 -0
- data/app/models/helpdesk/ticket.rb +1 -5
- data/app/views/helpdesk/admin/faqs/_faq.html.haml +10 -0
- data/app/views/helpdesk/admin/faqs/_form.html.haml +1 -0
- data/app/views/helpdesk/admin/faqs/_menu.html.haml +4 -1
- data/app/views/helpdesk/admin/faqs/index.html.haml +5 -46
- data/app/views/helpdesk/admin/faqs/sorting.html.haml +46 -0
- data/app/views/helpdesk/faqs/_faq.html.haml +8 -0
- data/app/views/helpdesk/faqs/_menu.html.haml +11 -0
- data/app/views/helpdesk/faqs/index.html.haml +8 -17
- data/app/views/helpdesk/faqs/search.html.haml +27 -0
- data/app/views/helpdesk/faqs/show.html.haml +15 -0
- data/app/views/layouts/helpdesk/_topmenu.html.haml +2 -0
- data/app/views/layouts/helpdesk/_topuser.html.haml +5 -1
- data/config/locales/helpdesk.en.yml +7 -0
- data/config/locales/helpdesk.pl.yml +11 -0
- data/config/routes.rb +4 -1
- data/db/migrate/20141105112734_add_parent_id_to_helpdesk_faqs.rb +8 -0
- data/lib/helpdesk/engine.rb +1 -0
- data/lib/helpdesk/version.rb +1 -1
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d67332e83f1fe55016bd1540a32cb5cc4fec9bd2
|
4
|
+
data.tar.gz: 69fd17578fdd0cb2843e0fffd81a67e066fa6c2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab37716c9dff6baff0d6a5b4dca6d1282349189b60d9d80eb56203c25a0db82880af784b68ccd096f3d58b504c5ff6a3d85fbe3e46e4a476c9ee0bdaa4c533f5
|
7
|
+
data.tar.gz: 24b5a0c85346f2a5ac04a79a428c93c06b225027c69c2f4287e57eeaa354e965e935d16da4814b2ad66b6a18db9ba4ada5e555002ef5008405567748a1a1454d
|
@@ -1,11 +1,7 @@
|
|
1
1
|
// Place all the behaviors and hooks related to the matching controller here.
|
2
2
|
// All this logic will automatically be available in application.js.
|
3
3
|
|
4
|
-
|
5
|
-
$('a[href*="#"]').click(function(){
|
6
|
-
$($(this).attr("href")).effect("highlight", {}, 1500);
|
7
|
-
});
|
8
|
-
});
|
4
|
+
|
9
5
|
|
10
6
|
(function() {
|
11
7
|
$(function() {
|
@@ -1,2 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
$(document).ready(function(){
|
2
|
+
$('body').scrollspy({
|
3
|
+
target: '.bs-docs-sidebar',
|
4
|
+
offset: 40
|
5
|
+
});
|
6
|
+
|
7
|
+
$(".bs-docs-sidebar").affix({
|
8
|
+
offset: {
|
9
|
+
top: 122
|
10
|
+
}
|
11
|
+
});
|
12
|
+
});
|
13
|
+
|
14
|
+
|
@@ -1,3 +1,77 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
body {
|
2
|
+
position: relative;
|
3
|
+
}
|
4
|
+
|
5
|
+
.affix{
|
6
|
+
top: 0px;
|
7
|
+
width:inherit;
|
8
|
+
}
|
9
|
+
|
10
|
+
/* sidebar */
|
11
|
+
.bs-docs-sidebar {
|
12
|
+
padding-left: 0px;
|
13
|
+
margin-top: 20px;
|
14
|
+
margin-bottom: 20px;
|
15
|
+
}
|
16
|
+
|
17
|
+
/* all links */
|
18
|
+
.bs-docs-sidebar .nav>li>a {
|
19
|
+
color: #999;
|
20
|
+
border-left: 2px solid transparent;
|
21
|
+
padding: 4px 20px;
|
22
|
+
font-size: 13px;
|
23
|
+
font-weight: 400;
|
24
|
+
}
|
25
|
+
|
26
|
+
/* nested links */
|
27
|
+
.bs-docs-sidebar .nav .nav>li>a {
|
28
|
+
padding-top: 1px;
|
29
|
+
padding-bottom: 1px;
|
30
|
+
padding-left: 30px;
|
31
|
+
font-size: 12px;
|
32
|
+
}
|
33
|
+
|
34
|
+
.bs-docs-sidebar .nav .nav .nav>li>a {
|
35
|
+
padding-top: 1px;
|
36
|
+
padding-bottom: 1px;
|
37
|
+
padding-left: 40px;
|
38
|
+
font-size: 12px;
|
39
|
+
}
|
40
|
+
|
41
|
+
.bs-docs-sidebar .nav .nav .nav .nav>li>a {
|
42
|
+
padding-top: 1px;
|
43
|
+
padding-bottom: 1px;
|
44
|
+
padding-left: 50px;
|
45
|
+
font-size: 12px;
|
46
|
+
}
|
47
|
+
|
48
|
+
/* active & hover links */
|
49
|
+
.bs-docs-sidebar .nav>.active>a,
|
50
|
+
.bs-docs-sidebar .nav>li>a:hover,
|
51
|
+
.bs-docs-sidebar .nav>li>a:focus {
|
52
|
+
color: #563d7c;
|
53
|
+
text-decoration: none;
|
54
|
+
background-color: transparent;
|
55
|
+
border-left-color: #563d7c;
|
56
|
+
}
|
57
|
+
/* all active links */
|
58
|
+
.bs-docs-sidebar .nav>.active>a,
|
59
|
+
.bs-docs-sidebar .nav>.active:hover>a,
|
60
|
+
.bs-docs-sidebar .nav>.active:focus>a {
|
61
|
+
font-weight: 700;
|
62
|
+
}
|
63
|
+
/* nested active links */
|
64
|
+
.bs-docs-sidebar .nav .nav>.active>a,
|
65
|
+
.bs-docs-sidebar .nav .nav>.active:hover>a,
|
66
|
+
.bs-docs-sidebar .nav .nav>.active:focus>a {
|
67
|
+
font-weight: 500;
|
68
|
+
}
|
69
|
+
|
70
|
+
/* hide inactive nested list */
|
71
|
+
.bs-docs-sidebar .nav ul.nav {
|
72
|
+
display: none;
|
73
|
+
}
|
74
|
+
/* show active nested list */
|
75
|
+
.bs-docs-sidebar .nav>.active>ul.nav {
|
76
|
+
display: block;
|
77
|
+
}
|
@@ -6,15 +6,26 @@ class Helpdesk::Admin::FaqsController < Helpdesk::Admin::BaseController
|
|
6
6
|
end
|
7
7
|
render :nothing => true
|
8
8
|
end
|
9
|
+
|
10
|
+
def sorting
|
11
|
+
if params[:id]=='all'
|
12
|
+
|
13
|
+
@faqs = Helpdesk::Faq.roots
|
14
|
+
else
|
15
|
+
@faq = Helpdesk::Faq.find(params[:id])
|
16
|
+
@faqs = @faq.children
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
9
20
|
# GET /faqs
|
10
21
|
# GET /faqs.json
|
11
22
|
def index
|
12
23
|
if params[:faqs] == 'active'
|
13
|
-
@faqs = Helpdesk::Faq.active
|
24
|
+
@faqs = Helpdesk::Faq.roots.active
|
14
25
|
elsif params[:faqs] == 'inactive'
|
15
|
-
@faqs = Helpdesk::Faq.inactive
|
26
|
+
@faqs = Helpdesk::Faq.roots.inactive
|
16
27
|
else
|
17
|
-
@faqs = Helpdesk::Faq.
|
28
|
+
@faqs = Helpdesk::Faq.roots
|
18
29
|
end
|
19
30
|
respond_to do |format|
|
20
31
|
format.html # index.html.erb
|
@@ -95,6 +106,6 @@ class Helpdesk::Admin::FaqsController < Helpdesk::Admin::BaseController
|
|
95
106
|
|
96
107
|
private
|
97
108
|
def faq_params
|
98
|
-
params.require(:faq).permit(:active, :position, :title, :text, translations_attributes:[:id,:locale,:title,:text])
|
109
|
+
params.require(:faq).permit(:active, :position, :title, :text,:parent_id, translations_attributes:[:id,:locale,:title,:text])
|
99
110
|
end
|
100
111
|
end
|
@@ -1,7 +1,16 @@
|
|
1
1
|
module Helpdesk
|
2
2
|
class FaqsController < Helpdesk::ApplicationController
|
3
|
+
|
4
|
+
def search
|
5
|
+
@faqs = Helpdesk::Faq.search(params[:search])
|
6
|
+
end
|
7
|
+
|
3
8
|
def index
|
4
|
-
@faqs = Helpdesk::Faq.active
|
9
|
+
@faqs = Helpdesk::Faq.active.roots
|
10
|
+
end
|
11
|
+
|
12
|
+
def show
|
13
|
+
@faq = Helpdesk::Faq.active.find(params[:id])
|
5
14
|
end
|
6
15
|
end
|
7
16
|
end
|
data/app/models/helpdesk/faq.rb
CHANGED
@@ -3,9 +3,40 @@ module Helpdesk
|
|
3
3
|
translates :title, :text
|
4
4
|
accepts_nested_attributes_for :translations
|
5
5
|
|
6
|
+
acts_as_ordered_tree
|
7
|
+
|
6
8
|
default_scope {order('position ASC').includes(:translations)}
|
7
9
|
|
8
10
|
scope :active, -> {where(active: true)}
|
9
11
|
scope :inactive, -> {where(active: false)}
|
12
|
+
|
13
|
+
def name_with_depth
|
14
|
+
"#{" "*depth}\\_ #{title}".html_safe
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_param
|
18
|
+
id ? "#{id}-#{title.parameterize}" : nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.search(query, page=1)
|
22
|
+
query = "%#{query}%"
|
23
|
+
arel_faqs_t = Arel::Table.new(:helpdesk_faq_translations)
|
24
|
+
name_match = arel_faqs_t[:title].matches(query)
|
25
|
+
postal_match = arel_faqs_t[:text].matches(query)
|
26
|
+
with_translations.active.where(name_match.or(postal_match)).page(page).per_page(5)
|
27
|
+
end
|
28
|
+
|
29
|
+
def anchor
|
30
|
+
"##{to_param}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.collection
|
34
|
+
arr = []
|
35
|
+
roots.each do |faq|
|
36
|
+
arr << faq
|
37
|
+
arr << faq.descendants
|
38
|
+
end
|
39
|
+
return arr.flatten
|
40
|
+
end
|
10
41
|
end
|
11
42
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Helpdesk
|
2
2
|
class Ticket < ActiveRecord::Base
|
3
3
|
|
4
|
+
|
4
5
|
STATUSES = [
|
5
6
|
[ :new, 'label-primary',3],
|
6
7
|
[ :open, 'label-warning',2],
|
@@ -61,8 +62,6 @@ module Helpdesk
|
|
61
62
|
self.subject.strip!
|
62
63
|
end
|
63
64
|
|
64
|
-
|
65
|
-
|
66
65
|
def send_email
|
67
66
|
Helpdesk::NotificationsMailer.ticket_created_notification(self).deliver
|
68
67
|
unless requester.email.empty?
|
@@ -78,8 +77,5 @@ module Helpdesk
|
|
78
77
|
end
|
79
78
|
end
|
80
79
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
80
|
end
|
85
81
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
- faqs.each do |faq|
|
2
|
+
%li
|
3
|
+
= faq.title
|
4
|
+
%div
|
5
|
+
= link_to t('helpdesk.show'), faqs_path(anchor:faq.to_param), class: 'btn btn-info btn-xs', target: :faq_preview
|
6
|
+
= link_to t('helpdesk.edit'), edit_admin_faq_path(faq),class: 'btn btn-primary btn-xs'
|
7
|
+
= link_to t('helpdesk.destroy'), admin_faq_path(faq), method: :delete, data: { confirm: 'Are you sure?' },class: 'btn btn-danger btn-xs'
|
8
|
+
- if faq.children.present?
|
9
|
+
%ol
|
10
|
+
= render partial:'/helpdesk/admin/faqs/faq', locals:{ faqs:faq.children }
|
@@ -5,5 +5,8 @@
|
|
5
5
|
= menu_li ico('envelope') + "#{t('helpdesk.faqs.active')} (#{Helpdesk::Faq.active.count})", admin_faqs_url(:faqs => 'active')
|
6
6
|
|
7
7
|
= menu_li ico('info-sign') + "#{t('helpdesk.faqs.inactive')} (#{Helpdesk::Faq.inactive.count})", admin_faqs_url(:faqs => 'inactive')
|
8
|
+
|
9
|
+
= menu_li ico('signal') + "#{t('helpdesk.faqs.sorting')}", sorting_admin_faq_url(:all)
|
10
|
+
|
8
11
|
%li.divider
|
9
|
-
= menu_li ico('list') + t('helpdesk.faqs.all'), admin_faqs_url(:faqs => 'all')
|
12
|
+
= menu_li ico('list') + t('helpdesk.faqs.all'), admin_faqs_url(:faqs => 'all')
|
@@ -11,49 +11,8 @@
|
|
11
11
|
|
12
12
|
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
= ico('move')
|
20
|
-
%span.badge.badge-info
|
21
|
-
= "link#{faq.id}"
|
22
|
-
- if faq.active
|
23
|
-
%span.label.label-success
|
24
|
-
= t('helpdesk.faqs.faq.active')
|
25
|
-
- else
|
26
|
-
%span.label
|
27
|
-
= t('helpdesk.faqs.faq.inactive')
|
28
|
-
%div.span5
|
29
|
-
= faq.title
|
30
|
-
%div.span2
|
31
|
-
= link_to t('helpdesk.show'), admin_faq_path(faq), class: 'btn btn-info btn-mini'
|
32
|
-
= link_to t('helpdesk.edit'), edit_admin_faq_path(faq),class: 'btn btn-primary btn-mini'
|
33
|
-
= link_to t('helpdesk.destroy'), admin_faq_path(faq), method: :delete, data: { confirm: 'Are you sure?' },class: 'btn btn-danger btn-mini'
|
34
|
-
|
35
|
-
|
36
|
-
- content_for :scripts do
|
37
|
-
:javascript
|
38
|
-
$(document).ready(function(){
|
39
|
-
$('#faqs').sortable({
|
40
|
-
axis: 'y',
|
41
|
-
dropOnEmpty: false,
|
42
|
-
handle: '.handle',
|
43
|
-
cursor: 'crosshair',
|
44
|
-
items: 'li',
|
45
|
-
opacity: 0.4,
|
46
|
-
scroll: true,
|
47
|
-
update: function(){
|
48
|
-
$.ajax({
|
49
|
-
type: 'post',
|
50
|
-
data: $('#faqs').sortable('serialize'),
|
51
|
-
dataType: 'script',
|
52
|
-
complete: function(request){
|
53
|
-
$('#faqs').effect('highlight');
|
54
|
-
},
|
55
|
-
url: '#{sort_admin_faqs_path}'
|
56
|
-
})
|
57
|
-
}
|
58
|
-
});
|
59
|
-
});
|
14
|
+
|
15
|
+
%ol
|
16
|
+
= render partial:'/helpdesk/admin/faqs/faq', locals:{ faqs:@faqs }
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
= render 'menu'
|
2
|
+
|
3
|
+
%ol.breadcrumb
|
4
|
+
= t('helpdesk.faqs.sorting')
|
5
|
+
= menu_li 'FAQ Root',sorting_admin_faq_url(:all)
|
6
|
+
- if @faq
|
7
|
+
- @faq.ancestors.reverse_each do |faq|
|
8
|
+
= menu_li faq.title, sorting_admin_faq_url(faq)
|
9
|
+
= menu_li @faq.title, sorting_admin_faq_url(@faq)
|
10
|
+
|
11
|
+
|
12
|
+
%ul.unstyled#faqs
|
13
|
+
- @faqs.each do |faq|
|
14
|
+
%li.row{id:"faqs_#{faq.id}",style:'padding:5px 0px;'}
|
15
|
+
%div.handle.span2{style:'cursor:move'}
|
16
|
+
%span
|
17
|
+
= ico('move')
|
18
|
+
%span
|
19
|
+
= faq.title
|
20
|
+
- if faq.children.present?
|
21
|
+
= link_to t('helpdesk.sort_this_childs'), sorting_admin_faq_url(faq), class: 'btn btn-info btn-xs'
|
22
|
+
|
23
|
+
- content_for :scripts do
|
24
|
+
:javascript
|
25
|
+
$(document).ready(function(){
|
26
|
+
$('#faqs').sortable({
|
27
|
+
axis: 'y',
|
28
|
+
dropOnEmpty: false,
|
29
|
+
handle: '.handle',
|
30
|
+
cursor: 'crosshair',
|
31
|
+
items: 'li',
|
32
|
+
opacity: 0.4,
|
33
|
+
scroll: true,
|
34
|
+
update: function(){
|
35
|
+
$.ajax({
|
36
|
+
type: 'post',
|
37
|
+
data: $('#faqs').sortable('serialize'),
|
38
|
+
dataType: 'script',
|
39
|
+
complete: function(request){
|
40
|
+
$('#faqs').effect('highlight');
|
41
|
+
},
|
42
|
+
url: '#{sort_admin_faqs_path}'
|
43
|
+
})
|
44
|
+
}
|
45
|
+
});
|
46
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- faqs.each do |faq|
|
2
|
+
%li
|
3
|
+
- link = link_type=='anchor' ? faq.anchor : faqs_path(anchor:faq)
|
4
|
+
- if(faq.id==params[:id].to_i)
|
5
|
+
= link_to faq.title, link, class: :active
|
6
|
+
- else
|
7
|
+
= link_to faq.title, link
|
8
|
+
-if faq.children.present?
|
9
|
+
%ul.nav.nav-stacked
|
10
|
+
= render partial:'/helpdesk/faqs/menu', locals:{faqs:faq.children, link_type:link_type}
|
11
|
+
|
@@ -1,20 +1,11 @@
|
|
1
|
+
= content_for :left do
|
2
|
+
%nav.bs-docs-sidebar.col
|
3
|
+
%ul#sidebar.nav.nav-stacked
|
4
|
+
= render partial: 'menu', locals:{faqs:@faqs,link_type:'anchor'}
|
5
|
+
|
1
6
|
%div.content
|
2
7
|
%div.pageContainer
|
3
|
-
%
|
8
|
+
%h2
|
4
9
|
= t('helpdesk.faqs.title_s')
|
5
|
-
%
|
6
|
-
|
7
|
-
%li{:id=>"link#{faq.id}"}
|
8
|
-
%h3
|
9
|
-
= link_to faq.title, "\#link#{faq.id}"
|
10
|
-
%div{style:"display:none"}
|
11
|
-
= raw faq.text
|
12
|
-
|
13
|
-
- content_for :scripts do
|
14
|
-
:javascript
|
15
|
-
$(document).ready(function(){
|
16
|
-
$('ol#faq li h3').click(function () {
|
17
|
-
$(this).parent().find('div').slideToggle('fast');
|
18
|
-
});
|
19
|
-
$("a[href='" + window.location.hash + "']").click();
|
20
|
-
});
|
10
|
+
%ul#faq
|
11
|
+
= render partial:'/helpdesk/faqs/faq', locals:{faqs:@faqs}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
= content_for :left do
|
2
|
+
%nav.bs-docs-sidebar.col
|
3
|
+
%ul#sidebar.nav.nav-stacked
|
4
|
+
= render partial: 'menu', locals:{faqs:Helpdesk::Faq.roots,link_type:'link'}
|
5
|
+
|
6
|
+
%div.content
|
7
|
+
%div.pageContainer
|
8
|
+
- if params[:search]
|
9
|
+
.alert.alert-info
|
10
|
+
= t('helpdesk.faqs.search_count', count: @faqs.size, query:params[:search])
|
11
|
+
|
12
|
+
%h1
|
13
|
+
= t('helpdesk.faqs.title_s')
|
14
|
+
%ol#faq
|
15
|
+
- @faqs.each do |faq|
|
16
|
+
%li.callout
|
17
|
+
%span.title
|
18
|
+
= link_to faqs_url(anchor:faq.to_param) do
|
19
|
+
= highlight(faq.title, params[:search], highlighter: '<strong>\1</strong>')
|
20
|
+
%span.body
|
21
|
+
- if faq.text.index(params[:search])
|
22
|
+
- start_index = [0, faq.text.index(params[:search])-30].max
|
23
|
+
- else
|
24
|
+
- start_index = 0
|
25
|
+
|
26
|
+
= highlight("..."+faq.text[start_index,params[:search].length+40].strip+"...", params[:search], highlighter: '<strong>\1</strong>')
|
27
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
= content_for :left do
|
2
|
+
%nav.bs-docs-sidebar
|
3
|
+
%ul#sidebar.nav.nav-stacked.fixed
|
4
|
+
= render partial: 'menu', locals:{lvl:1,tree:[0],faqs:Helpdesk::Faq.roots,link_type:''}
|
5
|
+
|
6
|
+
%ol.breadcrumb
|
7
|
+
= menu_li 'FAQ',faqs_url
|
8
|
+
- @faq.ancestors.reverse_each do |faq|
|
9
|
+
= menu_li faq.title, faq_url(faq)
|
10
|
+
= menu_li @faq.title, faq_url(@faq)
|
11
|
+
|
12
|
+
|
13
|
+
%ol#faq
|
14
|
+
= render partial:'/helpdesk/faqs/faq', locals:{faqs:[@faq]}
|
15
|
+
|
@@ -14,6 +14,8 @@
|
|
14
14
|
= menu_li t('helpdesk.subscribers.title'),admin_subscribers_path
|
15
15
|
= menu_li t('helpdesk.faqs.title'),admin_faqs_path
|
16
16
|
|
17
|
+
|
18
|
+
|
17
19
|
%ul.nav.navbar-nav.navbar-right
|
18
20
|
%li.dropdown.user
|
19
21
|
= link_to current_user.send(Helpdesk.display_user.to_sym), "#",:class=>"dropdown-toggle",data:{toggle:"dropdown"}
|
@@ -11,7 +11,11 @@
|
|
11
11
|
%ul.nav.navbar-nav
|
12
12
|
= menu_li t('helpdesk.tickets.title'),tickets_path
|
13
13
|
= menu_li t('helpdesk.faq'),faqs_path
|
14
|
-
|
14
|
+
%form.navbar-form.navbar-left{role:'search',action:search_faqs_url}
|
15
|
+
.form-group
|
16
|
+
%input.form-control{type:'text', placeholder:t('helpdesk.faqs.search_in_faqs'),name:'search',value:params[:search]}
|
17
|
+
%button.btn.btn-default{type:"submit"}
|
18
|
+
= t('helpdesk.faqs.search')
|
15
19
|
%ul.nav.navbar-nav.navbar-right
|
16
20
|
%li.dropdown.user
|
17
21
|
= link_to current_user.send(Helpdesk.display_user.to_sym), "#",:class=>"dropdown-toggle",data:{toggle:"dropdown"}
|
@@ -53,6 +53,8 @@ en:
|
|
53
53
|
new: Add Subscriber
|
54
54
|
|
55
55
|
faqs:
|
56
|
+
search: Search
|
57
|
+
search_in_faqs: Search in FAQs
|
56
58
|
title: FAQ
|
57
59
|
title_s: Frequently Asked Questions
|
58
60
|
active: Active Questions
|
@@ -63,6 +65,11 @@ en:
|
|
63
65
|
faq:
|
64
66
|
active: active
|
65
67
|
inactive: inactive
|
68
|
+
search_count:
|
69
|
+
zero: 'We could not find anything matching your query: "%{query}"'
|
70
|
+
one: 'Found one result matching your query: "%{query}"'
|
71
|
+
other: 'Found {%count} results matching your query: "%{query}"'
|
72
|
+
back_to_fasq: '« Back to FAQ list'
|
66
73
|
|
67
74
|
mailer:
|
68
75
|
comment_by_helpdesk_confirmation:
|
@@ -62,6 +62,9 @@ pl:
|
|
62
62
|
new: Dodaj subskrybenta
|
63
63
|
|
64
64
|
faqs:
|
65
|
+
sorting: 'Sortowanie:'
|
66
|
+
search: Szukaj
|
67
|
+
search_in_faqs: Szukaj w FAQ
|
65
68
|
title: FAQ
|
66
69
|
title_s: Często zadawane pytania
|
67
70
|
active: Aktywne pytania
|
@@ -72,6 +75,14 @@ pl:
|
|
72
75
|
faq:
|
73
76
|
active: aktywne
|
74
77
|
inactive: nieaktywne
|
78
|
+
search_count:
|
79
|
+
zero: 'Nic nie znaleziono dla zapytania: "%{query}"'
|
80
|
+
one: 'Znaleziono jeden wynik, dla zapytania: "%{query}"'
|
81
|
+
few: 'Znaleziono %{count} wyniki, dla zapytania: "%{query}"'
|
82
|
+
many: 'Znaleziono %{count} wyników, dla zapytania: "%{query}"'
|
83
|
+
other: 'Znaleziono %{count} wyników, dla zapytania: "%{query}"'
|
84
|
+
back_to_fasq: '« Wróć do listy pojęć'
|
85
|
+
|
75
86
|
|
76
87
|
mailer:
|
77
88
|
comment_by_helpdesk_confirmation:
|
data/config/routes.rb
CHANGED
@@ -11,13 +11,16 @@ Helpdesk::Engine.routes.draw do
|
|
11
11
|
resources :ticket_types
|
12
12
|
resources :faqs do
|
13
13
|
post :sort, on: :collection
|
14
|
+
get :sorting, on: :member
|
14
15
|
end
|
15
16
|
resources :subscribers
|
16
17
|
root :to => 'tickets#index'
|
17
18
|
end
|
18
19
|
|
19
20
|
resources :subscribers, :only => [:index, :create, :destroy]
|
20
|
-
resources :faqs, :only => [ :index ]
|
21
|
+
resources :faqs, :only => [ :index, :show ] do
|
22
|
+
get :search, on: :collection
|
23
|
+
end
|
21
24
|
resources :tickets, :except => [ :edit, :destroy ]
|
22
25
|
|
23
26
|
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddParentIdToHelpdeskFaqs < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_column :helpdesk_faqs, :parent_id, :integer
|
4
|
+
add_column :helpdesk_faqs, :depth, :integer, null:false, default:0
|
5
|
+
add_column :helpdesk_faqs, :children_count, :integer, null:false, default:0
|
6
|
+
add_index :helpdesk_faqs, :parent_id
|
7
|
+
end
|
8
|
+
end
|
data/lib/helpdesk/engine.rb
CHANGED
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.31
|
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: 2014-11-
|
11
|
+
date: 2014-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|
@@ -360,6 +360,20 @@ dependencies:
|
|
360
360
|
- - ">="
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '0'
|
363
|
+
- !ruby/object:Gem::Dependency
|
364
|
+
name: acts_as_ordered_tree
|
365
|
+
requirement: !ruby/object:Gem::Requirement
|
366
|
+
requirements:
|
367
|
+
- - ">="
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '0'
|
370
|
+
type: :runtime
|
371
|
+
prerelease: false
|
372
|
+
version_requirements: !ruby/object:Gem::Requirement
|
373
|
+
requirements:
|
374
|
+
- - ">="
|
375
|
+
- !ruby/object:Gem::Version
|
376
|
+
version: '0'
|
363
377
|
description: 'Helpesk includes: tickets, ticket types, email-notification, FAQ, subscribers'
|
364
378
|
email:
|
365
379
|
- john@beynon.org.uk, waclaw@luczak.it
|
@@ -411,12 +425,14 @@ files:
|
|
411
425
|
- app/models/helpdesk/ticket.rb
|
412
426
|
- app/models/helpdesk/ticket_type.rb
|
413
427
|
- app/views/helpdesk/admin/dashboard/index.html.erb
|
428
|
+
- app/views/helpdesk/admin/faqs/_faq.html.haml
|
414
429
|
- app/views/helpdesk/admin/faqs/_form.html.haml
|
415
430
|
- app/views/helpdesk/admin/faqs/_menu.html.haml
|
416
431
|
- app/views/helpdesk/admin/faqs/edit.html.haml
|
417
432
|
- app/views/helpdesk/admin/faqs/index.html.haml
|
418
433
|
- app/views/helpdesk/admin/faqs/new.html.haml
|
419
434
|
- app/views/helpdesk/admin/faqs/show.html.haml
|
435
|
+
- app/views/helpdesk/admin/faqs/sorting.html.haml
|
420
436
|
- app/views/helpdesk/admin/subscribers/_form.html.haml
|
421
437
|
- app/views/helpdesk/admin/subscribers/_menu.html.haml
|
422
438
|
- app/views/helpdesk/admin/subscribers/edit.html.haml
|
@@ -437,7 +453,11 @@ files:
|
|
437
453
|
- app/views/helpdesk/admin/tickets/new.html.haml
|
438
454
|
- app/views/helpdesk/admin/tickets/show.html.haml
|
439
455
|
- app/views/helpdesk/dashboard/index.html.erb
|
456
|
+
- app/views/helpdesk/faqs/_faq.html.haml
|
457
|
+
- app/views/helpdesk/faqs/_menu.html.haml
|
440
458
|
- app/views/helpdesk/faqs/index.html.haml
|
459
|
+
- app/views/helpdesk/faqs/search.html.haml
|
460
|
+
- app/views/helpdesk/faqs/show.html.haml
|
441
461
|
- app/views/helpdesk/notifications_mailer/comment_by_helpdesk_confirmation.html.haml
|
442
462
|
- app/views/helpdesk/notifications_mailer/comment_by_helpdesk_notification.html.haml
|
443
463
|
- app/views/helpdesk/notifications_mailer/comment_by_requester_confirmation.html.haml
|
@@ -474,6 +494,7 @@ files:
|
|
474
494
|
- db/migrate/20130521105605_create_helpdesk_ticket_types.rb
|
475
495
|
- db/migrate/20130522085614_create_helpdesk_faqs.rb
|
476
496
|
- db/migrate/20130522090420_create_helpdesk_subscribers.rb
|
497
|
+
- db/migrate/20141105112734_add_parent_id_to_helpdesk_faqs.rb
|
477
498
|
- lib/generators/helpdesk/install_generator.rb
|
478
499
|
- lib/generators/helpdesk/templates/README
|
479
500
|
- lib/generators/helpdesk/templates/helpdesk.rb
|