diff options
Diffstat (limited to 'src/www/minibar/minibar_input.js')
| -rw-r--r-- | src/www/minibar/minibar_input.js | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/www/minibar/minibar_input.js b/src/www/minibar/minibar_input.js index af3d5054e..dd32b6f05 100644 --- a/src/www/minibar/minibar_input.js +++ b/src/www/minibar/minibar_input.js @@ -393,8 +393,17 @@ Input.prototype.show_replacements=function(brackets,parent,tree) { function replace() { t.replace_word(brackets,parent,rfun,tree); } - if(rfun_type==fun_type) - t.words.insertBefore(button(rfun,replace),extb); + function show_replacement(lin) { + //console.log(lin) + t.words.insertBefore(button(lin[0].text || rfun,replace),extb); + } + if(rfun_type==fun_type) { + var tmpl=fun_template(rfun,rfun_type) + if(tmpl) + t.server.linearize({to:t.current.from,cat:cat,tree:tmpl},show_replacement) + else + t.words.insertBefore(button(rfun,replace),extb) + } } t.browse(rfun,browse3) } @@ -533,3 +542,15 @@ function modify_tree(tree,fid,fun) { } return tree; } + +function fun_template(fname,ftype) { + if(window.parse_fun) { + var fun=parse_fun(fname+" : "+ftype).ok + if(fun) { + var t=fname; + for(var i=1;i<fun.type.length;i++) t+=" ?" + return t; + } + } + return null; +} |
