helpdesk 0.0.30 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 175c50efa153a29c6e07377b092b6a54b271dc63
4
- data.tar.gz: 9576a9e450992d87c3747156b0ea1e840ff80794
3
+ metadata.gz: d67332e83f1fe55016bd1540a32cb5cc4fec9bd2
4
+ data.tar.gz: 69fd17578fdd0cb2843e0fffd81a67e066fa6c2d
5
5
  SHA512:
6
- metadata.gz: 8ada4e3c95e97fe8a4f45fb1df60498c64b743685860737ef04245d97151f14587b1624d98bd9a44e29acee477a4bd6bc17544f76445d4e8ea81dc16918ef7ee
7
- data.tar.gz: efe9bb0f1fbecff8d8f0728e82f1a7c2b69ed185fcec72af544510850d5eab68ba0a7ee04f9e8e1275ef27b9c2f4abd260e8dee4c1915700e736f4cdcfb35202
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
- $(document).ready(function(){
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
- // Place all the behaviors and hooks related to the matching controller here.
2
- // All this logic will automatically be available in application.js.
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
- // Place all the styles related to the Faqs controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
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.all
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
@@ -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
+ "#{"&nbsp;&nbsp;&nbsp;&nbsp;"*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 }
@@ -6,6 +6,7 @@
6
6
  - @faq.errors.full_messages.each do |msg|
7
7
  %li= msg
8
8
  = f.input :active
9
+ = f.input :parent_id, collection: Helpdesk::Faq.collection,label_method: :name_with_depth
9
10
 
10
11
 
11
12
 
@@ -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
- %ul.unstyled#faqs
15
- - @faqs.each do |faq|
16
- %li.row{id:"faqs_#{faq.id}",style:'padding:5px 0px;'}
17
- %div.handle.span2{style:'cursor:move'}
18
- %span
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,8 @@
1
+ - faqs.each do |faq|
2
+ %li{:id=>faq.to_param}
3
+ %h3
4
+ = link_to faq.title, faqs_path(anchor:faq)
5
+ = raw faq.text
6
+ - if faq.children.present?
7
+ %ul
8
+ = render partial:'/helpdesk/faqs/faq', locals:{ faqs:faq.children }
@@ -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
- %h1
8
+ %h2
4
9
  = t('helpdesk.faqs.title_s')
5
- %ol#faq
6
- - @faqs.each do |faq|
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
@@ -10,6 +10,7 @@ require 'ckeditor'
10
10
  require 'select2-rails'
11
11
  require 'kaminari'
12
12
  require 'jquery-ui-rails'
13
+ require 'acts_as_ordered_tree'
13
14
 
14
15
  module Helpdesk
15
16
  class Engine < ::Rails::Engine
@@ -1,3 +1,3 @@
1
1
  module Helpdesk
2
- VERSION = "0.0.30"
2
+ VERSION = "0.0.31"
3
3
  end
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.30
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-04 00:00:00.000000000 Z
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