um exemplo claro de como usar o script do Google UI Builder e do Google Apps
Eu pesquisei em todos os lugares e não consigo encontrar um exemplo claro de como usar o script do Googles UI Builder e dos aplicativos. Eu não tenho ideia do que estou perdendo. Eu acho que isso deve ser simples: v / SIM, eu li todos os documentos do Google, assisti vids etc - várias vezes - não há nenhuma combinação de GUIB(Construtor de UI do Google) e uma função de manipulador de retorno de chamada, que eu posso encontrar.
EDIT: há exemplos para SpreadSheets - não GSites
O que eu preciso fazer:
Gostaria de incorporar uma caixa de texto e um botão para coletar uma frase de pesquisa de um usuário em uma página do site do Google. Eu construí a interface do usuário muito simples com um único flowpanel, caixa de texto e botão, mas só pode obter "indefinido" retornado de Logger.log () não importa o que eu faço(veja o código abaixo).
Um pouco de desabafo:
Tenho sido muito cuidadoso em nomear e chamar pelos nomes certos. Eu tentei usar um formpanel MAS no GUIB, você só pode colocar um widget nele ?! ... E um botão de envio só vai entrar em um formpanel - huh - eu não posso colocar minha caixa de texto também !?(Por que se preocupar com o formpanel então - eu não entendo isso! ... sim eu sei sobre o doPost () automaticamente sendo chamado para enviar). Eu quero que os widgets permaneçam ativos e não desapareçam após um uso, então talvez o formpanel / submitbutton não funcione de qualquer maneira - ou não é o jeito certo de fazer isso?
Down to business:
De qualquer forma, o que eu tentei é colocar o botão regular e caixa de texto em um flowpanel com o seguinte código ...
EDIT: eu excluí o meu conteúdo original aqui e repostado esta seção ...
// Google Sites and UIBuilder (GUIB) - kgingeri (Karl)
// - this script is embedded in a GSite page via: Insert -> Apps Script Gadget.
//
// Withing GUIB I have defined:
// - a FlowPanel named 'pnlMain'
// - inside that a textBox named 'tbxQuery' and a button called 'btnSearch'
// - for btnSearch, I have defined (in the Events subsection) a callback function
// btnSearchHandler (see it below doGet() here. I expanded the [+] beside that
// and entered 'tbxQuery'
//
// the GUIB compnent tree looks like this...
//
// [-] testGui
// [-] pnlMain
// btnSearch
// tbxQuery
//
// btnSearch Event section looks something like this...
//
// Events
// On Mouse Clicks
// [X][btnSearchHandler][-]
// [tbxQuery ]<--'
// [Add Server]
// ...
//
// So...
// 1) when the page is opened, the doGet() function is called, showing the defined UI
// 2) when text is entered into the textBox and the button is clicked
// 3) the data from tbxQuery is **SUPPOSED TO BE** returned as e.parameter.tbxQuery
// in the function 'btnSearchHandler(e)' **BUT IS NOT** :v(
//
// (this functionality appears to work in a spreadsheet?! - weird?!)
//
// [ predefined function --- Google calls on page open ]
//
// ...this works 'as advertised' ;v)
//
function doGet(e) {
var app = UiApp.createApplication();
app.add(app.loadComponent("testGui")); // ...the title that shows in G/UIBuilder
return app;
}
//
// [ callBack for when a button is clicked ]
//
// ...I always get 'Resp: [Undefined]' returned in the View -> Logs menu?!
// ...I also tried to put 'pnlMain' in the Event [+] param, no go :v(
//
function btnSearchHandler(e) {
var resp = e.parameter.tbxQuery // ...the data I want in the textBox widget
Logger.log('Resp: [' + e.parameter.tbxQuery + ']');
// ...more code to come, once this works!
}
Eu também tentei adicionar código para definir manualmente manipuladores etc em doGet () e não usar configurações de evento GUIB, mas sem sucesso também.
Conclusão?
O que da? Eu tenho que codificar manualmente as GUIs e não usar o GUIB? Eu sei que é simples desta vez, mas se eu conseguir fazer isso funcionar, eu posso ver com certeza ser muito melhor construir outros aplicativos com o GUIB! Alguém pode me dar ou me indicar um exemplo claro ?!
Obrigado pela leitura!