def get_bottom_wdg(my): from tactic.ui.widget import ActionButtonWdg div = DivWdg() back = ActionButtonWdg(title="< Back", tip="Go back to last page") div.add(back) back.add_class("spt_wizard_back") back.add_style("float: left") # FIXME: need to do this because set_style is not the same element as # add class back.add_behavior( { 'type': 'load', 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var back = top.getElement(".spt_wizard_back"); back.setStyle("display", "none"); ''' } ) back.add_behavior( { 'type': 'click_up', 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var pages = top.getElements(".spt_wizard_page"); var on_dots = top.getElements(".spt_wizard_on_dot"); var off_dots = top.getElements(".spt_wizard_off_dot"); // check boundary if (pages[0].hasClass("spt_wizard_selected")) { return; } var selected_index = 0; for (var i = 0; i < pages.length; i++) { var page = pages[i]; var on_dot = on_dots[i]; var off_dot = off_dots[i]; if (page.hasClass("spt_wizard_selected")) { page.removeClass("spt_wizard_selected"); selected_index = i; } page.setStyle("display", "none"); on_dot.setStyle("display", "none"); off_dot.setStyle("display", ""); } if (selected_index == 1) { var back = top.getElement(".spt_wizard_back"); back.setStyle("display", "none"); } if (selected_index == pages.length-1) { var next = top.getElement(".spt_wizard_next"); next.setStyle("display", ""); } var page = pages[selected_index-1]; page.setStyle("display", ""); page.addClass("spt_wizard_selected"); var on_dot = on_dots[selected_index-1]; var off_dot = off_dots[selected_index-1]; on_dot.setStyle("display", ""); off_dot.setStyle("display", "none"); ''' } ) if my.submit_button: submit = my.submit_button else: command = my.kwargs.get("command") submit_title = my.kwargs.get("submit_title") if not submit_title: submit_title = "Submit" submit = ActionButtonWdg(title="%s >>" % submit_title, tip=submit_title) submit.add_behavior( { 'type': 'click_up', 'command': command, 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var values = spt.api.Utility.get_input_values(top); spt.app_busy.show("Executing ...", ""); var server = TacticServerStub.get(); try { server.execute_cmd(bvr.command, values); } catch(e) { var xml = spt.parse_xml(e); var node = xml.getElementsByTagName("string")[0]; var error = node.textContent; spt.error("Error: " + error); spt.app_busy.hide(); throw(e); } ''' } ) div.add(submit) submit.add_style("float: right") next = ActionButtonWdg(title="Next >", tip="Go to next page") div.add(next) next.add_class("spt_wizard_next") next.add_style("float: right") next.add_behavior( { 'type': 'click_up', 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var pages = top.getElements(".spt_wizard_page"); var on_dots = top.getElements(".spt_wizard_on_dot"); var off_dots = top.getElements(".spt_wizard_off_dot"); // check boundary if (pages[pages.length-1].hasClass("spt_wizard_selected")) { return; } var selected_index = 0; for (var i = 0; i < pages.length; i++) { var page = pages[i]; var on_dot = on_dots[i]; var off_dot = off_dots[i]; if (page.hasClass("spt_wizard_selected")) { page.removeClass("spt_wizard_selected"); selected_index = i; } page.setStyle("display", "none"); on_dot.setStyle("display", "none"); off_dot.setStyle("display", ""); } if (selected_index == pages.length-2) { var next = top.getElement(".spt_wizard_next"); next.setStyle("display", "none"); } if (selected_index == 0) { var back = top.getElement(".spt_wizard_back"); back.setStyle("display", ""); } var page = pages[selected_index+1]; page.setStyle("display", ""); page.addClass("spt_wizard_selected"); var on_dot = on_dots[selected_index+1]; var off_dot = off_dots[selected_index+1]; on_dot.setStyle("display", ""); off_dot.setStyle("display", "none"); ''' } ) div.add("<br clear='all'/>") return div
def get_top(self): top = self.top top.add_color("background", "background", -5) top.add_style("margin-bottom: -2px") top.add_class("spt_filter_top") table = Table() top.add(table) tr, td = table.add_row_cell() td.add_class("spt_simple_search_title") # add the load wdg show_saved_search = True if show_saved_search: saved_button = ActionButtonWdg(title='Saved', tip='Load Saved Searches') saved_button.add_class("spt_simple_search_save_button") saved_button.add_behavior({ #'type': 'load', 'search_type': self.search_type, 'cbjs_action': ''' var popup = bvr.src_el.getParent(".spt_popup"); spt.popup.close(popup); var class_name = 'tactic.ui.app.LoadSearchWdg'; var kwargs = { search_type: bvr.search_type } var layout = spt.table.get_layout(); var panel = layout.getParent(".spt_view_panel_top"); var popup = spt.panel.load_popup("Saved Searches", class_name, kwargs); popup.activator = panel; ''' }) td.add(saved_button) saved_button.add_style("float: right") saved_button.add_style("margin: 10px") clear_button = ActionButtonWdg(title='Clear', tip='Clear all of the filters') td.add(clear_button) clear_button.add_class("spt_simple_search_clear_button") clear_button.add_style("float: right") clear_button.add_style("margin: 10px") clear_button.add_behavior({ 'type': 'click', 'cbjs_action': ''' spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_filter_top")); ''' }) title_div = DivWdg() td.add(title_div) title_div.add("<div style='font-size: 16px'>Search Criteria</div>") title_div.add("<div>Select filters to refine your search</div>") title_div.add_style("padding: 20px 0px 0px 20px") table.add_style("margin-left: auto") table.add_style("margin-right: auto") table.add_style("margin-bottom: 15px") table.add_style("width: 100%") tr = table.add_row() if not self.content: self.content = DivWdg() self.content.add("No Content") td = table.add_cell() td.add(self.content) #self.content.add_style("margin: -2 -1 0 -1") show_search = self.kwargs.get("show_search") if show_search in [False, 'false']: show_search = False else: show_search = True show_search = True if show_search: search_wdg = self.get_search_wdg() table.add_row() search_wdg.add_style("float: right") search_wdg.add_class("spt_simple_search_button") search_wdg.add_style("padding-top: 6px") search_wdg.add_style("padding-left: 10px") search_wdg.add_style("height: 33px") td = table.add_cell() td.add(search_wdg) td.add_style("padding: 5px 10px") #td.add_border() #td.add_color("background", "background", -10) hidden = HiddenWdg("prefix", self.prefix) top.add(hidden) # this cannot be spt_search as it will confuse spt.dg_table.search_cbk() top.add_class("spt_simple_search") return top
def get_bottom_wdg(self): from tactic.ui.widget import ActionButtonWdg div = DivWdg() div.add_style("margin-top: 10px") back = ActionButtonWdg(title="< Back", tip="Go back to last page") div.add(back) back.add_class("spt_wizard_back") back.add_style("float: left") # FIXME: need to do this because set_style is not the same element as # add class back.add_behavior({ 'type': 'load', 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var back = top.getElement(".spt_wizard_back"); back.setStyle("display", "none"); ''' }) back.add_behavior({ 'type': 'click_up', 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var pages = top.getElements(".spt_wizard_page"); var on_dots = top.getElements(".spt_wizard_on_dot"); var off_dots = top.getElements(".spt_wizard_off_dot"); // check boundary if (pages[0].hasClass("spt_wizard_selected")) { return; } var selected_index = 0; for (var i = 0; i < pages.length; i++) { var page = pages[i]; var on_dot = on_dots[i]; var off_dot = off_dots[i]; if (page.hasClass("spt_wizard_selected")) { page.removeClass("spt_wizard_selected"); selected_index = i; } page.setStyle("display", "none"); on_dot.setStyle("display", "none"); off_dot.setStyle("display", ""); } if (selected_index == 1) { var back = top.getElement(".spt_wizard_back"); back.setStyle("display", "none"); } if (selected_index == pages.length-1) { var next = top.getElement(".spt_wizard_next"); next.setStyle("display", ""); } var page = pages[selected_index-1]; page.setStyle("display", ""); page.addClass("spt_wizard_selected"); var on_dot = on_dots[selected_index-1]; var off_dot = off_dots[selected_index-1]; on_dot.setStyle("display", ""); off_dot.setStyle("display", "none"); ''' }) if self.submit_button: submit = self.submit_button else: submit_title = self.kwargs.get("submit_title") command = self.kwargs.get("command") script = self.kwargs.get("script") jsscript = self.kwargs.get("jsscript") if not submit_title: submit_title = "Submit" submit = ActionButtonWdg(title="%s >>" % submit_title, tip=submit_title) submit.add_class("spt_wizard_submit") submit.add_behavior({ 'type': 'click_up', 'command': command, 'script': script, 'jsscript': jsscript, 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var values = spt.api.Utility.get_input_values(top); var server = TacticServerStub.get(); try { if (bvr.command) { spt.app_busy.show("Executing ...", ""); server.execute_cmd(bvr.command, values); } else if (bvr.jsscript) { var values = spt.api.get_input_values(top, null, false); spt.CustomProject.run_script_by_path(bvr.jsscript, values); } else if (bvr.script) { var values = spt.api.get_input_values(top, null, false); server.execute_python_script(bvr.script, {values:values}); } else { alert("No script or command defined"); } } catch(e) { console.log(e); var xml = spt.parse_xml(e); var node = xml.getElementsByTagName("string")[0]; if (node) { var error = node.textContent; spt.error("Error: " + error); spt.app_busy.hide(); } else { alert(e); } throw(e); } spt.app_busy.hide(); ''' }) div.add(submit) submit.add_style("float: right") next = ActionButtonWdg(title="Next >", tip="Go to next page") div.add(next) next.add_class("spt_wizard_next") next.add_style("float: right") next.add_behavior({ 'type': 'click_up', 'cbjs_action': ''' var top = bvr.src_el.getParent(".spt_wizard_top"); var pages = top.getElements(".spt_wizard_page"); var on_dots = top.getElements(".spt_wizard_on_dot"); var off_dots = top.getElements(".spt_wizard_off_dot"); // check boundary if (pages[pages.length-1].hasClass("spt_wizard_selected")) { return; } var selected_index = 0; for (var i = 0; i < pages.length; i++) { var page = pages[i]; var on_dot = on_dots[i]; var off_dot = off_dots[i]; if (page.hasClass("spt_wizard_selected")) { page.removeClass("spt_wizard_selected"); selected_index = i; } page.setStyle("display", "none"); on_dot.setStyle("display", "none"); off_dot.setStyle("display", ""); } if (selected_index == pages.length-2) { var next = top.getElement(".spt_wizard_next"); next.setStyle("display", "none"); } if (selected_index == 0) { var back = top.getElement(".spt_wizard_back"); back.setStyle("display", ""); } var page = pages[selected_index+1]; page.setStyle("display", ""); page.addClass("spt_wizard_selected"); var on_dot = on_dots[selected_index+1]; var off_dot = off_dots[selected_index+1]; on_dot.setStyle("display", ""); off_dot.setStyle("display", "none"); ''' }) div.add("<br clear='all'/>") return div
def get_top(self): top = self.top top.add_color("background", "background", -5) top.add_style("margin-bottom: -2px") top.add_class("spt_filter_top") table = Table() top.add(table) tr, td = table.add_row_cell() td.add_class("spt_simple_search_title") # add the load wdg show_saved_search = True if show_saved_search: saved_button = ActionButtonWdg(title='Saved', tip='Load Saved Searches') saved_button.add_class("spt_simple_search_save_button") saved_button.add_behavior( { #'type': 'load', 'search_type': self.search_type, 'cbjs_action': ''' var popup = bvr.src_el.getParent(".spt_popup"); spt.popup.close(popup); var class_name = 'tactic.ui.app.LoadSearchWdg'; var kwargs = { search_type: bvr.search_type } var layout = spt.table.get_layout(); var panel = layout.getParent(".spt_view_panel_top"); var popup = spt.panel.load_popup("Saved Searches", class_name, kwargs); popup.activator = panel; ''' } ) td.add(saved_button) saved_button.add_style("float: right") saved_button.add_style("margin: 10px") clear_button = ActionButtonWdg(title='Clear', tip='Clear all of the filters' ) td.add(clear_button) clear_button.add_class("spt_simple_search_clear_button") clear_button.add_style("float: right") clear_button.add_style("margin: 10px") clear_button.add_behavior( { 'type': 'click', 'cbjs_action': ''' spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_filter_top")); ''' } ) title_div = DivWdg() td.add(title_div) title_div.add("<div style='font-size: 16px'>Search Criteria</div>") title_div.add("<div>Select filters to refine your search</div>") title_div.add_style("padding: 20px 0px 0px 20px") table.add_style("margin-left: auto") table.add_style("margin-right: auto") table.add_style("margin-bottom: 15px") table.add_style("width: 100%") tr = table.add_row() if not self.content: self.content = DivWdg() self.content.add("No Content") td = table.add_cell() td.add(self.content) #self.content.add_style("margin: -2 -1 0 -1") show_search = self.kwargs.get("show_search") if show_search in [False, 'false']: show_search = False else: show_search = True show_search = True if show_search: search_wdg = self.get_search_wdg() table.add_row() search_wdg.add_style("float: right") search_wdg.add_class("spt_simple_search_button") search_wdg.add_style("padding-top: 6px") search_wdg.add_style("padding-left: 10px") search_wdg.add_style("height: 33px") td = table.add_cell() td.add(search_wdg) td.add_style("padding: 5px 10px") #td.add_border() #td.add_color("background", "background", -10) hidden = HiddenWdg("prefix", self.prefix) top.add(hidden) # this cannot be spt_search as it will confuse spt.dg_table.search_cbk() top.add_class("spt_simple_search") return top