(editor Save/Cancel, YUI Datatable Loading/Error messages, and also column sort tooltips (new in YUI 29.0).
- Added CSS files for the existing two DataTable Templates. Each file should be added to the corresponding
template as a CSS Attachment.
- Avoid terminating the editor on Enter.
- Arrange for TAB to save and move editor for next cell also for HTMLarea editor.
- Define classes "wg-dt-textarea" and "wg-dt-htmlarea" + styling for the corresponding cells.
- Commented out handleTableKeyEvent() (reason in the code).
- Implemented a simple workaround to restore the "editor" field (not preserved due to an unknown reason).
It turned out this problem is related to Moose and/or Class::MOP. I downgraded Moose to 1.25, and Class::MOP to 1.12, and then I got the console just fine when I clicked on "turn admin on".
I managed to operate the Perl debugger on the code, by putting Enbugger->stop at the desired point. I could then debug it interactively.
The stack trace at the point of failure in Search.pm is:
DB<3> T
$ = WebGUI::Asset::Wobject::Search::_searchRoot_builder(ref(WebGUI::Asset::Wobject::Search)) called from file `constructor WebGUI::Asset::Wobject::Search::new (defined at /home/amir/Downloads/webgui/lib/WebGUI/Asset/Wobject/Search.pm line 214)' line 224
$ = WebGUI::Asset::Wobject::Search::new('WebGUI::Asset::Wobject::Search', ref(HASH)) called from file `/home/amir/Downloads/webgui/lib/WebGUI/Asset.pm' line 1937
$ = WebGUI::Asset::newByPropertyHashRef('WebGUI::Asset', ref(WebGUI::Session), ref(HASH)) called from file `/home/amir/Downloads/webgui/lib/WebGUI/Admin.pm' line 186
@ = WebGUI::Admin::getAssetTypes(ref(WebGUI::Admin)) called from file `/home/amir/Downloads/webgui/lib/WebGUI/Admin.pm' line 279
$ = WebGUI::Admin::getNewContentTemplateVars(ref(WebGUI::Admin)) called from file `/home/amir/Downloads/webgui/lib/WebGUI/Admin.pm' line 811
$ = WebGUI::Admin::www_view(ref(WebGUI::Admin)) called from file `/home/amir/Downloads/webgui/lib/WebGUI/Content/Admin.pm' line 80
$ = WebGUI::Content::Admin::handler(ref(WebGUI::Session)) called from file `/home/amir/Downloads/webgui/lib/WebGUI/Pluggable.pm' line 287
$ = WebGUI::Pluggable::run('WebGUI::Content::Admin', 'handler', ref(ARRAY)) called from file `/home/amir/Downloads/webgui/lib/WebGUI.pm' line 165
$ = eval {...} called from file `/home/amir/Downloads/webgui/lib/WebGUI.pm' line 165
. = WebGUI::handle(ref(WebGUI), ref(WebGUI::Session)) called from file `/home/amir/Downloads/webgui/lib/WebGUI.pm' line 77
@ = WebGUI::call(ref(WebGUI), ref(HASH)) called from file `/usr/lib/perl5/site_perl/5.12.3/Plack/Component.pm' line 39
...
DB<1> l
38==> my $session = shift->session;
39 return $session->setting->get("defaultPage");
40 }
41 property classLimiter => (
42 fieldType => "checkList",
43 default => undef,
44 vertical => 1,
45 tab => "properties",
46 hoverHelp => ["class limiter description", 'Asset_Search'],
47 label => ["class limiter", 'Asset_Search'],
DB<1> p join(",",keys %{$_[0]});
mobileStyleTemplateId,displayTitle,assetSize,classLimiter,newWindow,extraHeadTagsPacked,ownerUserId,extraHeadTags,paginateAfter,isPrototype,isPackage,isHidden,groupIdEdit,encryptPage,inheritUrlFromParent,description,isExportable,lastModified,groupIdView,printableStyleTemplateId
NOTE: "session" is not found there.
With a downgraded Moose:
38==> my $session = shift->session;
39 return $session->setting->get("defaultPage");
40 }
41 property classLimiter => (
42 fieldType => "checkList",
43 default => undef,
44 vertical => 1,
45 tab => "properties",
46 hoverHelp => ["class limiter description", 'Asset_Search'],
47 label => ["class limiter", 'Asset_Search'],
DB<1> p join(",",keys %{$_[0]});
skipNotification,uiLevel,displayTitle,classLimiter,newWindow,synopsis,extraHeadTagsPacked,extraHeadTags,ownerUserId,session,paginateAfter,isHidden,groupIdEdit,encryptPage,inheritUrlFromParent,description,title,printableStyleTemplateId
DB<2>
("session" is found.)
Amir
Problem:
Doesn't work, prints an error message:
Couldn't parse JSON in config file '/'
Fix:
WebGUI::Session->open() is called with $webguiRoot as first arguments, and it should not be supplied any more due to an API change.
``The Save buttons in the two first steps didn't work in Chrome.
According to a hint in the YUI Button documentation about a problem in using
"submit" as a value of the name attribute, I changed submit button name
in the two first steps from "submit" to "send". This solved the problem.''
Lint at line 5 character 16: 'WebGUI' was used before it was defined.
var WebGUI = {};
Lint at line 53 character 86: Missing '()' invoking a constructor.
data[ columns[ i ].key ] = columns[i].formatter == "date" ? new Date : "";
Lint at line 89 character 21: 'i' is already defined.
for ( var i = 0; i < cols.length; i++ ) {
Lint at line 612 character 25: 'col' is already defined.
var col = this.dataTable.getColumn( oldKey );
Lint at line 661 character 63: Missing '()' invoking a constructor.
allRecords[j].setData(newKey, new Date);
In WebKit browsers, when a schema is saved, existing column
field types are reset to "Text". This is not a bug in WebKit, and
will happen in any browser that implements Option() as documented.
Option() is not supposed to have an immediate action if only the
default selection is updated on a newly added select object.
See: http://download.oracle.com/docs/cd/E19957-01/816-6408-10/option.htm .
Repeat-By:
1. New Content->basic->Datatable
2. data
3. Edit Schema
4. col1, Number, Add Column
5. col2, E-mail, Add Column
6. col3, URL, Add Column
7. Edit Schema (note that the field types got reset to "Text")
8 Save (now the field types incorrectly got overwritten in the DataTable)
Fixed by adding 4th arguments to actually make the new selection to be
equal to the default one.
Repeat-by:
1. New Content->Basic->DataTable
2. data
3. Edit Schema
4. col1, add Column
5. col2, add Column
6. col3, Save
7. Edit Schema
Note that col2 is missing.
Fix:
Change the name of the variable in the row loop.
According to a hint in the YUI Button documentation about a problem in using
"submit" as a value of the name attribute, I changed submit button name
in the two first steps from "submit" to "send". This solved the problem.