ish_manager 0.1.8.495 → 0.1.8.497

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ish_manager/email_conversations.js +70 -0
  3. data/app/assets/javascripts/ish_manager/shared.js +2 -2
  4. data/app/assets/stylesheets/ish_manager/application.scss +27 -14
  5. data/app/assets/stylesheets/ish_manager/email_conversations.scss +4 -64
  6. data/app/assets/stylesheets/ish_manager/email_messages.scss +51 -0
  7. data/app/assets/stylesheets/ish_manager/leads.scss +26 -0
  8. data/app/assets/stylesheets/ish_manager/leadsets.scss +74 -0
  9. data/app/assets/stylesheets/ish_manager/tags.scss +16 -1
  10. data/app/assets/stylesheets/ish_manager/utils_bootstrap.scss +21 -0
  11. data/app/controllers/ish_manager/categories_controller.rb +7 -0
  12. data/app/controllers/ish_manager/email_conversations_controller.rb +4 -0
  13. data/app/views/ish_manager/email_conversations/index.haml +25 -9
  14. data/app/views/ish_manager/email_conversations/show.haml +67 -64
  15. data/app/views/ish_manager/galleries/_index.haml +1 -1
  16. data/app/views/ish_manager/leadsets/index.haml +1 -1
  17. data/app/views/ish_manager/leadsets/index_dataTables.haml +1 -1
  18. data/config/routes.rb +1 -0
  19. metadata +30 -30
  20. data/app/assets/stylesheets/ish_manager/leads_leadsets.scss +0 -115
  21. data/app/views/ish_manager/email_templates/plain.html.erb-trash +0 -4
  22. /data/app/views/{ish_manager/email_templates → 202310 Email Templates}/_acknowledgement_of_document_receipt.html.erb +0 -0
  23. /data/app/views/{ish_manager/email_templates → 202310 Email Templates}/_support_ticket_created.html.erb +0 -0
  24. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_black_friday.html.erb +0 -0
  25. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_christmas.html.erb +0 -0
  26. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_cinco_de_mayo.html.erb +0 -0
  27. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_columbus_day.html.erb +0 -0
  28. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_cyber_monday.html.erb +0 -0
  29. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_easter.html.erb +0 -0
  30. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_fathers_day.html.erb +0 -0
  31. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_flag_day.html.erb +0 -0
  32. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_groundhog_day.html.erb +0 -0
  33. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_halloween.html.erb +0 -0
  34. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_inauguration_day.html.erb +0 -0
  35. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_independence_day.html.erb +0 -0
  36. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_juneteenth.html.erb +0 -0
  37. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_labor_day.html.erb +0 -0
  38. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_may_forth.html.erb +0 -0
  39. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_memorial_day.html.erb +0 -0
  40. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_mlk.html.erb +0 -0
  41. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_mothers_day.html.erb +0 -0
  42. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_newyear.html.erb +0 -0
  43. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_presidents_day.html.erb +0 -0
  44. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_st_patricks.html.erb +0 -0
  45. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_thanksgiving.html.erb +0 -0
  46. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_valentines.html.erb +0 -0
  47. /data/app/views/ish_manager/{email_templates → email_template_holiday_cards}/_m202309_holiday_veterans_day.html.erb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61a08aa42686c6ad6bb986b26249d6fa7d43d286e178370ab85389e4220437f9
4
- data.tar.gz: 1a99d14da57b8625b7ffd4e431df56eaf87f54d74fb7f4e311e99f1f59fbdb6b
3
+ metadata.gz: 4cc91f9b554ed9df6ac0f58a31e304f1724621e5a67f2e3e5215dd7ea30df711
4
+ data.tar.gz: 0725043735f539fab19f79235727127af569245611e84cc2c6747a24fc51ec93
5
5
  SHA512:
6
- metadata.gz: 72a7c92da0efda3cac82cbf74529ae5ab301a3857f4e5c46499cff036ca0ef5e879f9e9f4171b5356422fd494128df45b72e55373b0baefba18a8778d905224d
7
- data.tar.gz: 52c18f478b17fa446453169135c3d394f3ad07b1436176e4b7dfbee5175425d82f480aafec329ef3c8035eea739692ad3d2a03441dd925f912e8adc75f59b6e2
6
+ metadata.gz: 2f548df9bc7bb60a6a5a840e94c0e09f12eab494828c4125e3b9a57eec47c6c38be959aa5f69ec1625278254cd808c3c55d3d73edb1e103a52919b52583bf7c5
7
+ data.tar.gz: 76e9ba931280138047f57289577c31ee19b11ad4cd874af6f52d073f68ee03adf7f7d6a286687d48c4570eb6af831c8abe06aa4d46d53ea755f47677014210d6
@@ -18,6 +18,8 @@ $(document).ready(() => {
18
18
  })
19
19
 
