helpdesk 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +28 -0
- data/app/assets/javascripts/helpdesk/admin/dashboard.js +2 -0
- data/app/assets/javascripts/helpdesk/admin/tickets.js +20 -0
- data/app/assets/javascripts/helpdesk/application.js +19 -0
- data/app/assets/javascripts/helpdesk/ckeditor.js +11 -0
- data/app/assets/javascripts/helpdesk/dashboard.js +2 -0
- data/app/assets/javascripts/helpdesk/faqs.js +2 -0
- data/app/assets/javascripts/helpdesk/subscribers.js +2 -0
- data/app/assets/stylesheets/helpdesk/admin/bootstrap_overrides.css +8 -0
- data/app/assets/stylesheets/helpdesk/admin/dashboard.css +4 -0
- data/app/assets/stylesheets/helpdesk/admin/tickets.css +44 -0
- data/app/assets/stylesheets/helpdesk/admin.css +8 -0
- data/app/assets/stylesheets/helpdesk/application.css +16 -0
- data/app/assets/stylesheets/helpdesk/dashboard.css +4 -0
- data/app/assets/stylesheets/helpdesk/faqs.css.scss +3 -0
- data/app/assets/stylesheets/helpdesk/imports.css.sass +0 -0
- data/app/assets/stylesheets/helpdesk/subscribers.css.scss +3 -0
- data/app/assets/stylesheets/helpdesk/tickets.css.sass +49 -0
- data/app/controllers/helpdesk/admin/base_controller.rb +32 -0
- data/app/controllers/helpdesk/admin/dashboard_controller.rb +6 -0
- data/app/controllers/helpdesk/admin/faqs_controller.rb +100 -0
- data/app/controllers/helpdesk/admin/subscribers_controller.rb +49 -0
- data/app/controllers/helpdesk/admin/ticket_types_controller.rb +52 -0
- data/app/controllers/helpdesk/admin/tickets_controller.rb +76 -0
- data/app/controllers/helpdesk/application_controller.rb +20 -0
- data/app/controllers/helpdesk/dashboard_controller.rb +26 -0
- data/app/controllers/helpdesk/faqs_controller.rb +7 -0
- data/app/controllers/helpdesk/subscribers_controller.rb +62 -0
- data/app/controllers/helpdesk/tickets_controller.rb +91 -0
- data/app/helpers/helpdesk/admin/dashboard_helper.rb +6 -0
- data/app/helpers/helpdesk/admin/tickets_helper.rb +13 -0
- data/app/helpers/helpdesk/dashboard_helper.rb +4 -0
- data/app/helpers/helpdesk/faqs_helper.rb +4 -0
- data/app/helpers/helpdesk/helpdesk_helper.rb +59 -0
- data/app/helpers/helpdesk/subscribers_helper.rb +4 -0
- data/app/helpers/helpdesk/tickets_helper.rb +7 -0
- data/app/mailers/helpdesk/notifications_mailer.rb +42 -0
- data/app/models/helpdesk/comment.rb +31 -0
- data/app/models/helpdesk/faq.rb +12 -0
- data/app/models/helpdesk/subscriber.rb +10 -0
- data/app/models/helpdesk/ticket.rb +85 -0
- data/app/models/helpdesk/ticket_type.rb +13 -0
- data/app/views/helpdesk/admin/dashboard/index.html.erb +2 -0
- data/app/views/helpdesk/admin/faqs/_form.html.haml +20 -0
- data/app/views/helpdesk/admin/faqs/_menu.html.haml +9 -0
- data/app/views/helpdesk/admin/faqs/edit.html.haml +11 -0
- data/app/views/helpdesk/admin/faqs/index.html.haml +59 -0
- data/app/views/helpdesk/admin/faqs/new.html.haml +7 -0
- data/app/views/helpdesk/admin/faqs/show.html.haml +19 -0
- data/app/views/helpdesk/admin/subscribers/_form.html.haml +12 -0
- data/app/views/helpdesk/admin/subscribers/_menu.html.haml +9 -0
- data/app/views/helpdesk/admin/subscribers/edit.html.haml +10 -0
- data/app/views/helpdesk/admin/subscribers/index.html.haml +31 -0
- data/app/views/helpdesk/admin/subscribers/new.html.haml +7 -0
- data/app/views/helpdesk/admin/ticket_types/_form.html.haml +20 -0
- data/app/views/helpdesk/admin/ticket_types/_menu.html.haml +11 -0
- data/app/views/helpdesk/admin/ticket_types/edit.html.haml +10 -0
- data/app/views/helpdesk/admin/ticket_types/index.html.haml +28 -0
- data/app/views/helpdesk/admin/ticket_types/new.html.haml +8 -0
- data/app/views/helpdesk/admin/ticket_types/show.html.haml +11 -0
- data/app/views/helpdesk/admin/tickets/_form.html.haml +23 -0
- data/app/views/helpdesk/admin/tickets/_menu.html.haml +17 -0
- data/app/views/helpdesk/admin/tickets/_ticket.html.haml +59 -0
- data/app/views/helpdesk/admin/tickets/edit.html.haml +30 -0
- data/app/views/helpdesk/admin/tickets/index.html.haml +42 -0
- data/app/views/helpdesk/admin/tickets/list.html.haml +18 -0
- data/app/views/helpdesk/admin/tickets/new.html.haml +4 -0
- data/app/views/helpdesk/admin/tickets/show.html.haml +36 -0
- data/app/views/helpdesk/dashboard/index.html.erb +3 -0
- data/app/views/helpdesk/faqs/index.html.haml +20 -0
- data/app/views/helpdesk/notifications_mailer/comment_by_helpdesk_confirmation.html.haml +15 -0
- data/app/views/helpdesk/notifications_mailer/comment_by_helpdesk_notification.html.haml +19 -0
- data/app/views/helpdesk/notifications_mailer/comment_by_requester_confirmation.html.haml +16 -0
- data/app/views/helpdesk/notifications_mailer/comment_by_requester_notification.html.haml +27 -0
- data/app/views/helpdesk/notifications_mailer/ticket_created_confirmation.html.haml +16 -0
- data/app/views/helpdesk/notifications_mailer/ticket_created_notification.html.haml +21 -0
- data/app/views/helpdesk/subscribers/_form.html.erb +37 -0
- data/app/views/helpdesk/subscribers/edit.html.erb +6 -0
- data/app/views/helpdesk/subscribers/index.html.erb +31 -0
- data/app/views/helpdesk/subscribers/new.html.erb +5 -0
- data/app/views/helpdesk/subscribers/show.html.erb +30 -0
- data/app/views/helpdesk/tickets/_form.html.haml +36 -0
- data/app/views/helpdesk/tickets/_menu.html.haml +10 -0
- data/app/views/helpdesk/tickets/_ticket.html.haml +54 -0
- data/app/views/helpdesk/tickets/index.html.haml +16 -0
- data/app/views/helpdesk/tickets/new.html.haml +4 -0
- data/app/views/helpdesk/tickets/show.html.haml +38 -0
- data/app/views/layouts/helpdesk/_topmenu.html.haml +28 -0
- data/app/views/layouts/helpdesk/_topuser.html.haml +32 -0
- data/app/views/layouts/helpdesk/admin.html.haml +35 -0
- data/app/views/layouts/helpdesk/user.html.haml +33 -0
- data/app/views/layouts/mailer_layout.html.haml +20 -0
- data/config/initializers/globalize.rb +4 -0
- data/config/initializers/simple_form.rb +117 -0
- data/config/locales/helpdesk.en.yml +111 -0
- data/config/locales/helpdesk.pl.yml +119 -0
- data/config/locales/helpdesk_routes.yml +6 -0
- data/config/locales/simple_form.en.yml +24 -0
- data/config/locales/simple_form.pl.yml +15 -0
- data/config/routes.rb +22 -0
- data/db/migrate/20120420104051_create_helpdesk_tickets.rb +14 -0
- data/db/migrate/20120423113938_create_helpdesk_comments.rb +12 -0
- data/db/migrate/20130521105605_create_helpdesk_ticket_types.rb +36 -0
- data/db/migrate/20130522085614_create_helpdesk_faqs.rb +17 -0
- data/db/migrate/20130522090420_create_helpdesk_subscribers.rb +13 -0
- data/lib/generators/helpdesk/install_generator.rb +35 -0
- data/lib/generators/helpdesk/templates/README +31 -0
- data/lib/generators/helpdesk/templates/helpdesk.rb +33 -0
- data/lib/helpdesk/engine.rb +29 -0
- data/lib/helpdesk/version.rb +3 -0
- data/lib/helpdesk.rb +39 -0
- data/lib/tasks/prepare_ci_env.rake +27 -0
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- metadata +508 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
%table.table.table-bordered
|
2
|
+
%tbody
|
3
|
+
%tr{:class=>ticket.ticket_type.tr_class}
|
4
|
+
%td{colspan:2}
|
5
|
+
%h4
|
6
|
+
="##{ticket.subject}"
|
7
|
+
%tr
|
8
|
+
%td{style:'width:100px'}
|
9
|
+
= I18n::l(ticket.created_at, :format=>:short)
|
10
|
+
- if ticket.requester
|
11
|
+
= ticket.requester.send Helpdesk.display_user.to_sym
|
12
|
+
%td{rowspan:2}
|
13
|
+
= status_label Helpdesk::Ticket::STATUS_BY_KEY[ticket.status.to_sym], Helpdesk::Ticket::STATUS_CLASS_BY_KEY[ticket.status.to_sym]
|
14
|
+
= ticket.ticket_type.title
|
15
|
+
|
16
|
+
= auto_link(simple_format(ticket.description), :html => { :target => "_blank" })
|
17
|
+
%tr
|
18
|
+
%td
|
19
|
+
- if ticket.assignee
|
20
|
+
= t('helpdesk.tickets.assignee_to')
|
21
|
+
= ticket.assignee.send Helpdesk.display_user.to_sym
|
22
|
+
%tr
|
23
|
+
%td
|
24
|
+
%span.btn.disabled
|
25
|
+
= ico('comment')
|
26
|
+
= ticket.comments.pub.size
|
27
|
+
%td
|
28
|
+
%ul.comments.unstyled
|
29
|
+
- ticket.comments.pub.each do |comment|
|
30
|
+
- if comment.persisted?
|
31
|
+
%li.comment{:id=>"comment#{comment.id}"}
|
32
|
+
%div.comment-left
|
33
|
+
- if comment.public
|
34
|
+
= status_label ico('envelope') + t('helpdesk.comments.send') ,'label-success'
|
35
|
+
- else
|
36
|
+
= status_label t('helpdesk.comments.note'),''
|
37
|
+
%br
|
38
|
+
%a{class:'anchor', href: "#comment#{comment.id}"}
|
39
|
+
= "#"
|
40
|
+
%div.comment-header
|
41
|
+
-if comment.author != ticket.requester
|
42
|
+
= status_label ico('user')+ t('helpdesk.comments.helpdesk'),'label-info'
|
43
|
+
|
44
|
+
= comment.author.send Helpdesk.display_user.to_sym
|
45
|
+
%small
|
46
|
+
= time_ago_in_words(comment.created_at)
|
47
|
+
temu
|
48
|
+
%div.comment-body
|
49
|
+
= auto_link(simple_format(comment.comment), :html => { :target => "_blank" })
|
50
|
+
|
51
|
+
%tr{:class=>ticket.ticket_type.tr_class}
|
52
|
+
%td{colspan:2}
|
53
|
+
- if show_button
|
54
|
+
= link_to ticket.subject, ticket_url(I18n.locale,ticket), class: 'btn btn-block'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
-if params[:tickets] && params[:tickets] == 'closed'
|
3
|
+
= t('helpdesk.tickets.closed')
|
4
|
+
|
5
|
+
-else
|
6
|
+
= t('helpdesk.tickets.active')
|
7
|
+
|
8
|
+
|
9
|
+
= render 'menu'
|
10
|
+
|
11
|
+
|
12
|
+
- if @tickets.size == 0
|
13
|
+
= t('helpdesk.tickets.you_have_no_tickets')
|
14
|
+
- @tickets.each do |ticket|
|
15
|
+
= render 'ticket', ticket: ticket, show_button:true
|
16
|
+
= paginate @tickets
|
@@ -0,0 +1,38 @@
|
|
1
|
+
= render 'menu'
|
2
|
+
|
3
|
+
= render 'ticket', :ticket=>@ticket, show_button:false
|
4
|
+
|
5
|
+
|
6
|
+
- unless @ticket.open?
|
7
|
+
%table.table
|
8
|
+
%tbody
|
9
|
+
%tr{:class=>@ticket.ticket_type.tr_class}
|
10
|
+
%td{style:'width:100px'}
|
11
|
+
%td
|
12
|
+
= t('helpdesk.tickets.ticket_closed')
|
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
|
19
|
+
= simple_form_for(@ticket, :html => {:class => 'form-vertical' }) do |f|
|
20
|
+
- if @ticket.errors.any?
|
21
|
+
%div.error_explanation
|
22
|
+
%h2
|
23
|
+
= "#{pluralize(@ticket.errors.count, "error")} prohibited this ticket from being saved:"
|
24
|
+
%ul
|
25
|
+
- @ticket.errors.full_messages.each do |msg|
|
26
|
+
%li
|
27
|
+
= msg
|
28
|
+
|
29
|
+
= f.simple_fields_for :comments,@ticket.comments.build do |tickets_form|
|
30
|
+
- unless tickets_form.object.persisted?
|
31
|
+
= tickets_form.input :comment, :input_html=>{class: 'comment-textarea',rows: 5}
|
32
|
+
/ , :as => :ckeditor, :input_html => { :ckeditor => {:toolbar => 'mini'},:language => I18n.locale}
|
33
|
+
|
34
|
+
= tickets_form.input :public, :input_html => {:value=>1},:as=>:hidden
|
35
|
+
= tickets_form.input :author_id, :as => :hidden, :input_html => { :value => helpdesk_user.id }
|
36
|
+
%div
|
37
|
+
= f.button :submit, :class => 'btn btn-primary'
|
38
|
+
= submit_tag 'Anuluj', :type => :reset, :class => "btn btn-default"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
%nav.navbar.navbar-default#site_topmmenu{role: 'navigation'}
|
2
|
+
.navbar-header
|
3
|
+
%button.navbar-toggle{"data-target" => "#bs-navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
|
4
|
+
%span.sr-only Toggle navigation
|
5
|
+
%span.icon-bar
|
6
|
+
%span.icon-bar
|
7
|
+
%span.icon-bar
|
8
|
+
=link_to Helpdesk.site_address, main_app.root_path, :class=>'navbar-brand', :title => t('helpdesk.name')
|
9
|
+
=link_to t('helpdesk.name'), admin_root_path, :class=>'navbar-brand', :title => t('helpdesk.name')
|
10
|
+
#bs-navbar-collapse-1.collapse.navbar-collapse.in
|
11
|
+
%ul.nav.navbar-nav
|
12
|
+
= menu_li t('helpdesk.tickets.title'),admin_tickets_path
|
13
|
+
= menu_li t('helpdesk.ticket_types.title'),admin_ticket_types_path
|
14
|
+
= menu_li t('helpdesk.subscribers.title'),admin_subscribers_path
|
15
|
+
= menu_li t('helpdesk.faqs.title'),admin_faqs_path
|
16
|
+
|
17
|
+
%ul.nav.navbar-nav.navbar-right
|
18
|
+
%li.dropdown.user
|
19
|
+
= link_to current_user.send(Helpdesk.display_user.to_sym), "#",:class=>"dropdown-toggle",data:{toggle:"dropdown"}
|
20
|
+
%ul.dropdown-menu
|
21
|
+
%li=link_to 'Home',main_app.root_path
|
22
|
+
%li=link_to t('users.sign_out'),main_app.destroy_user_session_path, :method => :delete, :class => 'icon exit blue'
|
23
|
+
|
24
|
+
%li.dropdown
|
25
|
+
= link_to t('helpdesk.lang'),"#",:class=>"dropdown-toggle",data:{toggle:"dropdown"}
|
26
|
+
%ul.dropdown-menu
|
27
|
+
%li= link_to "English", params.merge({:locale => :en})
|
28
|
+
%li= link_to "Polski", params.merge({:locale => :pl})
|
@@ -0,0 +1,32 @@
|
|
1
|
+
%nav.navbar.navbar-default#site_topmmenu{role: 'navigation'}
|
2
|
+
.navbar-header
|
3
|
+
%button.navbar-toggle{"data-target" => "#bs-navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
|
4
|
+
%span.sr-only Toggle navigation
|
5
|
+
%span.icon-bar
|
6
|
+
%span.icon-bar
|
7
|
+
%span.icon-bar
|
8
|
+
=link_to Helpdesk.site_address, main_app.root_path, :class=>'navbar-brand', :title => Helpdesk.site_address
|
9
|
+
=link_to Helpdesk.name, root_path, :class=>'navbar-brand', :title => Helpdesk.name
|
10
|
+
#bs-navbar-collapse-1.collapse.navbar-collapse.in
|
11
|
+
%ul.nav.navbar-nav
|
12
|
+
= menu_li t('helpdesk.tickets.title'),tickets_path
|
13
|
+
= menu_li t('helpdesk.faq'),faqs_path
|
14
|
+
|
15
|
+
%ul.nav.navbar-nav.navbar-right
|
16
|
+
%li.dropdown.user
|
17
|
+
= link_to current_user.send(Helpdesk.display_user.to_sym), "#",:class=>"dropdown-toggle",data:{toggle:"dropdown"}
|
18
|
+
%ul.dropdown-menu
|
19
|
+
%li=link_to 'Home',main_app.root_path
|
20
|
+
%li=link_to t('users.sign_out'),main_app.destroy_user_session_path, :method => :delete, :class => 'icon exit blue'
|
21
|
+
|
22
|
+
%li.dropdown
|
23
|
+
= link_to t('helpdesk.lang'),"#",:class=>"dropdown-toggle",data:{toggle:"dropdown"}
|
24
|
+
%ul.dropdown-menu
|
25
|
+
%li= link_to "English", params.merge({:locale => :en})
|
26
|
+
%li= link_to "Polski", params.merge({:locale => :pl})
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title
|
5
|
+
= t :name, :scope => :helpdesk
|
6
|
+
= javascript_include_tag "helpdesk/application"
|
7
|
+
= stylesheet_link_tag "helpdesk/admin", :media => "all"
|
8
|
+
= javascript_tag "$(document).ready(function(){ $('.dropdown-toggle').dropdown();$('.alert').alert();})"
|
9
|
+
= csrf_meta_tags
|
10
|
+
= yield :head
|
11
|
+
%body
|
12
|
+
.container
|
13
|
+
= render 'layouts/helpdesk/topmenu'
|
14
|
+
.content
|
15
|
+
.row
|
16
|
+
.col.col-md-3#site_leftmenu
|
17
|
+
=yield :left
|
18
|
+
.col.col-md-9#site_leftmenu
|
19
|
+
.flash
|
20
|
+
- flash.each do |type, message|
|
21
|
+
%div{:class => "alert alert-#{type}", "data-alert"=>"alert"}
|
22
|
+
=link_to "x",'#', :class=>'close', :'data-dismiss'=>"alert"
|
23
|
+
%p= message
|
24
|
+
- if content_for?(:title)
|
25
|
+
.panel.panel-default
|
26
|
+
.panel-heading
|
27
|
+
%h3.panel-title
|
28
|
+
= content_for?(:title) ? content_for(:title) : ''
|
29
|
+
.panel-body
|
30
|
+
= yield
|
31
|
+
- else
|
32
|
+
= yield
|
33
|
+
=yield :scripts
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title
|
5
|
+
= t :name, :scope => :helpdesk
|
6
|
+
= javascript_include_tag "helpdesk/application"
|
7
|
+
= stylesheet_link_tag "helpdesk/application", :media => "all"
|
8
|
+
= javascript_tag "$(document).ready(function(){ $('.dropdown-toggle').dropdown();$('.alert').alert();})"
|
9
|
+
= csrf_meta_tags
|
10
|
+
= yield :head
|
11
|
+
%body
|
12
|
+
.container
|
13
|
+
= render 'layouts/helpdesk/topuser'
|
14
|
+
.content
|
15
|
+
.row
|
16
|
+
.col.col-md-3#site_leftmenu
|
17
|
+
=yield :left
|
18
|
+
.col.col-md-9#site_leftmenu
|
19
|
+
.flash
|
20
|
+
- flash.each do |type, message|
|
21
|
+
%div{:class => "alert alert-#{type}", "data-alert"=>"alert"}
|
22
|
+
=link_to "x",'#', :class=>'close', :'data-dismiss'=>"alert"
|
23
|
+
%p= message
|
24
|
+
- if content_for?(:title)
|
25
|
+
.panel.panel-default
|
26
|
+
.panel-heading
|
27
|
+
%h3.panel-title
|
28
|
+
= content_for?(:title) ? content_for(:title) : ''
|
29
|
+
.panel-body
|
30
|
+
= yield
|
31
|
+
- else
|
32
|
+
= yield
|
33
|
+
=yield :scripts
|
@@ -0,0 +1,20 @@
|
|
1
|
+
:plain
|
2
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
3
|
+
%html
|
4
|
+
%head
|
5
|
+
%body
|
6
|
+
%div{:style=>'margin: 0px; padding: 20px 0px; background-color: #f0f0f0;'}
|
7
|
+
%div{:style=>'margin: 0px auto; width: 600px; background-color: #fafafa; padding: 20px; border-radius: 2px; box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.3);'}
|
8
|
+
%h2
|
9
|
+
=yield :title
|
10
|
+
%div
|
11
|
+
= yield
|
12
|
+
%p
|
13
|
+
= t('helpdesk.mailer.footer_nice')
|
14
|
+
%br
|
15
|
+
= Helpdesk.site_name
|
16
|
+
%br
|
17
|
+
%a{:href=>'http://'+Helpdesk.site_address}
|
18
|
+
= Helpdesk.site_address
|
19
|
+
%div{:style=>'padding: 8px 0px; font-size: 12px; font-family: "Helvetica", "Arial", Sans-serif; text-align: justify; border-top: 0px solid #c0c0c0; color: #808080; '}
|
20
|
+
= t('helpdesk.mailer.footer_info', url: root_url).html_safe
|
@@ -0,0 +1,117 @@
|
|
1
|
+
inputs = %w[
|
2
|
+
CollectionSelectInput
|
3
|
+
DateTimeInput
|
4
|
+
FileInput
|
5
|
+
GroupedCollectionSelectInput
|
6
|
+
NumericInput
|
7
|
+
PasswordInput
|
8
|
+
RangeInput
|
9
|
+
StringInput
|
10
|
+
TextInput
|
11
|
+
]
|
12
|
+
|
13
|
+
|
14
|
+
# Instead of creating top-level custom input classes like TextInput, we wrap it into a module and override
|
15
|
+
# mapping in SimpleForm::FormBuilder directly
|
16
|
+
#
|
17
|
+
unless Module.const_defined?(:SimpleFormBootstrapInputs)
|
18
|
+
SimpleFormBootstrapInputs = Module.new
|
19
|
+
inputs.each do |input_type|
|
20
|
+
superclass = "SimpleForm::Inputs::#{input_type}".constantize
|
21
|
+
|
22
|
+
new_class = SimpleFormBootstrapInputs.const_set(input_type, Class.new(superclass) do
|
23
|
+
def input_html_classes
|
24
|
+
super.push('form-control')
|
25
|
+
end
|
26
|
+
end)
|
27
|
+
|
28
|
+
# Now override existing usages of superclass with new_class
|
29
|
+
SimpleForm::FormBuilder.mappings.each do |(type, target_class)|
|
30
|
+
if target_class == superclass
|
31
|
+
SimpleForm::FormBuilder.map_type(type, to: new_class)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
# inputs.each do |input_type|
|
37
|
+
# superclass = "SimpleForm::Inputs::#{input_type}".constantize
|
38
|
+
|
39
|
+
# new_class = Class.new(superclass) do
|
40
|
+
# def input_html_classes
|
41
|
+
# super.push('form-control')
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
|
45
|
+
# Object.const_set(input_type, new_class)
|
46
|
+
# end
|
47
|
+
|
48
|
+
# Use this setup block to configure all options available in SimpleForm.
|
49
|
+
SimpleForm.setup do |config|
|
50
|
+
|
51
|
+
config.browser_validations = true
|
52
|
+
|
53
|
+
config.boolean_style = :nested
|
54
|
+
|
55
|
+
config.wrappers :bootstrap3, tag: 'div', class: 'form-group', error_class: 'has-error',
|
56
|
+
defaults: { input_html: { class: 'default_class' } } do |b|
|
57
|
+
|
58
|
+
b.use :html5
|
59
|
+
b.use :min_max
|
60
|
+
b.use :maxlength
|
61
|
+
b.use :placeholder
|
62
|
+
|
63
|
+
b.optional :pattern
|
64
|
+
b.optional :readonly
|
65
|
+
|
66
|
+
b.use :label_input
|
67
|
+
b.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
|
68
|
+
b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
|
69
|
+
end
|
70
|
+
|
71
|
+
config.wrappers :prepend, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
72
|
+
b.use :html5
|
73
|
+
b.use :placeholder
|
74
|
+
b.wrapper tag: 'div', class: 'controls' do |input|
|
75
|
+
input.wrapper tag: 'div', class: 'input-group' do |prepend|
|
76
|
+
prepend.use :label , wrap_with: {class: "input-group-addon"} ###Please note setting class here fro the label does not currently work (let me know if you know a workaround as this is the final hurdle)
|
77
|
+
prepend.use :input
|
78
|
+
end
|
79
|
+
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
|
80
|
+
input.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
config.wrappers :append, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
85
|
+
b.use :html5
|
86
|
+
b.use :placeholder
|
87
|
+
b.wrapper tag: 'div', class: 'controls' do |input|
|
88
|
+
input.wrapper tag: 'div', class: 'input-group' do |prepend|
|
89
|
+
prepend.use :input
|
90
|
+
prepend.use :label , wrap_with: {class: "input-group-addon"} ###Please note setting class here fro the label does not currently work (let me know if you know a workaround as this is the final hurdle)
|
91
|
+
end
|
92
|
+
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
|
93
|
+
input.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
config.wrappers :checkbox, tag: :div, class: "checkbox", error_class: "has-error" do |b|
|
98
|
+
|
99
|
+
# Form extensions
|
100
|
+
b.use :html5
|
101
|
+
|
102
|
+
# Form components
|
103
|
+
b.wrapper tag: :label do |ba|
|
104
|
+
ba.use :input
|
105
|
+
ba.use :label_text
|
106
|
+
end
|
107
|
+
|
108
|
+
b.use :hint, wrap_with: { tag: :p, class: "help-block" }
|
109
|
+
b.use :error, wrap_with: { tag: :span, class: "help-block text-danger" }
|
110
|
+
end
|
111
|
+
|
112
|
+
# Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
|
113
|
+
# Check the Bootstrap docs (http://getbootstrap.com/)
|
114
|
+
# to learn about the different styles for forms and inputs,
|
115
|
+
# buttons and other elements.
|
116
|
+
config.default_wrapper = :bootstrap3
|
117
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
en:
|
2
|
+
|
3
|
+
helpdesk:
|
4
|
+
lang: Language
|
5
|
+
Show: Show
|
6
|
+
edit: Edit
|
7
|
+
Destroy: Delete
|
8
|
+
name: Helpdesk
|
9
|
+
new_ticket: New
|
10
|
+
tickets:
|
11
|
+
new: New Issue
|
12
|
+
my: My Issue
|
13
|
+
unassigned: Unassigned
|
14
|
+
closed: Closed Issues
|
15
|
+
all: All issues
|
16
|
+
title: Issues
|
17
|
+
active: Active Issues
|
18
|
+
assignee_to: Assigned to
|
19
|
+
assign_me: I take it
|
20
|
+
not_assigned: Not assigned
|
21
|
+
is_now_assigned: "Issue %{subject} has been assigned to you"
|
22
|
+
visible_to_autor: Visible to the author - send an email
|
23
|
+
you_have_no_tickets: "No issues "
|
24
|
+
ticket_closed: Issues closed
|
25
|
+
subject: Subject of
|
26
|
+
description: Content
|
27
|
+
cancel: cancel
|
28
|
+
send: Send
|
29
|
+
ticket: Issue
|
30
|
+
faq: FAQ
|
31
|
+
comments:
|
32
|
+
title: Comments
|
33
|
+
note: Memo
|
34
|
+
send: Sent
|
35
|
+
received: Received
|
36
|
+
note: note
|
37
|
+
author: Re. author
|
38
|
+
helpdesk: Re. BOK
|
39
|
+
ticket_types:
|
40
|
+
title: Types of issues
|
41
|
+
new: A new type of issues
|
42
|
+
all: All kinds of issues
|
43
|
+
active: Active types of issues
|
44
|
+
inactive: Inactive types of issues
|
45
|
+
|
46
|
+
dashboard: Dashboard
|
47
|
+
|
48
|
+
subscribers:
|
49
|
+
title: Subscribers
|
50
|
+
confirmed: Confirmed subskrybenci
|
51
|
+
unconfirmed: Unconfirmed
|
52
|
+
all: All Subscribers
|
53
|
+
new: Add Subscriber
|
54
|
+
|
55
|
+
faqs:
|
56
|
+
title: FAQ
|
57
|
+
title_s: Frequently Asked Questions
|
58
|
+
active: Active Questions
|
59
|
+
inactive: Inactive questions
|
60
|
+
all: All the questions
|
61
|
+
new: New Question
|
62
|
+
by: by
|
63
|
+
faq:
|
64
|
+
active: active
|
65
|
+
inactive: inactive
|
66
|
+
|
67
|
+
mailer:
|
68
|
+
comment_by_helpdesk_confirmation:
|
69
|
+
title: "Response to the issue was sent"
|
70
|
+
re_ticket: "New comment for Issue:"
|
71
|
+
response_content: "Content of the comment:"
|
72
|
+
comment_by_helpdesk_notification:
|
73
|
+
title: "%{user}, new reply received for issue:"
|
74
|
+
comment_content: "Content of the comment:"
|
75
|
+
comment_by_requester_notification:
|
76
|
+
title: "New reply received for issue:"
|
77
|
+
comment_content: "Content of the comment:"
|
78
|
+
comment_by_requester_confirmation:
|
79
|
+
title: "%{user}, thank you for submitting a comment to the Issue"
|
80
|
+
subject: "New comment for Issie - %{subject}"
|
81
|
+
comment_content: "Content of the comment:"
|
82
|
+
ticket_created_confirmation:
|
83
|
+
title: "%{user}, thank you for submitting"
|
84
|
+
subject: "Your issue subject is:"
|
85
|
+
ticket_content: "Content of the issue:"
|
86
|
+
info_time: "We appreciate your time, so we will try to respond as quickly as possible."
|
87
|
+
ticket_created_notification:
|
88
|
+
title: "New Issue was created"
|
89
|
+
requester_info: "Author"
|
90
|
+
ticket_content: "The content of the issue:"
|
91
|
+
ticket_url_title: "At this address you can track the issue:"
|
92
|
+
footer_info: "This message has been generated automatically. Do not answer it. If you do not have initiated action to send this message please report it to us <a href=\"%{url}\"> clicking here </a>."
|
93
|
+
footer_nice: "Have a nice day"
|
94
|
+
|
95
|
+
activerecord:
|
96
|
+
models:
|
97
|
+
Helpdesk: helpdesk
|
98
|
+
helpdesk/ticket: Issue
|
99
|
+
helpdesk/comment: Comment
|
100
|
+
attributes:
|
101
|
+
helpdesk/comment:
|
102
|
+
comment: Additional description
|
103
|
+
public: Visible/Send Email
|
104
|
+
helpdesk/ticket:
|
105
|
+
requester_id: Requester
|
106
|
+
subject: Subject
|
107
|
+
Status: Status
|
108
|
+
assignee_id: Assigned
|
109
|
+
ticket_type_id: Type of notification
|
110
|
+
Description: Description
|
111
|
+
comments: More details
|
@@ -0,0 +1,119 @@
|
|
1
|
+
pl:
|
2
|
+
|
3
|
+
helpdesk:
|
4
|
+
lang: Język
|
5
|
+
show: Pokaż
|
6
|
+
edit: Edytuj
|
7
|
+
destroy: Usuń
|
8
|
+
name: Helpdesk
|
9
|
+
new_ticket: Nowe zgłoszenie
|
10
|
+
tickets:
|
11
|
+
new: Nowe zgłoszenie
|
12
|
+
my: Moje zgłoszenia
|
13
|
+
unassigned: Nieprzypisane zgłoszenia
|
14
|
+
closed: Zamknięte zgłoszenia
|
15
|
+
all: Wszystkie zgłoszenia
|
16
|
+
title: Zgłoszenia
|
17
|
+
active: Aktywne zgłoszenia
|
18
|
+
assignee_to: Przypisane do
|
19
|
+
assign_me: Biore to
|
20
|
+
not_assigned: Nie przypisany
|
21
|
+
is_now_assigned: "Zgłoszenie %{subject} zostało przypisane do Ciebie"
|
22
|
+
visible_to_autor: Widoczny dla zgłaszającego - wyślij emaila
|
23
|
+
you_have_no_tickets: "Brak zgłoszeń"
|
24
|
+
ticket_closed: Zgłoszenie zamknięte
|
25
|
+
subject: Temat zgłoszenia
|
26
|
+
description: Treść
|
27
|
+
cancel: Anuluj
|
28
|
+
send: Wyślij
|
29
|
+
statuses:
|
30
|
+
new: "Nowe"
|
31
|
+
open: "Otwarte"
|
32
|
+
waiting: "Otwarte: oczekujące"
|
33
|
+
solved: "Zamknięte: problem rozwiązany"
|
34
|
+
not_fixable: "Zamknięte: nienaprawialne"
|
35
|
+
unreachable: "Zamknięte: klient nieosiągalny"
|
36
|
+
bug: "Zamknięte: Przeniesione do bug tracker'a"
|
37
|
+
|
38
|
+
ticket: Zgłoszenie
|
39
|
+
faq: FAQ
|
40
|
+
comments:
|
41
|
+
title: Komentarze
|
42
|
+
note: Notatka
|
43
|
+
send: Wysłane
|
44
|
+
received: Odebrane
|
45
|
+
note: notatka
|
46
|
+
author: Odp. autora
|
47
|
+
helpdesk: Odp. BOK
|
48
|
+
ticket_types:
|
49
|
+
title: Rodzaje zgłoszeń
|
50
|
+
new: Nowy rodzaj zgłoszenia
|
51
|
+
all: Wszystkie rodzaje zgłoszeń
|
52
|
+
active: Aktywne rodzaje zgłoszeń
|
53
|
+
inactive: Nieaktywne rodzaje zgłoszeń
|
54
|
+
|
55
|
+
dashboard: Dashboard
|
56
|
+
|
57
|
+
subscribers:
|
58
|
+
title: Subskrybenci
|
59
|
+
confirmed: Potwierdzeni subskrynenci
|
60
|
+
unconfirmed: Niepotwierdzeni
|
61
|
+
all: Wszyscy subskrybenci
|
62
|
+
new: Dodaj subskrybenta
|
63
|
+
|
64
|
+
faqs:
|
65
|
+
title: FAQ
|
66
|
+
title_s: Często zadawane pytania
|
67
|
+
active: Aktywne pytania
|
68
|
+
inactive: Nieaktywne pytania
|
69
|
+
all: Wszystkie pytania
|
70
|
+
new: Nowe pytanie
|
71
|
+
by: przez
|
72
|
+
faq:
|
73
|
+
active: aktywne
|
74
|
+
inactive: nieaktywne
|
75
|
+
|
76
|
+
mailer:
|
77
|
+
comment_by_helpdesk_confirmation:
|
78
|
+
title: "Wysłano odpowiedź do zgłoszenia"
|
79
|
+
re_ticket: "Odpowiedź dotyczy zgłoszenia"
|
80
|
+
response_content: "Treść odpowiedzi:"
|
81
|
+
comment_by_requester_notification:
|
82
|
+
title: "Pojawiła się nowa odpowiedź do zgłoszenie:"
|
83
|
+
comment_content: "Treść odpowiedzi:"
|
84
|
+
comment_by_requester_confirmation:
|
85
|
+
title: "%{user}, dziękujemy za przesłanie odpowiedzi do zgłoszenia"
|
86
|
+
subject: "Odpowiedź dotyczy Twojego zgłoszenia - %{subject}"
|
87
|
+
comment_content: "Treść odpowiedzi:"
|
88
|
+
ticket_created_confirmation:
|
89
|
+
title: "%{user}, dziękujemy za przesłanie zgłoszenia"
|
90
|
+
subject: Temat Twojego zgłoszenia to
|
91
|
+
ticket_content: "Treść zgłoszenia:"
|
92
|
+
info_time: "Cenimy Twój czas, dlatego staramy się odpowiadać, tak szybko jak to możliwe."
|
93
|
+
ticket_created_notification:
|
94
|
+
title: "Pojawiło się nowe zgłoszenie:"
|
95
|
+
requester_info: "Informacje o zgłaszającym:"
|
96
|
+
ticket_content: "Treść zgłoszenia:"
|
97
|
+
ticket_url_title: "Pod tym adresem można śledzić zgłoszenie:"
|
98
|
+
footer_info: "Ta wiadomość została wygenerowana automatycznie. Nie odpowiadaj na nią. Jeśli nie zainicjowałeś akcji wysyłania tej wiadomości zgłoś to nam <a href=\"%{url}\">klikając tutaj</a>."
|
99
|
+
footer_nice: "Życzymy miłego dnia"
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
activerecord:
|
104
|
+
models:
|
105
|
+
helpdesk: helpdesk
|
106
|
+
helpdesk/ticket: Zgłoszenie
|
107
|
+
helpdesk/comment: Komentarz
|
108
|
+
attributes:
|
109
|
+
helpdesk/comment:
|
110
|
+
comment: Dodatkowy opis
|
111
|
+
public: Widoczny/Wyślij
|
112
|
+
helpdesk/ticket:
|
113
|
+
requester_id: Zgłaszający
|
114
|
+
subject: Temat
|
115
|
+
status: Status
|
116
|
+
assignee_id: Przypisane
|
117
|
+
ticket_type_id: Rodzaj zgłoszenia
|
118
|
+
description: Opis
|
119
|
+
comments: Dodatkowy opis
|
@@ -0,0 +1,24 @@
|
|
1
|
+
en:
|
2
|
+
simple_form:
|
3
|
+
"yes": 'Yes'
|
4
|
+
"no": 'No'
|
5
|
+
required:
|
6
|
+
text: 'required'
|
7
|
+
mark: '*'
|
8
|
+
# You can uncomment the line below if you need to overwrite the whole required html.
|
9
|
+
# When using html, text and mark won't be used.
|
10
|
+
# html: '<abbr title="required">*</abbr>'
|
11
|
+
error_notification:
|
12
|
+
default_message: "Some errors were found, please take a look:"
|
13
|
+
# Labels and hints examples
|
14
|
+
# labels:
|
15
|
+
# password: 'Password'
|
16
|
+
# user:
|
17
|
+
# new:
|
18
|
+
# email: 'E-mail para efetuar o sign in.'
|
19
|
+
# edit:
|
20
|
+
# email: 'E-mail.'
|
21
|
+
# hints:
|
22
|
+
# username: 'User name to sign in.'
|
23
|
+
# password: 'No special characters, please.'
|
24
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
pl:
|
2
|
+
simple_form:
|
3
|
+
"yes": 'Tak'
|
4
|
+
"no": 'Nie'
|
5
|
+
required:
|
6
|
+
text: 'wymagane'
|
7
|
+
mark: '*'
|
8
|
+
# You can uncomment the line below if you need to overwrite the whole required html.
|
9
|
+
# When using html, text and mark won't be used.
|
10
|
+
# html: '<abbr title="required">*</abbr>'
|
11
|
+
error_notification:
|
12
|
+
default_message: "Znaleziono błędy, prosimy poprawić:"
|
13
|
+
register:
|
14
|
+
submit: "Zarejestruj"
|
15
|
+
|