view · edit · sidebar · attach · print · history

0160713-migrate-davaz-com-dojo-widgets

<< 20160714-fix-encoding-issue-sandoz-bbmb-ch | Index | 20160712-migrate-davaz-com-dojo-widgets >>


Summary

  • Fix error at model class on admin view. [davaz.com]
  • Repair Edit Form Widget. [davaz.com]
  • Fix login feature (lookandfeel base_url) [sandoz.xmlconv.bbmb.ch, sandoz.bbmb.ch]
  • Debug encoding issue [sandoz.bbmb.ch]

Commits / Patches / Pull Requests, Scripts

Index


Dojo Widgets

Current progress is below. Today I would like to migrate EditWidget and some other widgets for admin page.

  • [x] desk.js
  • EditButtons.js
  • EditWidget.js
  • GuestbookWidget.js
  • Input.js
  • InputText.js
  • InputTextarea.js
  • [x] login.js (LoginWidget.js)
  • [x] oneliner.js
  • [x] rack.js
  • [x] show.js
  • [x] slide.js (SlideShow.js)
  • [x] ticker.js
  • [x] Tooltip.js

Gallery ArtObject date error

This error is cased by new mysql2 gem, it parse already date automatically.
Then I've avoided this error with using date value directly.

error in SBSM::Session#http_headers: /en/gallery/art_object/artgroup_id/DRA/artobject_id/48
TypeError                                                                          
no implicit conversion of Date into String                                         
/path/to/davaz.com/src/view/art_object.rb:612:in `parse'                           
/path/to/davaz.com/src/view/art_object.rb:612:in `date'                            
/path/to/davaz.com/.bundle/gems/ruby/2.3.0/gems/htmlgrid-1.1.1/lib/htmlgrid/composite.rb:68:in `create'
/path/to/davaz.com/.bundle/gems/ruby/2.3.0/gems/htmlgrid-1.1.1/lib/htmlgrid/composite.rb:282:in `compose_component'
/path/to/davaz.com/.bundle/gems/ruby/2.3.0/gems/htmlgrid-1.1.1/lib/htmlgrid/composite.rb:211:in `block in compose'

Commit:Fix gallery art object error

ArtObject error for admin

When user is logged in as admin, then at following url, error is caused:
/en/gallery/art_object/artgroup_id/DRA/artobject_id/48

NameError
undefined local variable or method `artgroup_id' for #<DAVAZ::View::AdminArtobjectDetails:0x0056339b5d6c70>

Commit:Fix artobject group_id error

Edit widget

First, I have to fix some javascript functions on davaz.js with dojo 1.7 and ajax responses, before to use edit widget.

check removal status

Commit: Fix checkRemovalStatus function

ajax check removal status

Following url (api for ajax function) does not return JSON.
/en/gallery/ajax_check_removal_status/artobject_id/48/select_name/material_id/selected_id/

Fix removal state checking.
Commit: Fix admin ajax form update for art object

show ajax form widgets

Following ajax requests return valid HTML result, but its do not show.
I have to fix these javascript behaviors, as next

  • e.g. /en/gallery/ajax_add_form/artobject_id/48/name/serie Add New Serie
  • e.g. /en/gallery/ajax_all_tags/ Show All Tags
  • e.g. /en/gallery/ajax_add_form/artobject_id/48/name/tool Add New Tool
  • e.g. /en/gallery/ajax_add_form/artobject_id/48/name/material Add New Material

Debug sandoz.xmlconv.bbmb.ch Login

Login does not work.

I've found a problem in login form.
This action is strange. It must be /de (only language parameter).

What is this sbsm?

<form action="/de/sbsm" ...>

