lesli_support 1.0.0 → 1.2.0
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/Rakefile +3 -1
- data/app/controllers/lesli_support/accounts_controller.rb +1 -57
- data/app/controllers/lesli_support/catalog/items_controller.rb +1 -57
- data/app/controllers/lesli_support/items/discussions_controller.rb +6 -0
- data/app/controllers/lesli_support/items/tasks_controller.rb +6 -0
- data/app/controllers/lesli_support/ticket/activities_controller.rb +1 -57
- data/app/controllers/lesli_support/tickets_controller.rb +6 -5
- data/app/models/lesli_support/items/activity.rb +6 -0
- data/app/models/lesli_support/items/discussion.rb +6 -0
- data/app/models/lesli_support/items/task.rb +6 -0
- data/app/models/lesli_support/ticket.rb +14 -9
- data/app/views/lesli_support/dashboards/_component-latest-tickets.html.erb +1 -1
- data/app/views/lesli_support/tickets/_form.html.erb +13 -6
- data/app/views/lesli_support/tickets/show.html.erb +11 -8
- data/config/brakeman.yml +44 -0
- data/db/migrate/v1/0702000110_create_lesli_support_accounts.rb +7 -0
- data/db/migrate/v1/0702110110_create_lesli_support_tickets.rb +1 -8
- data/db/seeds.rb +2 -2
- data/lib/lesli_support/version.rb +2 -2
- metadata +13 -33
- data/app/controllers/lesli_support/options_controller.rb +0 -23
- data/app/controllers/lesli_support/ticket/actions_controller.rb +0 -4
- data/app/helpers/lesli_support/options_helper.rb +0 -4
- data/app/helpers/lesli_support/ticket/actions_helper.rb +0 -4
- data/app/models/lesli_support/option.rb +0 -4
- data/app/models/lesli_support/ticket/action.rb +0 -6
- data/app/views/lesli_support/options/_form.html.erb +0 -17
- data/app/views/lesli_support/options/_option.html.erb +0 -2
- data/app/views/lesli_support/options/edit.html.erb +0 -10
- data/app/views/lesli_support/options/index.html.erb +0 -14
- data/app/views/lesli_support/options/new.html.erb +0 -9
- data/app/views/lesli_support/options/show.html.erb +0 -10
- data/db/tables/0702100310_create_cloud_help_ticket_actions.rb +0 -16
- data/db/tables/0702100410_create_cloud_help_ticket_activities.rb +0 -15
- data/lib/scss/application.scss +0 -0
- data/lib/vue/application.js +0 -93
- data/lib/vue/apps/dashboard/components/engine-version.vue +0 -71
- data/lib/vue/apps/dashboard/components/my-tasks.vue +0 -77
- data/lib/vue/apps/tickets/components/assignments.vue +0 -93
- data/lib/vue/apps/tickets/components/form.vue +0 -305
- data/lib/vue/apps/tickets/components/internal-comments.vue +0 -107
- data/lib/vue/apps/tickets/components/sla-info.vue +0 -115
- data/lib/vue/apps/tickets/components/table.vue +0 -94
- data/lib/vue/apps/tickets/index.vue +0 -145
- data/lib/vue/apps/tickets/new.vue +0 -78
- data/lib/vue/apps/tickets/show.vue +0 -183
- data/lib/vue/stores/tickets.js +0 -276
- data/lib/vue/stores/translations.json +0 -162
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ace6f17700b63713a0ba3dd0fc295e567ac891c62d2da2e59cd838ad13358e38
|
|
4
|
+
data.tar.gz: 4413108d01bee145d26ce16e8d93cb1c59cfad1a25a97adeefe6302479aa532a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: be478a9e9839ce9833244182553d22e8923c0adff1a1bdfe8f940a034dd0ad3c423f95e319c7892d8b4a681c2b8f960cee8c7350808767af1f1da45ae5e46654
|
|
7
|
+
data.tar.gz: 199728d1ee5c1dbfc6fb02c837e71d38fbc15fdc24ec000ec1459746d3fb3b9964273cca3a1da38069f3cba4accc21bd6aa093fc3b4c1131f98a5a760b1cfafb
|
data/Rakefile
CHANGED
|
@@ -1,60 +1,4 @@
|
|
|
1
1
|
module LesliSupport
|
|
2
|
-
|
|
3
|
-
before_action :set_account, only: %i[ show edit update destroy ]
|
|
4
|
-
|
|
5
|
-
# GET /accounts
|
|
6
|
-
def index
|
|
7
|
-
@accounts = Account.all
|
|
2
|
+
class AccountsController < ApplicationController
|
|
8
3
|
end
|
|
9
|
-
|
|
10
|
-
# GET /accounts/1
|
|
11
|
-
def show
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# GET /accounts/new
|
|
15
|
-
def new
|
|
16
|
-
@account = Account.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# GET /accounts/1/edit
|
|
20
|
-
def edit
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# POST /accounts
|
|
24
|
-
def create
|
|
25
|
-
@account = Account.new(account_params)
|
|
26
|
-
|
|
27
|
-
if @account.save
|
|
28
|
-
redirect_to @account, notice: "Account was successfully created."
|
|
29
|
-
else
|
|
30
|
-
render :new, status: :unprocessable_entity
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# PATCH/PUT /accounts/1
|
|
35
|
-
def update
|
|
36
|
-
if @account.update(account_params)
|
|
37
|
-
redirect_to @account, notice: "Account was successfully updated.", status: :see_other
|
|
38
|
-
else
|
|
39
|
-
render :edit, status: :unprocessable_entity
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# DELETE /accounts/1
|
|
44
|
-
def destroy
|
|
45
|
-
@account.destroy
|
|
46
|
-
redirect_to accounts_url, notice: "Account was successfully destroyed.", status: :see_other
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
# Use callbacks to share common setup or constraints between actions.
|
|
51
|
-
def set_account
|
|
52
|
-
@account = Account.find(params[:id])
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Only allow a list of trusted parameters through.
|
|
56
|
-
def account_params
|
|
57
|
-
params.fetch(:account, {})
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
4
|
end
|
|
@@ -1,60 +1,4 @@
|
|
|
1
1
|
module LesliSupport
|
|
2
|
-
|
|
3
|
-
before_action :set_catalog_item, only: %i[ show edit update destroy ]
|
|
4
|
-
|
|
5
|
-
# GET /catalog/items
|
|
6
|
-
def index
|
|
7
|
-
@catalog_items = Catalog::Item.all
|
|
2
|
+
class Catalog::ItemsController < ApplicationController
|
|
8
3
|
end
|
|
9
|
-
|
|
10
|
-
# GET /catalog/items/1
|
|
11
|
-
def show
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# GET /catalog/items/new
|
|
15
|
-
def new
|
|
16
|
-
@catalog_item = Catalog::Item.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# GET /catalog/items/1/edit
|
|
20
|
-
def edit
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# POST /catalog/items
|
|
24
|
-
def create
|
|
25
|
-
@catalog_item = Catalog::Item.new(catalog_item_params)
|
|
26
|
-
|
|
27
|
-
if @catalog_item.save
|
|
28
|
-
redirect_to @catalog_item, notice: "Item was successfully created."
|
|
29
|
-
else
|
|
30
|
-
render :new, status: :unprocessable_entity
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# PATCH/PUT /catalog/items/1
|
|
35
|
-
def update
|
|
36
|
-
if @catalog_item.update(catalog_item_params)
|
|
37
|
-
redirect_to @catalog_item, notice: "Item was successfully updated.", status: :see_other
|
|
38
|
-
else
|
|
39
|
-
render :edit, status: :unprocessable_entity
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# DELETE /catalog/items/1
|
|
44
|
-
def destroy
|
|
45
|
-
@catalog_item.destroy!
|
|
46
|
-
redirect_to catalog_items_url, notice: "Item was successfully destroyed.", status: :see_other
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
# Use callbacks to share common setup or constraints between actions.
|
|
51
|
-
def set_catalog_item
|
|
52
|
-
@catalog_item = Catalog::Item.find(params[:id])
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Only allow a list of trusted parameters through.
|
|
56
|
-
def catalog_item_params
|
|
57
|
-
params.fetch(:catalog_item, {})
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
4
|
end
|
|
@@ -1,60 +1,4 @@
|
|
|
1
1
|
module LesliSupport
|
|
2
|
-
|
|
3
|
-
before_action :set_ticket_activity, only: %i[ show edit update destroy ]
|
|
4
|
-
|
|
5
|
-
# GET /ticket/activities
|
|
6
|
-
def index
|
|
7
|
-
@ticket_activities = Ticket::Activity.all
|
|
2
|
+
class Ticket::ActivitiesController < ApplicationController
|
|
8
3
|
end
|
|
9
|
-
|
|
10
|
-
# GET /ticket/activities/1
|
|
11
|
-
def show
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# GET /ticket/activities/new
|
|
15
|
-
def new
|
|
16
|
-
@ticket_activity = Ticket::Activity.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# GET /ticket/activities/1/edit
|
|
20
|
-
def edit
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# POST /ticket/activities
|
|
24
|
-
def create
|
|
25
|
-
@ticket_activity = Ticket::Activity.new(ticket_activity_params)
|
|
26
|
-
|
|
27
|
-
if @ticket_activity.save
|
|
28
|
-
redirect_to @ticket_activity, notice: "Activity was successfully created."
|
|
29
|
-
else
|
|
30
|
-
render :new, status: :unprocessable_entity
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# PATCH/PUT /ticket/activities/1
|
|
35
|
-
def update
|
|
36
|
-
if @ticket_activity.update(ticket_activity_params)
|
|
37
|
-
redirect_to @ticket_activity, notice: "Activity was successfully updated.", status: :see_other
|
|
38
|
-
else
|
|
39
|
-
render :edit, status: :unprocessable_entity
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# DELETE /ticket/activities/1
|
|
44
|
-
def destroy
|
|
45
|
-
@ticket_activity.destroy!
|
|
46
|
-
redirect_to ticket_activities_path, notice: "Activity was successfully destroyed.", status: :see_other
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
# Use callbacks to share common setup or constraints between actions.
|
|
51
|
-
def set_ticket_activity
|
|
52
|
-
@ticket_activity = Ticket::Activity.find(params.expect(:id))
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Only allow a list of trusted parameters through.
|
|
56
|
-
def ticket_activity_params
|
|
57
|
-
params.fetch(:ticket_activity, {})
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
4
|
end
|
|
@@ -69,16 +69,17 @@ module LesliSupport
|
|
|
69
69
|
def update
|
|
70
70
|
|
|
71
71
|
if @ticket.update(ticket_params)
|
|
72
|
-
log(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
)
|
|
72
|
+
# log(
|
|
73
|
+
# subject: @invite,
|
|
74
|
+
# description: "Ticket updated successfully"
|
|
75
|
+
# )
|
|
76
76
|
respond_with_lesli(
|
|
77
77
|
:turbo => stream_notification_success("Ticket updated successfully")
|
|
78
78
|
)
|
|
79
79
|
else
|
|
80
80
|
respond_with_lesli(
|
|
81
|
-
:turbo => stream_notification_danger(@
|
|
81
|
+
:turbo => stream_notification_danger(@ticket.errors)
|
|
82
|
+
#:turbo => stream_notification_danger(@ticket.errors.full_messages.to_sentence)
|
|
82
83
|
)
|
|
83
84
|
end
|
|
84
85
|
end
|
|
@@ -42,13 +42,17 @@ module LesliSupport
|
|
|
42
42
|
belongs_to :priority, optional: true, class_name: "Catalog::Item"
|
|
43
43
|
|
|
44
44
|
# Items
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
include Lesli::Items::Tasks
|
|
46
|
+
include Lesli::Items::Activities
|
|
47
|
+
include Lesli::Items::Discussions
|
|
48
|
+
#has_many :discussions, class_name: "LesliSupport::Item::Discussion"
|
|
49
|
+
|
|
50
|
+
# include Lesli::Items::Attachments
|
|
51
|
+
# include Lesli::Items::Subscribers
|
|
48
52
|
|
|
49
53
|
# Hooks
|
|
50
54
|
before_create :before_create_ticket
|
|
51
|
-
after_save :
|
|
55
|
+
after_save :after_save_activities
|
|
52
56
|
|
|
53
57
|
private
|
|
54
58
|
|
|
@@ -61,9 +65,10 @@ module LesliSupport
|
|
|
61
65
|
end
|
|
62
66
|
end
|
|
63
67
|
|
|
64
|
-
def
|
|
68
|
+
def after_save_activities
|
|
69
|
+
|
|
65
70
|
if self.saved_change_to_owner_id?
|
|
66
|
-
self.
|
|
71
|
+
self.activities_create(
|
|
67
72
|
description: "Agent assigned #{self.owner.name}",
|
|
68
73
|
activity_code: :owner_id,
|
|
69
74
|
metadata: { owner_id: self.owner.id }
|
|
@@ -71,7 +76,7 @@ module LesliSupport
|
|
|
71
76
|
end
|
|
72
77
|
|
|
73
78
|
if self.saved_change_to_type_id?
|
|
74
|
-
self.
|
|
79
|
+
self.activities_create(
|
|
75
80
|
description: "Ticket type updated to #{self.type.name}",
|
|
76
81
|
activity_code: :type_id,
|
|
77
82
|
metadata: { type_id: self.type.id }
|
|
@@ -79,7 +84,7 @@ module LesliSupport
|
|
|
79
84
|
end
|
|
80
85
|
|
|
81
86
|
if self.saved_change_to_category_id?
|
|
82
|
-
self.
|
|
87
|
+
self.activities_create(
|
|
83
88
|
description: "Ticket category updated to #{self.category.name}",
|
|
84
89
|
activity_code: :category_id,
|
|
85
90
|
metadata: { category_id: self.category.id }
|
|
@@ -87,7 +92,7 @@ module LesliSupport
|
|
|
87
92
|
end
|
|
88
93
|
|
|
89
94
|
if self.saved_change_to_priority_id?
|
|
90
|
-
self.
|
|
95
|
+
self.activities_create(
|
|
91
96
|
description: "Ticket priority updated to #{self.priority.name}",
|
|
92
97
|
activity_code: :priority_id,
|
|
93
98
|
metadata: { priority_id: self.priority.id }
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
|
|
2
2
|
<%= form_with(model: @ticket, builder: LesliView::Forms::Builder) do |form| %>
|
|
3
3
|
<%= form.fieldset do %>
|
|
4
|
+
|
|
5
|
+
<div class="field">
|
|
6
|
+
<div class="control">
|
|
7
|
+
<input class="input has-text-centered" type="text" disabled value="<%= @ticket.uid %>">
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
4
11
|
<%= form.field_control(:subject) %>
|
|
5
|
-
|
|
12
|
+
|
|
13
|
+
<div class="columns mb-0">
|
|
6
14
|
<div class="column">
|
|
7
15
|
<%= form.field_control_select(:type_id, current_user.account.support.catalogs.items_for("Ticket Types").pluck(:name, :id)) %>
|
|
8
16
|
</div>
|
|
@@ -14,14 +22,13 @@
|
|
|
14
22
|
</div>
|
|
15
23
|
</div>
|
|
16
24
|
|
|
17
|
-
|
|
18
|
-
<div class="column">
|
|
19
|
-
<%= form.field_control_select(:owner_id, current_user.account.users.pluck(:first_name, :id)) %>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
25
|
+
<%= form.field_control_select(:owner_id, current_user.account.users.pluck(:first_name, :id)) %>
|
|
22
26
|
|
|
23
27
|
<%= form.field_control_textarea(:description, label:false) %>
|
|
28
|
+
|
|
24
29
|
<hr/>
|
|
30
|
+
|
|
25
31
|
<%= form.field_control_submit %>
|
|
32
|
+
|
|
26
33
|
<% end %>
|
|
27
34
|
<% end %>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<%= render(LesliView::Layout::Container.new("support-tickets-#{@ticket.id}")) do %>
|
|
2
2
|
|
|
3
|
-
<%= render(LesliView::Components::Header.new("#{@ticket.
|
|
3
|
+
<%= render(LesliView::Components::Header.new("#{@ticket.subject}")) %>
|
|
4
4
|
|
|
5
5
|
<%= render LesliView::Components::Tabs.new(active_tab: "ticket-information") do |tabs| %>
|
|
6
6
|
|
|
@@ -9,15 +9,11 @@
|
|
|
9
9
|
<% end %>
|
|
10
10
|
|
|
11
11
|
<% tabs.with_tab(id:"ticket-discussions", title:"Discussions", icon:"forum") do %>
|
|
12
|
-
<%= render(LesliView::Items::Discussions.new(@ticket
|
|
12
|
+
<%= render(LesliView::Items::Discussions.new(@ticket)) %>
|
|
13
13
|
<% end %>
|
|
14
14
|
|
|
15
|
-
<% tabs.with_tab(id:"ticket-
|
|
16
|
-
<%= render(LesliView::Items::
|
|
17
|
-
@ticket,
|
|
18
|
-
path_to_create:ticket_actions_path(@ticket),
|
|
19
|
-
path_to_update:->(action) {ticket_action_path(@ticket, action)}
|
|
20
|
-
)) %>
|
|
15
|
+
<% tabs.with_tab(id:"ticket-tasks", title:"Tasks", icon:"checklist") do %>
|
|
16
|
+
<%= render(LesliView::Items::Tasks.new(@ticket)) %>
|
|
21
17
|
<% end %>
|
|
22
18
|
|
|
23
19
|
<% tabs.with_tab(id:"ticket-activities", title:"Activities", icon:"search_activity") do %>
|
|
@@ -28,5 +24,12 @@
|
|
|
28
24
|
category_id: 'search'
|
|
29
25
|
})) %>
|
|
30
26
|
<% end %>
|
|
27
|
+
|
|
28
|
+
<% tabs.with_tab(id:"ticket-attachments", title:"Attachments", icon:"attach_file") do %>
|
|
29
|
+
<%#= render(LesliView::Items::Attachments.new(@ticket,
|
|
30
|
+
path_to_create:ticket_actions_path(@ticket),
|
|
31
|
+
path_to_update:->(action) {ticket_action_path(@ticket, action)}
|
|
32
|
+
)) %>
|
|
33
|
+
<% end %>
|
|
31
34
|
<% end %>
|
|
32
35
|
<% end %>
|
data/config/brakeman.yml
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
|
|
2
|
+
# Brakeman Configuration File
|
|
3
|
+
# Documentation: https://brakemanscanner.org/docs/options/
|
|
4
|
+
|
|
5
|
+
# Files and Directories to Skip
|
|
6
|
+
skip_files:
|
|
7
|
+
|
|
8
|
+
# Warnings to Ignore (List Warning Codes)
|
|
9
|
+
ignore_warnings:
|
|
10
|
+
# - "SQLi" # Example: Ignore false-positive SQL injection warnings
|
|
11
|
+
# - "WeakHash" # Ignore warnings about weak hashing if you're using MD5 intentionally
|
|
12
|
+
|
|
13
|
+
# Additional Checks
|
|
14
|
+
checks_to_run:
|
|
15
|
+
- "DefaultRoutes"
|
|
16
|
+
- "MassAssignment"
|
|
17
|
+
- "CrossSiteScripting"
|
|
18
|
+
- "SQLInjection"
|
|
19
|
+
- "FileAccess"
|
|
20
|
+
- "UnmaintainedDependency"
|
|
21
|
+
|
|
22
|
+
# Confidence Levels to Report
|
|
23
|
+
min_confidence: 2 # 0 (all warnings), 1 (medium), 2 (high)
|
|
24
|
+
|
|
25
|
+
# Output Format
|
|
26
|
+
output_formats:
|
|
27
|
+
- "html"
|
|
28
|
+
- "json"
|
|
29
|
+
- "plain"
|
|
30
|
+
|
|
31
|
+
# Output Files
|
|
32
|
+
output_files:
|
|
33
|
+
- "brakeman/brakeman_report.html"
|
|
34
|
+
- "brakeman/brakeman_report.json"
|
|
35
|
+
|
|
36
|
+
# Optional Settings
|
|
37
|
+
run_all_checks: true # Run all checks even if specific ones are set
|
|
38
|
+
report_routes: true # Include unused routes in the report
|
|
39
|
+
exit_on_warn: true # Exit with a non-zero code if warnings are found
|
|
40
|
+
|
|
41
|
+
# Skipping Specific Models or Files (Advanced)
|
|
42
|
+
skip_files_containing:
|
|
43
|
+
- "DO NOT SCAN" # Add comment markers in files you want skipped
|
|
44
|
+
- "IGNORE ME"
|
|
@@ -33,5 +33,12 @@ Building a better future, one line of code at a time.
|
|
|
33
33
|
class CreateLesliSupportAccounts < ActiveRecord::Migration[7.0]
|
|
34
34
|
def change
|
|
35
35
|
create_table_lesli_shared_account_10(:lesli_support)
|
|
36
|
+
|
|
37
|
+
create_table_lesli_item_tasks_10(:lesli_support)
|
|
38
|
+
create_table_lesli_item_activities_10(:lesli_support)
|
|
39
|
+
create_table_lesli_item_discussions_10(:lesli_support)
|
|
40
|
+
# create_table_lesli_item_subscribers_10(:lesli_support_tickets)
|
|
41
|
+
# create_table_lesli_item_attachments_10(:lesli_support_tickets)
|
|
42
|
+
# create_table_lesli_item_versions_10(:lesli_support_tickets)
|
|
36
43
|
end
|
|
37
44
|
end
|
|
@@ -52,8 +52,6 @@ class CreateLesliSupportTickets < ActiveRecord::Migration[6.0]
|
|
|
52
52
|
t.timestamps
|
|
53
53
|
end
|
|
54
54
|
|
|
55
|
-
add_index(:lesli_support_tickets, :uid, unique: true)
|
|
56
|
-
|
|
57
55
|
add_reference(:lesli_support_tickets, :sla, foreign_key: { to_table: :lesli_support_slas })
|
|
58
56
|
add_reference(:lesli_support_tickets, :type, foreign_key: { to_table: :lesli_support_catalog_items })
|
|
59
57
|
#add_reference(:lesli_support_tickets, :status, foreign_key: { to_table: :lesli_support_workflow_statuses })
|
|
@@ -65,11 +63,6 @@ class CreateLesliSupportTickets < ActiveRecord::Migration[6.0]
|
|
|
65
63
|
add_reference(:lesli_support_tickets, :owner, foreign_key: { to_table: :lesli_users })
|
|
66
64
|
add_reference(:lesli_support_tickets, :account, foreign_key: { to_table: :lesli_support_accounts })
|
|
67
65
|
|
|
68
|
-
|
|
69
|
-
create_table_lesli_item_activities_10(:lesli_support_tickets)
|
|
70
|
-
create_table_lesli_item_discussions_10(:lesli_support_tickets)
|
|
71
|
-
create_table_lesli_item_subscribers_10(:lesli_support_tickets)
|
|
72
|
-
create_table_lesli_item_attachments_10(:lesli_support_tickets)
|
|
73
|
-
create_table_lesli_item_versions_10(:lesli_support_tickets)
|
|
66
|
+
add_index(:lesli_support_tickets, [:account_id, :uid], unique: true)
|
|
74
67
|
end
|
|
75
68
|
end
|
data/db/seeds.rb
CHANGED
|
@@ -30,9 +30,9 @@ Building a better future, one line of code at a time.
|
|
|
30
30
|
// ·
|
|
31
31
|
=end
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Termline.msg("LesliSupport", "Version: #{LesliSupport::VERSION}", "Build: #{LesliSupport::BUILD}")
|
|
34
34
|
|
|
35
35
|
# · load specific environment seeds
|
|
36
36
|
if Rails.env.development? || Lesli.config.demo
|
|
37
|
-
load
|
|
37
|
+
load(LesliSupport::Engine.root.join("db", "seed", "#{ Rails.env.downcase }.rb"))
|
|
38
38
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lesli_support
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The Lesli Development Team
|
|
@@ -15,15 +15,17 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version:
|
|
18
|
+
version: 5.1.0
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version:
|
|
26
|
-
description:
|
|
25
|
+
version: 5.1.0
|
|
26
|
+
description: "Provides a support ticket management solution for The Lesli Framework,
|
|
27
|
+
\nincluding ticket creation, assignment workflows, status tracking, \nteam collaboration,
|
|
28
|
+
and support request organization.\n"
|
|
27
29
|
email:
|
|
28
30
|
- hello@lesli.tech
|
|
29
31
|
executables: []
|
|
@@ -40,8 +42,8 @@ files:
|
|
|
40
42
|
- app/controllers/lesli_support/catalog/items_controller.rb
|
|
41
43
|
- app/controllers/lesli_support/catalogs_controller.rb
|
|
42
44
|
- app/controllers/lesli_support/dashboards_controller.rb
|
|
43
|
-
- app/controllers/lesli_support/
|
|
44
|
-
- app/controllers/lesli_support/
|
|
45
|
+
- app/controllers/lesli_support/items/discussions_controller.rb
|
|
46
|
+
- app/controllers/lesli_support/items/tasks_controller.rb
|
|
45
47
|
- app/controllers/lesli_support/ticket/activities_controller.rb
|
|
46
48
|
- app/controllers/lesli_support/ticket/discussions_controller.rb
|
|
47
49
|
- app/controllers/lesli_support/tickets_controller.rb
|
|
@@ -50,8 +52,6 @@ files:
|
|
|
50
52
|
- app/helpers/lesli_support/catalog/items_helper.rb
|
|
51
53
|
- app/helpers/lesli_support/catalogs_helper.rb
|
|
52
54
|
- app/helpers/lesli_support/dashboards_helper.rb
|
|
53
|
-
- app/helpers/lesli_support/options_helper.rb
|
|
54
|
-
- app/helpers/lesli_support/ticket/actions_helper.rb
|
|
55
55
|
- app/helpers/lesli_support/ticket/activities_helper.rb
|
|
56
56
|
- app/helpers/lesli_support/ticket/discussions_helper.rb
|
|
57
57
|
- app/jobs/lesli_support/application_job.rb
|
|
@@ -61,9 +61,10 @@ files:
|
|
|
61
61
|
- app/models/lesli_support/catalog.rb
|
|
62
62
|
- app/models/lesli_support/catalog/item.rb
|
|
63
63
|
- app/models/lesli_support/dashboard.rb
|
|
64
|
-
- app/models/lesli_support/
|
|
64
|
+
- app/models/lesli_support/items/activity.rb
|
|
65
|
+
- app/models/lesli_support/items/discussion.rb
|
|
66
|
+
- app/models/lesli_support/items/task.rb
|
|
65
67
|
- app/models/lesli_support/ticket.rb
|
|
66
|
-
- app/models/lesli_support/ticket/action.rb
|
|
67
68
|
- app/models/lesli_support/ticket/activity.rb
|
|
68
69
|
- app/models/lesli_support/ticket/discussion.rb
|
|
69
70
|
- app/services/lesli_support/catalog_service.rb
|
|
@@ -90,17 +91,12 @@ files:
|
|
|
90
91
|
- app/views/lesli_support/dashboards/_component-tickets-by-category.html.erb
|
|
91
92
|
- app/views/lesli_support/dashboards/_component-tickets-created.html.erb
|
|
92
93
|
- app/views/lesli_support/dashboards/_component-tickets-open.html.erb
|
|
93
|
-
- app/views/lesli_support/options/_form.html.erb
|
|
94
|
-
- app/views/lesli_support/options/_option.html.erb
|
|
95
|
-
- app/views/lesli_support/options/edit.html.erb
|
|
96
|
-
- app/views/lesli_support/options/index.html.erb
|
|
97
|
-
- app/views/lesli_support/options/new.html.erb
|
|
98
|
-
- app/views/lesli_support/options/show.html.erb
|
|
99
94
|
- app/views/lesli_support/partials/_navigation.html.erb
|
|
100
95
|
- app/views/lesli_support/tickets/_form.html.erb
|
|
101
96
|
- app/views/lesli_support/tickets/index.html.erb
|
|
102
97
|
- app/views/lesli_support/tickets/new.html.erb
|
|
103
98
|
- app/views/lesli_support/tickets/show.html.erb
|
|
99
|
+
- config/brakeman.yml
|
|
104
100
|
- config/locales/translations.en.yml
|
|
105
101
|
- config/locales/translations.es.yml
|
|
106
102
|
- config/locales/translations.fr.yml
|
|
@@ -131,8 +127,6 @@ files:
|
|
|
131
127
|
- db/tables/0702040110_create_cloud_help_custom_validations.rb
|
|
132
128
|
- db/tables/0702040210_create_cloud_help_custom_validation_rules.rb
|
|
133
129
|
- db/tables/0702040310_create_cloud_help_custom_validation_fields.rb
|
|
134
|
-
- db/tables/0702100310_create_cloud_help_ticket_actions.rb
|
|
135
|
-
- db/tables/0702100410_create_cloud_help_ticket_activities.rb
|
|
136
130
|
- db/tables/0702100610_create_cloud_help_ticket_files.rb
|
|
137
131
|
- db/tables/0702100710_create_cloud_help_ticket_subscribers.rb
|
|
138
132
|
- db/tables/0702101010_create_cloud_help_ticket_timelines.rb
|
|
@@ -147,21 +141,7 @@ files:
|
|
|
147
141
|
- lib/lesli_support.rb
|
|
148
142
|
- lib/lesli_support/engine.rb
|
|
149
143
|
- lib/lesli_support/version.rb
|
|
150
|
-
- lib/scss/application.scss
|
|
151
144
|
- lib/tasks/lesli_support_tasks.rake
|
|
152
|
-
- lib/vue/application.js
|
|
153
|
-
- lib/vue/apps/dashboard/components/engine-version.vue
|
|
154
|
-
- lib/vue/apps/dashboard/components/my-tasks.vue
|
|
155
|
-
- lib/vue/apps/tickets/components/assignments.vue
|
|
156
|
-
- lib/vue/apps/tickets/components/form.vue
|
|
157
|
-
- lib/vue/apps/tickets/components/internal-comments.vue
|
|
158
|
-
- lib/vue/apps/tickets/components/sla-info.vue
|
|
159
|
-
- lib/vue/apps/tickets/components/table.vue
|
|
160
|
-
- lib/vue/apps/tickets/index.vue
|
|
161
|
-
- lib/vue/apps/tickets/new.vue
|
|
162
|
-
- lib/vue/apps/tickets/show.vue
|
|
163
|
-
- lib/vue/stores/tickets.js
|
|
164
|
-
- lib/vue/stores/translations.json
|
|
165
145
|
- readme.md
|
|
166
146
|
homepage: https://www.lesli.dev/
|
|
167
147
|
licenses:
|
|
@@ -186,5 +166,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
186
166
|
requirements: []
|
|
187
167
|
rubygems_version: 3.7.1
|
|
188
168
|
specification_version: 4
|
|
189
|
-
summary:
|
|
169
|
+
summary: Support ticket management for the Lesli Framework.
|
|
190
170
|
test_files: []
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module LesliSupport
|
|
2
|
-
class OptionsController < ApplicationController
|
|
3
|
-
before_action :set_option, only: %i[ show edit update destroy ]
|
|
4
|
-
|
|
5
|
-
# GET /options
|
|
6
|
-
def index
|
|
7
|
-
respond_to do |format|
|
|
8
|
-
format.html { }
|
|
9
|
-
format.json do
|
|
10
|
-
|
|
11
|
-
options = {
|
|
12
|
-
types: CatalogType.select(:id, :name),
|
|
13
|
-
categories: CatalogCategory.select(:id, :name),
|
|
14
|
-
priorities: CatalogPriority.select(:id, :name).order(:weight),
|
|
15
|
-
workspaces: CatalogWorkspace.select(:id, :name)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
respond_with_successful(options)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|