20
20
  $(".archive-btn").click(function(e) {
21
+ if ( !confirm('Are you sure?') ) { return; }
22
+
21
23
  const jwt_token = $("#Config").data('jwt-token')
22
24
  const action_path = $(this).data('url')
23
25
  const out = []
@@ -45,7 +47,75 @@ $(document).ready(() => {
45
47
 
46
48
  })
47
49
 
50
+ $(".add-tag-btn").click(function(e) {
51
+ if ( !confirm('Are you sure?') ) { return; }
52
+
53
+ const jwt_token = $("#Config").data('jwt-token')
54
+ const action_path = $(this).data('url')
55
+ const emailtag = $("select[name='emailtag']").val()
56
+ const out = []
57
+
58
+ $( $("input[type='checkbox'].i-sel:checked") ).each( idx => {
59
+ let val = $($("input[type='checkbox'].i-sel:checked")[idx]).val()
60
+ out.push(val)
61
+ })
62
+
63
+ $.ajax({
64
+ url: action_path,
65
+ type: 'POST',
66
+ data: {
67
+ ids: out,
68
+ jwt_token: jwt_token,
69
+ emailtag: emailtag,
70
+
71
+ },
72
+ success: e => {
73
+ logg((e||{}).responseText, 'Ok')
74
+ location.reload()
75
+ },
76
+ error: e => {
77
+ logg((e||{}).responseText, 'Err')
78
+ },
79
+ })
80
+
81
+ })
82
+
83
+ $(".remove-tag-btn").click(function(e) {
84
+ if ( !confirm('Are you sure?') ) { return; }
85
+
86
+ const jwt_token = $("#Config").data('jwt-token')
87
+ const action_path = $(this).data('url')
88
+ const emailtag = $("select[name='emailtag']").val()
89
+ const out = []
90
+
91
+ $( $("input[type='checkbox'].i-sel:checked") ).each( idx => {
92
+ let val = $($("input[type='checkbox'].i-sel:checked")[idx]).val()
93
+ out.push(val)
94
+ })
95
+
96
+ $.ajax({
97
+ url: action_path,
98
+ type: 'POST',
99
+ data: {
100
+ ids: out,
101
+ jwt_token: jwt_token,
102
+ emailtag: emailtag,
103
+
104
+ },
105
+ success: e => {
106
+ logg((e||{}).responseText, 'Ok')
107
+ location.reload()
108
+ },
109
+ error: e => {
110
+ logg((e||{}).responseText, 'Err')
111
+ },
112
+ })
113
+
114
+ })
115
+
48
116
  $(".delete-btn").click(function(e) {
117
+ if ( !confirm('Are you sure?') ) { return; }
118
+
49
119
  const jwt_token = $("#Config").data('jwt-token')
50
120
  const action_path = $(this).data('url')
51
121
  const out = []
@@ -10,8 +10,8 @@
10
10
  * label becomes the name of the object (stripped to [0-9a-zA-Z\-_] chars). If you're logging a function, you can execute it.
11
11
  * If you log more than one thing, they can interact, allowing you to validate control flow.
12
12
  * * the logger can be turned off by making this function simply return.
13
- */
14
- function logg (a, b="", c=null) {
13
+ **/
14
+ function logg (a, b="", c=null) {
15
15
  c = "string" === typeof c ? c : b.replace(/\W/g, "");
16
16
  if (c.length > 0) {
17
17
  window[c] = a;
@@ -5,6 +5,7 @@
5
5
  * require ish_manager/vendor/summernote-bs4.min
6
6
  *
7
7
  *= require ish_manager/variables
8
+ *= require ish_manager/utils_bootstrap
8
9
  *= require_self
9
10
  *= require ish_manager/appliances
10
11
  *= require ish_manager/email_contexts
@@ -15,7 +16,8 @@
15
16
  *= require ish_manager/galleries
16
17
  *= require ish_manager/iro
17
18
  *= require ish_manager/iro1
18
- *= require ish_manager/leads_leadsets
19
+ *= require ish_manager/leads
20
+ *= require ish_manager/leadsets
19
21
  *= require ish_manager/leadsets
20
22
  *= require ish_manager/maps
21
23
  *= require ish_manager/markers
@@ -99,11 +101,7 @@ ul:not(.browser-default).bullets, {
99
101
  width: 100vwh;
100
102
  overflow-x: auto;
101
103
  }
102
- // .application-home {
103
- // .bordered-card {
104
- // display: inline-block;
105
- // }
106
- // }
104
+
107
105
 
108
106
 
109
107
  /* B */
@@ -137,14 +135,6 @@ table.bordered {
137
135
  }
138
136
  }
139
137
 
140
- // .bordered-card {
141
- // border: 1px solid grey;
142
- // padding: .5em;
143
- // border-radius: 8px;
144
- // margin-bottom: .5em;
145
- // padding: 0.5em;
146
- // }
147
-
148
138
  .btn {
149
139
  border: 1px solid red;
150
140
  }
@@ -167,6 +157,14 @@ table.bordered {
167
157
  text-align: center;
168
158
  }
169
159
 
160
+ .chip {
161
+ display: inline;
162
+
163
+ border: 1px solid #eee;
164
+ border-radius: 0.5em;
165
+ padding: 0.1em .3em;
166
+ background: #fff;
167
+ }
170
168
  .chip {
171
169
  // border: 1px solid black;
172
170
  border-radius: 1em 0 0 1em;
@@ -269,6 +267,12 @@ table.dataTable {
269
267
 
270
268
 
271
269
 
270
+ .doc {
271
+ max-width: 555px;
272
+ }
273
+
274
+ /* E */
275
+
272
276
  .expand-hide {
273
277
  display: none;
274
278
  position: absolute;
@@ -423,6 +427,12 @@ textarea.large {
423
427
  background: url('//d15g8hc4183yn4.cloudfront.net/wp-content/uploads/2022/10/05192822/weather-bg-development.png');
424
428
  }
425
429
 
430
+ #mainW {
431
+ // border: 1px solid red;
432
+ margin-top: -20px;
433
+ font-size: .8em;
434
+ }
435
+
426
436
  .manager--main-footer {
427
437
  background: url('//d15g8hc4183yn4.cloudfront.net/wp-content/uploads/2022/10/05192823/weather-bg.png');
428
438
  border-top: 2px solid red;
@@ -534,6 +544,9 @@ textarea.large {
534
544
  height: 100px;
535
545
  }
536
546
 
547
+
548
+
549
+
537
550
  /* U */
538
551
 
539
552
  /* V */
@@ -56,70 +56,6 @@
56
56
  }
57
57
  }
58
58
 
59
- .leads-list {
60
- margin: 1em 0;
61
-
62
- .item {
63
- display: inline;
64
-
65
- border: 1px solid green;
66
- border-radius: 0.5em;
67
- padding: 0.5em;
68
-
69
- margin-right: 0.5em;
70
-
71
- }
72
- }
73
-
74
- /* these are inside a conversation. _vp_ 2023-02-28 */
75
- .messages-list {
76
- // border: 1px solid red;
77
-
78
- padding-left: 0;
79
- list-style-type: none;
80
-
81
- .item:first-child {
82
- border-top: 1px solid var(--m3-dol-accent-color);
83
- }
84
- .item {
85
- border-bottom: 1px solid var(--m3-dol-accent-color);
86
- margin-bottom: 0.2em;
87
-
88
- padding: 0.5em 0;
89
-
90
- iframe {
91
- // border: 2px solid yellow;
92
-
93
- width: 100%;
94
- min-height: 500px;
95
- height: 75vh;
96
- }
97
-
98
- .my-actions {
99
- display: flex;
100
- flex-direction: column;
101
- }
102
-
103
- .preview {
104
- // border: 1px solid gold;
105
-
106
- display: inline-block;
107
- width: 100%;
108
- white-space: nowrap;
109
- overflow: hidden;
110
- text-overflow: ellipsis;
111
- }
112
-
113
- .row-1 {
114
- display: flex;
115
- justify-content: space-between;
116
- }
117
-
118
- .to-expand {
119
- display: none;
120
- }
121
- }
122
- }
123
59
 
124
60
  .participants {
125
61
  width: 250px;
@@ -155,6 +91,10 @@
155
91
  .subject {
156
92
  margin: 0 1em;
157
93
  font-weight: bold;
94
+
95
+ &:before {
96
+ content: "Subj: ";
97
+ }
158
98
  }
159
99
 
160
100
 
@@ -1,4 +1,55 @@
1
1
 
2
+ .email-messages-list {
3
+ // border: 1px solid red;
4
+
5
+ padding-left: 0;
6
+ list-style-type: none;
7
+
8
+ .item:first-child {
9
+ border-top: 1px solid var(--m3-dol-accent-color);
10
+ }
11
+ .item {
12
+ border-bottom: 1px solid var(--m3-dol-accent-color);
13
+ margin-bottom: 0.2em;
14
+
15
+ padding: 0.5em 0;
16
+
17
+ position: relative;
18
+
19
+ iframe {
20
+ // border: 2px solid yellow;
21
+
22
+ width: 100%;
23
+ min-height: 500px;
24
+ height: 75vh;
25
+ }
26
+
27
+ .my-actions {
28
+ display: flex;
29
+ flex-direction: column;
30
+ }
31
+
32
+ .preview {
33
+ // border: 1px solid gold;
34
+
35
+ display: inline-block;
36
+ width: 100%;
37
+ white-space: nowrap;
38
+ overflow: hidden;
39
+ text-overflow: ellipsis;
40
+ }
41
+
42
+ .row-1 {
43
+ display: flex;
44
+ justify-content: space-between;
45
+ }
46
+
47
+ .to-expand {
48
+ display: none;
49
+ }
50
+ }
51
+ }
52
+
2
53
  .email-messages-show {
3
54
 
4
55
  .main-actions {
@@ -0,0 +1,26 @@
1
+
2
+
3
+ .leads-list {
4
+ margin: 1em 0;
5
+
6
+ .item {
7
+ /* display-block in email-conversations-show */
8
+ // display: inline;
9
+
10
+ border: 1px solid green;
11
+ border-radius: 0.5em;
12
+ padding: 0.5em;
13
+ margin: 0 0.5em 0.5em 0;
14
+
15
+ }
16
+ }
17
+
18
+ // .manager-leads-index {
19
+ // th.company-url {
20
+ // width: 10px;
21
+ // }
22
+ // th.created-at,
23
+ // td.created-at {
24
+ // width: 200px;
25
+ // }
26
+ // }
@@ -1,4 +1,78 @@
1
1
 
2
+
3
+ .leadsets-index {
4
+ padding: 1em;
5
+
6
+ > .actions label {
7
+ border: 1px solid #fff;
8
+ padding: 0.5em;
9
+ border-radius: 0.5em;
10
+ background: #eee;
11
+
12
+ > * {
13
+ display: inline;
14
+ }
15
+ }
16
+
17
+ th.leads {
18
+ margin-left: 1em;
19
+ }
20
+ td.leads {
21
+ margin-left: 1em;
22
+ vertical-align: top;
23
+
24
+ .item {
25
+ display: flex;
26
+ align-items: flex-start;
27
+
28
+ .actions {
29
+ display: flex;
30
+ }
31
+ }
32
+ }
33
+
34
+ form.form-mini {
35
+ border: 1px solid red;
36
+ border-radius: .5em;
37
+ padding: 1em;
38
+ background: white;
39
+
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: center;
43
+
44
+ position: absolute;
45
+ top: 0;
46
+ width: 300px;
47
+ right: -300px;
48
+
49
+ z-index: 2;
50
+
51
+ .field {
52
+ display: flex;
53
+ }
54
+
55
+ .actions {
56
+ margin-top: .5em;
57
+ width: 100%;
58
+ text-align: right;
59
+ }
60
+ }
61
+
62
+ .scheduled {
63
+ position: relative;
64
+ display: flex;
65
+
66
+ .chip {
67
+ border: 2px solid cyan;
68
+ display: flex;
69
+ flex-direction: column;
70
+ }
71
+ }
72
+
73
+ }
74
+
75
+
2
76
  .leadsets-show {
3
77
  .serverhosts--index {
4
78
  li.leadset_id {
@@ -1,4 +1,20 @@
1
1
 
2
+
3
+ .tags {
4
+ // background: #eee;
5
+
6
+ display: flex;
7
+ flex-wrap: wrap;
8
+
9
+ max-width: 400px;
10
+ }
11
+
12
+ .tags-add {
13
+ position: relative;
14
+ vertical-align: top;
15
+ }
16
+
17
+
2
18
  form.tags--form-mini {
3
19
  display: flex;
4
20
  }
@@ -25,4 +41,3 @@ form.tags--form-mini {
25
41
  }
26
42
  }
27
43
 
28
-
@@ -0,0 +1,21 @@
1
+
2
+ /* I */
3
+
4
+ .inline-block {
5
+ form {
6
+ display: inline-block;
7
+ }
8
+ }
9
+
10
+ /* R */
11
+
12
+ .right-0 {
13
+ right: 0;
14
+ }
15
+
16
+ /* T */
17
+
18
+ .top-0 {
19
+ top: 0;
20
+ }
21
+
@@ -22,5 +22,12 @@ class ::IshManager::CategoriesController < IshManager::ApplicationController
22
22
  @leads = @leads.page( params[:leads_page] ).per( current_profile.per_page )
23
23
  end
24
24
 
25
+ def create_email_tag
26
+ @tag = WpTag.emailtag( params[:tag][:name] )
27
+ authorize! :create, @tag
28
+ @tag.persisted? ? flash_notice('persisted') : flash_alert('cannot save tag')
29
+ redirect_to request.referrer ? request.referrer : email_conversations_path
30
+ end
31
+
25
32
  end
26
33
 
@@ -7,6 +7,10 @@ class ::IshManager::EmailConversationsController < IshManager::ApplicationContro
7
7
  authorize! :email_conversations_index, IshManager::Ability
8
8
  @email_conversations = ::Office::EmailConversation.all
9
9
 
10
+ @new_tag = WpTag.new
11
+ @emailtags = WpTag.emailtags
12
+ @emailtags_list = [[nil,nil]] + WpTag.emailtags.map { |p| [ p.name, p.slug ] }
13
+
10
14
  per_page = current_profile.per_page
11
15
  # if current_profile.per_page > 100
12
16
  # flash_notice "Cannot display more than 100 conversations per page."
@@ -3,21 +3,26 @@
3
3
 
4
4
  .second-header
5
5
  %i.material-icons mail
6
- = link_to email_conversations_in_path(WpTag::INBOX) do
7
- Inbox (#{Office::EmailConversation.in_emailtag(WpTag::INBOX).length})
8
- = link_to email_conversations_notin_path(WpTag::INBOX) do
9
- Not Inbox (#{Office::EmailConversation.not_in_emailtag(WpTag::INBOX).length})
10
-
11
- = link_to email_conversations_in_path(WpTag::TRASH) do
12
- Trash (#{Office::EmailConversation.in_emailtag(WpTag::TRASH).length})
13
- = link_to email_conversations_notin_path(WpTag::TRASH) do
14
- Not Trash (#{Office::EmailConversation.not_in_emailtag(WpTag::TRASH).length})
15
6
 
16
7
  - if params[:slug]
17
8
  slug: #{params[:slug]}
18
9
  - if params[:not_slug]
19
10
  not slug: #{params[:not_slug]}
20
11
 
12
+ - @emailtags.each do |emailtag|
13
+ .bordered.inline-block
14
+ = link_to email_conversations_in_path(emailtag.slug) do
15
+ #{emailtag.name} (#{Office::EmailConversation.in_emailtag(emailtag.slug).length})
16
+ = link_to email_conversations_notin_path(emailtag.slug) do
17
+ Not #{emailtag.name} (#{Office::EmailConversation.not_in_emailtag(emailtag.slug).length})
18
+
19
+
20
+ .bordered.inline-block
21
+ = form_for @new_tag, url: :create_email_tag, as: :tag do |f|
22
+ %label New Tag:
23
+ = f.text_field :name
24
+ = f.submit '>'
25
+
21
26
  .actions
22
27
 
23
28
  %a.btn.archive-btn{ href: "javascript: void(0)", data: { url: "/api/email_conversations/rmtag/#{WpTag::INBOX}" } }
@@ -30,6 +35,17 @@
30
35
  %i.material-icons refresh
31
36
  refresh
32
37
 
38
+ .bordered.inline-block
39
+ = select_tag :emailtag, options_for_select(@emailtags_list)
40
+ %a.btn.add-tag-btn{ href: "javascript: void(0)", data: { url: "/api/email_conversations/addtag" } }
41
+ %i.material-icons add
42
+ Addtag
43
+ %a.btn.remove-tag-btn{ href: "javascript: void(0)", data: { url: "/api/email_conversations/rmtag" } }
44
+ %i.material-icons remove
45
+ Rmtag
46
+
47
+
48
+
33
49
  %br
34
50
  %br
35
51
  = render 'paginate', resource: @email_conversations, param_name: :conv_page, views_prefix: :ish_manager
@@ -1,79 +1,82 @@
1
1
 
2
- .email-conversations-show
2
+ .email-conversations-show.padded
3
+ .row
4
+ .col-sm-12.col-md-8
3
5
 
4
- .padded
6
+ .email-messages-list
7
+ - @email_messages.each do |msg|
8
+ - lead = msg.lead || Lead.new(email: 'NO LEAD!', id: 'no lead')
5
9
 
6
- .header
7
- = link_to '[<<-]', email_conversations_path
8
- %i.material-icons mail
10
+ .item.msg-container{ data: { msg: { id: msg.id } } }
11
+ .gray.row
12
+ .col-md-6
13
+ .a <b>From:</b> #{lead.email}
14
+ .a <b>To:</b> #{msg.to}
15
+ .col-md-6
16
+ .a <b>msg.id:</b> #{msg.id}
17
+ .a <b>object_key:</b> #{msg.object_key}
9
18
 
10
- .subject #{@email_conversation.subject}
11
- (#{@email_conversation.email_messages.all.count})
12
19
 
13
- .tags-list
14
- %b Tags (#{@email_conversation.tags.length}):
15
- -# = @email_conversation.wp_term_ids
16
- - @email_conversation.tags.each do |tag|
17
- .chip= link_to "[#{tag.term_id}] #{tag.name}", category_path( tag )
20
+ .position-absolute.top-0.right-0.datetime
21
+ .date= msg.date&.strftime('%Y-%m-%d') || 'none'
22
+ .time= msg.date&.strftime('%l:%M%P') || 'none'
18
23
 
19
- .leads-list
20
- %b Leads (#{@email_conversation.leads.length}):
21
- - @email_conversation.leads.each do |lead|
22
- .item
23
- = link_to "#{lead.id} #{lead.email}", lead_path(lead)
24
- \(ctxs:
25
- = link_to email_contexts_for_lead_path( lead ) do
26
- = lead.email_contexts.count
27
- %i.fa.fa-envelope
28
- .relative.inline-block
29
- %i.fa.fa-plus.expand-next
30
- .expand-hide= render 'ish_manager/email_contexts/form', ctx: Ctx.new({ lead_id: lead.id, email_template: Tmpl.blank })
31
- \)
32
- .relative.inline-block
33
- %i.fa.fa-clock-o.expand-next{ style: "color: red;" }
34
- .expand-hide= render 'ish_manager/scheduled_email_actions/form', scheduled_email_action: Sch.new({ lead_id: lead.id })
24
+ .row-2
25
+ .flexy
26
+ = link_to "Expand w/img", ishapi.email_message_path(msg, jwt_token: @jwt_token, load_images: true ), target: msg.message_id, class: 'preview-btn', data: { msg: { id: msg.id.to_s } }
27
+ \- or -
28
+ = link_to "Expand", ishapi.email_message_path(msg, jwt_token: @jwt_token ), target: msg.message_id, class: 'preview-btn', data: { msg: { id: msg.id.to_s } }
29
+ = msg.preview_str
35
30
 
36
- .messages-list
37
- - @email_messages.each do |msg|
38
- - lead = msg.lead || Lead.new(email: 'NO LEAD!', id: 'no lead')
31
+ .ml-200.to-expand
39
32
 
40
- .item.msg-container{ data: { msg: { id: msg.id } } }
41
- .row-1
42
- .gray
43
- <b>From:</b> #{lead.email}
44
- <b>To:</b> #{msg.to}
45
- = msg.id
46
- <b>object_key:</b> #{msg.object_key}
33
+ - if msg.attachments.present?
34
+ .attachments
35
+ - msg.attachments.map do |att|
36
+ .item
37
+ %h5= att.photo.original_filename
38
+ = image_tag att.photo.url(:original)
47
39
 
40
+ %iframe{ name: msg.message_id }
48
41
 
49
- .datetime
50
- .date= msg.date&.strftime('%Y-%m-%d')
51
- .time= msg.date&.strftime('%l:%M%P')
42
+ = render 'ish_manager/email_contexts/form_reply', lead: lead
43
+ .collapse-expand.wco-collapse Reply
44
+ .bordered.mt-3.wco-collapsed
45
+ = render 'ish_manager/email_contexts/form', ctx: Ctx.new({ lead_id: lead.id, email_template: Tmpl.blank_template, from_email: msg.to, subject: msg.subject, body: (msg.part_html||msg.part_txt) }), lead: lead
46
+ -# = button_to 'Reply'
47
+ -# = button_to 'Reply All'
48
+ -# = button_to 'New Template'
49
+ -# = button_to 'Schedule Reply'
50
+ -# = render 'ish_manager/email_templates/form_schedule_mini'
52
51
 
53
- .row-2
54
- .flexy
55
- = link_to "Expand w/img", ishapi.email_message_path(msg, jwt_token: @jwt_token, load_images: true ), target: msg.message_id, class: 'preview-btn', data: { msg: { id: msg.id.to_s } }
56
- \- or -
57
- = link_to "Expand", ishapi.email_message_path(msg, jwt_token: @jwt_token ), target: msg.message_id, class: 'preview-btn', data: { msg: { id: msg.id.to_s } }
58
- = msg.preview_str
52
+ .col-sm-12.col-md-4
59
53
 
60
- .ml-200.to-expand
54
+ .header
55
+ = link_to '[<<-]', email_conversations_path
56
+ %i.material-icons mail
61
57
 
62
- - if msg.attachments.present?
63
- .attachments
64
- - msg.attachments.map do |att|
65
- .item
66
- %h5= att.photo.original_filename
67
- = image_tag att.photo.url(:original)
58
+ .subject #{@email_conversation.subject}
59
+ (#{@email_conversation.email_messages.all.count})
68
60
 
69
- %iframe{ name: msg.message_id }
61
+ .tags-list
62
+ %b Tags (#{@email_conversation.tags.length}):
63
+ -# = @email_conversation.wp_term_ids
64
+ - @email_conversation.tags.each do |tag|
65
+ .chip= link_to "[#{tag.term_id}] #{tag.name}", category_path( tag )
70
66
 
71
- = render 'ish_manager/email_contexts/form_reply', lead: lead
72
- .collapse-expand.wco-collapse Reply
73
- .bordered.mt-3.wco-collapsed
74
- = render 'ish_manager/email_contexts/form', ctx: Ctx.new({ lead_id: lead.id, email_template: Tmpl.blank_template, from_email: msg.to, subject: msg.subject, body: (msg.part_html||msg.part_txt) }), lead: lead
75
- -# = button_to 'Reply'
76
- -# = button_to 'Reply All'
77
- -# = button_to 'New Template'
78
- -# = button_to 'Schedule Reply'
79
- -# = render 'ish_manager/email_templates/form_schedule_mini'
67
+ .leads-list
68
+ %b Leads (#{@email_conversation.leads.length}):
69
+ - @email_conversation.leads.each do |lead|
70
+ .item
71
+ = link_to "#{lead.id} #{lead.email}", lead_path(lead)
72
+ \(ctxs:
73
+ = link_to email_contexts_for_lead_path( lead ) do
74
+ = lead.email_contexts.count
75
+ %i.fa.fa-envelope
76
+ .relative.inline-block
77
+ %i.fa.fa-plus.expand-next
78
+ .expand-hide= render 'ish_manager/email_contexts/form', ctx: Ctx.new({ lead_id: lead.id, email_template: Tmpl.blank })
79
+ \)
80
+ .relative.inline-block
81
+ %i.fa.fa-clock-o.expand-next{ style: "color: red;" }
82
+ .expand-hide= render 'ish_manager/scheduled_email_actions/form', scheduled_email_action: Sch.new({ lead_id: lead.id })
@@ -20,7 +20,7 @@
20
20
  .row
21
21
  - galleries.each do |g|
22
22
  .col-sm-12.col-md-6
23
- .bordered-card
23
+ .Card
24
24
  %h5
25
25
  = link_to '[~]', edit_gallery_path( g )
26
26
  = link_to g.name, gallery_path(g.slug)
@@ -1,5 +1,5 @@
1
1
 
2
- .manager-leadsets-index
2
+ .leadsets-index
3
3
  %h5
4
4
  = link_to 'Leadsets', leadsets_path
5
5
  (#{Leadset.kept.length})
@@ -1,5 +1,5 @@
1
1
 
2
- .manager-leadsets-index
2
+ .leadsets-index
3
3
  %h5
4
4
  = link_to 'Leadsets', leadsets_path
5
5
  (#{Leadset.kept.length})
data/config/routes.rb CHANGED
@@ -15,6 +15,7 @@ IshManager::Engine.routes.draw do
15
15
  resources :appliance_tmpls
16
16
 
17
17
  # get 'categories', to: 'categories#index'
18
+ post '/categories/create-email-tag', to: 'categories#create_email_tag', as: :create_email_tag
18
19
  resources :categories
19
20
 
20
21
  resources 'events'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ish_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.495
4
+ version: 0.1.8.497
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-29 00:00:00.000000000 Z
11
+ date: 2023-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -464,7 +464,7 @@ files:
464
464
  - app/assets/stylesheets/ish_manager/galleries.scss
465
465
  - app/assets/stylesheets/ish_manager/iro.scss
466
466
  - app/assets/stylesheets/ish_manager/iro1.scss
467
- - app/assets/stylesheets/ish_manager/leads_leadsets.scss
467
+ - app/assets/stylesheets/ish_manager/leads.scss
468
468
  - app/assets/stylesheets/ish_manager/leadsets.scss
469
469
  - app/assets/stylesheets/ish_manager/maps.scss
470
470
  - app/assets/stylesheets/ish_manager/markers.scss
@@ -477,6 +477,7 @@ files:
477
477
  - app/assets/stylesheets/ish_manager/tags.scss
478
478
  - app/assets/stylesheets/ish_manager/trash/pagination.scss
479
479
  - app/assets/stylesheets/ish_manager/user_profiles.scss
480
+ - app/assets/stylesheets/ish_manager/utils_bootstrap.scss
480
481
  - app/assets/stylesheets/ish_manager/variables.css
481
482
  - app/assets/stylesheets/ish_manager/vendor/jquery-ui.css
482
483
  - app/assets/stylesheets/ish_manager/vendor/summernote-bs4.min.css
@@ -568,6 +569,8 @@ files:
568
569
  - app/views/202212 Mailchimp Templates/202212 theme subtle.html
569
570
  - app/views/202212 Mailchimp Templates/202212 theme ticket.html
570
571
  - app/views/202212 Mailchimp Templates/202212 theme whale.html
572
+ - app/views/202310 Email Templates/_acknowledgement_of_document_receipt.html.erb
573
+ - app/views/202310 Email Templates/_support_ticket_created.html.erb
571
574
  - app/views/ish_manager/analytics/_menu.haml
572
575
  - app/views/ish_manager/analytics/index.haml
573
576
  - app/views/ish_manager/analytics/test.haml
@@ -639,7 +642,30 @@ files:
639
642
  - app/views/ish_manager/email_messages/show_iframe.haml
640
643
  - app/views/ish_manager/email_messages/show_source.haml
641
644
  - app/views/ish_manager/email_messages/show_stripped.haml
642
- - app/views/ish_manager/email_templates/_acknowledgement_of_document_receipt.html.erb
645
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_black_friday.html.erb
646
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_christmas.html.erb
647
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_cinco_de_mayo.html.erb
648
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_columbus_day.html.erb
649
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_cyber_monday.html.erb
650
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_easter.html.erb
651
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_fathers_day.html.erb
652
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_flag_day.html.erb
653
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_groundhog_day.html.erb
654
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_halloween.html.erb
655
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_inauguration_day.html.erb
656
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_independence_day.html.erb
657
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_juneteenth.html.erb
658
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_labor_day.html.erb
659
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_may_forth.html.erb
660
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_memorial_day.html.erb
661
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_mlk.html.erb
662
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_mothers_day.html.erb
663
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_newyear.html.erb
664
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_presidents_day.html.erb
665
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_st_patricks.html.erb
666
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_thanksgiving.html.erb
667
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_valentines.html.erb
668
+ - app/views/ish_manager/email_template_holiday_cards/_m202309_holiday_veterans_day.html.erb
643
669
  - app/views/ish_manager/email_templates/_form.haml
644
670
  - app/views/ish_manager/email_templates/_form_mini.haml
645
671
  - app/views/ish_manager/email_templates/_form_reply_mini.haml
@@ -648,30 +674,6 @@ files:
648
674
  - app/views/ish_manager/email_templates/_m20221201react.html.erb
649
675
  - app/views/ish_manager/email_templates/_m20221222merryxmas.html.erb
650
676
  - app/views/ish_manager/email_templates/_m202309_feedback.html.erb
651
- - app/views/ish_manager/email_templates/_m202309_holiday_black_friday.html.erb
652
- - app/views/ish_manager/email_templates/_m202309_holiday_christmas.html.erb
653
- - app/views/ish_manager/email_templates/_m202309_holiday_cinco_de_mayo.html.erb
654
- - app/views/ish_manager/email_templates/_m202309_holiday_columbus_day.html.erb
655
- - app/views/ish_manager/email_templates/_m202309_holiday_cyber_monday.html.erb
656
- - app/views/ish_manager/email_templates/_m202309_holiday_easter.html.erb
657
- - app/views/ish_manager/email_templates/_m202309_holiday_fathers_day.html.erb
658
- - app/views/ish_manager/email_templates/_m202309_holiday_flag_day.html.erb
659
- - app/views/ish_manager/email_templates/_m202309_holiday_groundhog_day.html.erb
660
- - app/views/ish_manager/email_templates/_m202309_holiday_halloween.html.erb
661
- - app/views/ish_manager/email_templates/_m202309_holiday_inauguration_day.html.erb
662
- - app/views/ish_manager/email_templates/_m202309_holiday_independence_day.html.erb
663
- - app/views/ish_manager/email_templates/_m202309_holiday_juneteenth.html.erb
664
- - app/views/ish_manager/email_templates/_m202309_holiday_labor_day.html.erb
665
- - app/views/ish_manager/email_templates/_m202309_holiday_may_forth.html.erb
666
- - app/views/ish_manager/email_templates/_m202309_holiday_memorial_day.html.erb
667
- - app/views/ish_manager/email_templates/_m202309_holiday_mlk.html.erb
668
- - app/views/ish_manager/email_templates/_m202309_holiday_mothers_day.html.erb
669
- - app/views/ish_manager/email_templates/_m202309_holiday_newyear.html.erb
670
- - app/views/ish_manager/email_templates/_m202309_holiday_presidents_day.html.erb
671
- - app/views/ish_manager/email_templates/_m202309_holiday_st_patricks.html.erb
672
- - app/views/ish_manager/email_templates/_m202309_holiday_thanksgiving.html.erb
673
- - app/views/ish_manager/email_templates/_m202309_holiday_valentines.html.erb
674
- - app/views/ish_manager/email_templates/_m202309_holiday_veterans_day.html.erb
675
677
  - app/views/ish_manager/email_templates/_m202309_ror4.html.erb
676
678
  - app/views/ish_manager/email_templates/_marketing_node_1.html.erb
677
679
  - app/views/ish_manager/email_templates/_marketing_react_1.html
@@ -691,7 +693,6 @@ files:
691
693
  - app/views/ish_manager/email_templates/_slug-1.html.erb
692
694
  - app/views/ish_manager/email_templates/_slug-2.html.erb
693
695
  - app/views/ish_manager/email_templates/_slug-3.html.erb
694
- - app/views/ish_manager/email_templates/_support_ticket_created.html.erb
695
696
  - app/views/ish_manager/email_templates/_tracking_footer.html.erb
696
697
  - app/views/ish_manager/email_templates/_wasyaco_roundborders.html.erb
697
698
  - app/views/ish_manager/email_templates/_wasyaco_social.html.erb
@@ -699,7 +700,6 @@ files:
699
700
  - app/views/ish_manager/email_templates/iframe_src.haml
700
701
  - app/views/ish_manager/email_templates/index.haml
701
702
  - app/views/ish_manager/email_templates/new.haml
702
- - app/views/ish_manager/email_templates/plain.html.erb-trash
703
703
  - app/views/ish_manager/email_templates/show.haml
704
704
  - app/views/ish_manager/email_unsubscribes/new.haml
705
705
  - app/views/ish_manager/events/_form.haml
@@ -1,115 +0,0 @@
1
-
2
- .doc {
3
- max-width: 555px;
4
- }
5
-
6
- .manager-leads-index {
7
- th.company-url {
8
- width: 10px;
9
- }
10
- th.created-at,
11
- td.created-at {
12
- width: 200px;
13
- }
14
- }
15
-
16
- .manager-leadsets-index {
17
- padding: 1em;
18
-
19
- > .actions label {
20
- border: 1px solid #fff;
21
- padding: 0.5em;
22
- border-radius: 0.5em;
23
- background: #eee;
24
-
25
- > * {
26
- display: inline;
27
- }
28
- }
29
-
30
-
31
- .chip {
32
- display: inline;
33
-
34
- border: 1px solid #eee;
35
- border-radius: 0.5em;
36
- padding: 0.1em .3em;
37
- background: #fff;
38
- }
39
-
40
-
41
- th.leads {
42
- margin-left: 1em;
43
- }
44
- td.leads {
45
- margin-left: 1em;
46
- vertical-align: top;
47
-
48
- .item {
49
- display: flex;
50
- align-items: flex-start;
51
-
52
- .actions {
53
- display: flex;
54
- }
55
- }
56
- }
57
-
58
- form.form-mini {
59
- border: 1px solid red;
60
- border-radius: .5em;
61
- padding: 1em;
62
- background: white;
63
-
64
- display: flex;
65
- flex-direction: column;
66
- align-items: center;
67
-
68
- position: absolute;
69
- top: 0;
70
- width: 300px;
71
- right: -300px;
72
-
73
- z-index: 2;
74
-
75
- .field {
76
- display: flex;
77
- }
78
-
79
- .actions {
80
- margin-top: .5em;
81
- width: 100%;
82
- text-align: right;
83
- }
84
- }
85
-
86
- .scheduled {
87
- position: relative;
88
- display: flex;
89
-
90
- .chip {
91
- border: 2px solid cyan;
92
- display: flex;
93
- flex-direction: column;
94
- }
95
- }
96
-
97
- /* belongs here, not in tags.scss */
98
-
99
- .tags {
100
- // background: #eee;
101
-
102
- display: flex;
103
- flex-wrap: wrap;
104
-
105
- max-width: 400px;
106
- }
107
-
108
- .tags-add {
109
- position: relative;
110
- vertical-align: top;
111
- }
112
-
113
-
114
- }
115
-
@@ -1,4 +0,0 @@
1
-
2
-
3
- <%= raw @tmpl.body %>
4
-