ish_manager 0.1.8.428 → 0.1.8.430

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: b9f691435726734a9202b8266f28b7fb9c62b8090f9f75ea1ba7c706c474a68c
4
- data.tar.gz: 873c4604a16c7612130fe758882aa97e6485fcbe74c391399a6ea10f39fb1b3a
3
+ metadata.gz: 7e6abbf238a452811df0495561ea410cf0a569b39065ad1067e829ee09d0091d
4
+ data.tar.gz: fe6580a8254170fcfc39b0feef97976bdd30e5b8272e57a8d85275d198e2a9bc
5
5
  SHA512:
6
- metadata.gz: afb5335ab24acfccd4dab998bd8c56e0418376208687ca06f93fc04d4842e385814c4b73c36bf261eff750687df4709fba794fc1bf36995db5761e103865dc27
7
- data.tar.gz: 23fe9362978d688d0fb6576b6fde208155dd48748889b9f2bb437ab10976ca47ce4f9822bea5511f51cd0817139b472ab1acbcf4373193a058f04c272c1b2b41
6
+ metadata.gz: b671d0e4eabdcd2e351d9fb0fa51661c6c8e6b52cd05d19af5f79a58cd67ea703f9159bcf882330ad4e0fec1d3c16c1e32d7d01123a38427b4bc52ef39733e2e
7
+ data.tar.gz: '008e15ce28bfdd511fdd4186081368a7989bfae05e8d424b04ef5408248233f070e35b81f356312284636581c940ae1ca4c19fb64ccd730184e2753ae50252d3'
@@ -3,6 +3,7 @@
3
3
  //= require ish_manager/vendor/jquery.ui.widget
4
4
  //= require ish_manager/vendor/jquery.fileupload
5
5
  //= require ish_manager/vendor/jquery-ui.min
6
+ //
6
7
  // require ish_manager/vendor/summernote-bs4.min
7
8
  //
8
9
  //= require ish_manager/shared
@@ -13,6 +14,7 @@
13
14
  //= require ish_manager/email_templates
14
15
  //= require ish_manager/galleries
15
16
  //= require ish_manager/iro
17
+ //= require ish_manager/leads
16
18
  //
17
19
 
