helpdesk 0.0.36 → 0.0.37
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/faqs.js +1 -1
- data/app/assets/stylesheets/helpdesk/admin/faqs.css.sass +56 -0
- data/app/controllers/helpdesk/admin/faqs_controller.rb +4 -5
- data/app/controllers/helpdesk/subscribers_controller.rb +12 -24
- data/app/mailers/helpdesk/notifications_mailer.rb +6 -0
- data/app/models/helpdesk/subscriber.rb +16 -0
- data/app/views/helpdesk/admin/faqs/_faq.html.haml +10 -8
- data/app/views/helpdesk/admin/faqs/inactive.html.haml +27 -0
- data/app/views/helpdesk/admin/faqs/index.html.haml +1 -1
- data/app/views/helpdesk/admin/faqs/sorting.html.haml +6 -5
- data/app/views/helpdesk/faqs/_faq.html.haml +1 -1
- data/app/views/helpdesk/notifications_mailer/send_activate_subscription.html.haml +9 -0
- data/app/views/helpdesk/subscribers/_form.html.haml +18 -0
- data/app/views/helpdesk/subscribers/index.html.erb +0 -1
- data/config/locales/helpdesk.pl.yml +1 -0
- data/config/routes.rb +1 -0
- data/lib/helpdesk/version.rb +1 -1
- metadata +6 -3
- data/app/views/helpdesk/subscribers/_form.html.erb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 569873a1a07e6ecc3b329bf3cdd8760f813cd076
|
4
|
+
data.tar.gz: 1ca1b0144912eff172811a5647e46bfcea34bb47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3be697519d1aa4429baa018a88c8093d32eedcea8b8a3f845e5b338e3f16f1c42e8840eb6ff097d75b4d9e4a9443001b8c1cfccb07933273d7aaf280448a5ab
|
7
|
+
data.tar.gz: 5f08eea31b519eda2f85437038b56cecc8a44845b0d9f38cf52f9605f27ec442afe187c2371ef9a37f1f4f26ddb26ba66c613e413687bf45477dc06b69a1bbf7
|
@@ -0,0 +1,56 @@
|
|
1
|
+
$cTextLight: #a0a0a0
|
2
|
+
@CHARSET "UTF-8"
|
3
|
+
@mixin transition($var...)
|
4
|
+
-webkit-transition: $var
|
5
|
+
transition: $var
|
6
|
+
|
7
|
+
ul.faqs_list_main
|
8
|
+
> li
|
9
|
+
position: relative
|
10
|
+
|
11
|
+
ul.faqs_list
|
12
|
+
> li
|
13
|
+
// display: block
|
14
|
+
margin: 10px 0px
|
15
|
+
padding: 2px
|
16
|
+
// width: 90%
|
17
|
+
min-width: 100px
|
18
|
+
border: 1px solid $cTextLight
|
19
|
+
border-radius: 2px
|
20
|
+
background-color: #ffffff
|
21
|
+
// background-color: $colorBluePastelLight
|
22
|
+
line-height: 30px
|
23
|
+
vertical-align: middle
|
24
|
+
box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.2)
|
25
|
+
@include transition(opacity 0.2s ease-in-out)
|
26
|
+
|
27
|
+
>span.title
|
28
|
+
|
29
|
+
|
30
|
+
>span.buttons
|
31
|
+
position: absolute
|
32
|
+
right: 40px
|
33
|
+
|
34
|
+
|
35
|
+
ul, ol
|
36
|
+
margin: 10px auto 10px 10px
|
37
|
+
list-style: disc
|
38
|
+
|
39
|
+
li
|
40
|
+
|
41
|
+
&:hover
|
42
|
+
>span
|
43
|
+
|
44
|
+
> a.icon
|
45
|
+
opacity: 1
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
>span
|
51
|
+
a.icon
|
52
|
+
position: relative
|
53
|
+
opacity: 0
|
54
|
+
overflow: hidden
|
55
|
+
vertical-align: middle
|
56
|
+
@include transition(opacity 0.2s ease-in-out)
|
@@ -22,14 +22,13 @@ class Helpdesk::Admin::FaqsController < Helpdesk::Admin::BaseController
|
|
22
22
|
def index
|
23
23
|
if params[:faqs] == 'active'
|
24
24
|
@faqs = Helpdesk::Faq.roots.active
|
25
|
+
render action: 'index'
|
25
26
|
elsif params[:faqs] == 'inactive'
|
26
|
-
@faqs = Helpdesk::Faq.
|
27
|
+
@faqs = Helpdesk::Faq.inactive
|
28
|
+
render action: 'inactive'
|
27
29
|
else
|
28
30
|
@faqs = Helpdesk::Faq.roots
|
29
|
-
|
30
|
-
respond_to do |format|
|
31
|
-
format.html # index.html.erb
|
32
|
-
format.json { render json: @faqs }
|
31
|
+
render action: 'index'
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
@@ -1,42 +1,30 @@
|
|
1
1
|
module Helpdesk
|
2
2
|
class SubscribersController < Helpdesk::ApplicationController
|
3
3
|
|
4
|
-
|
5
4
|
def index
|
6
5
|
@subscriber = Subscriber.new
|
7
6
|
@subscriber.lang = locale
|
8
|
-
|
9
|
-
respond_to do |format|
|
10
|
-
format.html # new.html.erb
|
11
|
-
format.json { render json: @subscriber }
|
12
|
-
end
|
13
7
|
end
|
14
8
|
|
15
9
|
def create
|
16
10
|
@subscriber = Subscriber.new(subscriber_params)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
format.json { render json: @subscriber, status: :created, location: @subscriber }
|
22
|
-
else
|
23
|
-
format.html { render action: "new" }
|
24
|
-
format.json { render json: @subscriber.errors, status: :unprocessable_entity }
|
25
|
-
end
|
11
|
+
if @subscriber.save
|
12
|
+
redirect_to root_path, notice: 'Subscriber was successfully created.'
|
13
|
+
else
|
14
|
+
render action: "index"
|
26
15
|
end
|
27
16
|
end
|
28
17
|
|
18
|
+
def activation
|
19
|
+
@subscriber = Subscriber.where(hashcode:params[:hashcode],confirmed:false).first
|
20
|
+
@subscriber.update_attributes(hashcode:nil,confirmed:true) if @subscriber
|
21
|
+
redirect_to root_path,notice: 'Subscriber was successfully activated.'
|
22
|
+
end
|
29
23
|
|
30
|
-
# DELETE /subscribers/1
|
31
|
-
# DELETE /subscribers/1.json
|
32
24
|
def destroy
|
33
|
-
@subscriber = Subscriber.
|
34
|
-
@subscriber.destroy
|
35
|
-
|
36
|
-
respond_to do |format|
|
37
|
-
format.html { redirect_to subscribers_url }
|
38
|
-
format.json { head :no_content }
|
39
|
-
end
|
25
|
+
@subscriber = Subscriber.where(hashcode:params[:hashcode],confirmed:true).first
|
26
|
+
@subscriber.destroy if @subscriber
|
27
|
+
redirect_to root_path,notice: 'Subscriber was successfully deleted.'
|
40
28
|
end
|
41
29
|
|
42
30
|
private
|
@@ -39,4 +39,10 @@ class Helpdesk::NotificationsMailer < ActionMailer::Base
|
|
39
39
|
:to => Helpdesk.email)
|
40
40
|
end
|
41
41
|
|
42
|
+
def send_activate_subscription(subscriber)
|
43
|
+
@subscriber = subscriber
|
44
|
+
mail(:subject=>"#{t('helpdesk.name')}: Please Confirm Subscription",
|
45
|
+
:to => @subscriber.email)
|
46
|
+
end
|
47
|
+
|
42
48
|
end
|
@@ -4,6 +4,22 @@ module Helpdesk
|
|
4
4
|
scope :unconfirmed, ->{ where('confirmed = ? ',false)}
|
5
5
|
|
6
6
|
validates_presence_of :email
|
7
|
+
validates_uniqueness_of :email
|
8
|
+
|
9
|
+
before_create :generate_token
|
10
|
+
after_create :send_activate_subscription
|
11
|
+
|
12
|
+
def generate_token
|
13
|
+
self.hashcode = loop do
|
14
|
+
random_token = SecureRandom.urlsafe_base64(nil, false)
|
15
|
+
break random_token unless Helpdesk::Subscriber.where(hashcode: random_token).exists?
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def send_activate_subscription
|
20
|
+
Helpdesk::NotificationsMailer.send_activate_subscription(self).deliver
|
21
|
+
end
|
22
|
+
|
7
23
|
|
8
24
|
end
|
9
25
|
end
|
@@ -1,11 +1,13 @@
|
|
1
1
|
- faqs.each do |faq|
|
2
2
|
%li
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
= link_to t('helpdesk.
|
7
|
-
= link_to t('helpdesk.
|
8
|
-
= link_to t('helpdesk.
|
3
|
+
%span.title
|
4
|
+
= faq.title
|
5
|
+
%span.buttons
|
6
|
+
= link_to t('helpdesk.show'), faqs_path(anchor:faq.to_param), class: 'icon btn btn-info btn-xs', target: :faq_preview
|
7
|
+
= link_to t('helpdesk.edit'), edit_admin_faq_path(faq),class: 'icon btn btn-primary btn-xs'
|
8
|
+
= link_to t('helpdesk.add'), new_admin_faq_path(faq:{parent_id:faq.id}),class: 'icon btn btn-success btn-xs'
|
9
|
+
= link_to t('helpdesk.destroy'), admin_faq_path(faq), method: :delete, data: { confirm: 'Are you sure?' },class: 'icon btn btn-danger btn-xs'
|
10
|
+
|
9
11
|
- if faq.children.present?
|
10
|
-
%
|
11
|
-
= render partial:'/helpdesk/admin/faqs/faq', locals:{ faqs:faq.children }
|
12
|
+
%ul.faqs_list
|
13
|
+
= render partial:'/helpdesk/admin/faqs/faq', locals:{ faqs:faq.children.active }
|
@@ -0,0 +1,27 @@
|
|
1
|
+
= render 'menu'
|
2
|
+
|
3
|
+
- content_for :title do
|
4
|
+
-if params[:faqs] && params[:faqs] == 'active'
|
5
|
+
= t('helpdesk.faqs.active')
|
6
|
+
-elsif params[:faqs] && params[:faqs] == 'inactive'
|
7
|
+
= t('helpdesk.faqs.inactive')
|
8
|
+
-else
|
9
|
+
= t('helpdesk.faqs.all')
|
10
|
+
|
11
|
+
%ul.faqs_list.faqs_list_main
|
12
|
+
- @faqs.each do |faq|
|
13
|
+
%li
|
14
|
+
%span.title
|
15
|
+
= faq.title
|
16
|
+
%span.buttons
|
17
|
+
= link_to t('helpdesk.show'), faqs_path(anchor:faq.to_param), class: 'icon btn btn-info btn-xs', target: :faq_preview
|
18
|
+
= link_to t('helpdesk.edit'), edit_admin_faq_path(faq),class: 'icon btn btn-primary btn-xs'
|
19
|
+
= link_to t('helpdesk.add'), new_admin_faq_path(faq:{parent_id:faq.id}),class: 'icon btn btn-success btn-xs'
|
20
|
+
= link_to t('helpdesk.destroy'), admin_faq_path(faq), method: :delete, data: { confirm: 'Are you sure?' },class: 'icon btn btn-danger btn-xs'
|
21
|
+
|
22
|
+
- if faq.children.present?
|
23
|
+
%ul.faqs_list
|
24
|
+
= render partial:'/helpdesk/admin/faqs/faq', locals:{ faqs:faq.children }
|
25
|
+
|
26
|
+
|
27
|
+
|
@@ -9,14 +9,15 @@
|
|
9
9
|
= menu_li @faq.title, sorting_admin_faq_url(@faq)
|
10
10
|
|
11
11
|
|
12
|
-
%ul.
|
12
|
+
%ul.faqs_list#faqs
|
13
13
|
- @faqs.each do |faq|
|
14
|
-
%li
|
15
|
-
%
|
14
|
+
%li{id:"faqs_#{faq.id}",style:'padding:5px 0px;'}
|
15
|
+
%span.handle.span2{style:'cursor:move'}
|
16
16
|
%span
|
17
17
|
= ico('move')
|
18
|
-
|
19
|
-
|
18
|
+
%span.title
|
19
|
+
= faq.title
|
20
|
+
%span.buttons
|
20
21
|
- if faq.children.present?
|
21
22
|
= link_to t('helpdesk.sort_this_childs'), sorting_admin_faq_url(faq), class: 'btn btn-info btn-xs'
|
22
23
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Please Confirm Subscription
|
3
|
+
%p
|
4
|
+
= link_to 'Yes, subscribe me to this list.',subscribers_activation_url(locale:I18n.locale,hashcode: @subscriber.hashcode)
|
5
|
+
%p
|
6
|
+
If you received this email by mistake, simply delete it. You won't be subscribed if you don't click the confirmation link above.
|
7
|
+
|
8
|
+
%p
|
9
|
+
= "For questions about this list, please contact: #{Helpdesk.email}"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
= simple_form_for @subscriber do |f|
|
2
|
+
.form-inputs
|
3
|
+
- if @subscriber.errors.any?
|
4
|
+
#error_explanation
|
5
|
+
%ul
|
6
|
+
- @subscriber.errors.full_messages.each do |msg|
|
7
|
+
%li= msg
|
8
|
+
= f.input :name
|
9
|
+
= f.input :email
|
10
|
+
= f.input :lang, collections: I18n.available_locales
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
.form-actions
|
15
|
+
= f.submit 'Save', class:'btn btn-primary'
|
16
|
+
= link_to 'Back', admin_faqs_path,class: 'btn btn-default'
|
17
|
+
|
18
|
+
|
data/config/routes.rb
CHANGED
@@ -17,6 +17,7 @@ Helpdesk::Engine.routes.draw do
|
|
17
17
|
root :to => 'tickets#index'
|
18
18
|
end
|
19
19
|
|
20
|
+
get 'subscribers/a/:hashcode'=>'subscribers#activation',as:'subscribers_activation'
|
20
21
|
resources :subscribers, :only => [:index, :create, :destroy]
|
21
22
|
resources :faqs, :only => [ :index, :show ] do
|
22
23
|
get :search, on: :collection
|
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.37
|
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-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|
@@ -392,6 +392,7 @@ files:
|
|
392
392
|
- app/assets/javascripts/helpdesk/subscribers.js
|
393
393
|
- app/assets/stylesheets/helpdesk/admin.css.scss
|
394
394
|
- app/assets/stylesheets/helpdesk/admin/bootstrap_overrides.css
|
395
|
+
- app/assets/stylesheets/helpdesk/admin/faqs.css.sass
|
395
396
|
- app/assets/stylesheets/helpdesk/admin/tickets.css
|
396
397
|
- app/assets/stylesheets/helpdesk/application.css
|
397
398
|
- app/assets/stylesheets/helpdesk/custom.css
|
@@ -427,6 +428,7 @@ files:
|
|
427
428
|
- app/views/helpdesk/admin/faqs/_form.html.haml
|
428
429
|
- app/views/helpdesk/admin/faqs/_menu.html.haml
|
429
430
|
- app/views/helpdesk/admin/faqs/edit.html.haml
|
431
|
+
- app/views/helpdesk/admin/faqs/inactive.html.haml
|
430
432
|
- app/views/helpdesk/admin/faqs/index.html.haml
|
431
433
|
- app/views/helpdesk/admin/faqs/new.html.haml
|
432
434
|
- app/views/helpdesk/admin/faqs/show.html.haml
|
@@ -460,9 +462,10 @@ files:
|
|
460
462
|
- app/views/helpdesk/notifications_mailer/comment_by_helpdesk_notification.html.haml
|
461
463
|
- app/views/helpdesk/notifications_mailer/comment_by_requester_confirmation.html.haml
|
462
464
|
- app/views/helpdesk/notifications_mailer/comment_by_requester_notification.html.haml
|
465
|
+
- app/views/helpdesk/notifications_mailer/send_activate_subscription.html.haml
|
463
466
|
- app/views/helpdesk/notifications_mailer/ticket_created_confirmation.html.haml
|
464
467
|
- app/views/helpdesk/notifications_mailer/ticket_created_notification.html.haml
|
465
|
-
- app/views/helpdesk/subscribers/_form.html.
|
468
|
+
- app/views/helpdesk/subscribers/_form.html.haml
|
466
469
|
- app/views/helpdesk/subscribers/edit.html.erb
|
467
470
|
- app/views/helpdesk/subscribers/index.html.erb
|
468
471
|
- app/views/helpdesk/subscribers/show.html.erb
|
@@ -1,37 +0,0 @@
|
|
1
|
-
<%= form_for(@subscriber) do |f| %>
|
2
|
-
<% if @subscriber.errors.any? %>
|
3
|
-
<div id="error_explanation">
|
4
|
-
<h2><%= pluralize(@subscriber.errors.count, "error") %> prohibited this subscriber from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% @subscriber.errors.full_messages.each do |msg| %>
|
8
|
-
<li><%= msg %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= f.label :name %><br />
|
16
|
-
<%= f.text_field :name %>
|
17
|
-
</div>
|
18
|
-
<div class="field">
|
19
|
-
<%= f.label :email %><br />
|
20
|
-
<%= f.text_field :email %>
|
21
|
-
</div>
|
22
|
-
<div class="field">
|
23
|
-
<%= f.label :lang %><br />
|
24
|
-
<%= f.text_field :lang %>
|
25
|
-
</div>
|
26
|
-
<div class="field">
|
27
|
-
<%= f.label :hashcode %><br />
|
28
|
-
<%= f.text_field :hashcode %>
|
29
|
-
</div>
|
30
|
-
<div class="field">
|
31
|
-
<%= f.label :confirmed %><br />
|
32
|
-
<%= f.text_field :confirmed %>
|
33
|
-
</div>
|
34
|
-
<div class="actions">
|
35
|
-
<%= f.submit %>
|
36
|
-
</div>
|
37
|
-
<% end %>
|