phcmembers 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +238 -0
  3. data/README.md +1 -0
  4. data/Rakefile +23 -0
  5. data/app/assets/javascripts/phcmembers/application.js +16 -0
  6. data/app/assets/javascripts/phcmembers/directory/categories.js +2 -0
  7. data/app/assets/javascripts/phcmembers/directory/catlists.js +2 -0
  8. data/app/assets/javascripts/phcmembers/members/contacts.js +2 -0
  9. data/app/assets/javascripts/phcmembers/members/listings.js +2 -0
  10. data/app/assets/javascripts/phcmembers/members/mains.js +2 -0
  11. data/app/assets/stylesheets/phcmembers/_custom.scss +9 -0
  12. data/app/assets/stylesheets/phcmembers/_variables.scss +0 -0
  13. data/app/assets/stylesheets/phcmembers/application.css.scss +12 -0
  14. data/app/assets/stylesheets/phcmembers/directory/categories.scss +3 -0
  15. data/app/assets/stylesheets/phcmembers/directory/catlists.scss +3 -0
  16. data/app/assets/stylesheets/phcmembers/members/contacts.scss +3 -0
  17. data/app/assets/stylesheets/phcmembers/members/listings.scss +3 -0
  18. data/app/assets/stylesheets/phcmembers/members/mains.scss +3 -0
  19. data/app/assets/stylesheets/scaffolds.scss +73 -0
  20. data/app/controllers/phcmembers/application_controller.rb +4 -0
  21. data/app/controllers/phcmembers/directory/categories_controller.rb +67 -0
  22. data/app/controllers/phcmembers/directory/catlists_controller.rb +97 -0
  23. data/app/controllers/phcmembers/members/contacts_controller.rb +87 -0
  24. data/app/controllers/phcmembers/members/listings_controller.rb +87 -0
  25. data/app/controllers/phcmembers/members/mains_controller.rb +67 -0
  26. data/app/helpers/phcmembers/application_helper.rb +15 -0
  27. data/app/helpers/phcmembers/directory/categories_helper.rb +4 -0
  28. data/app/helpers/phcmembers/directory/catlists_helper.rb +4 -0
  29. data/app/helpers/phcmembers/members/contacts_helper.rb +4 -0
  30. data/app/helpers/phcmembers/members/listings_helper.rb +4 -0
  31. data/app/helpers/phcmembers/members/mains_helper.rb +4 -0
  32. data/app/models/phcmembers/directory.rb +7 -0
  33. data/app/models/phcmembers/directory/category.rb +14 -0
  34. data/app/models/phcmembers/directory/catlist.rb +17 -0
  35. data/app/models/phcmembers/members.rb +7 -0
  36. data/app/models/phcmembers/members/contact.rb +38 -0
  37. data/app/models/phcmembers/members/listing.rb +47 -0
  38. data/app/models/phcmembers/members/main.rb +36 -0
  39. data/app/views/layouts/phcmembers/application.html.erb +13 -0
  40. data/app/views/layouts/phcmembers/directory/directory_all.html.erb +15 -0
  41. data/app/views/layouts/phcmembers/elements/alerts/_notifications.html.erb +13 -0
  42. data/app/views/layouts/phcmembers/elements/alerts/_validations.html.erb +0 -0
  43. data/app/views/layouts/phcmembers/members/members_all.html.erb +15 -0
  44. data/app/views/phcmembers/directory/categories/_form.html.erb +22 -0
  45. data/app/views/phcmembers/directory/categories/edit.html.erb +25 -0
  46. data/app/views/phcmembers/directory/categories/index.html.erb +50 -0
  47. data/app/views/phcmembers/directory/categories/new.html.erb +25 -0
  48. data/app/views/phcmembers/directory/catlists/_form.html.erb +28 -0
  49. data/app/views/phcmembers/directory/catlists/index.html.erb +36 -0
  50. data/app/views/phcmembers/directory/catlists/new.html.erb +25 -0
  51. data/app/views/phcmembers/members/contacts/_form.html.erb +58 -0
  52. data/app/views/phcmembers/members/contacts/_formpatch.html.erb +58 -0
  53. data/app/views/phcmembers/members/contacts/edit.html.erb +26 -0
  54. data/app/views/phcmembers/members/contacts/index.html.erb +54 -0
  55. data/app/views/phcmembers/members/contacts/new.html.erb +26 -0
  56. data/app/views/phcmembers/members/contacts/show.html.erb +51 -0
  57. data/app/views/phcmembers/members/listings/_form.html.erb +62 -0
  58. data/app/views/phcmembers/members/listings/_formpatch.html.erb +62 -0
  59. data/app/views/phcmembers/members/listings/edit.html.erb +25 -0
  60. data/app/views/phcmembers/members/listings/index.html.erb +57 -0
  61. data/app/views/phcmembers/members/listings/new.html.erb +23 -0
  62. data/app/views/phcmembers/members/listings/show.html.erb +56 -0
  63. data/app/views/phcmembers/members/mains/_form.html.erb +42 -0
  64. data/app/views/phcmembers/members/mains/edit.html.erb +25 -0
  65. data/app/views/phcmembers/members/mains/index.html.erb +58 -0
  66. data/app/views/phcmembers/members/mains/new.html.erb +25 -0
  67. data/app/views/phcmembers/members/mains/show.html.erb +26 -0
  68. data/config/application.yml +13 -0
  69. data/config/routes.rb +28 -0
  70. data/db/migrate/20160227150117_create_phcmembers_members_mains.rb +18 -0
  71. data/db/migrate/20160227160416_create_phcmembers_members_listings.rb +24 -0
  72. data/db/migrate/20160227194651_create_phcmembers_members_contacts.rb +24 -0
  73. data/db/migrate/20160227205022_create_phcmembers_directory_categories.rb +13 -0
  74. data/db/migrate/20160227212144_create_phcmembers_directory_catlists.rb +15 -0
  75. data/lib/phcmembers.rb +4 -0
  76. data/lib/phcmembers/engine.rb +32 -0
  77. data/lib/phcmembers/version.rb +3 -0
  78. data/lib/tasks/phcmembers_tasks.rake +4 -0
  79. metadata +414 -0