18
20
  const AppRouter = {
@@ -0,0 +1,13 @@
1
+
2
+
3
+ $(document).ready(() => {
4
+
5
+ $("input[type='checkbox']#selectAll").change(function () {
6
+ logg(this, 'clicked')
7
+
8
+ const checked = $(this).prop('checked')
9
+ $(this).closest('table').find("tbody input[type='checkbox']").prop('checked', checked)
10
+ })
11
+
12
+ })
13
+
@@ -12,8 +12,10 @@
12
12
  .emails-ns, // emails namespace
13
13
  .iro-purses-my,
14
14
  .leads-edit,
15
+ .leads--index,
15
16
  .leads-index,
16
17
  .leads-show,
18
+ .leadsets-show,
17
19
  .scheduled-email-actions--form,
18
20
  .scheduled-emails-index {
19
21
  .header {
@@ -21,7 +23,9 @@
21
23
  justify-content: center;
22
24
  }
23
25
  }
24
-
26
+ .ctxs {
27
+ text-align: center;
28
+ }
25
29
  .email-actions--form {
26
30
  .select2-container {
27
31
  flex-grow: 1;
@@ -14,6 +14,12 @@ class ::IshManager::CategoriesController < IshManager::ApplicationController
14
14
  @category = WpTag.find params[:id]
15
15
  authorize! :show, @category
16
16
 
17
+ ## same as in leads#index
18
+ @leads = @category.leads
19
+ if params[:q].present?
20
+ @leads = @leads.where(" email LIKE ? ", "%#{params[:q]}%" )
21
+ end
22
+ @leads = @leads.page( params[:leads_page] ).per( current_profile.per_page )
17
23
  end
18
24
 
19
25
  end
@@ -38,6 +38,11 @@ class ::IshManager::EmailCampaignsController < IshManager::ApplicationController
38
38
  def show
39
39
  @campaign = Ish::EmailCampaign.find params[:id]
40
40
  authorize! :show, @campaign
41
+ @leads = @campaign.leads
42
+ if params[:q].present?
43
+ @leads = @leads.where(" email LIKE ? ", "%#{params[:q]}%" )
44
+ end
45
+ @leads = @leads.page( params[:leads_page ] ).per( current_profile.per_page )
41
46
  end
42
47
 
43
48
  def update
@@ -71,27 +71,27 @@ class ::IshManager::LeadsController < IshManager::ApplicationController
71
71
  @leads = @leads.page( params[:leads_page ] ).per( current_profile.per_page )
72
72
 
73
73
  @email_contexts = {}
74
- # lead_emails = @leads.map( &:email ).compact.reject(&:empty?)
75
- # map = %Q{
76
- # function() {
77
- # emit(this.to_email, {count: 1})
78
- # }
79
- # }
80
- # reduce = %Q{
81
- # function(key, values) {
82
- # var result = {count: 0};
83
- # values.forEach(function(value) {
84
- # result.count += value.count;
85
- # });
86
- # return result;
87
- # }
88
- # }
89
- # tmp_contexts = Ish::EmailContext.all.where( :to_email.in => lead_emails
90
- # ).map_reduce( map, reduce
91
- # ).out( inline: 1 ## From: https://www.mongodb.com/docs/mongoid/current/reference/map-reduce/
92
- # ).to_a
93
- # tmp_contexts.map { |x| @email_contexts[x[:_id]] = x[:value][:count].to_i }
94
- # puts! @email_contexts, '@email_contexts'
74
+ lead_emails = @leads.map( &:email ).compact.reject(&:empty?)
75
+ map = %Q{
76
+ function() {
77
+ emit(this.to_email, {count: 1})
78
+ }
79
+ }
80
+ reduce = %Q{
81
+ function(key, values) {
82
+ var result = {count: 0};
83
+ values.forEach(function(value) {
84
+ result.count += value.count;
85
+ });
86
+ return result;
87
+ }
88
+ }
89
+ tmp_contexts = Ish::EmailContext.all.where( :to_email.in => lead_emails
90
+ ).map_reduce( map, reduce
91
+ ).out( inline: 1 ## From: https://www.mongodb.com/docs/mongoid/current/reference/map-reduce/
92
+ ).to_a
93
+ tmp_contexts.map { |x| @email_contexts[x[:_id]] = x[:value][:count].to_i }
94
+ puts! @email_contexts, '@email_contexts'
95
95
 
96
96
  end
97
97
 
@@ -33,7 +33,11 @@ class ::IshManager::LeadsetsController < IshManager::ApplicationController
33
33
 
34
34
  def index
35
35
  authorize! :index, Leadset
36
- @leadsets = Leadset.all.kept.page( params[:leadsets_page] ).per( current_profile.per_page )
36
+ @leadsets = Leadset.all.kept.includes(:leads)
37
+ if params[:q].present?
38
+ @leadsets = @leadsets.where(" company_url LIKE ? ", "%#{params[:q]}%" )
39
+ end
40
+ @leadsets = @leadsets.page( params[:leadsets_page] ).per( current_profile.per_page )
37
41
  end
38
42
 
39
43
  def new
@@ -42,8 +46,12 @@ class ::IshManager::LeadsetsController < IshManager::ApplicationController
42
46
  end
43
47
 
44
48
  def show
45
- authorize! :redirect, IshManager::Ability
46
- redirect_to :action => :edit, :id => params[:id]
49
+ @leadset = Leadset.find params[:id]
50
+ authorize! :show, @leadset
51
+ @email_contexts = {}
52
+ @leadset.employees.each do |lead|
53
+ @email_contexts[lead.email] = lead.email_contexts
54
+ end
47
55
  end
48
56
 
49
57
  def update
@@ -67,7 +67,7 @@ class IshManager::UserProfilesController < IshManager::ApplicationController
67
67
  if params[:redirect_to]
68
68
  redirect_to params[:redirect_to]
69
69
  else
70
- redirect_to :action => :index
70
+ redirect_to request.referrer
71
71
  end
72
72
  end
73
73
 
@@ -59,7 +59,7 @@
59
59
  = link_to "Tmpls (#{Ish::EmailTemplate.all.count})", email_templates_path
60
60
  = link_to '[+]', new_email_template_path
61
61
  %li
62
- = link_to "Co's (#{Leadset.kept.length})", leadsets_path
62
+ = link_to "Companies (#{Leadset.kept.length})", leadsets_path
63
63
  = link_to '[+]', new_leadset_path
64
64
 
65
65
 
@@ -3,8 +3,5 @@
3
3
  .header
4
4
  %h2.title Category/Tag `#{@category.slug}`
5
5
 
6
- .leads
7
- %h3 Leads (#{@category.leads.length})
8
- %ol
9
- - @category.leads.each do |lead|
10
- %li= link_to lead.email, lead_path(lead)
6
+ = render 'ish_manager/leads/index', leads: @leads, email_contexts: {}, search_path: category_path(@category)
7
+
@@ -9,5 +9,6 @@
9
9
  - @campaigns.each do |c|
10
10
  %li
11
11
  = link_to c.slug, email_campaign_path(c)
12
+ (#{c.leads.length})
12
13
  = link_to '[~]', edit_email_campaign_path(c)
13
14
 
@@ -14,10 +14,4 @@
14
14
  -# %li Send At: #{@campaign.send_at}
15
15
 
16
16
  .collapse-expand#campaignLeads Email Campaign leads (#{@campaign.campaign_leads.length})
17
- %ul.email-campaign-leads.items.browser-default
18
- - @campaign.campaign_leads.each do |clead|
19
- %li.item
20
- .inline-block= button_to '[x]', email_campaign_lead_path(clead), method: :delete, :data => { :confirm => 'Are you sure?' }
21
- = link_to clead.lead.email, lead_path(clead.lead.id)
22
- (#{clead.lead.email_contexts.length} ctxs)
23
-
17
+ = render 'ish_manager/leads/index', leads: @leads, search_path: email_campaign_path(@campaign), email_contexts: {}
@@ -31,15 +31,15 @@
31
31
  %tbody
32
32
  - @ctxs.each do |ctx|
33
33
  %tr
34
- %td
34
+ %td.actions
35
35
  - if ctx.sent_at
36
36
  [~]
37
37
  - else
38
38
  = link_to '[~]', edit_email_context_path(ctx)
39
39
  = button_to '[x]', email_context_path(ctx), method: :delete, form_class: :inline, data: { confirm: 'Are you sure?' }
40
- %td
40
+ %td.from
41
41
  = ctx.from_email ? ctx.from_email : "t| #{ctx.tmpl.from_email}"
42
- %td= ctx.to_email
42
+ %td.to= link_to ctx.lead.email, lead_path(ctx.lead)
43
43
  %td
44
44
  = link_to email_context_path(ctx) do
45
45
  = ctx.subject ? ctx.subject : "t| #{ctx.tmpl.subject}"
@@ -0,0 +1,69 @@
1
+
2
+ -#
3
+ -# receives locals: leads , email_contexts , search_path
4
+ -#
5
+ - email_contexts ||= {}
6
+
7
+ .leads--index.padded
8
+ .header
9
+ %h2.title
10
+ Leads
11
+ - if !defined?( skip_pagination ) || !skip_pagination
12
+ (#{leads.total_count})
13
+ - else
14
+ (#{leads.length})
15
+ = link_to raw("<i class='fa fa-plus-square'></i>"), new_lead_path
16
+
17
+ - if defined?( search_path )
18
+ .float-right= render 'search', path: search_path
19
+ = form_tag leads_bulkop_path do
20
+ = label_tag 'Act on Selected:'
21
+ = select_tag :op, options_for_select( [[nil,nil]] + Lead::OPS )
22
+ = select_tag :email_campaign_id, options_for_select( @email_campaigns_list )
23
+ = submit_tag 'Go'
24
+
25
+ - if !defined?( skip_pagination ) || !skip_pagination
26
+ = paginate leads, param_name: :leads_page
27
+ %table.bordered
28
+ %thead
29
+ %tr
30
+ %th= check_box_tag :selectAll
31
+ %th Name/Email
32
+ %th.company Company
33
+ %th Phone, address
34
+ %th Tag
35
+ %th created_at
36
+ %th.ctxs Ctxs
37
+ %th Sch
38
+
39
+ %tbody
40
+ - leads.each do |lead|
41
+ %tr
42
+ %td= check_box_tag 'lead_ids[]', lead.id
43
+ %td= link_to "#{lead.name} <#{lead.email}>", lead_path( lead )
44
+ %td.company
45
+ = lead.company.company_url
46
+ - if lead.company.name.present?
47
+ <br /><b>#{lead.company.name}</b>
48
+ %td
49
+ .a= lead.phone if lead.phone.present?
50
+ .a= lead.address if lead.address.present?
51
+ %td= lead.wp_tags.map(&:name).join(", ")
52
+ %td= lead.created_at.to_s[0..10]
53
+ %td.ctxs
54
+ = email_contexts[lead.email].length || '-'
55
+ %td.sch
56
+ = lead.scheduled_email_actions.length
57
+ = link_to '[+]', new_scheduled_email_action_path( lead_id: lead.id )
58
+ -# %ul
59
+ -# - lead.scheduled_email_actions.map do |sch_a|
60
+ -# %li
61
+ -# = link_to sch_a.email_action.slug, edit_scheduled_email_action_path( sch_a )
62
+ -# [x]
63
+
64
+ - if !defined?( skip_pagination ) || !skip_pagination
65
+ = paginate leads, param_name: :leads_page
66
+
67
+
68
+
69
+
@@ -1,57 +1,2 @@
1
1
 
2
- .leads-index.padded
3
- .header
4
- %h2.title
5
- #{link_to 'Kept Leads', leads_path} (#{::Lead.kept.count}, #{::Lead.all.count})
6
- = link_to raw("<i class='fa fa-plus-square'></i>"), new_lead_path
7
-
8
- = render 'search', resource: ::Lead
9
- = form_tag leads_bulkop_path do
10
- = label_tag 'Act on Selected:'
11
- = select_tag :op, options_for_select( [[nil,nil]] + Lead::OPS )
12
- = select_tag :email_campaign_id, options_for_select( @email_campaigns_list )
13
- = submit_tag 'Go'
14
-
15
- = paginate @leads, param_name: :leads_page
16
- %table.bordered
17
- %thead
18
- %tr
19
- %th &nbsp;
20
- %th Name/Email
21
- %th.company Company
22
- %th Phone, address
23
- %th Tag
24
- %th created_at
25
- %th Ctx
26
- %th Sch
27
-
28
- %tbody
29
- - @leads.each do |lead|
30
- %tr
31
- %td= check_box_tag 'lead_ids[]', lead.id
32
- %td= link_to "#{lead.name} <#{lead.email}>", lead_path( lead )
33
- %td.company
34
- = lead.company.company_url
35
- - if lead.company.name.present?
36
- <br /><b>#{lead.company.name}</b>
37
- %td
38
- .a= lead.phone if lead.phone.present?
39
- .a= lead.address if lead.address.present?
40
- %td= lead.wp_tags.map(&:name).join(", ")
41
- %td= lead.created_at.to_s[0..10]
42
- %td.ctx
43
- = @email_contexts[lead.email] || '-'
44
- %td.sch
45
- = lead.scheduled_email_actions.length
46
- = link_to '[+]', new_scheduled_email_action_path( lead_id: lead.id )
47
- -# %ul
48
- -# - lead.scheduled_email_actions.map do |sch_a|
49
- -# %li
50
- -# = link_to sch_a.email_action.slug, edit_scheduled_email_action_path( sch_a )
51
- -# [x]
52
-
53
- = paginate @leads, param_name: :leads_page
54
-
55
-
56
-
57
-
2
+ = render 'index', leads: @leads, email_contexts: @email_contexts, search_path: leads_path
@@ -9,6 +9,7 @@
9
9
  %ul
10
10
  %li Name: #{@lead.name}
11
11
  %li Email: #{@lead.email}
12
+ %li Company: #{ link_to @lead.company.company_url, leadset_path(@lead.company) }
12
13
  %li Phone: #{@lead.phone}
13
14
  %li Address: #{@lead.address}
14
15
 
@@ -13,26 +13,24 @@
13
13
  .n-selected -
14
14
  = button_tag 'Delete', method: :delete, class: 'delete-btn'
15
15
 
16
+ .float-right= render 'search', path: leadsets_path
16
17
  = paginate @leadsets, :param_name => :leadsets_page, :views_prefix => 'ish_manager'
17
- %table
18
+ %table.bordered
18
19
  %thead
19
20
  %tr
20
21
  %th &nbsp;
21
- -# %th created at
22
- -# %th Name
23
22
  %th.company-url Company Url
24
23
  %th Tags
25
24
  %th +
25
+ %th.employees Employees
26
26
  %th.leads Leads
27
27
  %tbody
28
28
  - @leadsets.each_with_index do |leadset, idx1|
29
29
  %tr
30
30
  %td= check_box_tag 'leadset_ids[]', leadset.id, nil, { class: 'i-sel' }
31
- -# %td= leadset.created_at.strftime("%Y-%m-%d %H:%M%P")
32
- -# %td= link_to leadset.name, leadset_path( leadset )
33
- %td= link_to leadset.company_url, leadset.company_url
34
- %td.tags
31
+ %td= link_to leadset.company_url, leadset_path(leadset)
35
32
 
33
+ %td.tags
36
34
  - leadset.wp_tags.each_with_index do |tag, idx2|
37
35
  .chip
38
36
  = tag.name
@@ -47,35 +45,36 @@
47
45
  .actions
48
46
  = submit_tag 'Add'
49
47
 
50
- %td.leads
51
- -# = leadset.leads.count
52
- - leadset.leads.each do |lead|
53
- .item
48
+ %td.employees
49
+ = leadset.employees.length
50
+ -# - leadset.employees.each do |lead|
51
+ -# .item
52
+
53
+ -# .chip
54
+ -# -# = lead.email
55
+ -# = link_to lead.name, lead_path( lead )
54
56
 
55
- .chip
56
- -# = lead.email
57
- = link_to lead.name, lead_path( lead )
57
+ -# .relative
58
+ -# %a.chip{ href: email_contexts_for_lead_path( lead ) }
59
+ -# \(
60
+ -# = lead.email_contexts.count
61
+ -# %i.fa.fa-envelope
62
+ -# \)
58
63
 
59
- .relative
60
- %a.chip{ href: email_contexts_for_lead_path( lead ) }
61
- \(
62
- = lead.email_contexts.count
63
- %i.fa.fa-envelope
64
- \)
64
+ -# .relative
65
+ -# %i.fa.fa-pencil.expand-next
66
+ -# %form.form-mini{ style: 'display: none' }
67
+ -# Editing...
65
68
 
66
- .relative
67
- %i.fa.fa-pencil.expand-next
68
- %form.form-mini{ style: 'display: none' }
69
- Editing...
69
+ -# .relative
70
+ -# %i.fa.fa-clock-o.expand-next
71
+ -# .expand-hide= render 'ish_manager/scheduled_email_actions/form', scheduled_email_action: Sch.new({ lead_id: lead.id })
70
72
 
71
- .relative
72
- %i.fa.fa-clock-o.expand-next
73
- = render 'ish_manager/scheduled_email_actions/form', scheduled_email_action: Sch.new({ lead_id: lead.id })
73
+ -# -# .scheduled
74
+ -# -# - lead.scheduled_emails.each do |sch|
75
+ -# -# .chip
76
+ -# -# -# .interval= sch.interval
77
+ -# -# -# .tmpl= sch.email_template.slug
74
78
 
75
- .scheduled
76
- - lead.scheduled_emails.each do |sch|
77
- .chip
78
- .interval= sch.interval
79
- .tmpl= sch.email_template.slug
80
79
  = paginate @leadsets, :param_name => :leadsets_page, :views_prefix => 'ish_manager'
81
80
 
@@ -0,0 +1,5 @@
1
+
2
+ .leadsets-show.max-width
3
+ .header
4
+ %h2.title Leadset #{@leadset.company_url}
5
+ = render 'ish_manager/leads/index', leads: @leadset.employees, skip_pagination: true, email_contexts: @email_contexts
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.428
4
+ version: 0.1.8.430
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-10 00:00:00.000000000 Z
11
+ date: 2023-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -252,6 +252,7 @@ files:
252
252
  - app/assets/javascripts/ish_manager/email_templates.js
253
253
  - app/assets/javascripts/ish_manager/galleries.js
254
254
  - app/assets/javascripts/ish_manager/iro.js
255
+ - app/assets/javascripts/ish_manager/leads.js
255
256
  - app/assets/javascripts/ish_manager/maps.js
256
257
  - app/assets/javascripts/ish_manager/shared.js
257
258
  - app/assets/javascripts/ish_manager/vendor/jquery-ui.min.js
@@ -654,6 +655,7 @@ files:
654
655
  - app/views/ish_manager/kaminari/_prev_page.html.erb
655
656
  - app/views/ish_manager/leads/_form.haml
656
657
  - app/views/ish_manager/leads/_form_import.haml
658
+ - app/views/ish_manager/leads/_index.haml
657
659
  - app/views/ish_manager/leads/_index_rows.haml
658
660
  - app/views/ish_manager/leads/edit.haml
659
661
  - app/views/ish_manager/leads/index.haml
@@ -664,6 +666,7 @@ files:
664
666
  - app/views/ish_manager/leadsets/index.haml
665
667
  - app/views/ish_manager/leadsets/index_dataTables.haml
666
668
  - app/views/ish_manager/leadsets/new.haml
669
+ - app/views/ish_manager/leadsets/show.haml
667
670
  - app/views/ish_manager/maps/_form.haml
668
671
  - app/views/ish_manager/maps/_index_item.haml
669
672
  - app/views/ish_manager/maps/_map_meta_row.haml