Unit config prefixes with dashes ("-") not always work, when used in openSelector JavaScript function

4 views
Skip to first unread message

Alexander Obuhovich

unread,
Apr 4, 2012, 8:44:41 AM4/4/12
to In-Portal Bugs
In Admin Console In-Portal uses "env" request variable to pass important information (usually a set of unit config prefixes and IDs associated with them) across all pages, e.g. /admin/index.php?env=-index:m0--1--s-:u----- ("m" and "u" are unit config prefixes).

As you can see from example above a dash ("-") is used as a separator between different IDs. But in case if ID contains a dash itself, then this dash is escaped like this  /admin/index.php?env=-index:m0--1--s-:user\-prefix-----.

When such url is used by JavaScript it removes all "\" from it (since it's an escape character in JavaScript too). After that parsing that "env" request parameter becomes impossible because of single prefix would interpreted as 2 different prefixes resulting in Fatal Error on prefix existence checking code.

Below are examples how to property pass such urls to openSelector function:

How not to do it:
<a href="javascript:openSelector('conf', '<inp2:adm_SelectorLink prefix="conf" selection_mode="single" tab_prefixes="none"/>', 'ModuleRootCategory', '950x600');"><img src="img/icons/icon24_cat.gif" border="0" align="absmiddle" /></a>


How to do it:
<a href="<inp2:adm_SelectorLink prefix='conf' selection_mode='single' tab_prefixes='none'/>" onclick="openSelector('conf', this.href, 'ModuleRootCategory', '950x600'); return false;"><img src="img/icons/icon24_cat.gif" border="0" align="absmiddle" /></a>


How it was fixed:
  1. 2nd parameter (url) of openSelector function moved into "href" attribute of A html tag
  2. former "href" attribute of A html tag was renamed to "onclick" attribute and "return false;" was added
  3. this.href is used instead of url in a string, which keeps "\" intact even without a need for "js_escape" tag parameter


Ready for testing.


--
Best Regards,

http://www.in-portal.com
http://www.alex-time.com
dashed_prefixes_in_selectors_core.patch
dashed_prefixes_in_selectors_modules.patch

Dmitry A.

unread,
Apr 7, 2012, 11:41:18 AM4/7/12
to in-port...@googlegroups.com
Great inside - thanks for the patch too!

DA
Reply all
Reply to author
Forward
0 new messages