Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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