@@ -0,0 +1,4 @@
1
+ module Phcmembers
2
+ module Members::MainsHelper
3
+ end
4
+ end
@@ -0,0 +1,7 @@
1
+ module Phcmembers
2
+ module Directory
3
+ def self.table_name_prefix
4
+ 'phcmembers_directory_'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ module Phcmembers
2
+ class Directory::Category < ActiveRecord::Base
3
+
4
+ # Model Relationship
5
+ has_many :catlists, class_name: 'Directory::Catlist'
6
+
7
+ # Validation for Form Fields
8
+ validates :catname,
9
+ presence: true,
10
+ uniqueness: true,
11
+ length: { minimum: 3 }
12
+
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ module Phcmembers
2
+ class Directory::Catlist < ActiveRecord::Base
3
+
4
+ # Model Relationship
5
+ belongs_to :category, class_name: 'Directory::Category'
6
+ belongs_to :listing, class_name: 'Members::Listing'
7
+
8
+ # Validation for Form Fields (More of a Self-Check)
9
+ validates :listing_id,
10
+ presence: true
11
+
12
+ # Validation for Form Fields (More of a Self-Check)
13
+ validates :category_id,
14
+ presence: true
15
+
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ module Phcmembers
2
+ module Members
3
+ def self.table_name_prefix
4
+ 'phcmembers_members_'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,38 @@
1
+ module Phcmembers
2
+ class Members::Contact < ActiveRecord::Base
3
+
4
+ # Mtdevise Scope
5
+ def self.scoped_to(account)
6
+ where(:account_id => account.id)
7
+ end
8
+
9
+ # Model Relationships
10
+ belongs_to :main, class_name: 'Members::Main'
11
+
12
+ # Validation for Form Fields
13
+ validates :mccontactname,
14
+ presence: true,
15
+ length: { minimum: 3 }
16
+
17
+ validates :mccompanyname,
18
+ presence: true,
19
+ length: { minimum: 2 }
20
+
21
+ validates :mccity,
22
+ presence: true,
23
+ length: { minimum: 3 }
24
+
25
+ validates :mcprovince,
26
+ presence: true,
27
+ length: { minimum: 2 }
28
+
29
+ validates :mccountry,
30
+ presence: true,
31
+ length: { minimum: 2 }
32
+
33
+ validates :mcpostalcode,
34
+ presence: true,
35
+ length: { minimum: 6 }
36
+
37
+ end
38
+ end
@@ -0,0 +1,47 @@
1
+ module Phcmembers
2
+ class Members::Listing < ActiveRecord::Base
3
+
4
+ # Mtdevise Scope
5
+ def self.scoped_to(account)
6
+ where(:account_id => account.id)
7
+ end
8
+
9
+ # Model Relationships
10
+ belongs_to :main, class_name: 'Members::Main'
11
+ has_many :catlists, class_name: 'Directory::Catlist', dependent: :destroy
12
+
13
+ # Validation for Form Fields
14
+ validates :mlcontactname,
15
+ presence: true,
16
+ length: { minimum: 3 }
17
+
18
+ validates :mlcompanyname,
19
+ presence: true,
20
+ length: { minimum: 2 }
21
+
22
+ validates :mlcity,
23
+ presence: true,
24
+ length: { minimum: 3 }
25
+
26
+ validates :mlprovince,
27
+ presence: true,
28
+ length: { minimum: 2 }
29
+
30
+ validates :mlpostalcode,
31
+ presence: true,
32
+ length: { minimum: 6 }
33
+
34
+ validates :mlcountry,
35
+ presence: true,
36
+ length: { minimum: 6 }
37
+
38
+ validates :mlphone,
39
+ presence: true,
40
+ format: { with: /\A(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\z/, message: "Please Follow this Phone Number Format: xxx-xxx-xxxx" }
41
+
42
+ validates :mlwebsite,
43
+ presence: true,
44
+ length: { minimum: 3 }
45
+
46
+ end
47
+ end
@@ -0,0 +1,36 @@
1
+ module Phcmembers
2
+ class Members::Main < ActiveRecord::Base
3
+
4
+ # Mtdevise Scope
5
+ def self.scoped_to(account)
6
+ where(:account_id => account.id)
7
+ end
8
+
9
+ # Model Relationship
10
+ has_many :listings, class_name: 'Members::Listing', dependent: :destroy
11
+ has_many :contacts, class_name: 'Members::Contact', dependent: :destroy
12
+
13
+ # Validation for Form Fields
14
+ validates :mfirstname,
15
+ presence: true,
16
+ length: { minimum: 1 }
17
+
18
+ validates :mlastname,
19
+ presence: true,
20
+ length: { minimum: 1 }
21
+
22
+ validates :mtitle,
23
+ length: { minimum: 2 }
24
+
25
+ validates :memail,
26
+ presence: true,
27
+ uniqueness: true,
28
+ length: { minimum: 6 }
29
+
30
+ validates :mphone,
31
+ presence: true,
32
+ uniqueness: true,
33
+ format: { with: /\A(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\z/, message: "Please Follow this Phone Number Format: xxx-xxx-xxxx" }
34
+
35
+ end
36
+ end
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Phcmembers</title>
5
+ <%= stylesheet_link_tag "phcmembers/application", media: "all" %>
6
+ <%= javascript_include_tag "phcmembers/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+ <%= render 'layouts/phcmembers/elements/alerts/notifications' %>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>PHCMembers - Directory Manager</title>
5
+ <%= stylesheet_link_tag "phcmembers/application", media: "all" %>
6
+ <%= javascript_include_tag "phcmembers/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+ <div class="container">
11
+ <%= render 'layouts/phcmembers/elements/alerts/notifications' %>
12
+ <%= yield %>
13
+ </div>
14
+ </body>
15
+ </html>
@@ -0,0 +1,13 @@
1
+ <div class="row">
2
+ <div class=".col-md-12">
3
+ <div class="alert alert-dismissible alert-warning hidden alert-please-update" role="alert">
4
+ <button aria-label="Close" class="close" data-dismiss="alert" type="button"><span aria-hidden="true"> ×</span></button><strong>Please update</strong>Despite the fact that the record doens't show on your screen you must save it to delete it!
5
+ </div>
6
+ <% flash.each do |key, value| %>
7
+ <div class="<%= flash_class(key) %> fade in">
8
+ <a href="#" data-dismiss="alert" class="close">×</a>
9
+ <%= value %>
10
+ </div>
11
+ <% end %>
12
+ </div>
13
+ </div>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>PHCMembers - Members Manager</title>
5
+ <%= stylesheet_link_tag "phcmembers/application", media: "all" %>
6
+ <%= javascript_include_tag "phcmembers/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+ <div class="container">
11
+ <%= render 'layouts/phcmembers/elements/alerts/notifications' %>
12
+ <%= yield %>
13
+ </div>
14
+ </body>
15
+ </html>
@@ -0,0 +1,22 @@
1
+ <%= form_for(@directory_category) do |f| %>
2
+
3
+ <% if @directory_category.errors.any? %>
4
+ <div id="error_explanation">
5
+ <h2><%= pluralize(@directory_category.errors.count, "error") %> prohibited this directorylisting from being saved:</h2>
6
+ <ul>
7
+ <% @directory_category.errors.full_messages.each do |message| %>
8
+ <li><%= message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="form-group">
15
+ <label><%= f.label :catname, "Category Name" %></label>
16
+ <%= f.text_field :catname, class: "form-control", placeholder: "Directory Category" %>
17
+ </div>
18
+ <div class="actions">
19
+ <%= f.submit "Submit", class: "btn btn-primary" %>
20
+ </div>
21
+
22
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <!-- Bread Crumbs -->
2
+ <div class="row wrapper border-bottom white-bg page-heading">
3
+ <div class="col-lg-12">
4
+ <h2>Directory Category Information</h2>
5
+ <ol class="breadcrumb">
6
+ <li><%= link_to "Home", directory_root_path %></li>
7
+ <li><%= link_to "Directory Categories", directory_categories_path %></li>
8
+ <li class="active">Directory Category Update</li>
9
+ </ol>
10
+ </div>
11
+ </div>
12
+
13
+ <!-- Main Content -->
14
+ <div class="row">
15
+ <div class="col-lg-12">
16
+ <div class="panel">
17
+ <div class="panel-heading">
18
+ Update Category
19
+ </div>
20
+ <div class="panel-body">
21
+ <%= render 'form' %>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
@@ -0,0 +1,50 @@
1
+ <!-- Breadcrumbs -->
2
+ <div class="row">
3
+ <div class="col-lg-12">
4
+ <h2>Directory Categories &amp; Listings</h2>
5
+ <ol class="breadcrumb">
6
+ <li><%= link_to "Home", directory_root_path %></li>
7
+ <li class="active"><%= link_to "Directory Categories", directory_categories_path %></li>
8
+ </ol>
9
+ </div>
10
+ </div>
11
+
12
+ <!-- Main Contents -->
13
+ <div class="row">
14
+ <div class="col-lg-12">
15
+ <div class="panel panel-primary">
16
+ <div class="panel-heading">
17
+ Directory Categories &amp; Listings
18
+ </div>
19
+ <div class="panel-body">
20
+ <table class="table table-bordered table-striped table-hover">
21
+ <thead>
22
+ <tr>
23
+ <th>Category Name</th>
24
+ <th colspan="2"></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <% @directory_categories.each do |directory_category| %>
29
+ <tr>
30
+ <td><%= directory_category.catname %></td>
31
+ <td>
32
+ <div class="btn-group" role="group" aria-label="Directory Group">
33
+ <%= link_to 'Edit', edit_directory_category_path(directory_category), class: "btn btn-primary" %>
34
+ <%= link_to 'Destroy', directory_category, class: "btn btn-danger", method: :delete, data: { confirm: 'Are you sure? Removing a directory category will also remove all listing connections.?' } %>
35
+ </div>
36
+ </td>
37
+ <td>
38
+ <div class="btn-group" role="group" aria-label="Directory Connection Group">
39
+ <%# link_to 'Connect Member Listings', directory_category_catlists_path(category), :class => "btn btn-success" %>
40
+ </div>
41
+ </td>
42
+ </tr>
43
+ <% end %>
44
+ </tbody>
45
+ </table>
46
+ <%= link_to 'New Directory Category', new_directory_category_path, class: "btn btn-primary" %>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
@@ -0,0 +1,25 @@
1
+ <!-- Bread Crumbs -->
2
+ <div class="row">
3
+ <div class="col-lg-12">
4
+ <h2>Directory Categories</h2>
5
+ <ol class="breadcrumb">
6
+ <li><%= link_to "Home", directory_root_path %></li>
7
+ <li><%= link_to "Directory Categories", directory_categories_path %></li>
8
+ <li class="active">Create a Directory Category</li>
9
+ </ol>
10
+ </div>
11
+ </div>
12
+
13
+ <!-- Main Content -->
14
+ <div class="row">
15
+ <div class="col-lg-12">
16
+ <div class="panel panel-primary">
17
+ <div class="panel-heading">
18
+ Create a New Category
19
+ </div>
20
+ <div class="panel-body">
21
+ <%= render 'form' %>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
@@ -0,0 +1,28 @@
1
+ <%= form_for([@directory_catlist.category, @directory_catlist], url: directory_category_catlists_path) do |f| %>
2
+
3
+ <% if @directory_catlist.errors.any? %>
4
+ <div id="error_explanation">
5
+ <h2><%= pluralize(@directory_catlist.errors.count, "error") %> prohibited this directorylisting from being saved:</h2>
6
+ <ul>
7
+ <% @directory_catlist.errors.full_messages.each do |message| %>
8
+ <li><%= message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="form-group">
15
+ <label>Select a Listing</label>
16
+ <%= collection_select(:directory_catlist, :listing_id, Phcmembers::Members::Listing.order('mlcompanyname'), :id, :mlcompanyname, {}, {class: "form-control form-control-sm"}) %>
17
+ </div>
18
+
19
+ <div class="form-group">
20
+ <label><%= f.label :category_id, "Select a Category" %></label>
21
+ <%= f.text_field :category_id, class: "form-control", placeholder: "Directory Category" %>
22
+ </div>
23
+
24
+ <div class="actions">
25
+ <%= f.submit "Submit", class: "btn btn-primary" %>
26
+ </div>
27
+
28
+ <% end %>
@@ -0,0 +1,36 @@
1
+ <!-- Breadcrumbs -->
2
+ <div class="row">
3
+ <div class="col-lg-12">
4
+ <h2>Directory Categories &amp; Listings</h2>
5
+ <ol class="breadcrumb">
6
+ <li><%= link_to "Home", directory_root_path %></li>
7
+ <li class="active"><%= link_to "Directory Categories", directory_categories_path %></li>
8
+ </ol>
9
+ </div>
10
+ </div>
11
+
12
+
13
+ <!-- Main Content -->
14
+ <div class="row">
15
+ <div class="col-lg-12">
16
+ <div class="panel panel-primary">
17
+ <div class="panel-heading">
18
+ Category Listings for <%= @category.catname %>
19
+ </div>
20
+ <div class="panel-body">
21
+ <table class="table table-bordered table-striped table-hover">
22
+ <tbody>
23
+ <% @directory_catlists.each do |directory_catlists| %>
24
+ <tr>
25
+ <td><%= directory_catlists.category.catname %></td>
26
+ <td><%# directory_catlists.listing.mlcompanyname %></td>
27
+ <td><%= link_to 'Destroy', directory_category_catlist_path(directory_catlists.category, directory_catlists), class: "btn btn-danger", method: :delete, data: { confirm: 'Are you sure? This will only remove the listing from the directory category. The listing will still be saved with the members profile.' } %></td>
28
+ </tr>
29
+ <% end %>
30
+ </tbody>
31
+ </table>
32
+ <%= link_to 'New Listing', new_directory_category_catlist_path, class: "btn btn-primary" %>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>