ubermonkey

Search UI

Aug 5th, 2013
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Global variables
  2.   var ss = SpreadsheetApp.getActiveSpreadsheet();
  3.   var sh = SpreadsheetApp.getActiveSheet(); // gv?
  4.   var lastrow = ss.getLastRow();
  5.   var lastcol = ss.getLastColumn();
  6.   var app = UiApp.getActiveApplication();
  7.  
  8. // Menu additions
  9. function onOpen() {
  10.   var menuEntries = [{name: 'Поиск вакансий', functionName: 'ui'}];
  11.   ss.addMenu('Отчеты',menuEntries);
  12. }
  13.  
  14. // UI
  15. function ui() {  
  16.   var app = UiApp.createApplication().setHeight(400).setWidth(800).setTitle('Поиск вакансий');
  17.   var panel = app.add(app.createHorizontalPanel());
  18.   var input = panel.createTextBox().setName('input').setId('input').setFocus(true);
  19.   var button = panel.createButton('Сформировать документ').setId('button');
  20.   panel.add(input).add(button);
  21.  
  22.  
  23.  
  24.   var handler = app.createServerHandler('search');
  25.   input.addChangeHandler(handler);
  26.   handler.addCallbackElement(input);
  27.  
  28.   var spanel = app.createScrollPanel(app.createFlexTable().setId('table').setWidth(785).setBorderWidth(1).setCellPadding(1)).setPixelSize(800, 383).setAlwaysShowScrollBars(true);
  29.  
  30.   var table = app.getElementById('table'); // gv?
  31.   table
  32.     .setWidget(0,0,app.createCheckBox().setValue(true).setEnabled(false))
  33.     .setWidget(0,1,app.createLabel('Вакансия'))
  34.     .setWidget(0,2,app.createLabel('График'))
  35.     .setWidget(0,3,app.createLabel('Время'))
  36.     .setWidget(0,4,app.createLabel('Условия'))
  37.     .setWidget(0,5,app.createLabel('Зарплата'))
  38.     .setWidget(0,6,app.createLabel('Оплата'))
  39.     .setWidget(0,7,app.createLabel('Организация'))
  40.     .setWidget(0,8,app.createLabel('Телефон'));
  41.   app.add(spanel);
  42.   ss.show(app);
  43. }
  44.  
  45. // Search
  46. function search(e) {
  47.   var table = app.getElementById('table');
  48.  
  49.   var query = e.parameter.input.toLowerCase();
  50.  
  51.   var hidden = app.createHidden().setId('hidden').setName('hidden');
  52.   app.add(hidden);
  53.  
  54.   var button = app.getElementById('button');
  55.  
  56.   var click = app.createServerHandler('click');
  57.   button.addClickHandler(click);
  58.   click.addCallbackElement(hidden);
  59.  
  60.   var check = app.createServerHandler('check');
  61.   check.addCallbackElement(table).addCallbackElement(hidden);
  62.  
  63.   var r = 1;
  64.   var data = sh.getRange(1,1,lastrow,lastcol).getValues();
  65.   for (var row = 0; row < data.length; row++) {
  66.     if (data[row].toString().toLowerCase().match(query) == query && query != '') {
  67.       table.setWidget(r,0,app.createCheckBox().addValueChangeHandler(check).setName('check'+row));
  68.         for (var c = 0; c < data[row].length; ++c) {
  69.           table.setText(r,c+1,data[row][c].toString());
  70.         }
  71.         ++r
  72.         continue;
  73.     }
  74.   }
  75.   return app;
  76. }
  77.  
  78. // Storing checked rows
  79. function check(e) {
  80.   var checkedArray = [];
  81.   var data = sh.getRange(1,1,lastrow,lastcol).getValues();
  82.   for(var n=0; n < data.length;++n){
  83.     if(e.parameter['check'+n]=='true'){
  84.       checkedArray.push(data[n]);
  85.     }
  86.   }
  87.  
  88.   var hidden = app.getElementById('hidden');
  89.  
  90.   hidden.setValue(checkedArray);
  91.  
  92.   return app;
  93. }
  94.  
  95. function click() {
  96.   var hidden = app.getElementById('hidden')
  97.  
  98.   var d = new Date();
  99.   var time = d.toLocaleTimeString();
  100.  
  101.   DocumentApp.create('doc '+time).getBody().appendTable(hidden);
  102. }
Advertisement
Add Comment
Please, Sign In to add comment