phcmembers 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +238 -0
- data/README.md +1 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/phcmembers/application.js +16 -0
- data/app/assets/javascripts/phcmembers/directory/categories.js +2 -0
- data/app/assets/javascripts/phcmembers/directory/catlists.js +2 -0
- data/app/assets/javascripts/phcmembers/members/contacts.js +2 -0
- data/app/assets/javascripts/phcmembers/members/listings.js +2 -0
- data/app/assets/javascripts/phcmembers/members/mains.js +2 -0
- data/app/assets/stylesheets/phcmembers/_custom.scss +9 -0
- data/app/assets/stylesheets/phcmembers/_variables.scss +0 -0
- data/app/assets/stylesheets/phcmembers/application.css.scss +12 -0
- data/app/assets/stylesheets/phcmembers/directory/categories.scss +3 -0
- data/app/assets/stylesheets/phcmembers/directory/catlists.scss +3 -0
- data/app/assets/stylesheets/phcmembers/members/contacts.scss +3 -0
- data/app/assets/stylesheets/phcmembers/members/listings.scss +3 -0
- data/app/assets/stylesheets/phcmembers/members/mains.scss +3 -0
- data/app/assets/stylesheets/scaffolds.scss +73 -0
- data/app/controllers/phcmembers/application_controller.rb +4 -0
- data/app/controllers/phcmembers/directory/categories_controller.rb +67 -0
- data/app/controllers/phcmembers/directory/catlists_controller.rb +97 -0
- data/app/controllers/phcmembers/members/contacts_controller.rb +87 -0
- data/app/controllers/phcmembers/members/listings_controller.rb +87 -0
- data/app/controllers/phcmembers/members/mains_controller.rb +67 -0
- data/app/helpers/phcmembers/application_helper.rb +15 -0
- data/app/helpers/phcmembers/directory/categories_helper.rb +4 -0
- data/app/helpers/phcmembers/directory/catlists_helper.rb +4 -0
- data/app/helpers/phcmembers/members/contacts_helper.rb +4 -0
- data/app/helpers/phcmembers/members/listings_helper.rb +4 -0
- data/app/helpers/phcmembers/members/mains_helper.rb +4 -0
- data/app/models/phcmembers/directory.rb +7 -0
- data/app/models/phcmembers/directory/category.rb +14 -0
- data/app/models/phcmembers/directory/catlist.rb +17 -0
- data/app/models/phcmembers/members.rb +7 -0
- data/app/models/phcmembers/members/contact.rb +38 -0
- data/app/models/phcmembers/members/listing.rb +47 -0
- data/app/models/phcmembers/members/main.rb +36 -0
- data/app/views/layouts/phcmembers/application.html.erb +13 -0
- data/app/views/layouts/phcmembers/directory/directory_all.html.erb +15 -0
- data/app/views/layouts/phcmembers/elements/alerts/_notifications.html.erb +13 -0
- data/app/views/layouts/phcmembers/elements/alerts/_validations.html.erb +0 -0
- data/app/views/layouts/phcmembers/members/members_all.html.erb +15 -0
- data/app/views/phcmembers/directory/categories/_form.html.erb +22 -0
- data/app/views/phcmembers/directory/categories/edit.html.erb +25 -0
- data/app/views/phcmembers/directory/categories/index.html.erb +50 -0
- data/app/views/phcmembers/directory/categories/new.html.erb +25 -0
- data/app/views/phcmembers/directory/catlists/_form.html.erb +28 -0
- data/app/views/phcmembers/directory/catlists/index.html.erb +36 -0
- data/app/views/phcmembers/directory/catlists/new.html.erb +25 -0
- data/app/views/phcmembers/members/contacts/_form.html.erb +58 -0
- data/app/views/phcmembers/members/contacts/_formpatch.html.erb +58 -0
- data/app/views/phcmembers/members/contacts/edit.html.erb +26 -0
- data/app/views/phcmembers/members/contacts/index.html.erb +54 -0
- data/app/views/phcmembers/members/contacts/new.html.erb +26 -0
- data/app/views/phcmembers/members/contacts/show.html.erb +51 -0
- data/app/views/phcmembers/members/listings/_form.html.erb +62 -0
- data/app/views/phcmembers/members/listings/_formpatch.html.erb +62 -0
- data/app/views/phcmembers/members/listings/edit.html.erb +25 -0
- data/app/views/phcmembers/members/listings/index.html.erb +57 -0
- data/app/views/phcmembers/members/listings/new.html.erb +23 -0
- data/app/views/phcmembers/members/listings/show.html.erb +56 -0
- data/app/views/phcmembers/members/mains/_form.html.erb +42 -0
- data/app/views/phcmembers/members/mains/edit.html.erb +25 -0
- data/app/views/phcmembers/members/mains/index.html.erb +58 -0
- data/app/views/phcmembers/members/mains/new.html.erb +25 -0
- data/app/views/phcmembers/members/mains/show.html.erb +26 -0
- data/config/application.yml +13 -0
- data/config/routes.rb +28 -0
- data/db/migrate/20160227150117_create_phcmembers_members_mains.rb +18 -0
- data/db/migrate/20160227160416_create_phcmembers_members_listings.rb +24 -0
- data/db/migrate/20160227194651_create_phcmembers_members_contacts.rb +24 -0
- data/db/migrate/20160227205022_create_phcmembers_directory_categories.rb +13 -0
- data/db/migrate/20160227212144_create_phcmembers_directory_catlists.rb +15 -0
- data/lib/phcmembers.rb +4 -0
- data/lib/phcmembers/engine.rb +32 -0
- data/lib/phcmembers/version.rb +3 -0
- data/lib/tasks/phcmembers_tasks.rake +4 -0
- metadata +414 -0
@@ -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,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>
|
File without changes
|
@@ -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 & 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 & 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 & 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>
|