diff --git a/.rspec b/.rspec
index 7115a783..1df8b322 100644
--- a/.rspec
+++ b/.rspec
@@ -1,2 +1,4 @@
--color --format Fuubar
+--format html
+--out coverage/rspec_results.html
-r turnip/rspec
diff --git a/Gemfile b/Gemfile
index 740418a2..6782b2a1 100644
--- a/Gemfile
+++ b/Gemfile
@@ -65,7 +65,7 @@ gem 'rqrcode'
gem 'mini_magick'
#gem 'geokit'
-#gem 'iso_country_codes'
+gem 'iso_country_codes'
#gem "less-rails-bootstrap-devise", :git => 'git://github.com/bigbento/less-rails-bootstrap-devise.git'
# To use ActiveModel has_secure_password
diff --git a/Gemfile.lock b/Gemfile.lock
index 1483b728..420b4948 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -221,6 +221,7 @@ GEM
hike (1.2.3)
http_parser.rb (0.6.0)
i18n (0.6.11)
+ iso_country_codes (0.4.3)
jquery-rails (3.1.1)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
@@ -435,6 +436,7 @@ DEPENDENCIES
font-awesome-rails
foundation-rails
fuubar
+ iso_country_codes
jquery-rails
jquery-ui-rails
js-routes
diff --git a/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee
index 1ec03012..89acc15a 100644
--- a/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee
+++ b/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee
@@ -1,4 +1,15 @@
Qsupplier.App.ApplicationController = Ember.Controller.extend
init: ->
- #@set 'supplier', @store.createRecord('supplier', name: 'kkkl')
- @set 'supplier', @store.find('supplier', 'current')
+ #success = (supplier)=>
+ ## A supplier record with id current and with the content of the returned supplier is created
+ ## at the moment remove the dummy supplier, this should be resolved by Ember eventually
+ #if error_supplier = @store.all('supplier').findBy('id', 'current')
+ #error_supplier.eraseRecord()
+ #@set 'supplier', supplier
+
+ #error = (emberError)=>
+ #if error_supplier = @store.all('supplier').findBy('id', 'current')
+ #error_supplier.eraseRecord()
+ #@set 'supplier', null
+ #@store.find('supplier', 'current').then success, error
+ @set 'supplier', @store.find('supplier', supplier_id)
diff --git a/app/assets/javascripts/supplier/app/controllers/settings_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/settings_controller.js.coffee
new file mode 100644
index 00000000..909c2780
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/controllers/settings_controller.js.coffee
@@ -0,0 +1,9 @@
+Qsupplier.App.SettingsController = Ember.ObjectController.extend
+ needs: ['application']
+ model: (-> @get('controllers.application.supplier')).property('controllers.application.supplier')
+ time_zones: (-> window.time_zones ).property()
+ countries: (-> window.countries ).property()
+ editIensProfile: (-> @get('model.country') is 'Netherlands' ).property('model.country')
+ actions:
+ saveSettings: ->
+ @get('model').save()
diff --git a/app/assets/javascripts/supplier/app/models/supplier.js.coffee b/app/assets/javascripts/supplier/app/models/supplier.js.coffee
index 5f9aeba0..a3da6c2d 100644
--- a/app/assets/javascripts/supplier/app/models/supplier.js.coffee
+++ b/app/assets/javascripts/supplier/app/models/supplier.js.coffee
@@ -1,3 +1,15 @@
attr = DS.attr
Qsupplier.App.Supplier = DS.Model.extend
name: attr 'string'
+ email: attr 'string'
+ time_zone: attr 'string'
+ address: attr 'string'
+ house_number: attr 'number'
+ house_number_addition: attr 'string'
+ postal_code: attr 'string'
+ city: attr 'string'
+ country: attr 'string'
+ facebook_promotion_url: attr 'string'
+ iens_profile: attr 'string'
+ lat: attr 'number'
+ lng: attr 'number'
diff --git a/app/assets/javascripts/supplier/app/modifications/model_extensions.js.coffee b/app/assets/javascripts/supplier/app/modifications/model_extensions.js.coffee
index 4e536eed..3bff9128 100644
--- a/app/assets/javascripts/supplier/app/modifications/model_extensions.js.coffee
+++ b/app/assets/javascripts/supplier/app/modifications/model_extensions.js.coffee
@@ -1,6 +1,9 @@
DS.Model.reopen
created_at: DS.attr('date')
updated_at: DS.attr('date')
+ eraseRecord: ->
+ @clearRelationships()
+ @transitionTo('deleted.saved')
DS.Model.reopenClass
findCached: (id)->
return null unless id
diff --git a/app/assets/javascripts/supplier/app/router.js.coffee b/app/assets/javascripts/supplier/app/router.js.coffee
index 50ee286c..e9714c62 100644
--- a/app/assets/javascripts/supplier/app/router.js.coffee
+++ b/app/assets/javascripts/supplier/app/router.js.coffee
@@ -10,4 +10,5 @@ Qsupplier.App.Router.map ->
@resource 'section', path: ':section_id'
@resource 'lists', ->
@resource 'list', path: ':list_id'
+ @route 'settings'
#@resource 'lists', queryParams: ['state']
diff --git a/app/assets/javascripts/supplier/app/routes/settings_route.js.coffee b/app/assets/javascripts/supplier/app/routes/settings_route.js.coffee
new file mode 100644
index 00000000..2d4c1154
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/routes/settings_route.js.coffee
@@ -0,0 +1,7 @@
+Qsupplier.App.SettingsRoute = Ember.Route.extend
+ model: ->
+ Em.RSVP.hash
+ supplier: @controllerFor('application').get('supplier')
+ setupController: (controller, model)->
+ #controller.set 'model', controller.get('controllers.application.supplier')
+ controller.set 'model', model.supplier
diff --git a/app/assets/javascripts/supplier/app/templates/settings.emblem b/app/assets/javascripts/supplier/app/templates/settings.emblem
new file mode 100644
index 00000000..ea1dd666
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/templates/settings.emblem
@@ -0,0 +1,40 @@
+h2 These are Ember settings
+.form-row
+ .form-label: label=t 'attributes.supplier.name'
+ .form-field: Ember.TextField valueBinding="controller.model.name"
+.form-row
+ .form-label: label=t 'attributes.supplier.email'
+ .form-field: Qsupplier.App.EmailField valueBinding="controller.model.email"
+/input.location_picker name="location" type="text" valueBinding="location"
+/.form-row
+ .location_picker_map
+ = image_tag 'supplier/settings/location-balloon.png'
+/.form-row
+ .form-label: label=t 'attributes.supplier.time_zone'
+ .form-field: Ember.Select content=time_zones optionValuePath="content.name" optionLabelPath="content.formatted" valueBinding="controller.model.time_zone"
+.form-row
+ .form-label: label=t 'attributes.supplier.address'
+ .form-field.full
+ .row
+ .large-8.medium-8.columns: Ember.TextField valueBinding="controller.model.address"
+ .large-1.show-for-large-up.columns
+ .large-2.medium-2.small-3.columns: Qsupplier.App.NumberField valueBinding="controller.model.house_number"
+ .large-1.medium-2.small-2.columns: Ember.TextField valueBinding="controller.model.house_number_addition"
+.form-row
+ .form-label: label=t 'attributes.supplier.postal_code'
+ .form-field: Ember.TextField valueBinding="controller.model.postal_code"
+.form-row
+ .form-label: label=t 'attributes.supplier.city'
+ .form-field: Ember.TextField valueBinding="controller.model.city"
+.form-row
+ .form-label: label=t 'attributes.supplier.country'
+ .form-field: Ember.Select content=countries optionValuePath="content.name" optionLabelPath="content.name" valueBinding="controller.model.country"
+if editIensProfile
+ .form-row
+ .form-label: label=t 'attributes.supplier.iens_profile'
+ .form-field
+ Qsupplier.App.NumberField valueBinding="controller.model.iens_profile"
+ = image_tag 'supplier/settings/iens-example.png'
+ span=t "settings.reviews.explanation"
+.form-row.form-actions
+ button.button{action 'saveSettings'} Save settings
diff --git a/app/assets/javascripts/supplier/app/views/application_view.js.coffee b/app/assets/javascripts/supplier/app/views/application_view.js.coffee
new file mode 100644
index 00000000..54c210c1
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/views/application_view.js.coffee
@@ -0,0 +1,14 @@
+Qsupplier.App.ApplicationView = Ember.View.extend
+ didInsertElement: ->
+ selector_mappings =
+ '.top-menu-root': '/'
+ '.top-menu-lists': 'lists'
+ '.top-menu-sections': 'sections'
+ '.top-menu-lists': 'lists'
+ '.supplier-settings-link': 'settings'
+
+ for selector, route of selector_mappings
+ do (selector, route)=>
+ $(selector).click (e)=>
+ e.preventDefault()
+ @get('controller').transitionToRoute route
diff --git a/app/assets/javascripts/supplier/app/views/email_field.js.coffee b/app/assets/javascripts/supplier/app/views/email_field.js.coffee
new file mode 100644
index 00000000..4753ab64
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/views/email_field.js.coffee
@@ -0,0 +1,3 @@
+Qsupplier.App.EmailField = Ember.TextField.extend
+ type: 'email'
+ #attributeBindings: ['min', 'max', 'step']
diff --git a/app/assets/javascripts/supplier/app/views/settings_view.js.coffee b/app/assets/javascripts/supplier/app/views/settings_view.js.coffee
new file mode 100644
index 00000000..b2f26755
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/views/settings_view.js.coffee
@@ -0,0 +1,90 @@
+Qsupplier.App.SettingsView = Ember.View.extend
+ templateName: 'settings'
+ didInsertElement: ->
+ return
+
+ iconBase = 'https://maps.google.com/mapfiles/kml/'
+ #location_input = @$('.location_picker')
+ #map_div = $('
').addClass("location_picker_map")
+ map_div = @$('.location_picker_map')
+
+ #location_input.before(map_div)
+ #this.parentNode.insertBefore(map_div, this)
+ #location_input.hide()
+
+ #lat = 52.07436798080633
+ #lng = 4.316811561584473
+ #if @get('controller.location') and @get('controller.location').split(',').length == 2
+ #values = @get('controller.location').split(',')
+ #lat = values[0]
+ #lng = values[1]
+ lat = @get('controller.model.lat')
+ lng = @get('controller.model.lng')
+ center = new google.maps.LatLng(lat,lng)
+ mapOptions =
+ zoom: 15
+ center: center
+ mapTypeId: google.maps.MapTypeId.ROADMAP,
+ zoomControl: true
+ zoomControlOptions:
+ style: google.maps.ZoomControlStyle.SMALL
+ mapTypeControl: false
+ panControl: false
+ scaleControl: false
+ streetViewControl: false
+
+ map = new google.maps.Map(map_div.get(0), mapOptions)
+ marker = new google.maps.Marker(
+ position: center
+ map: map
+ title: 'Location'
+ icon: '/assets/icons/maps_location.png'
+ )
+ google.maps.event.addListener(map, 'click', (point)=>
+ marker.setPosition(point.latLng)
+ #location_input.val point.latLng.lat() + ','+ point.latLng.lng()
+ @set 'controller.model.lat', point.latLng.lat()
+ @set 'controller.model.lng', point.latLng.lng()
+ )
+
+ search_field = $('
')
+ search_field.addClass('location_picker_search')
+ autocomplete = new google.maps.places.Autocomplete(search_field.get(0))
+ autocomplete.bindTo('bounds', map)
+ search_field.keypress( (e) ->
+ if e.which == 13
+ e.preventDefault()
+ )
+ window.autocomplete = autocomplete
+ map_div.before(search_field)
+ infowindow = new google.maps.InfoWindow()
+ search_marker = new google.maps.Marker({map: map, icon: iconBase + 'shapes/placemark_circle.png'})
+ google.maps.event.addListener autocomplete, 'place_changed', ->
+ infowindow.close()
+ search_marker.setVisible(false)
+ place = autocomplete.getPlace()
+ return unless place.geometry
+ #if place.geometry.viewport
+ # map.fitBounds(place.geometry.viewport)
+ #else
+ map.setCenter(place.geometry.location)
+ map.setZoom(17)
+ image =
+ url: place.icon
+ size: new google.maps.Size(71, 71)
+ origin: new google.maps.Point(0, 0)
+ anchor: new google.maps.Point(17, 34)
+ scaledSize: new google.maps.Size(35, 35)
+ #search_marker.setIcon(image)
+ search_marker.setPosition(place.geometry.location)
+ search_marker.setVisible(true)
+
+ address = ''
+ if place.address_components
+ address = [
+ (place.address_components[0] && place.address_components[0].short_name || ''),
+ (place.address_components[1] && place.address_components[1].short_name || ''),
+ (place.address_components[2] && place.address_components[2].short_name || '')
+ ].join(' ')
+ infowindow.setContent('
' + place.name + ' ' + address + '
')
+ infowindow.open(map, search_marker)
diff --git a/app/assets/javascripts/supplier/foundation1/application.js.erb b/app/assets/javascripts/supplier/foundation1/application.js.erb
index 9bc748e1..cdd60c1e 100644
--- a/app/assets/javascripts/supplier/foundation1/application.js.erb
+++ b/app/assets/javascripts/supplier/foundation1/application.js.erb
@@ -23,6 +23,8 @@ $.extend($translations.nl, <%= I18n.t('supplier', locale: :nl).to_json %>);
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
+window.time_zones = <%= ActiveSupport::TimeZone.all.map{|tz| {name: tz.name, formatted: "GMT#{tz.formatted_offset} #{tz.name}"}}.to_json.html_safe %>;
+window.countries = <%= IsoCountryCodes.all.map{|cc| {name: cc.name}}.to_json.html_safe %>;
var path_mapping = {
user_root: '/user',
diff --git a/app/assets/javascripts/supplier/foundation1/initializer.js.coffee b/app/assets/javascripts/supplier/foundation1/initializer.js.coffee
index 9e5c4bc7..0ca9790b 100644
--- a/app/assets/javascripts/supplier/foundation1/initializer.js.coffee
+++ b/app/assets/javascripts/supplier/foundation1/initializer.js.coffee
@@ -40,7 +40,26 @@ $ ->
setupTranslations()
- # GOOGLE LOCATION PICKER
+
+ $('.toggle-side-menu,.side-menu').click ->
+ menu = $('aside.side-menu')
+ toggle = $('.toggle-side-menu')
+ if menu.is(':visible')
+ menu.animate left: -255, -> $(@).hide()
+ toggle.animate left: 0, -> $(@).removeClass('open')
+ else
+ menu.show().animate left: 0
+ toggle.animate left: 222 - 30, -> $(@).addClass('open')
+
+ $('[data-boolean]').each ->
+ $(@).addClass(if $(@).data('boolean') then 'boolean-true' else 'boolean-false')
+
+ # Hide alert boxes on click
+ $(document).on 'click', '.general-alerts .alert-box', -> $(@).slideUp()
+
+ $(document).on 'click', '.supplier-is-closed', -> $(@).slideUp()
+# GOOGLE LOCATION PICKER
+###
$("input.location_picker").each (i)->
#return if typeof(google) == 'undefined'
iconBase = 'https://maps.google.com/mapfiles/kml/'
@@ -124,21 +143,4 @@ $ ->
infowindow.setContent('
' + place.name + ' ' + address + '
')
infowindow.open(map, search_marker)
# end google location map
-
- $('.toggle-side-menu,.side-menu').click ->
- menu = $('aside.side-menu')
- toggle = $('.toggle-side-menu')
- if menu.is(':visible')
- menu.animate left: -255, -> $(@).hide()
- toggle.animate left: 0, -> $(@).removeClass('open')
- else
- menu.show().animate left: 0
- toggle.animate left: 222 - 30, -> $(@).addClass('open')
-
- $('[data-boolean]').each ->
- $(@).addClass(if $(@).data('boolean') then 'boolean-true' else 'boolean-false')
-
- # Hide alert boxes on click
- $(document).on 'click', '.general-alerts .alert-box', -> $(@).slideUp()
-
- $(document).on 'click', '.supplier-is-closed', -> $(@).slideUp()
+###
diff --git a/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee b/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee
index bfd0bb96..b9647292 100644
--- a/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee
+++ b/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee
@@ -2,5 +2,5 @@ DS.Model.reopen
created_at: DS.attr('date')
updated_at: DS.attr('date')
eraseRecord: ->
- @clearRelationships();
- @transitionTo('deleted.saved');
+ @clearRelationships()
+ @transitionTo('deleted.saved')
diff --git a/app/assets/stylesheets/supplier/foundation1/_menu_side.css.sass b/app/assets/stylesheets/supplier/foundation1/_menu_side.css.sass
index f8a929b4..36d5e7c1 100644
--- a/app/assets/stylesheets/supplier/foundation1/_menu_side.css.sass
+++ b/app/assets/stylesheets/supplier/foundation1/_menu_side.css.sass
@@ -11,3 +11,6 @@ aside.side-menu
list-style: none
a
color: white
+.supplier-close-shop
+ +alert($bg: $alert-color, $radius: true)
+ padding: 3px
diff --git a/app/assets/stylesheets/supplier/foundation1/application.css.sass b/app/assets/stylesheets/supplier/foundation1/application.css.sass
index 22bb29ad..785ae0d4 100644
--- a/app/assets/stylesheets/supplier/foundation1/application.css.sass
+++ b/app/assets/stylesheets/supplier/foundation1/application.css.sass
@@ -8,7 +8,7 @@
@import ./qdashboard
@import ./qdisplays
@import ./form_actions
-@import ./qforms
+@import ./components/*
@import ./menu_main
@import ./menu_side
@import ./qsections
diff --git a/app/assets/stylesheets/supplier/foundation1/_qforms.css.sass b/app/assets/stylesheets/supplier/foundation1/components/_forms.css.sass
similarity index 80%
rename from app/assets/stylesheets/supplier/foundation1/_qforms.css.sass
rename to app/assets/stylesheets/supplier/foundation1/components/_forms.css.sass
index 65742f9d..3dd2e783 100644
--- a/app/assets/stylesheets/supplier/foundation1/_qforms.css.sass
+++ b/app/assets/stylesheets/supplier/foundation1/components/_forms.css.sass
@@ -15,8 +15,14 @@
@media #{$large-up}
+grid-column($columns: 3, $last-column:true)
&.full
+ @media #{$small-only}
+ +grid-column($columns:10, $center:true, $last-column:true)
+ @media #{$medium-only}
+ +grid-column($columns:6, $last-column:true)
@media #{$large-up}
+grid-column($columns: 9, $last-column:true)
+ &.form-actions
+ padding-top: 12px
body
label
&.number
diff --git a/app/controllers/supplier_controller.rb b/app/controllers/supplier_controller.rb
index 347898f6..cc193497 100644
--- a/app/controllers/supplier_controller.rb
+++ b/app/controllers/supplier_controller.rb
@@ -12,18 +12,24 @@ class SupplierController < ApplicationController
end
def current
- respond_to do |format|
- format.json { render json: {supplier: current_supplier.as_json} }
- end
+ render json: SupplierSupplierSerializer.new(current_supplier).as_json
end
# POST /supplier/settings
def update
@supplier = current_supplier
- if current_supplier.update_attributes(supplier_params)
- redirect_to supplier_root_path
- else
- render action: :edit
+ respond_to do |format|
+ format.html do
+ if current_supplier.update_attributes(supplier_params)
+ redirect_to supplier_root_path
+ else
+ render action: :edit
+ end
+ end
+ format.json do
+ current_supplier.update_attributes(supplier_params)
+ render nothing: true
+ end
end
end
@@ -119,6 +125,29 @@ class SupplierController < ApplicationController
private
def supplier_params
- params.require(:supplier).permit(:name, :email, :open, :time_zone, :night_offset, :location, :lat, :lng, :offer_wifi, :wifi_ssid, :wifi_type, :wifi_password, :iens_profile)
+ params.require(:supplier).permit(
+ :name,
+ :email,
+ :open,
+ :time_zone,
+ :night_offset,
+ :location,
+ :lat,
+ :lng,
+ :offer_wifi,
+ :wifi_ssid,
+ :wifi_type,
+ :wifi_password,
+ :iens_profile,
+ :address,
+ :house_number,
+ :house_number_addition,
+ :postal_code,
+ :city,
+ :country,
+ :facebook_promotion_url,
+ :created_at,
+ :updated_at
+ )
end
end
diff --git a/app/models/supplier.rb b/app/models/supplier.rb
index 47176da1..41b6c652 100644
--- a/app/models/supplier.rb
+++ b/app/models/supplier.rb
@@ -10,10 +10,17 @@ class Supplier
property :open, type: :boolean, default: false
property :time_zone, default: 'UTC'
property :night_offset, type: Fixnum, default: 0 # Minutes
+ property :address
+ property :house_number
+ property :house_number_addition
+ property :postal_code
+ property :city
+ property :country, default: 'Netherlands'
+ property :facebook_promotion_url
#LOCATION
- property :lat, type: Float, default: 52.08062426379751
- property :lng, type: Float, default: 4.312562942504883
+ property :lat, type: Float #, default: 52.08062426379751
+ property :lng, type: Float #, default: 4.312562942504883
#WIFI
property :offer_wifi
diff --git a/app/serializers/supplier_supplier_serializer.rb b/app/serializers/supplier_supplier_serializer.rb
index cf9037d1..b129c95f 100644
--- a/app/serializers/supplier_supplier_serializer.rb
+++ b/app/serializers/supplier_supplier_serializer.rb
@@ -1,6 +1,7 @@
class SupplierSupplierSerializer < Qwaiter::Serializer
self.root = :supplier
- attributes :extended_version, :open, :name
+ attributes :extended_version, :open, :name, :lat, :lng, :email, :time_zone, :address, :house_number, :house_number_addition, :postal_code, :city, :country,
+ :facebook_promotion_url, :iens_profile
def extended_version
false
diff --git a/app/views/layouts/tablet.html.slim b/app/views/layouts/tablet.html.slim
index dfb7b11c..2a2710a1 100644
--- a/app/views/layouts/tablet.html.slim
+++ b/app/views/layouts/tablet.html.slim
@@ -15,6 +15,9 @@ html lang="en"
= render 'suppliers/application/head'
= javascript_include_tag "supplier/foundation1/application"
= yield :head
+ = javascript_include_tag "https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places&language=#{I18n.locale}"
+ javascript:
+ supplier_id="#{current_supplier.id}";
body
= render 'suppliers/application/top_menu'
diff --git a/app/views/supplier/edit.html.slim b/app/views/supplier/edit.html.slim
index 61928ac5..aae10acd 100644
--- a/app/views/supplier/edit.html.slim
+++ b/app/views/supplier/edit.html.slim
@@ -1,7 +1,7 @@
- content_for :head do
- = javascript_include_tag "https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places&language=#{I18n.locale}"
+ = javascript_include_tag 'supplier/app/application'
-= form_for @supplier, url: supplier_update_settings_path, html: {class: 'form-horizontal'} do |f|
+/= form_for @supplier, url: supplier_update_settings_path, html: {class: 'form-horizontal'} do |f|
= render 'suppliers/application/error_messages', target: current_supplier
.control-group class=(@supplier.errors[:name].any? ? 'error' : nil)
= f.label :name, class: 'control-label'
diff --git a/app/views/suppliers/application/_top_menu.html.slim b/app/views/suppliers/application/_top_menu.html.slim
index 289027f5..ef86624d 100644
--- a/app/views/suppliers/application/_top_menu.html.slim
+++ b/app/views/suppliers/application/_top_menu.html.slim
@@ -5,12 +5,12 @@ header.top-menu
section.main-buttons
//li= link_to t('supplier.menu.active_orders', orders: Order.model_name.human_plural), supplier_active_orders_path
//li= link_to t('supplier.menu.active_lists', lists: List.model_name.human_plural), supplier_active_lists_path
- = link_to image_tag('icons/logo-small.png'), supplier_root_path
- = link_to ProductCategory.model_name.human_plural, suppliers_product_categories_path, data: {t: 'models.plural.product_category'}
- = link_to Product.model_name.human_plural, suppliers_products_path, data: {t: 'models.plural.product'}
- = link_to Section.model_name.human_plural, suppliers_sections_path, data: {t: 'models.plural.section'}
- = link_to Table.model_name.human_plural, suppliers_tables_path, data: {t: 'models.plural.table'}
- = link_to List.model_name.human_plural, suppliers_lists_path, data: {t: 'models.plural.list'}
+ = link_to image_tag('icons/logo-small.png'), supplier_root_path, class: 'top-menu-root'
+ = link_to ProductCategory.model_name.human_plural, suppliers_product_categories_path, data: {t: 'models.plural.product_category'}, class: 'top-menu-product_categories'
+ = link_to Product.model_name.human_plural, suppliers_products_path, data: {t: 'models.plural.product'}, class: 'top-menu-products'
+ = link_to Section.model_name.human_plural, suppliers_sections_path, data: {t: 'models.plural.section'}, class: 'top-menu-sections'
+ = link_to Table.model_name.human_plural, suppliers_tables_path, data: {t: 'models.plural.table'}, class: 'top-menu-tables'
+ = link_to List.model_name.human_plural, suppliers_lists_path, data: {t: 'models.plural.list'}, class: 'top-menu-lists'
section.extra-info
.supplier-info-row
.supplier-name= current_supplier.name.presence || current_supplier.email
@@ -29,9 +29,9 @@ aside.side-menu
- if current_supplier.open?
li
= form_tag supplier_mark_as_closed_path do
- = submit_tag t('supplier.close'), class: [:btn, 'btn-danger'], onClick: %|$(this).parents('form').submit()|
- li= link_to 'Settings', supplier_settings_path
- li= link_to 'Logout', destroy_supplier_session_path, method: :delete
+ = submit_tag t('supplier.close'), class: 'supplier-close-shop', onClick: %|$(this).parents('form').submit()|
+ li= link_to 'Settings', supplier_settings_path, class: 'supplier-settings-link'
+ li= link_to 'Logout', destroy_supplier_session_path, method: :delete, class: 'supplier-sign-out-link'
/.navbar.navbar-fixed-top.navbar-inverse
.navbar-inner
.container
diff --git a/app/views/suppliers/sessions/new.html.slim b/app/views/suppliers/sessions/new.html.slim
index 45a082f7..cb0c88b5 100644
--- a/app/views/suppliers/sessions/new.html.slim
+++ b/app/views/suppliers/sessions/new.html.slim
@@ -4,6 +4,9 @@ h2= t('devise.sessions.title')
= f.row :email do
.form-label= f.label :email
.form-field= f.email_field :email
+ = f.row :email do
+ .form-label= f.label :password, class: 'control-label'
+ .form-field= f.password_field :password
.form-row
= f.label :remember_me do
= f.check_box :remember_me
diff --git a/config/locales/supplier.en.yml b/config/locales/supplier.en.yml
index e4111080..ae55a016 100644
--- a/config/locales/supplier.en.yml
+++ b/config/locales/supplier.en.yml
@@ -86,7 +86,7 @@ en:
settings:
reviews:
title: Reviews
- explanation: Fill in your Iens id. You can find this id in the web location of your profile
+ explanation: Fill in your Iens id. You can find this id in the web location of your page
product_category:
week_days:
abbreviation:
diff --git a/config/locales/supplier.nl.yml b/config/locales/supplier.nl.yml
index 1b1fff3a..130f048d 100644
--- a/config/locales/supplier.nl.yml
+++ b/config/locales/supplier.nl.yml
@@ -86,7 +86,7 @@ nl:
settings:
reviews:
title: Reviews
- explanation: Vul hier je iens id in. Deze kan je halen uit de url van je iens profiel
+ explanation: Vul hier je iens id in. Deze kan je halen uit de url van je iens pagina
product_category:
week_days:
abbreviation:
diff --git a/config/routes.rb b/config/routes.rb
index d62bce2e..06b3ba16 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -83,6 +83,8 @@ Qwaiter::Application.routes.draw do
get '/supplier/suppliers/current' => 'supplier#current' #ember
+ get '/supplier/suppliers/:id' => 'supplier#current' #ember
+ put '/supplier/suppliers/:id' => 'supplier#update' #ember
#match '/show_products' => 'dashboard#show_products', as: :user_products
# GENERAL
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 918f3121..c51dc52f 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -125,6 +125,15 @@ RSpec.configure do |config|
Capybara.session_name = :default
end
+ config.after :suite do
+ rspec_outfile = Rails.root.join('coverage/rspec_results.html')
+ result = File.read rspec_outfile
+ replacement = %|
|
+ result.gsub! //, replacement
+ File.open(rspec_outfile, 'w'){|f| f.puts result}
+ `open #{rspec_outfile}`
+ end
+
# If true, the base class of anonymous controllers will be inferred
# automatically. This will be the default behavior in future versions of
# rspec-rails.
diff --git a/wip.md b/wip.md
index d9672d43..7afae031 100644
--- a/wip.md
+++ b/wip.md
@@ -60,3 +60,4 @@ Users can disable their own help request (maak ongedaan?)
Users can disable their own bill request (maak ongedaan?)
Think about extra confirmation box for these requests
Supplier section 100% on ember :)
+Supplier give help for settings