diff --git a/app/assets/javascripts/supplier/translations.js.erb b/app/assets/javascripts/supplier/translations.js.erb index 3e93b576..d9ad6b6b 100644 --- a/app/assets/javascripts/supplier/translations.js.erb +++ b/app/assets/javascripts/supplier/translations.js.erb @@ -15,7 +15,6 @@ var $translations = { } } - $transformation_mappings = { downcase: 'toLowerCase', upcase: 'toUpperCase' @@ -68,7 +67,7 @@ function setTranslations(selector){ } moment.lang($locale); $('[data-time]').each(function(){ - $(this).text(moment($(this).data('time')).format($(this).data('timeFormat') || 'dd D HH:MM')) + $(this).text(moment($(this).data('time')).format($(this).data('timeFormat') || 'dd D MMM HH:MM')) }) $('.datepicker').datepicker("option", $.datepicker.regional[$locale]) diff --git a/app/assets/stylesheets/supplier/structure.css.sass b/app/assets/stylesheets/supplier/structure.css.sass index bd2fa972..9bb9da4c 100644 --- a/app/assets/stylesheets/supplier/structure.css.sass +++ b/app/assets/stylesheets/supplier/structure.css.sass @@ -52,3 +52,7 @@ input.dimension cursor: move font-size: 0.8em color: #777 +form + &.form-inline + display: inline-block + padding: 4px diff --git a/app/controllers/suppliers/lists_controller.rb b/app/controllers/suppliers/lists_controller.rb index 894bd4c2..6abe571e 100644 --- a/app/controllers/suppliers/lists_controller.rb +++ b/app/controllers/suppliers/lists_controller.rb @@ -3,6 +3,27 @@ module Suppliers # GET /lists # GET /lists.json def index + @lists = List.for_supplier(current_supplier, page: params[:page], per_page: params[:per_page] || 25) + @lists.include_relation(:table) + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @lists } + end + end + + + def active + @lists = List.active_for_supplier(current_supplier.id) + @lists.include_relation(:table) # for number + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @lists } + end + end + + def at_date @date = params[:date].present? ? (Date.parse(params[:date]) rescue Date.today) : Date.today @time = @date.to_time(:utc) @start_time = @time.beginning_of_day @@ -11,14 +32,8 @@ module Suppliers @start_time += current_supplier.night_offset.to_f.hours @end_time += current_supplier.night_offset.to_f.hours end - if params[:show_all] == 'yes' - @lists = List.for_supplier(current_supplier, page: params[:page], per_page: params[:per_page] || 25) - elsif params[:state] == 'active' - @lists = List.active_for_supplier(current_supplier.id) - else - @lists = List.for_supplier_created_at current_supplier, @start_time..@end_time - end - @lists.include_relation(:table) + @lists = List.for_supplier_created_at current_supplier, @start_time..@end_time + @lists.include_relation(:table) # for number respond_to do |format| format.html # index.html.erb diff --git a/app/models/list.rb b/app/models/list.rb index ff34a9d8..ee40654e 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -79,6 +79,7 @@ class List def self.for_supplier(supplier, options = {}) total_entries = database.view(for_supplier_view({startkey: ["#{supplier.id}\u9999"], endkey: [supplier.id], include_docs: false, reduce: true, descending: true})) options[:total_entries] = total_entries + options[:descending] = true with_pagination_options(options) do |options| database.view(for_supplier_view({startkey: ["#{supplier.id}\u9999"], endkey: [supplier.id], include_docs: true, reduce: false, descending: true}.merge(options))) end diff --git a/app/models/user.rb b/app/models/user.rb index 4cdfd1fa..2f88886c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -50,6 +50,11 @@ class User save end + # This is the user name as it is shown to the supplier + def supplier_name + auth_data['info']['name'] rescue I18n.t('user.unknown_supplier_name') + end + def has_active_list? active_list_id.present? end diff --git a/app/views/supplier/edit.html.slim b/app/views/supplier/edit.html.slim index 12838d10..e73905bb 100644 --- a/app/views/supplier/edit.html.slim +++ b/app/views/supplier/edit.html.slim @@ -59,6 +59,6 @@ = image_tag 'supplier/settings/iens-example.png', title: 'supplier.settings.reviews.explanation' .form-actions - = f.submit nil, class: 'btn btn-primary' + = f.submit nil, class: 'btn btn-primary submit-supplier-settings' ' = link_to t("helpers.links.cancel"), supplier_root_path, class: 'btn' diff --git a/app/views/suppliers/lists/_lists_table.html.slim b/app/views/suppliers/lists/_lists_table.html.slim new file mode 100644 index 00000000..a9b4cc5b --- /dev/null +++ b/app/views/suppliers/lists/_lists_table.html.slim @@ -0,0 +1,25 @@ +table.table + thead + tr + th data-t='attributes.list.state' = List.human_attribute_name(:state) + th data-t='attributes.list.needs_help' = List.human_attribute_name(:needs_help) + th data-t='attributes.list.needs_payment' = List.human_attribute_name(:needs_payment) + th data-t='attributes.list.closed_at' = List.human_attribute_name(:closed_at) + th data-t='models.table' = Table.model_name.human + th.currency data-t='attributes.list.price' = List.human_attribute_name(:price) + th.timestamp data-t='attributes.list.created_at' = List.human_attribute_name(:created_at) + th.actions data-t='helpers.actions.title' =t 'helpers.actions.title' + tbody + - lists.each do |list| + tr + td= link_to list.state, [:suppliers, list] + td=show_boolean list.needs_help + td=show_boolean list.needs_payment + td.timestamp data-time=list.closed_at.try(:utc).try(:iso8601) + td= link_to_if list.table.present?, list.table_number, [:suppliers, list.table] + td.currency= list.price.present? ? currency(list.price) : '...' + td.timestamp data-time=list.created_at.utc.iso8601 + td.actions + = link_to t('helpers.links.edit'), [:edit, :suppliers, list], class: 'btn btn-mini', data: {t: 'helpers.links.edit'} + ' + = link_to t("helpers.links.destroy"), [:suppliers, list], method: :delete, data: {confirm: are_you_sure? }, class: 'btn btn-mini btn-danger', data: {t: 'helpers.links.destroy'} diff --git a/app/views/suppliers/lists/active.html.slim b/app/views/suppliers/lists/active.html.slim new file mode 100644 index 00000000..448a976f --- /dev/null +++ b/app/views/suppliers/lists/active.html.slim @@ -0,0 +1,7 @@ +- model_class = List +div.page-header= title :index, model_class +.well + - if @lists.any? + = render 'lists_table', lists: @lists + - else + = no_content_given model_class diff --git a/app/views/suppliers/lists/at_date.html.slim b/app/views/suppliers/lists/at_date.html.slim new file mode 100644 index 00000000..22d85ed4 --- /dev/null +++ b/app/views/suppliers/lists/at_date.html.slim @@ -0,0 +1,12 @@ +- model_class = List +div.page-header= title :index, model_class +form#select-date-form.form-inline action='' method="get" + label for="lists-date" data-t="lists.index.show_list_on_day" + input#lists-date.datepicker type="text" name="date" value=@date.to_s('%Y-%m-%d') +.well + - if @lists.any? + = render 'lists_table', lists: @lists + - else + = no_content_given model_class +javascript: + window.datepicker_options['onSelect'] = function(dateText, inst){$('#select-date-form').submit()} diff --git a/app/views/suppliers/lists/index.html.slim b/app/views/suppliers/lists/index.html.slim index a8db1be5..0d3fa024 100644 --- a/app/views/suppliers/lists/index.html.slim +++ b/app/views/suppliers/lists/index.html.slim @@ -1,39 +1,7 @@ -- model_class = List -div.page-header= title :index, model_class -form#select-date-form action='' method="get" - - if params[:show_all] == 'yes' - - else - input#lists-date.datepicker type="text" name="date" value=@date.to_s('%Y-%m-%d') - = link_to '', {show_all: 'yes'}, class: 'btn', data: {t: 'lists.index.show_all'} +div.page-header= title :index, List .well - if @lists.any? - = paginate @lists if params[:show_all] == 'yes' - table.table - thead - tr - th data-t='attributes.list.state' = model_class.human_attribute_name(:state) - th data-t='attributes.list.needs_help' = model_class.human_attribute_name(:needs_help) - th data-t='attributes.list.needs_payment' = model_class.human_attribute_name(:needs_payment) - th data-t='attributes.list.closed_at' = model_class.human_attribute_name(:closed_at) - th data-t='models.table' = Table.model_name.human - th.currency data-t='attributes.list.price' = model_class.human_attribute_name(:price) - th.timestamp data-t='attributes.list.created_at' = model_class.human_attribute_name(:created_at) - th.actions data-t='helpers.actions.title' =t 'helpers.actions.title' - tbody - - @lists.each do |list| - tr - td= link_to list.state, [:suppliers, list] - td=show_boolean list.needs_help - td=show_boolean list.needs_payment - td.timestamp data-time=list.closed_at.try(:utc).try(:iso8601) - td= link_to_if list.table.present?, list.table_number, [:suppliers, list.table] - td.currency= list.price.present? ? currency(list.price) : '...' - td.timestamp data-time=list.created_at.utc.iso8601 - td.actions - = link_to t('helpers.links.edit'), [:edit, :suppliers, list], class: 'btn btn-mini', data: {t: 'helpers.links.edit'} - ' - = link_to t("helpers.links.destroy"), [:suppliers, list], method: :delete, data: {confirm: are_you_sure? }, class: 'btn btn-mini btn-danger', data: {t: 'helpers.links.destroy'} + = paginate @lists + = render 'lists_table', lists: @lists - else - = no_content_given model_class -javascript: - window.datepicker_options['onSelect'] = function(dateText, inst){$('#select-date-form').submit()} + = no_content_given List diff --git a/app/views/suppliers/lists/show.html.slim b/app/views/suppliers/lists/show.html.slim index c28c5172..c5029bb3 100644 --- a/app/views/suppliers/lists/show.html.slim +++ b/app/views/suppliers/lists/show.html.slim @@ -2,6 +2,8 @@ dl.dl-horizontal dt= List.human_attribute_name(:created_at) dd= l @list.created_at, format: :short + dt= t('supplier.lists.show.users') + dd= @list.users.map(&:supplier_name).join(', ') .well table#list-table.table.list-table thead diff --git a/app/views/suppliers/mailer/confirmation_instructions.html.slim b/app/views/suppliers/mailer/confirmation_instructions.html.slim index 9566420d..6f2701bb 100644 --- a/app/views/suppliers/mailer/confirmation_instructions.html.slim +++ b/app/views/suppliers/mailer/confirmation_instructions.html.slim @@ -1,7 +1,6 @@ -h3 "Welkom bij Qwaiter #{@resource.email}!" -p - | - Je hebt een account aangevraag bij Qwaiter of wil een wijziging doorvoeren waarvoor bevestiging nodig is. Als dit niet de bedoeling is kan je deze email negeren. - Om je account te activeren of de aangevraagde wijziging door te voeren moet je op de bevestigingslink hieronder klikken: +p= t('devise.mailer.confirmation_instructions.supplier.salutation', email: @resource.email) -p= link_to 'Bevestig mijn Qwaiter account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) +p=raw t \ + 'devise.mailer.confirmation_instructions.supplier.body', + unconfirmed_email: @resource.unconfirmed_email, + confirm_url: confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) diff --git a/app/views/suppliers/product_categories/show.html.slim b/app/views/suppliers/product_categories/show.html.slim index 2c7572aa..e14d664d 100644 --- a/app/views/suppliers/product_categories/show.html.slim +++ b/app/views/suppliers/product_categories/show.html.slim @@ -4,8 +4,8 @@ dl.dl-horizontal.show-list dt data-t='attributes.product_category.name'= model_class.human_attribute_name(:name) dd= @product_category.name - dt data-t='attributes.product_category.position'= model_class.human_attribute_name(:position) - dd= @product_category.position + /dt data-t='attributes.product_category.position'= model_class.human_attribute_name(:position) + /dd= @product_category.position dt data-t='attributes.product_category.visible_on'= model_class.human_attribute_name(:visible_on) dd= @product_category.visible_on dt data-t='models.plural.product'= Product.model_name.human_plural diff --git a/app/views/suppliers/sections/_form.html.slim b/app/views/suppliers/sections/_form.html.slim index d1ac2b3f..93e7e128 100644 --- a/app/views/suppliers/sections/_form.html.slim +++ b/app/views/suppliers/sections/_form.html.slim @@ -14,7 +14,8 @@ = f.text_field :height, class: ['text_field', :numeric] .form-actions = f.submit nil, class: 'btn btn-primary' - ' - = link_to t('supplier.tables.qr_codes.link'), qr_codes_suppliers_tables_path(section_id: @section.id), class: 'btn btn-info', data: {t: 'tables.qr_codes.link'} + - unless f.object.new_record? + ' + = link_to t('supplier.tables.qr_codes.link'), qr_codes_suppliers_tables_path(section_id: @section.id), class: 'btn btn-info', data: {t: 'tables.qr_codes.link'} ' = link_to t("helpers.links.cancel"), suppliers_sections_path, class: 'btn' diff --git a/app/views/suppliers/sections/index.html.slim b/app/views/suppliers/sections/index.html.slim index 767a291c..016a30ed 100644 --- a/app/views/suppliers/sections/index.html.slim +++ b/app/views/suppliers/sections/index.html.slim @@ -19,7 +19,10 @@ span.active-table-count= (@active_table_ids & section.tables.map(&:id)).size td.numeric= section.width td.numeric= section.height - td.actions = link_to t("helpers.links.destroy"), [:suppliers, section], method: :delete, data: {confirm: are_you_sure?, t: 'helpers.links.destroy'}, class: 'btn btn-mini btn-danger' + td.actions + = link_to t('supplier.tables.qr_codes.link'), qr_codes_suppliers_tables_path(section_id: section.id), class: 'btn btn-mini btn-info', data: {t: 'tables.qr_codes.link'} + ' + = link_to t("helpers.links.destroy"), [:suppliers, section], method: :delete, data: {confirm: are_you_sure?, t: 'helpers.links.destroy'}, class: 'btn btn-mini btn-danger' - else = no_content_given model_class .form-actions diff --git a/app/views/users/mailer/confirmation_instructions.html.erb b/app/views/users/mailer/confirmation_instructions.html.erb deleted file mode 100644 index a5c4585e..00000000 --- a/app/views/users/mailer/confirmation_instructions.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -
Welcome <%= @resource.email %>!
- -You can confirm your account email through the link below:
- -<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %>
diff --git a/app/views/users/mailer/confirmation_instructions.html.slim b/app/views/users/mailer/confirmation_instructions.html.slim new file mode 100644 index 00000000..c901feea --- /dev/null +++ b/app/views/users/mailer/confirmation_instructions.html.slim @@ -0,0 +1,6 @@ +p= t('devise.mailer.confirmation_instructions.salutation', email: @resource.email) + +p=raw t \ + 'devise.mailer.confirmation_instructions.body', + unconfirmed_email: @resource.unconfirmed_email, + confirm_url: confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index ea0aa187..834d08ba 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -206,7 +206,7 @@ Devise.setup do |config| # Turn scoped views on. Before rendering "sessions/new", it will first check for # "users/sessions/new". It's turned off by default because it's slower if you # are using only default views. - # config.scoped_views = false + config.scoped_views = true # Configure the default scope given to Warden. By default it's the first # devise role declared in your routes (usually :user). diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml index e7445b31..ee0dd2e2 100644 --- a/config/locales/devise.en.yml +++ b/config/locales/devise.en.yml @@ -19,7 +19,17 @@ en: unconfirmed: "You have to confirm your account before continuing." mailer: confirmation_instructions: - subject: "Confirmation instructions" + supplier_subject: "Confirmation instructions2" + supplier: + salutation: "Welcome to Qwaiter %{email}!" + body: | +
+ You requested a Qwaiter account or want to change data that need reconfirmation.
+ If this is not wat you requested please ignore this email.
+ To activate your account click the link below:
+
+ Confirm my account or changes %{unconfirmed_email}
+
+ Je hebt een account aangevraag bij Qwaiter of wil een wijziging doorvoeren waarvoor bevestiging nodig is.
+ Als dit niet de bedoeling is kan je deze email negeren.
+ Om je account te activeren of de aangevraagde wijziging door te voeren moet je op de bevestigingslink hieronder klikken:
+
+ Bevestig mijn Qwaiter account of verandering %{unconfirmed_email}
+