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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 71cf2b970e022b3b282cb77e9b126aa2bd6b025a99703869023543e4b4dff231
4
- data.tar.gz: 85b17a7f8de6aa5e23be08a1383af0ab7f8aa2f58cd2156244af0b64fb155519
2
+ SHA1:
3
+ metadata.gz: cd148d5ba35e51a143d91afb1e96b031d53d2be1
4
+ data.tar.gz: d5f60f39bf9e3787f56033ee9ac5d2e5fd86b06b
5
5
  SHA512:
6
- metadata.gz: 59e10940465532c9568e756fe9087b21e36d7a1d6eb233169855db3aef6fc3e287f601da17bb870ee2a1bebc1dd0cd9f333f047996f35cd575b451ef9262bccb
7
- data.tar.gz: 8612c4060921bb1544d3855ee55524c0b74397d092bcbf14a138f8505467d0806dbcdc28b700f88b6ecea927efe58a2c128b2da3e271d4c5dc3fe6cd6e250526
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
- @listings = Property.where(:list_agent_mls_id => @agent.mls_id).all
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
- pa = Agent.find(params[:pa_id])
71
- pa.sort_order = params[:sort_order]
72
- pa.save
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'].to_f
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
- <ul class="sortable" id="sortable_agents">
7
-
8
- <% @agents.each do |agent| %>
9
-
10
- <li class="clearfix ui-state-default" data-paid="<%= agent.id %>">
11
- <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
12
- <span class="resource-title"><%= agent.full_name %></span>
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(pa_id, sort_order) {
41
+ function change_sort_order(data) {
47
42
  $.ajax({
48
- url: '/admin/agents/update-sort',
49
- type: 'put',
50
- data: {
51
- pa_id: pa_id,
52
- sort_order: sort_order
53
- },
54
- success: function(resp) {
55
- if (resp.success) {
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
- <div class="agent-details">
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
- <div class="agents-wrapper">
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>
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.1.31'
2
+ VERSION = '0.1.32'
3
3
  end
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.31
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-28 00:00:00.000000000 Z
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.7.7
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.