wco_email 0.1.1.62 → 0.1.1.64
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascript/wco_email/conversations.js +1 -1
- data/app/assets/stylesheets/wco_email/contexts.scss +6 -0
- data/app/assets/stylesheets/wco_email/conversations.scss +1 -0
- data/app/assets/stylesheets/wco_email/messages.scss +21 -0
- data/app/controllers/wco_email/conversations_controller.rb +5 -1
- data/app/views/wco_email/_sidebar.haml +2 -2
- data/app/views/wco_email/contexts/_form_reply.haml +9 -9
- data/app/views/wco_email/conversations/_actions.haml +11 -21
- data/app/views/wco_email/conversations/show.haml +23 -13
- data/app/views/wco_email/messages/_meta.haml +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b555e0ae1bf5c4011332c6205ce52793e687695286f2bd77c6065096927cca53
|
4
|
+
data.tar.gz: 0cd20ee64de8c3bc8940dd231e11cacfa8847de88fdd7e75395357db417aca9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95a9817a224cb424ed75cb85f8f586c72eefa7f3f15e0a0666967e2256762d01df404ccf28558b87cf9fbe7fa5f2f25cf5de7907e732bf7ca2a821f37631d8db
|
7
|
+
data.tar.gz: 328cc45c77685946582895d32f5bd488ca021c12a7cd38e059475fafd5fff964df116214dd44b2ca880cdcf0ed0862c4fd6b9e3cb396ab52418b2040192686c6
|
@@ -115,7 +115,7 @@ $(".remove-tag-btn").click(function(e) {
|
|
115
115
|
const emailtag = $("select[name='emailtag']").val()
|
116
116
|
const out = []
|
117
117
|
|
118
|
-
$( $("input[type='checkbox'].i-sel:checked") ).each( idx => {
|
118
|
+
$( $(".conversations-list input[type='checkbox'].i-sel:checked") ).each( idx => {
|
119
119
|
let val = $($("input[type='checkbox'].i-sel:checked")[idx]).val()
|
120
120
|
out.push(val)
|
121
121
|
})
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
.Message {
|
3
|
+
border: 1px solid var(--wco-color-1);
|
4
|
+
border-radius: .5em;
|
5
|
+
padding: 0.5em;
|
6
|
+
}
|
7
|
+
|
8
|
+
.Meta {
|
9
|
+
ul {
|
10
|
+
margin: 0;
|
11
|
+
padding: 0;
|
12
|
+
list-style-type: none;
|
13
|
+
|
14
|
+
li {
|
15
|
+
border-left: 3px solid var(--wco-color-2);
|
16
|
+
padding-left: 0.5em;
|
17
|
+
margin-bottom: 0.5em;
|
18
|
+
}
|
19
|
+
|
20
|
+
}
|
21
|
+
}
|
@@ -107,7 +107,11 @@ class WcoEmail::ConversationsController < WcoEmail::ApplicationController
|
|
107
107
|
def show
|
108
108
|
@conversation = ::WcoEmail::Conversation.find( params[:id] )
|
109
109
|
authorize! :show, @conversation
|
110
|
-
@messages = @conversation.messages
|
110
|
+
@messages = @conversation.messages(
|
111
|
+
).order_by( date: :asc
|
112
|
+
).page( params[:messages_page ] ).per( @current_profile.per_page
|
113
|
+
)
|
114
|
+
|
111
115
|
@conversation.update_attributes({ status: Conv::STATUS_READ })
|
112
116
|
|
113
117
|
@conversation.messages.unread.update_all({ read_at: Time.now })
|
@@ -4,7 +4,7 @@
|
|
4
4
|
- @tags.each do |tag|
|
5
5
|
%li
|
6
6
|
= link_to tag.slug, conversations_in_path( tag.slug )
|
7
|
-
|
8
|
-
|
7
|
+
<b>#{tag.conversations.unread.length}</b>
|
8
|
+
(#{tag.conversations.length})
|
9
9
|
= link_to "not", conversations_not_in_path( tag.slug )
|
10
10
|
|
@@ -1,29 +1,29 @@
|
|
1
1
|
|
2
2
|
-# = ctx.inspect
|
3
3
|
|
4
|
-
.email-contexts--form-reply.form-mini
|
4
|
+
.Context.email-contexts--form-reply.form-mini
|
5
5
|
= form_for ctx do |f|
|
6
6
|
|
7
7
|
.flex-row
|
8
8
|
.flex-row
|
9
|
-
%label from
|
9
|
+
%label from
|
10
10
|
= f.select :from_email, options_for_select( WcoEmail::EmailTemplate.from_emails_list, selected: ctx.from_email ), {}, class: 'select2'
|
11
|
-
%label to
|
11
|
+
%label to
|
12
12
|
= f.select :lead, options_for_select( @leads_list, selected: lead_id ), {}, class: 'select2', required: true
|
13
13
|
.flex-row
|
14
|
-
|
14
|
+
%label template
|
15
15
|
= f.select :email_template_id, options_for_select( @email_templates_list, selected: ctx.email_template_id ), {}, class: 'select2', required: true
|
16
16
|
= link_to '[+]', new_email_template_path, target: :_blank
|
17
|
-
.flex-row
|
18
|
-
|
19
|
-
|
17
|
+
-# .flex-row
|
18
|
+
-# %label Subject
|
19
|
+
-# = f.text_field :subject, class: 'w-100', disabled: true
|
20
20
|
.field
|
21
21
|
= f.text_area :body, class: 'tinymce'
|
22
22
|
.flex-row
|
23
23
|
.flex-row
|
24
|
-
%label Respond inline
|
24
|
+
%label Respond inline?
|
25
25
|
= check_box_tag :respond_inline, message.id, checked: true
|
26
26
|
.flex-row
|
27
|
-
|
27
|
+
%label send_at
|
28
28
|
= f.text_field :send_at, placeholder: 'YYYY-MM-DD', value: Time.now, size: 30, class: 'input-date'
|
29
29
|
= f.submit 'Send/Schedule'
|
@@ -1,24 +1,14 @@
|
|
1
1
|
|
2
|
-
.conversations--actions.bordered.d-flex
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
.bordered.inline-block.mb-2
|
4
|
+
.d-inline-block
|
5
|
+
= select_tag :emailtag, options_for_select(@tags_list), class: 'select2'
|
6
|
+
= check_box_tag :is_move
|
7
|
+
%label move?
|
8
|
+
%a.btn.add-tag-btn{ href: "javascript: void(0)", data: { url: conversations_addtag_path } }
|
9
|
+
%i.material-icons add
|
10
|
+
Addtag
|
11
|
+
%a.btn.remove-tag-btn{ href: "javascript: void(0)", data: { url: conversations_rmtag_path } }
|
12
|
+
%i.material-icons remove
|
13
|
+
Rmtag
|
13
14
|
|
14
|
-
.bordered.inline-block
|
15
|
-
.d-inline-block
|
16
|
-
= select_tag :emailtag, options_for_select(@tags_list), class: 'select2'
|
17
|
-
= check_box_tag :is_move
|
18
|
-
%label move?
|
19
|
-
%a.btn.add-tag-btn{ href: "javascript: void(0)", data: { url: conversations_addtag_path } }
|
20
|
-
%i.material-icons add
|
21
|
-
Addtag
|
22
|
-
%a.btn.remove-tag-btn{ href: "javascript: void(0)", data: { url: conversations_rmtag_path } }
|
23
|
-
%i.material-icons remove
|
24
|
-
Rmtag
|
@@ -2,34 +2,44 @@
|
|
2
2
|
- content_for :sidebar do
|
3
3
|
= render 'wco_email/sidebar'
|
4
4
|
|
5
|
+
.conversations-list
|
6
|
+
= check_box_tag 'conversation_ids[]', @conversation.id.to_s, true, { class: 'i-sel', disabled: true }
|
5
7
|
.conversations-show.maxwidth
|
6
8
|
%h5
|
7
9
|
= @conversation.subject
|
8
|
-
<b>(#{@
|
10
|
+
<b>(#{@messages.length})</b>
|
9
11
|
= link_to '[~]', edit_conversation_path(@conversation)
|
10
12
|
%span.gray.mini= @conversation.id
|
11
|
-
|
13
|
+
|
14
|
+
= render 'wco/tags/list_mini', tags: @conversation.tags
|
15
|
+
|
16
|
+
|
17
|
+
= render '/wco_email/conversations/actions'
|
18
|
+
|
19
|
+
.Leads.mb-2
|
12
20
|
.d-inline <b>Leads:</b>
|
13
21
|
- @conversation.leads.each do |lead|
|
14
22
|
.Chip= link_to lead.email, wco.lead_path( lead )
|
15
23
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
24
|
+
- if @other_convs.present?
|
25
|
+
- @other_convs.each do |conv|
|
26
|
+
.d-flex
|
27
|
+
= button_to "Merge", merge_conversations_path( @conversation, conv ), data: { confirm: 'Are you sure?' }
|
28
|
+
= conv.subject
|
29
|
+
(#{conv.messages.length})
|
30
|
+
%span.gray.mini= conv.id
|
23
31
|
|
24
32
|
|
25
|
-
|
26
|
-
|
27
|
-
|
33
|
+
.m-0.p-0
|
34
|
+
= paginate @messages, param_name: :messages_page
|
35
|
+
- @messages.each do |msg|
|
36
|
+
.Message.mb-2
|
28
37
|
= render '/wco_email/messages/meta', message: msg
|
29
38
|
= link_to '[expand]', message_iframe_path(msg, expand_history: true), target: "iframe_#{msg.id}"
|
30
39
|
= link_to '[collapse]', message_iframe_path(msg), target: "iframe_#{msg.id}"
|
31
40
|
%span.collapse-expand{ id: "iframe_#{msg.id}" } [<>]
|
32
41
|
%iframe.message-iframe{ src: message_iframe_path(msg), name: "iframe_#{msg.id}", onload: "resizeIframe(this)" }
|
42
|
+
= paginate @messages, param_name: :messages_page
|
33
43
|
|
34
|
-
- msg = @
|
44
|
+
- msg = @messages.last
|
35
45
|
= render '/wco_email/contexts/form_reply', lead_id: msg.lead_id, message: msg, ctx: WcoEmail::Context.new({ from_email: msg.to&.downcase, subject: msg.subject, email_template_id: ET.find_by( slug: 'blank').id })
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wco_email
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.1.
|
4
|
+
version: 0.1.1.64
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Pudeyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|
@@ -306,6 +306,7 @@ files:
|
|
306
306
|
- app/assets/stylesheets/wco_email/application.scss
|
307
307
|
- app/assets/stylesheets/wco_email/contexts.scss
|
308
308
|
- app/assets/stylesheets/wco_email/conversations.scss
|
309
|
+
- app/assets/stylesheets/wco_email/messages.scss
|
309
310
|
- app/assets/stylesheets/wco_email/tags.scss
|
310
311
|
- app/controllers/wco_email/api_controller.rb
|
311
312
|
- app/controllers/wco_email/application_controller.rb
|