This was FLAVOR comes from This line (session.rb#L42) (sbsm).
And I've asked Zeno-san, Which is best to fix this (SBSM or Application(sandoz.xmlconv.bbmb.ch)).

Finally, I've fixed this issue on lookandfeel.rb (in application)

Lookandfeel class has base_url method. In current newest sbsm, base_url expects @flavor in its URL.
This was problem for old application (like davaz.com, sandoz.xmlconv.bbmb.ch)

Newest SBSM does not have already these non-flavoerd URL support (See also TransHandler)

I've created a small pull request to support this.

Pull request: Fix flavored `base_url` issue

Debug sandoz.bbmb.ch Login

This is also same issue with sandoz.xmlconv.bbmb.ch.

Pull Requst: Fix flavored `base_url` issue

Debug sandoz.bbmb.ch Encoding Issue

Where did this strange characters come from?

# How to boot bin/admin for sandoz.bbmb.ch (ruby 2.3.1)
% sudo -u bbmb /usr/local/bin/ruby \
  -I/var/www/sandoz.bbmb.ch/lib \
  -rydim/invoice \
  /path/to/bbmb_admin config=/var/www/sandoz.bbmb.ch/etc/config.yml

So, I've checked directly data via this bin/admin.
I seems that these strange characters come from database...

# Input (via bin/admin)
ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297').organisation
-> true
ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297').organisation.encoding
-> true

# Output (server process)
@40000000578696d11b9a3efc E, [2016-07-13T21:30:15.462950 #31846] ERROR -- admin: AH Pharmacie Dr Thiémard SA
@40000000578697e033595ce4 E, [2016-07-13T21:34:46.861377 #31846] ERROR -- admin: #<Encoding:UTF-8>

These text has encoding as UTF-8

# Input (via bin/admin)
ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297').organisation
-> true

# Output (server process)
@40000000578697391a0faf2c E, [2016-07-13T21:31:59.437120 #31846] ERROR -- admin: Thiémard

I've tried convert (back) as Encoding::ISO_8859_1.
Then, I could get valid text!

# Input (via bin/admin)
ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297').organisation.encode(Encoding::ISO_8859_1)
-> true

@4000000057869870116fd824 E, [2016-07-13T21:37:10.292431 #31846] ERROR -- admin: AH Pharmacie Dr Thiémard SA

There are some possibilities:

  • Text data in database (serialized by ODBA) is still ISO-8859-1, but code reads as already UTF-8.
  • Text data in database is already UTF-8, but encoded as wrong character.
  • Issue by ODBA fetching (unserializing)
  • Issue by HtmlGrid (I don't think, that this is relevant...)

Experiment

I've tried manually encode as experiment. Then it seems that this works as expectedly.

# Input (via bin/admin)
ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297') \
.lastname.encode(Encoding::ISO_8859_1).force_encoding(Encoding::UTF_8)
-> true

ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297') \
.lastname.encode(Encoding::ISO_8859_1).force_encoding(Encoding::UTF_8).encoding
-> true

# Output
@4000000057869b0d2fbdc764 E, [2016-07-13T21:48:19.800822 #31846] ERROR -- admin: Thiémard
@4000000057869b1604186c7c E, [2016-07-13T21:48:28.068590 #31846] ERROR -- admin: #<Encoding:UTF-8>

And it has valid encdoing.

# Input (via bin/admin)
ch.bbmb.sandoz> puts BBMB::Model::Customer.find_by_customer_id('4100609297').lastname.valid_encoding?
-> true

# Output
@4000000057869d051fe2394c E, [2016-07-13T21:56:43.534799 #31846] ERROR -- admin: true

So, I've written a oneliner to change text encoding for a customer. (e.g. customer_id: 4100609297)
This force_encoding is key.
This does not save (odba_store) in database yet.

# Input (via bin/admin)
ch.bbmb.sandoz> c = BBMB::Model::Customer.find_by_customer_id('4100609297'); \
puts c.instance_variables.map {|var| [var, c.instance_variable_get(var)] }.select { \
|k, v| v.is_a?(String) ? [k, v] : nil }.compact.map { \
|k, t| [k, t.force_encode(Encoding::ISO_8859_1).encode(Encoding::UTF_8)] }

# Output
@400000005786a1782c77cfdc E, [2016-07-13T22:15:42.745874 #31846] ERROR -- admin: \
[[:@ean13, "7601001392335"], [:@firstname, "Christian"], [:@fax, "026 321 12 12"], \
[:@city, "Fribourg"], [:@address1, "Boulevard de Pérolles 6"], [:@title, "Docteur"], \
[:@organisation, "AH Pharmacie Dr Thiémard SA"], [:@plz, "1700"], \
[:@phone_business, "026 321 50 00"], [:@customer_id, "4100609297"], [:@lastname, "Thiémard"]]

This is updater with odba_store

# Input (via bin/admin)
ch.bbmb.sandoz> c = BBMB::Model::Customer.find_by_customer_id('4100609297'); \
c.instance_variables.map {|var| [var, c.instance_variable_get(var)] }.select { \
|k, v| v.is_a?(String) ? [k, v] : nil }.compact.map { \
|k, t| [k, t.force_encoding(Encoding::ISO_8859_1).encode(Encoding::UTF_8)] }.map { \
|var, val| c.instance_variable_set(var, val) }; c.odba_store
-> #<BBMB::Model::Customer:0x007f8d8ab8a848>

Then It works.

Continue tomorrow.

I will write updater script (or update bbmb_migrate_to_utf8 script)

Link

view · edit · sidebar · attach · print · history
Page last modified on July 14, 2016, at 04:57 PM