I think the offending line is in design.html, see the ticket below.
(The 'real' line number is 207, because the python code is generated
by {{=...}}.)

289.    if '/'.join(file_path).startswith('/'.join(path)):


At that point

   path:  ['js', 'ckeditor', 'plugins', 'table']
and
   file_path: ['js', 'ckeditor', 'plugins', 'tableresize']

the joins in de code result in

  js/ckeditor/plugins/tableresize
and
  js/ckeditor/plugins/table


I think line 289 intents to check if the  'path' is a 'path-prefix'
of  'file_path'. In this case the check resolves to True, but this
incorrect, because it is NOT a path-prefix causing line 290 to fail.

line 289 should probably be something like:

    if ('/'.join(file_path)+'/').startswith('/'.join(path)+'/') or
path==[]:

This seems to resolve at least my problem. Please test and confirm.

Nico
-------------------------------------
Excerpt from my error-ticket:

<type 'exceptions.IndexError'>(list index out of range)

File C:\web2py\applications\admin\views\default\design.html in
<module> at line 290
code

Code listing
282. response.write('\n  <ul>\n    ', escape=False)
283. path=[]
284. for file in statics+['']:
285.    items=file.split('/')
286.    file_path=items[:-1]
287.    filename=items[-1]
288.    while path!=file_path:
289.    if '/'.join(file_path).startswith('/'.join(path)):
290.       path.append(file_path[len(path)])

------------------------------------------------------------
On 15 nov, 20:10, Branko Vukelic <bg.bra...@gmail.com> wrote:
> On Mon, Nov 15, 2010 at 8:59 PM, mdipierro <mdipie...@cs.depaul.edu> wrote:
> > where is the offending line in design.html?
>
> I think it's in this block:
>
> <h3 id="plugins" onclick="collapse('plugins_inner');" class="component">
>   {{=T("Plugins")}}
>   <span class="tooltip">{{=helpicon()}} <span>{{=T("To create a
> plugin, name a file/folder plugin_[name]")}}</span></span>
> </h3>
> <div id="plugins_inner" class="component_contents">
>   <div class="controls comptools">
>     {{=button(PLUGINS_APP, T('download plugins'))}}
>   </div>
>   <div class="controls">
>   </div>
>   {{if plugins:}}
>   <ul>
>       {{for plugin in plugins:}}
>       <li>
>       {{=A('plugin_%s' % plugin, _class='file', _href=URL('plugin',
> args=[app, plugin]))}}
>       </li>
>       {{pass}}
>   </ul>
>   {{else:}}
>   <p><strong>{{=T('There are no plugins')}}</strong></p>
>   {{pass}}
>   <div class="controls formfield">{{=upload_plugin_form(app)}}</div>
> </div>    <-- line 290
>
> --
> Branko Vukelić
>
> bg.bra...@gmail.com
> stu...@brankovukelic.com
>
> Check out my blog:http://www.brankovukelic.com/
> Check out my portfolio:http://www.flickr.com/photos/foxbunny/
> Registered Linux user #438078 (http://counter.li.org/)
> I hang out on identi.ca:http://identi.ca/foxbunny
>
> Gimp Brushmakers Guildhttp://bit.ly/gbg-group

Reply via email to