ish_manager 0.1.8.505 → 0.1.8.507

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 908f6d6ce27dbc1350b08012a104e71691b39108e4b01e0005ae36a65802626c
4
- data.tar.gz: f2172c6fd2554c9ab133cd6041b2fa1b328a09356f8f177a54d44e56f52c8e84
3
+ metadata.gz: 30d8fffb3963caf574e73ae38e2dcdffebcfd384416542f40ce217ebd37536c1
4
+ data.tar.gz: 4502f818961170f170e18c98152b6ea2155a34fe5becc5f7431d9a938d312ab2
5
5
  SHA512:
6
- metadata.gz: d6b6733574d3c87c0a0934cd354de908d511a8c46481e577a1fd32fe3b0126497fa69c8946613b2025576d47944e0f51f33c37dda8fed7e3c7c3de729cde70e7
7
- data.tar.gz: 708286a7b172966900febcf9addd6798635354125e16de175eb3e0855f2c34a54bdd56daa69e711d254744a0533f42ca93cc0021b59859ecfe3768c29d24f697
6
+ metadata.gz: 748321ccb2752c0a8aa8cfa259808fe1056c279029707c54efe96dd8be36b63d1d64d1e7060dfecf3df52a7d8917161d87341b30220e8219f70635b0f578dcf2
7
+ data.tar.gz: aeac29f3bd45387784a06d185d28b3886b58c871f6e4bc69986b34fe48e32abd4a30df424a4c9d14621bf14bf68b583f12b102c4629599c0b21d85fa44244577
@@ -101,7 +101,7 @@ class IshManager::ApplicationController < ActionController::Base
101
101
  @blank_template = Tmpl.new
102
102
 
103
103
  @email_campaigns_list = [[nil,nil]] + Ish::EmailCampaign.all.map { |c| [ c.slug, c.id ] }
104
- @email_actions_list = [[nil,nil]] + Office::EmailAction.all.map { |a| [ a.slug, a.id ] }
104
+ @email_actions_list = EAct.list
105
105
  @email_templates_list = [[nil,nil]] + Ish::EmailTemplate.all.map { |t| [ t.slug, t.id ] }
106
106
  @email_tags_list = [[nil,nil]] + WpTag.email_tags.map { |t| [ t.name, t.id ] }
107
107
  @leads_list = Lead.list
@@ -5,6 +5,14 @@ class ::IshManager::EmailActionsController < IshManager::ApplicationController
5
5
 
6
6
  ## Alphabetized : )
7
7
 
8
+ def destroy
9
+ @act = @email_action = Office::EmailAction.find( params[:id] )
10
+ authorize! :delete, @act
11
+ @act.update_attributes({ deleted_at: Time.now })
12
+ flash_notice 'Probably success'
13
+ redirect_to action: :index
14
+ end
15
+
8
16
  def edit
9
17
  @act = @email_action = Office::EmailAction.find( params[:id] )
10
18
  @act.ties.push Office::EmailActionTie.new( next_email_action_id: nil )
@@ -12,7 +20,7 @@ class ::IshManager::EmailActionsController < IshManager::ApplicationController
12
20
  end
13
21
 
14
22
  def index
15
- @email_actions = Office::EmailAction.all
23
+ @email_actions = Office::EmailAction.where({ :deleted_at => nil })
16
24
 
17
25
  authorize! :index, @new_email_action
18
26
  end
@@ -0,0 +1,13 @@
1
+
2
+ class ::IshManager::EmailAttachmentsController < IshManager::ApplicationController
3
+
4
+ def show
5
+ att = Office::EmailAttachment.find params[:id]
6
+ authorize! :show, att
7
+ send_data(
8
+ att.content,
9
+ filename: att.filename || "this_download",
10
+ type: att.content_type )
11
+ end
12
+
13
+ end
@@ -25,6 +25,14 @@ class ::IshManager::EmailConversationsController < IshManager::ApplicationContro
25
25
  @email_conversations = @email_conversations.not_in_emailtag( params[:not_slug] )
26
26
  end
27
27
 
