diff --git a/app/assets/javascripts/supplier/app/views/form_elements/boolean_button_view.js.coffee b/app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee
similarity index 65%
rename from app/assets/javascripts/supplier/app/views/form_elements/boolean_button_view.js.coffee
rename to app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee
index daf9c860..d14a470c 100644
--- a/app/assets/javascripts/supplier/app/views/form_elements/boolean_button_view.js.coffee
+++ b/app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee
@@ -1,13 +1,14 @@
-App.BooleanButtonView = Ember.View.extend
+App.BooleanButtonComponent = Ember.Component.extend
tagName: 'a'
href: '#'
classNames: "button"
- templateName: "form_elements/boolean_button"
+ templateName: "form/boolean-button"
#template: Ember.Handlebars.compile "{{view.text}}"
classNameBindings: ['rounded:round', 'active:active:disabled']
text: Ember.computed 'text_path', ->
- new Ember.Handlebars.SafeString(tspan(@text_path))
+ return unless text_path = @get('text_path')
+ new Ember.Handlebars.SafeString(tspan(text_path))
active: Ember.computed 'value', ->
if @reverse then !@get('value') else !!@get('value')
diff --git a/app/assets/javascripts/supplier/app/views/form_elements/boolean_switch_view.js.coffee b/app/assets/javascripts/supplier/app/components/form/boolean-switch.js.coffee
similarity index 68%
rename from app/assets/javascripts/supplier/app/views/form_elements/boolean_switch_view.js.coffee
rename to app/assets/javascripts/supplier/app/components/form/boolean-switch.js.coffee
index 705720a0..5fe0a5a4 100644
--- a/app/assets/javascripts/supplier/app/views/form_elements/boolean_switch_view.js.coffee
+++ b/app/assets/javascripts/supplier/app/components/form/boolean-switch.js.coffee
@@ -1,6 +1,6 @@
-App.BooleanSwitchView = Ember.View.extend
+App.BooleanSwitchComponent = Ember.Component.extend
classNames: "switch"
- templateName: "form_elements/boolean_switch"
+ templateName: "form/boolean-switch"
classNameBindings: ['rounded:round']
click: ->
diff --git a/app/assets/javascripts/supplier/app/components/menu-product.js.coffee b/app/assets/javascripts/supplier/app/components/menu-product.js.coffee
index 0acdbeba..b2b41d1f 100644
--- a/app/assets/javascripts/supplier/app/components/menu-product.js.coffee
+++ b/app/assets/javascripts/supplier/app/components/menu-product.js.coffee
@@ -8,8 +8,8 @@ App.MenuProductComponent = Ember.Component.extend
(@get('product.code') || "").toLowerCase().indexOf(filter.toLowerCase()) >= 0
).property('code_filter')
menu_product_class: (-> "menu-product-#{@get('product.id') || 'new'}").property('product.id')
- code_filter_display: (->
- return new Ember.Handlebars.SafeString(' ') unless code = @get('product.code')
+ code_filter_display: Ember.computed 'code_filter', 'product.code', ->
+ return " ".htmlSafe() unless code = @get('product.code')
return code unless filter = @get('code_filter')
index = code.toLowerCase().indexOf(filter.toLowerCase())
if index >= 0
@@ -19,14 +19,13 @@ App.MenuProductComponent = Ember.Component.extend
"#{pre_code}#{highlight}#{post_code}".htmlSafe()
else
code
- ).property('code_filter')
actions:
makeEditable: -> @set('editMode', true)
save: ->
return unless @get('product.isValid')
@get('product.product_variants').forEach (product_variant)->
- product_variant.save() if product_variant.get('isDirty')
- if @get('product.isDirty')
+ product_variant.save() if product_variant.get('hasDirtyAttributes')
+ if @get('product.hasDirtyAttributes')
@get('product').save()
@set 'editMode', false
destroyProduct: (product)->
diff --git a/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee b/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee
index 8de3da41..fdb09fc5 100644
--- a/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee
+++ b/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee
@@ -22,11 +22,11 @@ App.MenuTimePreviewComponent = Ember.Component.extend
@set 'active', false
@set 'collapsed', true
daysContent: (->
- $days.map( (d) -> Ember.Object.create( name: d, text: t("date.day_names.#{d}")) )
+ $days.map( (d) -> Ember.Object.create( name: d, text: t("date.day_name.#{d}")) )
).property()
preview_day_text: (->
return "" unless day = @get('preview_day.text')
- #day_text = tspan("date.day_names.#{day.get('name')}")
+ #day_text = tspan("date.day_name.#{day.get('name')}")
tag = "
#{day}
"
new Ember.Handlebars.SafeString(tag)
).property('preview_day')
diff --git a/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee
index 493cdae5..ecd1738e 100644
--- a/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee
+++ b/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee
@@ -11,9 +11,13 @@
translation_params = model.serialize() if model.serialize
# return translated title_path if directly set by options
- return tspan(@get('modal_options.title_path'), translation_params).htmlSafe() if @get('modal_options.title_path')
# return translated title_path if directly set by controller
- return tspan(@title_path, translation_params).htmlSafe() if @title_path
+ if title_path = @get('modal_options.title_path') || @get('title_path')
+ return tspan(title_path, translation_params).htmlSafe()
+ # return translated title_path if directly set by options
+ #return tspan(@get('modal_options.title_path'), translation_params).htmlSafe() if @get('modal_options.title_path')
+ # return translated title_path if directly set by controller
+ #return tspan(@title_path, translation_params).htmlSafe() if @title_path
# infer title path based on controller name App.modals.AddSectionController => add_section
underscored = `this.constructor.toString().substr(11).replace(/Controller$/, '').underscore()`
# find translated title or humanize the controller name
diff --git a/app/assets/javascripts/supplier/app/controllers/modals/product_category_move_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/modals/product_category_move_controller.js.coffee
index c51fb9f8..fd7c4131 100644
--- a/app/assets/javascripts/supplier/app/controllers/modals/product_category_move_controller.js.coffee
+++ b/app/assets/javascripts/supplier/app/controllers/modals/product_category_move_controller.js.coffee
@@ -27,4 +27,4 @@ App.modals.ProductCategoryMoveController = App.modals.BaseController.extend
if product = products.findProperty('id', id)
#TODO: raise in frontend if product.get('isDirty'). Cannot modify position of product containing non persisted change
product.set('position', i)
- product.save() if product.get('isDirty')
+ product.save() if product.get('hasDirtyAttributes')
diff --git a/app/assets/javascripts/supplier/app/controllers/section_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/section_controller.js.coffee
index c672ca7f..47ae442a 100644
--- a/app/assets/javascripts/supplier/app/controllers/section_controller.js.coffee
+++ b/app/assets/javascripts/supplier/app/controllers/section_controller.js.coffee
@@ -6,8 +6,8 @@ App.SectionController = Ember.Controller.extend
finishEditable: ->
@set('editmode', false)
@get('model').save()
- @get('model.section_elements').filterProperty('isDirty').invoke 'save'
- @get('model.section_areas').filterProperty('isDirty').invoke 'save'
+ @get('model.section_elements').filterProperty('hasDirtyAttributes').invoke 'save'
+ @get('model.section_areas').filterProperty('hasDirtyAttributes').invoke 'save'
rollbackEditable: ->
@get('model').rollback()
@get('model.section_elements').forEach (section_element) ->
diff --git a/app/assets/javascripts/supplier/app/templates/components/menu-product.emblem b/app/assets/javascripts/supplier/app/templates/components/menu-product.emblem
index 03f0206e..1a09fe1b 100644
--- a/app/assets/javascripts/supplier/app/templates/components/menu-product.emblem
+++ b/app/assets/javascripts/supplier/app/templates/components/menu-product.emblem
@@ -13,7 +13,7 @@ if editMode
a.save-product-action{action "save"}: span
.row
.small-3.columns= t 'attributes.product.active'
- .small-9.columns: view "boolean-switch" value=product.active
+ .small-9.columns: boolean-switch value=product.active
.row.menu-product-container
.small-12.medium-6.columns
= descriptionPlaceholder
diff --git a/app/assets/javascripts/supplier/app/templates/components/menu-time-preview.emblem b/app/assets/javascripts/supplier/app/templates/components/menu-time-preview.emblem
index f773aa85..1939459e 100644
--- a/app/assets/javascripts/supplier/app/templates/components/menu-time-preview.emblem
+++ b/app/assets/javascripts/supplier/app/templates/components/menu-time-preview.emblem
@@ -11,7 +11,7 @@ else
h4= t 'product_category.time_preview.title'
= view "select" content=daysContent optionValuePath="content.value" optionLabelPath="content.text" selection=preview_day prompt=" -- "
br
- = view 'boolean-button' value=preview_full_day reverse=true text_path="product_category.time_preview.active_at"
+ = boolean-button value=preview_full_day reverse=true text_path="product_category.time_preview.active_at"
unless preview_full_day
= view "select-minute-of-day" value=preview_minute_of_day
hr
diff --git a/app/assets/javascripts/supplier/app/templates/form/boolean-button.emblem b/app/assets/javascripts/supplier/app/templates/form/boolean-button.emblem
new file mode 100644
index 00000000..a6df08be
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/templates/form/boolean-button.emblem
@@ -0,0 +1 @@
+span= text
diff --git a/app/assets/javascripts/supplier/app/templates/form/boolean-switch.emblem b/app/assets/javascripts/supplier/app/templates/form/boolean-switch.emblem
new file mode 100644
index 00000000..0d2d35d1
--- /dev/null
+++ b/app/assets/javascripts/supplier/app/templates/form/boolean-switch.emblem
@@ -0,0 +1,2 @@
+= input type="checkbox" id=view.switchId checked=value
+label for=switchId
diff --git a/app/assets/javascripts/supplier/app/templates/form_elements/boolean_button.emblem b/app/assets/javascripts/supplier/app/templates/form_elements/boolean_button.emblem
deleted file mode 100644
index 154a69f2..00000000
--- a/app/assets/javascripts/supplier/app/templates/form_elements/boolean_button.emblem
+++ /dev/null
@@ -1 +0,0 @@
-span= view.text
diff --git a/app/assets/javascripts/supplier/app/templates/form_elements/boolean_switch.emblem b/app/assets/javascripts/supplier/app/templates/form_elements/boolean_switch.emblem
deleted file mode 100644
index fd22b59a..00000000
--- a/app/assets/javascripts/supplier/app/templates/form_elements/boolean_switch.emblem
+++ /dev/null
@@ -1,2 +0,0 @@
-= input type="checkbox" id=view.switchId checkedBinding="view.value"
-label for=view.switchId
diff --git a/app/assets/javascripts/supplier/app/templates/modals/employee_edit.emblem b/app/assets/javascripts/supplier/app/templates/modals/employee_edit.emblem
index bdfaf276..0c936f8a 100644
--- a/app/assets/javascripts/supplier/app/templates/modals/employee_edit.emblem
+++ b/app/assets/javascripts/supplier/app/templates/modals/employee_edit.emblem
@@ -12,10 +12,10 @@ p=t 'employee.modal.body_header'
if isNotSelf
.form-row.manager
.form-label= t 'attributes.employee.manager'
- .form-field= view "boolean-switch" value=model.manager
+ .form-field= boolean-switch value=model.manager
.form-row.active
.form-label= t 'attributes.employee.active'
- .form-field= view "boolean-switch" value=model.active
+ .form-field= boolean-switch value=model.active
.form-row.color
.form-label= t 'attributes.employee.color'
@@ -26,4 +26,4 @@ if isNotSelf
hr
button.modal-close{action "close"}=t 'employee.modal.close_button'
button.modal-confirm.right{action "save"} disabled=model.isInvalid
- =t 'employee.modal.save_button'
+ t 'employee.modal.save_button'
diff --git a/app/assets/javascripts/supplier/app/templates/modals/product_category_form.emblem b/app/assets/javascripts/supplier/app/templates/modals/product_category_form.emblem
index 1cae928e..6ab6a2d1 100644
--- a/app/assets/javascripts/supplier/app/templates/modals/product_category_form.emblem
+++ b/app/assets/javascripts/supplier/app/templates/modals/product_category_form.emblem
@@ -6,32 +6,32 @@
unless model.supplier.week_starts_on_monday
.form-row.sunday
.form-label.half= t 'date.day_name.sunday'
- .form-field.half= view "boolean-switch" value=model.active_on_sunday
+ .form-field.half= boolean-switch value=model.active_on_sunday
.form-row.monday
.form-label.half= t 'date.day_name.monday'
- .form-field.half= view "boolean-switch" value=model.active_on_monday
+ .form-field.half= boolean-switch value=model.active_on_monday
.form-row.tuesday
.form-label.half= t 'date.day_name.tuesday'
- .form-field.half= view "boolean-switch" value=model.active_on_tuesday
+ .form-field.half= boolean-switch value=model.active_on_tuesday
.form-row.wednesday
.form-label.half= t 'date.day_name.wednesday'
- .form-field.half= view "boolean-switch" value=model.active_on_wednesday
+ .form-field.half= boolean-switch value=model.active_on_wednesday
.form-row.thursday
.form-label.half= t 'date.day_name.thursday'
- .form-field.half= view "boolean-switch" value=model.active_on_thursday
+ .form-field.half= boolean-switch value=model.active_on_thursday
.form-row.friday
.form-label.half= t 'date.day_name.friday'
- .form-field.half= view "boolean-switch" value=model.active_on_friday
+ .form-field.half= boolean-switch value=model.active_on_friday
.form-row.saturday
.form-label.half= t 'date.day_name.saturday'
- .form-field.half= view "boolean-switch" value=model.active_on_saturday
+ .form-field.half= boolean-switch value=model.active_on_saturday
if model.supplier.week_starts_on_monday
.form-row.sunday
.form-label.half= t 'date.day_name.sunday'
- .form-field.half= view "boolean-switch" valueBinding=model.active_on_sunday
+ .form-field.half= boolean-switch valueBinding=model.active_on_sunday
.small-12.medium-6.columns
.row
- .small-12.columns.text-center= view 'boolean-button' value=model.full_day reverse=true text_path="product_category.modal.active_between.top"
+ .small-12.columns.text-center= boolean-button value=model.full_day reverse=true text_path="product_category.modal.active_between.top"
unless model.full_day
.row
.small-12.columns= view "select-minute-of-day" value=model.start_from
diff --git a/app/assets/javascripts/supplier/foundation1/application.js.erb b/app/assets/javascripts/supplier/foundation1/application.js.erb
index 6f3d053b..714541c0 100644
--- a/app/assets/javascripts/supplier/foundation1/application.js.erb
+++ b/app/assets/javascripts/supplier/foundation1/application.js.erb
@@ -13,6 +13,7 @@
//= require pickdate
//= require_directory .
//= require_self
+
if(!Modernizr.cssanimations){
window.location = "/unsupported-browser";
}
diff --git a/app/assets/javascripts/translations.js.coffee.erb b/app/assets/javascripts/translations.js.coffee.erb
index d3dce2a4..2e668c6f 100644
--- a/app/assets/javascripts/translations.js.coffee.erb
+++ b/app/assets/javascripts/translations.js.coffee.erb
@@ -14,7 +14,6 @@
errors: <%= I18n.t('errors', locale: :nl).to_json %>
date: <%= {day_name: Hash[Date::DAYNAMES.map(&:downcase).zip(I18n.t('date.day_names', locale: :nl))]}.to_json %>
-
@day_minutes_to_time = (minutes)->
return "" unless minutes
[("0" + Math.floor(minutes/60)).substr(-2,2), ("0" + Math.floor(minutes%60)).substr(-2,2)].join(":")
diff --git a/config/locales/supplier.en.yml b/config/locales/supplier.en.yml
index edbd87ba..c07331db 100644
--- a/config/locales/supplier.en.yml
+++ b/config/locales/supplier.en.yml
@@ -148,7 +148,7 @@ en:
new_button: Add ${models.product_category}
time_preview:
title: Preview ${models.plural.product_category|downcase}
- active_at: Active on
+ active_at: Active at time
activate_button: Activate preview
deactivate_button: Stop preview
modal:
@@ -180,6 +180,8 @@ en:
preview:
header: 'Select moment to preview products'
description: 'Products visible to customers at chosen moment:'
+ product_variant:
+ add_product_variant: "Add variant"
state:
list:
active: 'Active'
diff --git a/config/locales/supplier.nl.yml b/config/locales/supplier.nl.yml
index ea66c152..52ee78cd 100644
--- a/config/locales/supplier.nl.yml
+++ b/config/locales/supplier.nl.yml
@@ -146,7 +146,7 @@ nl:
new_button: ${models.product_category} toevoegen
time_preview:
title: Preview ${models.plural.product_category|downcase}
- active_at: Actief om
+ active_at: Actief op tijdstip
activate_button: Activeer preview
deactivate_button: Stop preview
modal:
@@ -183,6 +183,8 @@ nl:
preview:
header: 'Selecteer tijdstip voor voorbeeld'
description: 'Producten op gekozen tijdstip:'
+ product_variant:
+ add_product_variant: "Variant toevoegen"
state:
list:
active: 'Actief'