caboose-rets 0.1.31 → 0.1.32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/controllers/caboose_rets/agents_controller.rb +19 -6
- data/app/controllers/caboose_rets/properties_controller.rb +1 -0
- data/app/models/caboose_rets/property.rb +1 -1
- data/app/views/caboose_rets/agents/admin_edit.html.erb +3 -0
- data/app/views/caboose_rets/agents/admin_edit_sort.html.erb +21 -45
- data/app/views/caboose_rets/agents/admin_index.html.erb +2 -0
- data/app/views/caboose_rets/agents/contact.html.erb +1 -0
- data/app/views/caboose_rets/agents/details.html.erb +1 -9
- data/app/views/caboose_rets/agents/index.html.erb +1 -14
- data/lib/caboose_rets/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cd148d5ba35e51a143d91afb1e96b031d53d2be1
|
4
|
+
data.tar.gz: d5f60f39bf9e3787f56033ee9ac5d2e5fd86b06b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6004c29dc495c9e7acf9c52687bba04049d350a13d6959d80b83f79b2edc53ea21ecef4fc5f27f4f3816c1868241cd17ceefb8fdd9a002bc68e706953b708b01
|
7
|
+
data.tar.gz: 52f537953563be39060f4c26978ea7c5ab1fd4c6f3b6c470a32a24c09fc6525cbc11f5576cab6e5fe3844771601b92001015310ee1c0a1262ccdad828b2af1c1
|
@@ -2,15 +2,25 @@
|
|
2
2
|
module CabooseRets
|
3
3
|
class AgentsController < ApplicationController
|
4
4
|
|
5
|
+
# @route GET /real-estate/agents
|
5
6
|
# @route GET /agents
|
6
7
|
def index
|
7
8
|
@agents = Agent.where(:office_mls_id => @site.rets_office_id).order(:sort_order).reject{ |a| (a.meta && a.meta.hide == true) }
|
8
9
|
end
|
9
10
|
|
11
|
+
# @route GET /real-estate/agents/:slug
|
10
12
|
# @route GET /agents/:mls_id
|
11
13
|
def details
|
12
|
-
@agent = Agent.where(:mls_id => params[:mls_id]).first
|
13
|
-
@
|
14
|
+
@agent = Agent.where(:mls_id => params[:mls_id], :office_mls_id => @site.rets_office_id).first if !params[:mls_id].blank?
|
15
|
+
@agent = Agent.where(:slug => params[:slug], :office_mls_id => @site.rets_office_id).first if !params[:slug].blank?
|
16
|
+
@listings = Property.where(:list_agent_mls_id => @agent.mls_id).order('list_price desc').all
|
17
|
+
end
|
18
|
+
|
19
|
+
# @route GET /real-estate/agents/:slug/contact
|
20
|
+
# @route GET /agents/:mls_id/contact
|
21
|
+
def contact
|
22
|
+
@agent = Agent.where(:mls_id => params[:mls_id], :office_mls_id => @site.rets_office_id).first if !params[:mls_id].blank?
|
23
|
+
@agent = Agent.where(:slug => params[:slug], :office_mls_id => @site.rets_office_id).first if !params[:slug].blank?
|
14
24
|
end
|
15
25
|
|
16
26
|
#=============================================================================
|
@@ -40,7 +50,7 @@ module CabooseRets
|
|
40
50
|
})
|
41
51
|
render :json => {
|
42
52
|
:pager => pager,
|
43
|
-
:models => pager.items
|
53
|
+
:models => pager.items.as_json(:include => [:meta])# , :collection, :color, :design_look, :gem_stone,
|
44
54
|
}
|
45
55
|
end
|
46
56
|
|
@@ -67,9 +77,11 @@ module CabooseRets
|
|
67
77
|
if !user_is_allowed_to 'edit', 'agents'
|
68
78
|
Caboose.log("invalid permissions")
|
69
79
|
else
|
70
|
-
|
71
|
-
|
72
|
-
|
80
|
+
params[:agent].each_with_index do |ag, ind|
|
81
|
+
agent = Agent.find(ag)
|
82
|
+
agent.sort_order = ind
|
83
|
+
agent.save
|
84
|
+
end
|
73
85
|
resp.success = true
|
74
86
|
end
|
75
87
|
render :json => resp
|
@@ -92,6 +104,7 @@ module CabooseRets
|
|
92
104
|
params.each do |k,v|
|
93
105
|
case k
|
94
106
|
when "bio" then meta.bio = v
|
107
|
+
when "slug" then agent.slug = v
|
95
108
|
when "hide" then meta.hide = v
|
96
109
|
end
|
97
110
|
end
|
@@ -91,6 +91,7 @@ module CabooseRets
|
|
91
91
|
# @route GET /properties/:mls_number/details
|
92
92
|
def details
|
93
93
|
@property = Property.where(:mls_number => params[:mls_number]).first
|
94
|
+
@agent = Agent.where(:matrix_unique_id => @property.list_agent_mui, :office_mls_id => @site.rets_office_id).first
|
94
95
|
@saved = logged_in? && SavedProperty.where(:user_id => logged_in_user.id, :mls_number => params[:mls_number]).exists?
|
95
96
|
if @property.nil?
|
96
97
|
@mls_number = params[:mls_number]
|
@@ -110,7 +110,7 @@ class CabooseRets::Property <ActiveRecord::Base
|
|
110
110
|
self.list_office_mls_id = data['ListOfficeMLSID']
|
111
111
|
self.list_office_name = data['ListOfficeName']
|
112
112
|
self.list_office_phone = data['ListOfficePhone']
|
113
|
-
self.list_price = data['ListPrice'].blank? ? nil : data['ListPrice'].
|
113
|
+
self.list_price = data['ListPrice'].blank? ? nil : data['ListPrice'].to_i
|
114
114
|
self.lot_description = data['LotDescription']
|
115
115
|
self.lot_dimensions = data['LotDimensions']
|
116
116
|
self.lot_dim_source = data['LotDimSource']
|
@@ -36,6 +36,8 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
<div id="agent_<%= @agent.id %>_hide"></div>
|
39
|
+
<br />
|
40
|
+
<div id="agent_<%= @agent.id %>_slug"></div>
|
39
41
|
|
40
42
|
<div class="richtext-holder">
|
41
43
|
<h5>Bio</h5>
|
@@ -75,6 +77,7 @@ $(document).ready(function() {
|
|
75
77
|
authenticity_token: '<%= form_authenticity_token %>',
|
76
78
|
attributes: [
|
77
79
|
{ name: 'hide', nice_name: 'Hide', type: 'checkbox', value: <%== Caboose.json(@agent_meta.hide) %>, width: 500, height: 300 },
|
80
|
+
{ name: 'slug', nice_name: 'Slug', type: 'text', value: <%== Caboose.json(@agent.slug) %>, width: 500 },
|
78
81
|
{ name: 'bio', nice_name: 'Bio', type: 'richtext', value: <%== Caboose.json(@agent_meta.bio) %>, width: 500, height: 300 },
|
79
82
|
{ name: 'image' , nice_name: 'Image' , type: 'image' , value: <%= raw Caboose.json(@agent_meta.image ? @agent_meta.image.url(:thumb) : 'http://placehold.it?300x300') %>, width: 800, update_url: '/admin/agents/<%= @agent.id %>/image' }
|
80
83
|
]
|
@@ -2,21 +2,16 @@
|
|
2
2
|
|
3
3
|
<a href="/admin/agents" class="caboose-btn">Back to Agents</a>
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
</li>
|
14
|
-
|
15
|
-
<% end %>
|
16
|
-
</ul>
|
5
|
+
<ul class="sortable" id="sortable_agents">
|
6
|
+
<% @agents.each do |agent| %>
|
7
|
+
<li id="agent_<%= agent.id %>" class="clearfix ui-state-default" data-paid="<%= agent.id %>">
|
8
|
+
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
|
9
|
+
<span class="resource-title"><%= agent.full_name %></span>
|
10
|
+
</li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
17
13
|
|
18
14
|
<% content_for :caboose_css do %>
|
19
|
-
<%= stylesheet_link_tag "jquery-ui/sortable" %>
|
20
15
|
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
|
21
16
|
<style>
|
22
17
|
.sortable {
|
@@ -43,40 +38,21 @@
|
|
43
38
|
|
44
39
|
<% content_for :caboose_js do %>
|
45
40
|
<script>
|
46
|
-
function change_sort_order(
|
41
|
+
function change_sort_order(data) {
|
47
42
|
$.ajax({
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
43
|
+
url: '/admin/agents/update-sort',
|
44
|
+
type: 'put',
|
45
|
+
data: data,
|
46
|
+
success: function(resp) { }
|
47
|
+
});
|
48
|
+
}
|
49
|
+
$(document).ready(function() {
|
50
|
+
var sort = $(".sortable");
|
51
|
+
sort.sortable({
|
52
|
+
update: function(event, ui) {
|
53
|
+
change_sort_order( sort.sortable('serialize') );
|
57
54
|
}
|
58
|
-
}
|
55
|
+
});
|
59
56
|
});
|
60
|
-
}
|
61
|
-
$(document).ready(function() {
|
62
|
-
|
63
|
-
$.each( $(".sortable"), function(k,v) {
|
64
|
-
var sort = $(v);
|
65
|
-
sort.sortable({
|
66
|
-
update: function(event, ui) {
|
67
|
-
var index = ui.item.index();
|
68
|
-
var start = ui.item.data('start');
|
69
|
-
var pa = ui.item.data('paid');
|
70
|
-
for(var i=0;i <= sort.find("li").length; i++){
|
71
|
-
var res = sort.find('li:nth-child(' + i + ')').data('paid');
|
72
|
-
if (res)
|
73
|
-
change_sort_order(res, i);
|
74
|
-
}
|
75
|
-
}
|
76
|
-
});
|
77
|
-
|
78
|
-
});
|
79
|
-
|
80
|
-
});
|
81
57
|
</script>
|
82
58
|
<% end %>
|
@@ -41,6 +41,8 @@ $(document).ready(function() {
|
|
41
41
|
fields: [
|
42
42
|
{ show: true , editable: false, bulk_edit: false, name: 'first_name' , nice_name: 'First Name' , sort: 'first_name' , type: 'text' , value: function(r) { return r.first_name }, width: 200 },
|
43
43
|
{ show: true , editable: false, bulk_edit: false, name: 'last_name' , nice_name: 'Last Name' , sort: 'last_name' , type: 'text' , value: function(r) { return r.last_name }, width: 200 },
|
44
|
+
{ show: true , editable: true, bulk_edit: true, name: 'hide' , nice_name: 'Hide' , sort: 'hide' , type: 'checkbox' , text: function(r) { return r.meta && r.meta.hide ? 'Yes' : 'No' }, value: function(r) { return r.meta && r.meta.hide ? true : false }, width: 200 },
|
45
|
+
{ show: false , editable: true, bulk_edit: false, name: 'slug' , nice_name: 'Slug' , sort: 'slug' , type: 'text' , value: function(r) { return r.slug }, width: 200 },
|
44
46
|
{ show: true , editable: false, bulk_edit: false, name: 'mls_id' , nice_name: 'MLS ID' , sort: 'mls_id' , type: 'text' , value: function(r) { return r.mls_id }, width: 200 }
|
45
47
|
],
|
46
48
|
new_model_text: 'New Agent',
|
@@ -0,0 +1 @@
|
|
1
|
+
<p>Override in sitefolder/_rets_agent_contact.html.erb</p>
|
@@ -1,9 +1 @@
|
|
1
|
-
<
|
2
|
-
<div class="constrain">
|
3
|
-
<h2><%= @agent.first_name %> <%= @agent.last_name %></h2>
|
4
|
-
<% if @agent.meta %>
|
5
|
-
<img src="<%= @agent.meta.image.url(:medium) %>" alt="<%= @agent.full_name %>" />
|
6
|
-
<div class="bio richtext"><%== @agent.meta.bio %></div>
|
7
|
-
<% end %>
|
8
|
-
</div>
|
9
|
-
</div>
|
1
|
+
<p>Override in sitefolder/_rets_agent_details.html.erb</p>
|
@@ -1,14 +1 @@
|
|
1
|
-
<
|
2
|
-
<div class="constrain">
|
3
|
-
<h2>Our Agents</h2>
|
4
|
-
<div class="agent-grid">
|
5
|
-
<% @agents.each do |agent| %>
|
6
|
-
<% pic = agent.meta ? agent.meta.image.url(:large) : 'https://cabooseit.s3.amazonaws.com/assets/shared/default_profile.png' %>
|
7
|
-
<a href="/agents/<%= agent.mls_id %>" class="agent">
|
8
|
-
<div class="photo" style="background-image:url(<%= pic %>);"></div>
|
9
|
-
<h5><%= agent.first_name %> <%= agent.last_name %></h5>
|
10
|
-
</a>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
13
|
-
</div>
|
14
|
-
</div>
|
1
|
+
<p>Override in sitefolder/_rets_agent_index.html.erb</p>
|
data/lib/caboose_rets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-rets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.32
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: caboose-cms
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- app/views/caboose_rets/agents/admin_edit.html.erb
|
67
67
|
- app/views/caboose_rets/agents/admin_edit_sort.html.erb
|
68
68
|
- app/views/caboose_rets/agents/admin_index.html.erb
|
69
|
+
- app/views/caboose_rets/agents/contact.html.erb
|
69
70
|
- app/views/caboose_rets/agents/details.html.erb
|
70
71
|
- app/views/caboose_rets/agents/index.html.erb
|
71
72
|
- app/views/caboose_rets/media/admin_property_media.html.erb
|
@@ -151,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
152
|
version: '0'
|
152
153
|
requirements: []
|
153
154
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.
|
155
|
+
rubygems_version: 2.2.0
|
155
156
|
signing_key:
|
156
157
|
specification_version: 4
|
157
158
|
summary: Library to download RETS data to a local website.
|