28
+ if params[:subject].present?
29
+ @email_conversations = @email_conversations.where({ subject: /.*#{params[:subject]}.*/i })
30
+ end
31
+
32
+ if params[:from_email].present?
33
+ @email_conversations = @email_conversations.where({ from_emails: /.*#{params[:from_email]}.*/i })
34
+ end
35
+
28
36
  @email_conversations = @email_conversations.order_by( latest_at: :desc
29
37
  ).includes( :email_messages # , :lead_ties
30
38
  ).page( params[:conv_page]
@@ -35,6 +35,7 @@ class ::IshManager::EmailFiltersController < ::IshManager::ApplicationController
35
35
 
36
36
  def index
37
37
  authorize! :index, Office::EmailFilter.new
38
+ @email_filter = Office::EmailFilter.new
38
39
  @email_filters = Office::EmailFilter.active
39
40
  end
40
41
 
@@ -67,7 +67,7 @@
67
67
  = text_field_tag :q
68
68
  = link_to '[+]', new_leadset_path
69
69
  %li
70
- = link_to "EActions (#{Office::EmailAction.all.length})", email_actions_path
70
+ = link_to "EActions", email_actions_path
71
71
  = link_to '[+]', new_email_action_path
72
72
  %ul
73
73
  %li
@@ -3,7 +3,7 @@
3
3
 
4
4
  .header
5
5
  %h2.title
6
- Email Actions
6
+ Email Actions (#{@email_actions.length})
7
7
  = link_to '[+]', new_email_action_path
8
8
 
9
9
  %table.bordered
@@ -15,7 +15,11 @@
15
15
  - @email_actions.each do |eact|
16
16
  %tr
17
17
  %td= check_box_tag 'abba'
18
- %td= link_to '[~]', edit_email_action_path( eact )
18
+ %td.flex-row
19
+
20
+ = link_to '[~]', edit_email_action_path( eact )
21
+ = button_to '[x]', email_action_path( eact ), data: { confirm: 'Are you sure?' }, method: :delete
22
+
19
23
  %td
20
24
  -# = link_to eact.slug, email_action_path( eact )
21
25
  = eact.slug
@@ -22,7 +22,18 @@
22
22
  %label New Tag:
23
23
  = f.text_field :name
24
24
  = f.submit '>'
25
-
25
+ .search.Card
26
+ .inline-block
27
+ = form_tag email_conversations_path do
28
+ %label Search from_email
29
+ = text_field_tag :from_email, params[:from_email]
30
+ -# = submit_tag '>'
31
+ -# .inline-block
32
+ -# = form_tag email_conversations_path do
33
+ %label by subject
34
+ = text_field_tag :subject, params[:subject]
35
+ = submit_tag '>'
36
+ .c
26
37
  .actions
27
38
 
28
39
  %a.btn.archive-btn{ href: "javascript: void(0)", data: { url: "/api/email_conversations/rmtag/#{WpTag::INBOX}" } }
@@ -20,9 +20,21 @@
20
20
  .a <b>From:</b> #{lead.email}
21
21
  .a <b>to's:</b> #{msg.tos&.join(", ")}
22
22
  .a <b>cc's:</b> #{msg.ccs&.join(", ")}
23
+
23
24
  .col-md-6
24
25
  .a <b>msg.id:</b> #{msg.id}
25
26
  .a <b>object_key:</b> #{msg.object_key}
27
+ .a
28
+ <b>N photos:</b> #{msg.attachments.length}
29
+ .a
30
+ <b>N email_attachments:</b>
31
+ - msg.email_attachments.each_with_index do |attachment, idx|
32
+ - if attachment.filename
33
+ .a= link_to attachment.filename, email_attachment_path( attachment )
34
+ - else
35
+ .a
36
+ = link_to '[view]', email_attachment_path( attachment )
37
+ "#{attachment.content_type.split(';')[0]} #{attachment.filename} #{idx}"
26
38
 
27
39
 
28
40
  .position-absolute.top-0.right-0.datetime
@@ -2,36 +2,39 @@
2
2
  - url = email_filter.new_record? ? email_filters_path : email_filter_path( email_filter )
3
3
  .email-filters--from
4
4
  = form_for email_filter, url: url, as: :email_filter do |f|
5
- .field
6
- %label From Regex
7
- = f.text_field :from_regex
8
- .field
9
- %label From Exact
10
- = f.text_field :from_exact
11
- .field
12
- %label Subject Regex
13
- = f.text_field :subject_regex
14
- .field
15
- %label Subject Exact
16
- = f.text_field :subject_exact
17
- -# .field
18
- -# %label Body Regex
19
- -# = f.text_field :body_regex
20
- .field
21
- %label Body Exact
22
- = f.text_field :body_exact
23
- %hr
24
- .field
25
- %label Kind
26
- = f.select :kind, options_for_select( ::Office::EmailFilter::KINDS, selected: email_filter.kind )
27
- .field
28
- %label Template
29
- = f.select :email_template_id, options_for_select(@email_templates_list, selected: params[:email_template_id] || email_filter.email_template_id ), {}, { class: 'select2' }
30
- .field
31
- = f.label :email_action
32
- = f.select :email_action, options_for_select( @email_actions_list, selected: email_filter.email_action_id ), {}, class: 'select2'
33
- .field
34
- = f.label :wp_term_id
35
- = f.select :wp_term_id, options_for_select( @email_tags_list, selected: email_filter.wp_term_id ), {}, class: 'select2'
36
- .actions
37
- = f.submit
5
+ .row.maxwidth
6
+ .col-md-6
7
+ .field
8
+ %label From Regex
9
+ = f.text_field :from_regex
10
+ .field
11
+ %label From Exact
12
+ = f.text_field :from_exact
13
+ .field
14
+ %label Subject Regex
15
+ = f.text_field :subject_regex
16
+ .field
17
+ %label Subject Exact
18
+ = f.text_field :subject_exact
19
+ -# .field
20
+ -# %label Body Regex
21
+ -# = f.text_field :body_regex
22
+ .field
23
+ %label Body Exact
24
+ = f.text_field :body_exact
25
+ .col-md-6
26
+
27
+ .field
28
+ %label Kind
29
+ = f.select :kind, options_for_select( ::Office::EmailFilter::KINDS, selected: email_filter.kind )
30
+ .field
31
+ %label Template
32
+ = f.select :email_template_id, options_for_select(@email_templates_list, selected: params[:email_template_id] || email_filter.email_template_id ), {}, { class: 'select2' }
33
+ .field
34
+ = f.label :email_action
35
+ = f.select :email_action, options_for_select( @email_actions_list, selected: email_filter.email_action_id ), {}, class: 'select2'
36
+ .field
37
+ = f.label :wp_term_id
38
+ = f.select :wp_term_id, options_for_select( @email_tags_list, selected: email_filter.wp_term_id ), {}, class: 'select2'
39
+ .actions
40
+ = f.submit
@@ -5,6 +5,13 @@
5
5
  Email Filters (#{@email_filters.length})
6
6
  = link_to '[+]', new_email_filter_path
7
7
 
8
+
9
+ .maxwidth
10
+ %hr
11
+ %h5.title.collapse-expand#newEmailFilter New Email Filter
12
+ = render 'form', email_filter: @email_filter
13
+ %hr
14
+
8
15
  -# %input#dataTableSearch
9
16
  %table.bordered.data-table
10
17
  %thead
@@ -8,6 +8,6 @@
8
8
  --<br />
9
9
  Victor Pudeyev<br />
10
10
  Software Engineering Lead<br />
11
- <a href="mailto:victor@piousbox.com">victor@piousbox.com</a>
11
+ <a href="mailto:victor@wasya.co">victor@wasya.co</a>
12
12
  |
13
- <a href="https://wasya.co/contact-us-4?<%= @utm_tracking_str %>">Book a chat</a><br />
13
+ <a href="https://tidycal.com/wasya-co/30min">Book a chat</a><br />
data/config/routes.rb CHANGED
@@ -79,6 +79,8 @@ IshManager::Engine.routes.draw do
79
79
  post :email_actions, to: 'email_actions#update'
80
80
  resources :email_actions
81
81
 
82
+ get 'email_attachments/:id', to: 'email_attachments#show', as: :email_attachment
83
+
82
84
  post 'email_campaigns/:id/send', to: 'email_campaigns#do_send', as: :send_email_campaign
83
85
  resources :email_campaigns
84
86
 
@@ -91,10 +93,12 @@ IshManager::Engine.routes.draw do
91
93
  get 'email_messages/stripped/:id', to: 'email_messages#show_stripped', as: :email_message_stripped
92
94
  resources :email_messages
93
95
 
94
- get 'email_conversations', to: 'email_conversations#index'
95
- get 'email_conversations/in/:slug', to: 'email_conversations#index', as: :email_conversations_in
96
- get 'email_conversations/notin/:not_slug', to: 'email_conversations#index', as: :email_conversations_notin
97
- get 'email_conversations/show/:id', to: 'email_conversations#show', as: :email_conversation
96
+ # post 'email_conversations/search', to: 'email_conversations#index', as: :search_email_convos
97
+ post 'email_conversations', to: 'email_conversations#index'
98
+ get 'email_conversations', to: 'email_conversations#index'
99
+ get 'email_conversations/in/:slug', to: 'email_conversations#index', as: :email_conversations_in
100
+ get 'email_conversations/notin/:not_slug', to: 'email_conversations#index', as: :email_conversations_notin
101
+ get 'email_conversations/show/:id', to: 'email_conversations#show', as: :email_conversation
98
102
 
99
103
  get 'email_contexts/summary', to: 'email_contexts#summary', as: :email_contexts_summary
100
104
  get 'email_contexts/for_lead/:lead_id', to: 'email_contexts#index', as: :email_contexts_for_lead
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.505
4
+ version: 0.1.8.507
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-04 00:00:00.000000000 Z
11
+ date: 2023-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -489,6 +489,7 @@ files:
489
489
  - app/controllers/ish_manager/application_mailer_controller.rb
490
490
  - app/controllers/ish_manager/categories_controller.rb
491
491
  - app/controllers/ish_manager/email_actions_controller.rb
492
+ - app/controllers/ish_manager/email_attachments_controller.rb
492
493
  - app/controllers/ish_manager/email_campaign_leads_controller.rb
493
494
  - app/controllers/ish_manager/email_campaigns_controller.rb
494
495
  - app/controllers/ish_manager/email_contexts_controller.rb
@@ -868,7 +869,6 @@ files:
868
869
  - app/views/ish_manager/user_profiles/index.haml
869
870
  - app/views/ish_manager/user_profiles/new.haml
870
871
  - app/views/ish_manager/user_profiles/show.haml
871
- - app/views/ish_manager/user_profiles/trash/_show.haml
872
872
  - app/views/ish_manager/users/_index.haml
873
873
  - app/views/ish_manager/users/index.haml
874
874
  - app/views/ish_manager/videos/_form.haml
@@ -1,39 +0,0 @@
1
- - profile ||= user_profile
2
-
3
- .user-profiles--show.max-width
4
- .header
5
- %h2.title Profile #{profile.email}
6
-
7
- .newsitems
8
- .title Newsitems (#{profile.newsitems.length})
9
- - profile.newsitems.each do |newsitem|
10
- = render 'ish_manager/newsitems/show', newsitem: newsitem
11
-
12
- .premium-purchases
13
- Payments (purchased items) (#{profile.payments.length}):
14
- - profile.payments.each do |payment|
15
- .Card.item
16
- = payment
17
-
18
-
19
- %ul
20
- %li
21
- <b>Email:</b> #{link_to profile.email, user_profile_path(profile)}
22
- = link_to '[edit]', edit_user_profile_path( profile )
23
- %li <b>Name:</b> #{profile.name}
24
- %li <b>Role:</b> #{profile.role_name}
25
- %li
26
- <b>Profile Photo:</b>
27
- = image_tag profile.profile_photo.photo.url(:thumb) rescue nil
28
-
29
- .col.s8
30
- %h5 Shared galleries
31
- - profile.shared_galleries.unscoped.where( :is_trash => false ).each do |g|
32
- &gt; #{link_to g.name, gallery_path(g.slug)} <br />
33
- = render 'meta', :item => g
34
- <hr />
35
-
36
- %h5 Newsitems
37
- - profile.newsitems.each do |n|
38
- = render 'ish_manager/newsitems/item', n: n, profile_id: profile.id
39
- <hr />