phcmembers 8.1.2 → 9.0.0b
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +14 -14
- data/Rakefile +1 -1
- data/app/controllers/phcmembers/api/directories_controller.rb +4 -4
- data/app/controllers/phcmembers/application_controller.rb +2 -2
- data/app/controllers/phcmembers/directory/categories_controller.rb +13 -13
- data/app/controllers/phcmembers/directory/categorylistings_controller.rb +5 -5
- data/app/controllers/phcmembers/member/addresses_controller.rb +13 -13
- data/app/controllers/phcmembers/member/listings_controller.rb +13 -13
- data/app/controllers/phcmembers/member/profiles_controller.rb +13 -13
- data/app/controllers/phcmembers/modules/dashboards_controller.rb +3 -3
- data/app/helpers/phcmembers/application_helper.rb +1 -1
- data/app/jobs/phcmembers/application_job.rb +1 -1
- data/app/mailers/phcmembers/application_mailer.rb +1 -1
- data/app/models/phcmembers/application_record.rb +1 -1
- data/app/models/phcmembers/connections.rb +1 -1
- data/app/models/phcmembers/directory.rb +1 -1
- data/app/models/phcmembers/member.rb +1 -1
- data/app/models/phcmembers/member/address.rb +1 -1
- data/app/models/phcmembers/member/listing.rb +1 -1
- data/app/models/phcmembers/member/profile.rb +1 -1
- data/app/views/layouts/phcmembers/application.html.erb +1 -1
- data/app/views/layouts/phcmembers/components/backend/footer/_footer.html.erb +2 -2
- data/app/views/layouts/phcmembers/components/backend/navigation/_navigation.html.erb +4 -4
- data/app/views/layouts/phcmembers/components/backend/topbar/_topbar.html.erb +1 -1
- data/app/views/layouts/phcmembers/directory/directory_all.html.erb +1 -1
- data/app/views/layouts/phcmembers/members/members_all.html.erb +1 -1
- data/app/views/phcmembers/directory/categories/components/_category_audits.html.erb +3 -3
- data/app/views/phcmembers/directory/categories/edit.html.erb +1 -1
- data/app/views/phcmembers/directory/categories/index.html.erb +1 -1
- data/app/views/phcmembers/directory/categories/new.html.erb +1 -1
- data/app/views/phcmembers/directory/categories/show.html.erb +1 -1
- data/app/views/phcmembers/directory/categorylistings/index.html.erb +2 -2
- data/app/views/phcmembers/member/addresses/_form.html.erb +3 -3
- data/app/views/phcmembers/member/addresses/components/_address_address.html.erb +1 -1
- data/app/views/phcmembers/member/addresses/components/_address_audits.html.erb +3 -3
- data/app/views/phcmembers/member/addresses/edit.html.erb +1 -1
- data/app/views/phcmembers/member/addresses/index.html.erb +1 -1
- data/app/views/phcmembers/member/addresses/new.html.erb +1 -1
- data/app/views/phcmembers/member/addresses/show.html.erb +1 -1
- data/app/views/phcmembers/member/listings/_form.html.erb +3 -3
- data/app/views/phcmembers/member/listings/components/_listing_address.html.erb +1 -1
- data/app/views/phcmembers/member/listings/components/_listing_audits.html.erb +3 -3
- data/app/views/phcmembers/member/listings/edit.html.erb +1 -1
- data/app/views/phcmembers/member/listings/index.html.erb +1 -1
- data/app/views/phcmembers/member/listings/new.html.erb +1 -1
- data/app/views/phcmembers/member/listings/show.html.erb +1 -1
- data/app/views/phcmembers/member/profiles/_form.html.erb +3 -3
- data/app/views/phcmembers/member/profiles/components/_profile_main.html.erb +3 -3
- data/app/views/phcmembers/member/profiles/components/_profile_sidebar.html.erb +3 -3
- data/app/views/phcmembers/member/profiles/edit.html.erb +1 -1
- data/app/views/phcmembers/member/profiles/index.html.erb +1 -1
- data/app/views/phcmembers/member/profiles/new.html.erb +1 -1
- data/app/views/phcmembers/member/profiles/show.html.erb +1 -1
- data/app/views/phcmembers/modules/dashboards/index.html.erb +1 -1
- data/config/locales/en.yml +1 -1
- data/config/routes.rb +6 -6
- data/db/migrate/20160707154842_create_versions.rb +7 -7
- data/db/migrate/20160724220339_create_phcmembers_member_profiles.rb +7 -7
- data/db/migrate/20160725153306_create_phcmembers_member_addresses.rb +8 -8
- data/db/migrate/20160725182257_create_phcmembers_directory_categories.rb +7 -7
- data/db/migrate/20160727024006_create_phcmembers_member_listings.rb +8 -8
- data/db/migrate/20160727042756_create_phcmembers_directory_categorylistings.rb +6 -6
- data/lib/phcmembers.rb +1 -1
- data/lib/phcmembers/engine.rb +10 -10
- data/lib/phcmembers/version.rb +2 -2
- data/lib/tasks/phcmembers_tasks.rake +1 -1
- metadata +168 -204
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 398267aefd1588002c2ea4bc53751fa95893eefe
|
4
|
+
data.tar.gz: 8a76d204acc119e7f32b4c2628d77b1cc0d019b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81c8ea66e85cf0029b384a7e3570513b3a35708109b83a2a8898e6a3923c0cc606723ec9248441c038b6c028f8d7a2417f3cf987906ab232eccf87c3a7aa345b
|
7
|
+
data.tar.gz: 5ef0ce1bf5990fe7db79096d9938a4feb598d83ab328a431de588ea60fc3230825ef0d6a6b4c9bebfe7d4bc4b02e23daca81e64234095316f53b0115255e0068
|
data/MIT-LICENSE
CHANGED
@@ -17,4 +17,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
17
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
18
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
19
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -3,32 +3,32 @@
|
|
3
3
|
[![Dependency Status](https://gemnasium.com/badges/github.com/PHCNetworks/phc-members.svg)](https://gemnasium.com/github.com/PHCNetworks/phc-members)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/phcmembers.svg)](https://badge.fury.io/rb/phcmembers)
|
5
5
|
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/PHCNetworks/phc-members/blob/master/MIT-LICENSE)
|
6
|
-
|
6
|
+
|
7
7
|
### PHCMembers(8) (Membership & Directory Engine) Documentation
|
8
8
|
PHCMembers(8) rails engine to manage membership information and directory listings.
|
9
|
-
|
9
|
+
|
10
10
|
* Fast setup of membership and web directory modules.
|
11
11
|
* Directory and listings manager with a web directory API.
|
12
12
|
* Member's list, contact information, and listings manager.
|
13
13
|
* Easy app integration with views that can be customized.
|
14
14
|
* User authentication will activate when Devise is installed.
|
15
|
-
|
15
|
+
|
16
16
|
#### Step 1 - Add PHCMembers to your gemfile and run command
|
17
|
-
|
17
|
+
|
18
18
|
gem 'phcmembers', '~> 8.0'
|
19
19
|
bundle install
|
20
|
-
|
20
|
+
|
21
21
|
#### Step 2 - Add PHCMembers Database Tables
|
22
22
|
To copy PHCMembers' required database migrations, copy each command individually to your terminal's command line.
|
23
|
-
|
23
|
+
|
24
24
|
rails phcmembers:install:migrations
|
25
25
|
rails db:migrate
|
26
|
-
|
26
|
+
|
27
27
|
#### Step 3 - Mount PHCMembers & Add Routes
|
28
28
|
Mount PHCMembers by adding code below to your routes file.
|
29
|
-
|
29
|
+
|
30
30
|
mount Phcmembers::Engine, :at => '/'
|
31
|
-
|
31
|
+
|
32
32
|
#### Step 4 - Recompile Assets
|
33
33
|
To properly function re-compile your application's assets to copy over required files.
|
34
34
|
|
@@ -37,9 +37,9 @@ To properly function re-compile your application's assets to copy over required
|
|
37
37
|
|
38
38
|
#### Step 5 - Generate Views (Customization)
|
39
39
|
Generate views for customization and app integration.
|
40
|
-
|
40
|
+
|
41
41
|
rails generate phcmembers:views
|
42
|
-
|
43
|
-
#### Additional Information
|
44
|
-
|
45
|
-
- [Past Security Patch Notes](https://github.com/PHCNetworks/phc-members/wiki/Critical-Security-Updates)
|
42
|
+
|
43
|
+
#### Additional Information
|
44
|
+
|
45
|
+
- [Past Security Patch Notes](https://github.com/PHCNetworks/phc-members/wiki/Critical-Security-Updates)
|
data/Rakefile
CHANGED
@@ -2,17 +2,17 @@ require_dependency "phcmembers/application_controller"
|
|
2
2
|
|
3
3
|
module Phcmembers
|
4
4
|
class Api::DirectoriesController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
# Directory Category API
|
7
7
|
def index
|
8
8
|
@directory_categories = Directory::Category.where(membership_id: membership_info.id).order('catname ASC')
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
# Directory Listing API
|
12
12
|
def show
|
13
13
|
category = Directory::Category.find(params[:category_id])
|
14
14
|
@directory_listings = category.catlists.where(membership_id: membership_info.id)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -5,7 +5,7 @@ module Phcmembers
|
|
5
5
|
protect_from_forgery with: :exception
|
6
6
|
|
7
7
|
# Grab Member Information
|
8
|
-
def get_member_profile_info
|
8
|
+
def get_member_profile_info
|
9
9
|
@members_profile_info = Member::Profile.find(params[:profile_id])
|
10
10
|
end
|
11
11
|
|
@@ -14,4 +14,4 @@ module Phcmembers
|
|
14
14
|
helper Phcnotifi::Engine.helpers
|
15
15
|
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
@@ -2,31 +2,31 @@ require_dependency "phcmembers/application_controller"
|
|
2
2
|
|
3
3
|
module Phcmembers
|
4
4
|
class Directory::CategoriesController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
# Security & Action Filters
|
7
7
|
before_action :set_paper_trail_whodunnit
|
8
8
|
before_action :set_directory_category, only: [:show, :edit, :update, :destroy]
|
9
|
-
|
9
|
+
|
10
10
|
# INDEX - Directory Category
|
11
11
|
def index
|
12
12
|
@directory_categories = Directory::Category.all
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
# DETAILED - Directory Category
|
16
16
|
def show
|
17
17
|
@directory_category = Directory::Category.find(params[:id])
|
18
18
|
@versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Directory::Category')
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# NEW - Directory Category
|
22
22
|
def new
|
23
23
|
@directory_category = Directory::Category.new
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
# EDIT - Directory Category
|
27
27
|
def edit
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
# POST - Directory Category
|
31
31
|
def create
|
32
32
|
@directory_category = Directory::Category.new(directory_category_params)
|
@@ -36,7 +36,7 @@ module Phcmembers
|
|
36
36
|
render :new
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
# PATCH/PUT - Directory Category
|
41
41
|
def update
|
42
42
|
if @directory_category.update(directory_category_params)
|
@@ -45,24 +45,24 @@ module Phcmembers
|
|
45
45
|
render :edit
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
# DELETE - Directory Category
|
50
50
|
def destroy
|
51
51
|
@directory_category.destroy
|
52
52
|
redirect_to directory_categories_url, notice: 'Category was successfully destroyed.'
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
private
|
56
|
-
|
56
|
+
|
57
57
|
# Common Callbacks
|
58
58
|
def set_directory_category
|
59
59
|
@directory_category = Directory::Category.find(params[:id])
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
# Whitelist
|
63
63
|
def directory_category_params
|
64
64
|
params.require(:directory_category).permit(:catname)
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
end
|
68
|
-
end
|
68
|
+
end
|
@@ -2,19 +2,19 @@ require_dependency "phcmembers/application_controller"
|
|
2
2
|
|
3
3
|
module Phcmembers
|
4
4
|
class Directory::CategorylistingsController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
# Security & Action Filters
|
7
7
|
before_action :set_paper_trail_whodunnit
|
8
8
|
before_action :set_directory_category, only: [:show]
|
9
|
-
|
9
|
+
|
10
10
|
# INDEX - Directory Category/Listings
|
11
11
|
def index
|
12
12
|
@directory_categorylistings = Directory::Categorylisting.all
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
# DETAILED - Directory Category/Listings
|
16
16
|
def show
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
@@ -2,35 +2,35 @@ require_dependency "phcmembers/application_controller"
|
|
2
2
|
|
3
3
|
module Phcmembers
|
4
4
|
class Member::AddressesController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
# Security & Action Filters
|
7
7
|
before_action :set_paper_trail_whodunnit
|
8
8
|
before_action :get_member_profile_info
|
9
9
|
before_action :set_member_address, only: [:show, :edit, :update, :destroy]
|
10
|
-
|
10
|
+
|
11
11
|
# INDEX - Directory Listings
|
12
12
|
def index
|
13
13
|
profile = Member::Profile.find(params[:profile_id])
|
14
14
|
@member_addresses = profile.addresses
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
# LISTINGS DETAILS - Directory Listings
|
18
18
|
def show
|
19
19
|
profile = Member::Profile.find(params[:profile_id])
|
20
20
|
@member_address = profile.addresses.find(params[:id])
|
21
21
|
@versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Member::Address')
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
# NEW - Directory Listings
|
25
25
|
def new
|
26
26
|
profile = Member::Profile.find(params[:profile_id])
|
27
27
|
@member_address = profile.addresses.build
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
# EDIT - Directory Listings
|
31
31
|
def edit
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
# POST - Directory Listings
|
35
35
|
def create
|
36
36
|
@profile = Member::Profile.find(params[:profile_id])
|
@@ -41,7 +41,7 @@ module Phcmembers
|
|
41
41
|
render :new
|
42
42
|
end
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
# PATCH/PUT - Directory Listings
|
46
46
|
def update
|
47
47
|
if @member_address.update(member_address_params)
|
@@ -50,7 +50,7 @@ module Phcmembers
|
|
50
50
|
render :edit
|
51
51
|
end
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
# DELETE - Directory Listings
|
55
55
|
def destroy
|
56
56
|
@profile = Member::Profile.find(params[:profile_id])
|
@@ -58,18 +58,18 @@ module Phcmembers
|
|
58
58
|
@member_address.destroy
|
59
59
|
redirect_to member_profile_addresses_url, notice: 'Listing was successfully destroyed.'
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
private
|
63
|
-
|
63
|
+
|
64
64
|
# Common Callbacks
|
65
65
|
def set_member_address
|
66
66
|
@member_address = Member::Address.find(params[:id])
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
# Whitelist
|
70
70
|
def member_address_params
|
71
71
|
params.require(:member_address).permit(:mcaddressl1, :mcaddressl2, :mccity, :mcprovince, :mccountry, :mcpostalcode, :mctype, :profile_id)
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
end
|
75
|
-
end
|
75
|
+
end
|
@@ -2,35 +2,35 @@ require_dependency "phcmembers/application_controller"
|
|
2
2
|
|
3
3
|
module Phcmembers
|
4
4
|
class Member::ListingsController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
# Security & Action Filters
|
7
7
|
before_action :set_paper_trail_whodunnit
|
8
8
|
before_action :get_member_profile_info
|
9
9
|
before_action :set_member_listing, only: [:show, :edit, :update, :destroy]
|
10
|
-
|
10
|
+
|
11
11
|
# INDEX - Directory Listings
|
12
12
|
def index
|
13
13
|
profile = Member::Profile.find(params[:profile_id])
|
14
14
|
@member_listings = profile.listings
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
# LISTINGS DETAILS - Directory Listings
|
18
18
|
def show
|
19
19
|
profile = Member::Profile.find(params[:profile_id])
|
20
20
|
@meber_listing = profile.listings.find(params[:id])
|
21
21
|
@versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Member::Listing')
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
# NEW - Directory Listings
|
25
25
|
def new
|
26
26
|
profile = Member::Profile.find(params[:profile_id])
|
27
27
|
@member_listing = profile.listings.build
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
# EDIT - Directory Listings
|
31
31
|
def edit
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
# POST - Directory Listings
|
35
35
|
def create
|
36
36
|
@profile = Member::Profile.find(params[:profile_id])
|
@@ -42,7 +42,7 @@ module Phcmembers
|
|
42
42
|
render :new
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
# PATCH/PUT - Directory Listings
|
47
47
|
def update
|
48
48
|
if @member_listing.update(member_listing_params)
|
@@ -52,7 +52,7 @@ module Phcmembers
|
|
52
52
|
render :edit
|
53
53
|
end
|
54
54
|
end
|
55
|
-
|
55
|
+
|
56
56
|
# DELETE - Directory Listings
|
57
57
|
def destroy
|
58
58
|
@profile = Member::Profile.find(params[:profile_id])
|
@@ -60,18 +60,18 @@ module Phcmembers
|
|
60
60
|
@member_listing.destroy
|
61
61
|
redirect_to member_profile_listings_url, notice: 'Listing was successfully destroyed.'
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
private
|
65
|
-
|
65
|
+
|
66
66
|
# Common Callbacks
|
67
67
|
def set_member_listing
|
68
68
|
@member_listing = Member::Listing.find(params[:id])
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
# Whitelist
|
72
72
|
def member_listing_params
|
73
73
|
params.require(:member_listing).permit(:mbcompanyname, :mbcontactname, :mbaddressl1, :mbaddressl2, :mbcity, :mbcountry, :mbprovince, :mbpostalcode, :mbphone, :mbcontactemail, :mbwebsite, :profile_id, category_ids: [])
|
74
74
|
end
|
75
|
-
|
75
|
+
|
76
76
|
end
|
77
|
-
end
|
77
|
+
end
|
@@ -2,31 +2,31 @@ require_dependency "phcmembers/application_controller"
|
|
2
2
|
|
3
3
|
module Phcmembers
|
4
4
|
class Member::ProfilesController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
# Security & Action Filters
|
7
7
|
before_action :set_paper_trail_whodunnit
|
8
8
|
before_action :set_member_profile, only: [:show, :edit, :update, :destroy]
|
9
|
-
|
9
|
+
|
10
10
|
# INDEX - Member Profile
|
11
11
|
def index
|
12
12
|
@member_profiles = Member::Profile.all
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
# DETAILED PROFILE - Member Profile
|
16
16
|
def show
|
17
17
|
@member_profile = Member::Profile.find(params[:id])
|
18
18
|
@versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Member::Profile')
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# NEW FORM - Member Profile
|
22
22
|
def new
|
23
23
|
@member_profile = Member::Profile.new
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
# EDIT FORM - Member Profile
|
27
27
|
def edit
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
# POST - Member Profile
|
31
31
|
def create
|
32
32
|
@member_profile = Member::Profile.new(member_profile_params)
|
@@ -36,7 +36,7 @@ module Phcmembers
|
|
36
36
|
render :new
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
# PATCH/PUT - Member Profile
|
41
41
|
def update
|
42
42
|
if @member_profile.update(member_profile_params)
|
@@ -45,24 +45,24 @@ module Phcmembers
|
|
45
45
|
render :edit
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
# DELETE - Member Profile
|
50
50
|
def destroy
|
51
51
|
@member_profile.destroy
|
52
52
|
redirect_to member_profiles_url, notice: 'Profile was successfully destroyed.'
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
private
|
56
|
-
|
56
|
+
|
57
57
|
# Common Callbacks
|
58
58
|
def set_member_profile
|
59
59
|
@member_profile = Member::Profile.find(params[:id])
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
# Whitelist
|
63
63
|
def member_profile_params
|
64
64
|
params.require(:member_profile).permit(:mfirstname, :mlastname, :mtitle, :memail, :mphone, :mnotes)
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
end
|
68
|
-
end
|
68
|
+
end
|