Fixes and improvements

This commit is contained in:
2015-08-06 16:24:18 +02:00
parent d27afa9558
commit 0052f97465
19 changed files with 45 additions and 37 deletions
@@ -1,13 +1,14 @@
App.BooleanButtonView = Ember.View.extend App.BooleanButtonComponent = Ember.Component.extend
tagName: 'a' tagName: 'a'
href: '#' href: '#'
classNames: "button" classNames: "button"
templateName: "form_elements/boolean_button" templateName: "form/boolean-button"
#template: Ember.Handlebars.compile "<span>{{view.text}}</span>" #template: Ember.Handlebars.compile "<span>{{view.text}}</span>"
classNameBindings: ['rounded:round', 'active:active:disabled'] classNameBindings: ['rounded:round', 'active:active:disabled']
text: Ember.computed 'text_path', -> 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', -> active: Ember.computed 'value', ->
if @reverse then !@get('value') else !!@get('value') if @reverse then !@get('value') else !!@get('value')
@@ -1,6 +1,6 @@
App.BooleanSwitchView = Ember.View.extend App.BooleanSwitchComponent = Ember.Component.extend
classNames: "switch" classNames: "switch"
templateName: "form_elements/boolean_switch" templateName: "form/boolean-switch"
classNameBindings: ['rounded:round'] classNameBindings: ['rounded:round']
click: -> click: ->
@@ -8,8 +8,8 @@ App.MenuProductComponent = Ember.Component.extend
(@get('product.code') || "").toLowerCase().indexOf(filter.toLowerCase()) >= 0 (@get('product.code') || "").toLowerCase().indexOf(filter.toLowerCase()) >= 0
).property('code_filter') ).property('code_filter')
menu_product_class: (-> "menu-product-#{@get('product.id') || 'new'}").property('product.id') menu_product_class: (-> "menu-product-#{@get('product.id') || 'new'}").property('product.id')
code_filter_display: (-> code_filter_display: Ember.computed 'code_filter', 'product.code', ->
return new Ember.Handlebars.SafeString('&nbsp;') unless code = @get('product.code') return "&nbsp;".htmlSafe() unless code = @get('product.code')
return code unless filter = @get('code_filter') return code unless filter = @get('code_filter')
index = code.toLowerCase().indexOf(filter.toLowerCase()) index = code.toLowerCase().indexOf(filter.toLowerCase())
if index >= 0 if index >= 0
@@ -19,14 +19,13 @@ App.MenuProductComponent = Ember.Component.extend
"#{pre_code}<span class='highlight'>#{highlight}</span>#{post_code}".htmlSafe() "#{pre_code}<span class='highlight'>#{highlight}</span>#{post_code}".htmlSafe()
else else
code code
).property('code_filter')
actions: actions:
makeEditable: -> @set('editMode', true) makeEditable: -> @set('editMode', true)
save: -> save: ->
return unless @get('product.isValid') return unless @get('product.isValid')
@get('product.product_variants').forEach (product_variant)-> @get('product.product_variants').forEach (product_variant)->
product_variant.save() if product_variant.get('isDirty') product_variant.save() if product_variant.get('hasDirtyAttributes')
if @get('product.isDirty') if @get('product.hasDirtyAttributes')
@get('product').save() @get('product').save()
@set 'editMode', false @set 'editMode', false
destroyProduct: (product)-> destroyProduct: (product)->
@@ -22,11 +22,11 @@ App.MenuTimePreviewComponent = Ember.Component.extend
@set 'active', false @set 'active', false
@set 'collapsed', true @set 'collapsed', true
daysContent: (-> 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() ).property()
preview_day_text: (-> preview_day_text: (->
return "" unless day = @get('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 = "<h4>#{day}</h4>" tag = "<h4>#{day}</h4>"
new Ember.Handlebars.SafeString(tag) new Ember.Handlebars.SafeString(tag)
).property('preview_day') ).property('preview_day')
@@ -11,9 +11,13 @@
translation_params = model.serialize() if model.serialize translation_params = model.serialize() if model.serialize
# return translated title_path if directly set by options # 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 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 # infer title path based on controller name App.modals.AddSectionController => add_section
underscored = `this.constructor.toString().substr(11).replace(/Controller$/, '').underscore()` underscored = `this.constructor.toString().substr(11).replace(/Controller$/, '').underscore()`
# find translated title or humanize the controller name # find translated title or humanize the controller name
@@ -27,4 +27,4 @@ App.modals.ProductCategoryMoveController = App.modals.BaseController.extend
if product = products.findProperty('id', id) if product = products.findProperty('id', id)
#TODO: raise in frontend if product.get('isDirty'). Cannot modify position of product containing non persisted change #TODO: raise in frontend if product.get('isDirty'). Cannot modify position of product containing non persisted change
product.set('position', i) product.set('position', i)
product.save() if product.get('isDirty') product.save() if product.get('hasDirtyAttributes')
@@ -6,8 +6,8 @@ App.SectionController = Ember.Controller.extend
finishEditable: -> finishEditable: ->
@set('editmode', false) @set('editmode', false)
@get('model').save() @get('model').save()
@get('model.section_elements').filterProperty('isDirty').invoke 'save' @get('model.section_elements').filterProperty('hasDirtyAttributes').invoke 'save'
@get('model.section_areas').filterProperty('isDirty').invoke 'save' @get('model.section_areas').filterProperty('hasDirtyAttributes').invoke 'save'
rollbackEditable: -> rollbackEditable: ->
@get('model').rollback() @get('model').rollback()
@get('model.section_elements').forEach (section_element) -> @get('model.section_elements').forEach (section_element) ->
@@ -13,7 +13,7 @@ if editMode
a.save-product-action{action "save"}: span a.save-product-action{action "save"}: span
.row .row
.small-3.columns= t 'attributes.product.active' .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 .row.menu-product-container
.small-12.medium-6.columns .small-12.medium-6.columns
= descriptionPlaceholder = descriptionPlaceholder
@@ -11,7 +11,7 @@ else
h4= t 'product_category.time_preview.title' h4= t 'product_category.time_preview.title'
= view "select" content=daysContent optionValuePath="content.value" optionLabelPath="content.text" selection=preview_day prompt=" -- " = view "select" content=daysContent optionValuePath="content.value" optionLabelPath="content.text" selection=preview_day prompt=" -- "
br 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 unless preview_full_day
= view "select-minute-of-day" value=preview_minute_of_day = view "select-minute-of-day" value=preview_minute_of_day
hr hr
@@ -0,0 +1 @@
span= text
@@ -0,0 +1,2 @@
= input type="checkbox" id=view.switchId checked=value
label for=switchId
@@ -1 +0,0 @@
span= view.text
@@ -1,2 +0,0 @@
= input type="checkbox" id=view.switchId checkedBinding="view.value"
label for=view.switchId
@@ -12,10 +12,10 @@ p=t 'employee.modal.body_header'
if isNotSelf if isNotSelf
.form-row.manager .form-row.manager
.form-label= t 'attributes.employee.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-row.active
.form-label= t 'attributes.employee.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-row.color
.form-label= t 'attributes.employee.color' .form-label= t 'attributes.employee.color'
@@ -26,4 +26,4 @@ if isNotSelf
hr hr
button.modal-close{action "close"}=t 'employee.modal.close_button' button.modal-close{action "close"}=t 'employee.modal.close_button'
button.modal-confirm.right{action "save"} disabled=model.isInvalid button.modal-confirm.right{action "save"} disabled=model.isInvalid
=t 'employee.modal.save_button' t 'employee.modal.save_button'
@@ -6,32 +6,32 @@
unless model.supplier.week_starts_on_monday unless model.supplier.week_starts_on_monday
.form-row.sunday .form-row.sunday
.form-label.half= t 'date.day_name.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-row.monday
.form-label.half= t 'date.day_name.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-row.tuesday
.form-label.half= t 'date.day_name.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-row.wednesday
.form-label.half= t 'date.day_name.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-row.thursday
.form-label.half= t 'date.day_name.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-row.friday
.form-label.half= t 'date.day_name.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-row.saturday
.form-label.half= t 'date.day_name.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 if model.supplier.week_starts_on_monday
.form-row.sunday .form-row.sunday
.form-label.half= t 'date.day_name.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 .small-12.medium-6.columns
.row .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 unless model.full_day
.row .row
.small-12.columns= view "select-minute-of-day" value=model.start_from .small-12.columns= view "select-minute-of-day" value=model.start_from
@@ -13,6 +13,7 @@
//= require pickdate //= require pickdate
//= require_directory . //= require_directory .
//= require_self //= require_self
if(!Modernizr.cssanimations){ if(!Modernizr.cssanimations){
window.location = "/unsupported-browser"; window.location = "/unsupported-browser";
} }
@@ -14,7 +14,6 @@
errors: <%= I18n.t('errors', locale: :nl).to_json %> 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 %> date: <%= {day_name: Hash[Date::DAYNAMES.map(&:downcase).zip(I18n.t('date.day_names', locale: :nl))]}.to_json %>
@day_minutes_to_time = (minutes)-> @day_minutes_to_time = (minutes)->
return "" unless minutes return "" unless minutes
[("0" + Math.floor(minutes/60)).substr(-2,2), ("0" + Math.floor(minutes%60)).substr(-2,2)].join(":") [("0" + Math.floor(minutes/60)).substr(-2,2), ("0" + Math.floor(minutes%60)).substr(-2,2)].join(":")
+3 -1
View File
@@ -148,7 +148,7 @@ en:
new_button: Add ${models.product_category} new_button: Add ${models.product_category}
time_preview: time_preview:
title: Preview ${models.plural.product_category|downcase} title: Preview ${models.plural.product_category|downcase}
active_at: Active on active_at: Active at time
activate_button: Activate preview activate_button: Activate preview
deactivate_button: Stop preview deactivate_button: Stop preview
modal: modal:
@@ -180,6 +180,8 @@ en:
preview: preview:
header: 'Select moment to preview products' header: 'Select moment to preview products'
description: 'Products visible to customers at chosen moment:' description: 'Products visible to customers at chosen moment:'
product_variant:
add_product_variant: "Add variant"
state: state:
list: list:
active: 'Active' active: 'Active'
+3 -1
View File
@@ -146,7 +146,7 @@ nl:
new_button: ${models.product_category} toevoegen new_button: ${models.product_category} toevoegen
time_preview: time_preview:
title: Preview ${models.plural.product_category|downcase} title: Preview ${models.plural.product_category|downcase}
active_at: Actief om active_at: Actief op tijdstip
activate_button: Activeer preview activate_button: Activeer preview
deactivate_button: Stop preview deactivate_button: Stop preview
modal: modal:
@@ -183,6 +183,8 @@ nl:
preview: preview:
header: 'Selecteer tijdstip voor voorbeeld' header: 'Selecteer tijdstip voor voorbeeld'
description: 'Producten op gekozen tijdstip:' description: 'Producten op gekozen tijdstip:'
product_variant:
add_product_variant: "Variant toevoegen"
state: state:
list: list:
active: 'Actief' active: 'Actief'