Skip to content

Commit

Permalink
Markets and vendors can have websites.
Browse files Browse the repository at this point in the history
  • Loading branch information
JGefroh committed Sep 15, 2016
1 parent 82cdad3 commit 8cf9244
Show file tree
Hide file tree
Showing 11 changed files with 31 additions and 6 deletions.
2 changes: 1 addition & 1 deletion app/controllers/markets_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def to_coordinates
end

private def market_params
params.require(:market).permit(:address, :days_of_week, :end_time, :has_map, :name, :organization, :start_time)
params.require(:market).permit(:address, :days_of_week, :end_time, :has_map, :name, :organization, :start_time, :website_url)
end

def has_export_code
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/vendors_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def remove_market
end

private def vendor_params
params.require(:vendor).permit(:name, :description)
params.require(:vendor).permit(:description, :name, :website_url)
end

def send_unauthorized_response
Expand Down
2 changes: 1 addition & 1 deletion app/serializers/market_serializer.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class MarketSerializer < ActiveModel::Serializer
attributes :id,
:address, :days_of_week_as_array, :distance, :end_time, :has_map, :latitude, :longitude, :name, :organization, :start_time
:address, :days_of_week_as_array, :distance, :end_time, :has_map, :latitude, :longitude, :name, :organization, :start_time, :website_url
def distance
if object.respond_to?(:distance)
object.distance
Expand Down
2 changes: 1 addition & 1 deletion app/serializers/vendor_serializer.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class VendorSerializer < ActiveModel::Serializer
attributes :id,
:description, :name
:description, :name, :website_url
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class AddWebsitesToMarketsAndVendors < ActiveRecord::Migration
def change
add_column :markets, :website_url, :string
add_column :vendors, :website_url, :string
end
end
4 changes: 3 additions & 1 deletion db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 20160915072958) do
ActiveRecord::Schema.define(version: 20160915073711) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand All @@ -38,13 +38,15 @@
t.string "end_time"
t.string "organization"
t.boolean "has_map"
t.string "website_url"
end

create_table "vendors", force: :cascade do |t|
t.string "name", null: false
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "website_url"
end

end
5 changes: 4 additions & 1 deletion frontend/app/modules/market-vendors/market-vendors-list.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
data-ng-repeat="marketVendor in vm.marketVendors | orderBy: 'vendor.name' track by marketVendor.id"
data-ng-click="vm.onMarketVendorSelected({marketVendor: marketVendor})">
<td><span data-ng-bind="marketVendor.booth_location"></span></td>
<td><span data-ng-bind="marketVendor.vendor.name"></span></td>
<td>
<a data-ng-if="marketVendor.vendor.website_url" data-ng-href="http://{{marketVendor.vendor.website_url}}" rel="noopener"><span data-ng-bind="marketVendor.vendor.name"></span></a>
<span data-ng-if="!marketVendor.vendor.website_url" data-ng-bind="marketVendor.vendor.name"></span></a>
</td>
<td><span data-ng-bind="marketVendor.vendor.description"></span></td>
</tr>
</tbody>
Expand Down
4 changes: 4 additions & 0 deletions frontend/app/modules/markets/markets-form.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@
<div class="input-field">
<label><input type="checkbox" data-ng-model="vm.market.has_map"></input> Is KCC?</label>
</div>

<div data-text-field data-label="Does the market have a website?" data-ng-model="vm.market.website_url">
<span class="tip">format example: http://jgefroh.com</span>
</div>
<button data-button-action="vm.save()" class="cta">Save Changes</button>

</div>
Expand Down
4 changes: 4 additions & 0 deletions frontend/app/modules/markets/markets-show-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
vm.showMarketVendorOnList = function(marketVendor) {
$scope.$broadcast('market-vendor-selected-on-map', marketVendor);
}

vm.getTimeString = function(market) {
return MarketsService.getTimeString(market);
}
}
initialize();
}
Expand Down
2 changes: 2 additions & 0 deletions frontend/app/modules/markets/markets-show.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<button data-ui-sref="ttfm.markets.browse" class="cta tiny info">Back to map</button>
<h1>{{vm.market.name}}</h1>
<h2>{{vm.market.address}}</h2>
<h2>{{vm.getTimeString(vm.market)}}</h2>
<h3 style="text-transform: capitalize;">{{vm.market.days_of_week_as_array.join(', ')}}</h3>
<h3 data-ng-if="vm.market.website_url"><a data-ng-href="http://{{vm.market.website_url}}">Website</a></h3>
<div data-ng-if="vm.market.has_map" data-booth-map data-on-market-vendor-selected="vm.showMarketVendorOnList(marketVendor)"></div>
<div data-ng-if="!vm.market.has_map" data-static-map data-location="vm.market.latitude + ',' + vm.market.longitude" data-size="512x512"></div>
<div data-market-vendors-list data-market="vm.market" data-on-market-vendor-selected="vm.showMarketVendorOnMap(marketVendor)"></div>
Expand Down
4 changes: 4 additions & 0 deletions frontend/app/modules/vendors/vendors-form.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
<div data-ng-show="!vm.editingVendors">
<div data-text-field data-label="Display name of the vendor" data-ng-model="vm.vendor.name"></div>
<div data-text-area data-label="Description of the vendor" data-ng-model="vm.vendor.description"></div>

<div data-text-field data-label="Does the vendor have a website?" data-ng-model="vm.vendor.website_url">
<span class="tip">format example: http://jgefroh.com</span>
</div>
<button data-button-action="vm.save()" class="cta">Save Changes</button>

</div>
Expand Down

0 comments on commit 8cf9244

Please sign in to comment.