def get_display(self): widget = Widget() project = self.get_current_sobject() table = Table() table.set_class("minimal") for setting in ('dir_naming_cls', 'file_naming_cls', 'code_naming_cls', 'node_naming_cls', 'sobject_mapping_cls'): table.add_row() td = table.add_cell("<i>%s</i>: " % setting) td.add_style("text-align: right") value = project.get_value(setting) table.add_cell(value) widget.add(table) return widget
def get_display_old(my): '''This is NOT used, just used as a reference for the old method''' icon_id = 'upload_div' div = DivWdg() if my.get_option('upload_type') == 'arbitrary': counter = HiddenWdg('upload_counter', '0') div.add(counter) icon = IconButtonWdg('add upload', icon=IconWdg.ADD) icon.set_id(icon_id) icon.add_event('onclick', "Common.add_upload_input('%s','%s','upload_counter')" \ %(icon_id, my.get_input_name())) div.add(icon) table = Table() table.set_class("minimal") table.add_style("font-size: 0.8em") names = my.get_option('names') required = my.get_option('required') if not names: my.add_upload(table, my.name) else: names = names.split('|') if required: required = required.split('|') if len(required) != len(names): raise TacticException( 'required needs to match the number of names if defined in the config file.' ) # check for uniqueness in upload_names if len(set(names)) != len(names): raise TacticException( '[names] in the config file must be unique') for idx, name in enumerate(names): if required: is_required = required[idx] == 'true' else: is_required = False my.add_upload(table, name, is_required) table.add_row()
def get_display_old(my): '''This is NOT used, just used as a reference for the old method''' icon_id = 'upload_div' div = DivWdg() if my.get_option('upload_type') == 'arbitrary': counter = HiddenWdg('upload_counter','0') div.add(counter) icon = IconButtonWdg('add upload', icon=IconWdg.ADD) icon.set_id(icon_id) icon.add_event('onclick', "Common.add_upload_input('%s','%s','upload_counter')" \ %(icon_id, my.get_input_name())) div.add(icon) table = Table() table.set_class("minimal") table.add_style("font-size: 0.8em") names = my.get_option('names') required = my.get_option('required') if not names: my.add_upload(table, my.name) else: names = names.split('|') if required: required = required.split('|') if len(required) != len(names): raise TacticException('required needs to match the number of names if defined in the config file.') # check for uniqueness in upload_names if len(set(names)) != len(names): raise TacticException('[names] in the config file must be unique') for idx, name in enumerate(names): if required: is_required = required[idx] == 'true' else: is_required = False my.add_upload(table, name, is_required) table.add_row()
def get_display(my): div = DivWdg() table = Table() table.set_class("minimal") table.add_style("font-size: 0.8em") table.add_row() table.add_cell("File") table.add_cell('<input type="file" name="%s"/>' % (my.get_input_name()) ) table.add_row() table.add_cell("Context") select = SelectWdg("%s|context" % my.get_input_name() ) select.set_option("values", "publish|roughDesign|colorFinal|colorKey") table.add_cell(select) table.add_row() table.add_cell("Description") table.add_cell('<textarea name="%s|description"></textarea>' % my.get_input_name()) div.add(table) return div
def get_display(self): # get all of the options direction = self.get_option("direction") if not direction: direction = "dst" icon_size = self.get_option("icon_size") if not icon_size: icon_size = 60 try: sobject = self.get_current_sobject() except IndexError: return '' if not hasattr(self, 'info'): return '' connections, dst_sobjects, sobj = self.info.get( sobject.get_search_key()) src_sobject = sobject # may not need this due to preprocess if isinstance(src_sobject, SObjectConnection): connection = src_sobject src_sobject = connection.get_sobject(direction="src") div = DivWdg() div.set_id("connection_%s" % src_sobject.get_id()) # set the ajax options self.set_ajax_top(div) self.set_ajax_option("search_key", src_sobject.get_search_key()) self.register_cmd("pyasm.widget.SObjectConnectionRemoveCbk") table = Table() table.set_max_width() table.set_class("minimal") count = 0 for dst_sobject in dst_sobjects: tr = table.add_row() if not dst_sobject: table.add_cell("referenced to retired or deleted asset....") continue if dst_sobject.is_retired(): tr.add_class("retired_row") thumb = ThumbWdg() thumb.set_show_filename(True) thumb.set_show_orig_icon(True) thumb.set_icon_size(icon_size) thumb.set_sobject(dst_sobject) td = table.add_cell(thumb) td.add_style("padding: 1px") td.add_style("width: 20%") id = dst_sobject.get_id() name = dst_sobject.get_name() code = dst_sobject.get_code() if code == str(id): pass elif name == code: td = table.add_cell(name) td.add_style("width: 20%") else: td = table.add_cell("%s<br/>%s" % (name, code)) td.add_style("width: 20%") if dst_sobject.has_value("title"): td = table.add_cell("%s" % dst_sobject.get_value("title")) elif dst_sobject.has_value("description"): td = table.add_cell("%s" % dst_sobject.get_value("description")) td.add_style("width: 30%") if dst_sobject.has_value("keywords"): td = table.add_cell("%s" % dst_sobject.get_value("keywords")) td.add_style("width: 20%") if dst_sobject.has_value("timestamp"): td = table.add_cell("%s" % Date( dst_sobject.get_value("timestamp")).get_display_time()) td.add_style("width: 20%") update = UpdateWdg() update.set_sobject(dst_sobject) update.set_option('delete', 'false') table.add_cell(update) # remove connection connection = connections[count] connection_id = connection.get_id() self.set_ajax_option("connection_id", connection_id) refresh_script = self.get_refresh_script(False) remove = IconButtonWdg("Remove Connection", IconWdg.DELETE) remove.add_event("onclick", refresh_script) table.add_cell(remove) count += 1 div.add(table) return div
def get_display(self): # get all of the options direction = self.get_option("direction") if not direction: direction = "dst" icon_size = self.get_option("icon_size") if not icon_size: icon_size = 60 src_sobject = self.get_current_sobject() dst_sobjects = [] if isinstance(src_sobject, SObjectConnection): connection = src_sobject dst_sobject = connection.get_sobject(direction) src_sobject = connection.get_sobject(direction="src") connections = [connection] dst_sobjects = [dst_sobject] else: connections, dst_sobjects = SObjectConnection.get_connected_sobjects( src_sobject, direction) div = DivWdg() div.set_id("connection_%s" % src_sobject.get_id()) # set the ajax options self.set_ajax_top(div) self.set_ajax_option("search_key", src_sobject.get_search_key()) self.register_cmd("pyasm.widget.SObjectConnectionRemoveCbk") table = Table() table.set_max_width() table.set_class("minimal") count = 0 for dst_sobject in dst_sobjects: tr = table.add_row() if not dst_sobject: table.add_cell("referenced to retired or deleted asset....") continue if dst_sobject.is_retired(): tr.add_class("retired_row") thumb = ThumbWdg() thumb.set_show_filename(True) thumb.set_icon_size(icon_size) thumb.set_sobject(dst_sobject) td = table.add_cell(thumb) td.add_style("padding: 1px") td.add_style("width: 20%") id = dst_sobject.get_id() name = dst_sobject.get_name() code = dst_sobject.get_code() if code == str(id): pass elif name == code: td = table.add_cell(name) td.add_style("width: 20%") else: td = table.add_cell("%s<br/>%s" % (name, code)) td.add_style("width: 20%") if dst_sobject.has_value("title"): td = table.add_cell(dst_sobject.get_value("title")) elif dst_sobject.has_value("description"): td = table.add_cell(dst_sobject.get_value("description")) if dst_sobject.has_value("keywords"): table.add_cell(dst_sobject.get_value("keywords")) # remove connection connection = connections[count] connection_id = connection.get_id() self.set_ajax_option("connection_id", connection_id) refresh_script = self.get_refresh_script(False) remove = IconButtonWdg("Remove Connection", IconWdg.DELETE) remove.add_event("onclick", refresh_script) table.add_cell(remove) count += 1 div.add(table) return div
def get_display(self): # get all of the options direction = self.get_option("direction") if not direction: direction = "dst" icon_size = self.get_option("icon_size") if not icon_size: icon_size = 60 try: sobject = self.get_current_sobject() except IndexError: return '' if not hasattr(self, 'info'): return '' connections, dst_sobjects, sobj = self.info.get(sobject.get_search_key()) src_sobject = sobject # may not need this due to preprocess if isinstance(src_sobject, SObjectConnection): connection = src_sobject src_sobject = connection.get_sobject(direction="src") div = DivWdg() div.set_id("connection_%s" % src_sobject.get_id() ) # set the ajax options self.set_ajax_top(div) self.set_ajax_option("search_key", src_sobject.get_search_key() ) self.register_cmd("pyasm.widget.SObjectConnectionRemoveCbk") table = Table() table.set_max_width() table.set_class("minimal") count = 0 for dst_sobject in dst_sobjects: tr = table.add_row() if not dst_sobject: table.add_cell("referenced to retired or deleted asset....") continue if dst_sobject.is_retired(): tr.add_class("retired_row") thumb = ThumbWdg() thumb.set_show_filename(True) thumb.set_show_orig_icon(True) thumb.set_icon_size(icon_size) thumb.set_sobject(dst_sobject) td = table.add_cell(thumb) td.add_style("padding: 1px") td.add_style("width: 20%") id = dst_sobject.get_id() name = dst_sobject.get_name() code = dst_sobject.get_code() if code == str(id): pass elif name == code: td = table.add_cell(name) td.add_style("width: 20%") else: td = table.add_cell("%s<br/>%s" % (name,code) ) td.add_style("width: 20%") if dst_sobject.has_value("title"): td = table.add_cell("%s" % dst_sobject.get_value("title") ) elif dst_sobject.has_value("description"): td = table.add_cell("%s" % dst_sobject.get_value("description") ) td.add_style("width: 30%") if dst_sobject.has_value("keywords"): td = table.add_cell("%s" % dst_sobject.get_value("keywords") ) td.add_style("width: 20%") if dst_sobject.has_value("timestamp"): td = table.add_cell("%s" % Date(dst_sobject.get_value("timestamp")).get_display_time() ) td.add_style("width: 20%") update = UpdateWdg() update.set_sobject(dst_sobject) update.set_option('delete', 'false') table.add_cell(update) # remove connection connection = connections[count] connection_id = connection.get_id() self.set_ajax_option("connection_id", connection_id ) refresh_script = self.get_refresh_script(False) remove = IconButtonWdg("Remove Connection", IconWdg.DELETE) remove.add_event("onclick", refresh_script) table.add_cell(remove) count += 1 div.add(table) return div
def get_display(self): # get all of the options direction = self.get_option("direction") if not direction: direction = "dst" icon_size = self.get_option("icon_size") if not icon_size: icon_size = 60 src_sobject = self.get_current_sobject() dst_sobjects = [] if isinstance(src_sobject, SObjectConnection): connection = src_sobject dst_sobject = connection.get_sobject(direction) src_sobject = connection.get_sobject(direction="src") connections = [connection] dst_sobjects = [dst_sobject] else: connections, dst_sobjects = SObjectConnection.get_connected_sobjects(src_sobject, direction) div = DivWdg() div.set_id("connection_%s" % src_sobject.get_id() ) # set the ajax options self.set_ajax_top(div) self.set_ajax_option("search_key", src_sobject.get_search_key() ) self.register_cmd("pyasm.widget.SObjectConnectionRemoveCbk") table = Table() table.set_max_width() table.set_class("minimal") count = 0 for dst_sobject in dst_sobjects: tr = table.add_row() if not dst_sobject: table.add_cell("referenced to retired or deleted asset....") continue if dst_sobject.is_retired(): tr.add_class("retired_row") thumb = ThumbWdg() thumb.set_show_filename(True) thumb.set_icon_size(icon_size) thumb.set_sobject(dst_sobject) td = table.add_cell(thumb) td.add_style("padding: 1px") td.add_style("width: 20%") id = dst_sobject.get_id() name = dst_sobject.get_name() code = dst_sobject.get_code() if code == str(id): pass elif name == code: td = table.add_cell(name) td.add_style("width: 20%") else: td = table.add_cell("%s<br/>%s" % (name,code) ) td.add_style("width: 20%") if dst_sobject.has_value("title"): td = table.add_cell(dst_sobject.get_value("title") ) elif dst_sobject.has_value("description"): td = table.add_cell(dst_sobject.get_value("description") ) if dst_sobject.has_value("keywords"): table.add_cell(dst_sobject.get_value("keywords") ) # remove connection connection = connections[count] connection_id = connection.get_id() self.set_ajax_option("connection_id", connection_id ) refresh_script = self.get_refresh_script(False) remove = IconButtonWdg("Remove Connection", IconWdg.DELETE) remove.add_event("onclick", refresh_script) table.add_cell(remove) count += 1 div.add(table) return div
def get_info_wdg(my): widget = Widget() table = Table() table.set_class("minimal") table.add_style("font-size: 0.8em") context_option = my.kwargs.get('context') context_expr_option = my.kwargs.get('context_expr') pipeline_option = my.kwargs.get('pipeline') in ['true', True, 'True'] setting_option = my.kwargs.get('setting') context_name = "%s|context" % my.get_input_name() text = None span1 = SpanWdg("Context", id='context_mode') span2 = SpanWdg("Context<br/>/Subcontext", id='subcontext_mode') span2.add_style('display', 'none') table.add_cell(span1) table.add_data(span2) if context_expr_option or context_option or setting_option: # add swap display for subcontext only if there is setting or context option swap = SwapDisplayWdg() table.add_data(SpanWdg(swap, css='small')) swap.set_display_widgets(StringWdg('[+]'), StringWdg('[-]')) subcontext_name = "%s|subcontext" % my.get_input_name() subcontext = SpanWdg('/ ', css='small') subcontext.add(TextWdg(subcontext_name)) subcontext.add_style('display', 'none') subcontext.set_id(subcontext_name) on_script = "set_display_on('%s');swap_display('subcontext_mode','context_mode')" % subcontext_name off_script = "set_display_off('%s');get_elements('%s').set_value(''); "\ "swap_display('context_mode','subcontext_mode')"%(subcontext_name, subcontext_name) swap.add_action_script(on_script, off_script) text = SelectWdg(context_name) if my.sobjects: text.set_sobject(my.sobjects[0]) if context_expr_option: text.set_option('values_expr', context_expr_option) elif context_option: text.set_option('values', context_option) elif setting_option: text.set_option('setting', setting_option) td = table.add_cell(text) table.add_data(subcontext) elif pipeline_option: from pyasm.biz import Pipeline sobject = my.sobjects[0] pipeline = Pipeline.get_by_sobject(sobject) context_names = [] process_names = pipeline.get_process_names(recurse=True) for process in process_names: context_names.append(pipeline.get_output_contexts(process)) text = SelectWdg(context_name) text.set_option('values', process_names) table.add_cell(text) else: text = TextWdg(context_name) table.add_cell(text) hint = HintWdg('If not specified, the default is [publish]') table.add_data(hint) revision_cb = CheckboxWdg('%s|is_revision' %my.get_input_name(),\ label='is revision', css='med') table.add_data(revision_cb) table.add_row() table.add_cell("Comment") textarea = TextAreaWdg("%s|description" % my.get_input_name()) table.add_cell(textarea) widget.add(table) return widget
def get_info_wdg(my): widget = Widget() table = Table() table.set_class("minimal") table.add_style("font-size: 0.8em") context_option = my.kwargs.get('context') context_expr_option = my.kwargs.get('context_expr') pipeline_option = my.kwargs.get('pipeline') in ['true', True, 'True'] setting_option = my.kwargs.get('setting') context_name = "%s|context" % my.get_input_name() text = None span1 = SpanWdg("Context", id='context_mode') span2 = SpanWdg("Context<br/>/Subcontext", id='subcontext_mode') span2.add_style('display','none') table.add_cell(span1) table.add_data(span2) if context_expr_option or context_option or setting_option: # add swap display for subcontext only if there is setting or context option swap = SwapDisplayWdg() table.add_data(SpanWdg(swap, css='small')) swap.set_display_widgets(StringWdg('[+]'), StringWdg('[-]')) subcontext_name = "%s|subcontext" % my.get_input_name() subcontext = SpanWdg('/ ', css='small') subcontext.add(TextWdg(subcontext_name)) subcontext.add_style('display','none') subcontext.set_id(subcontext_name) on_script = "set_display_on('%s');swap_display('subcontext_mode','context_mode')"%subcontext_name off_script = "set_display_off('%s');get_elements('%s').set_value(''); "\ "swap_display('context_mode','subcontext_mode')"%(subcontext_name, subcontext_name) swap.add_action_script(on_script, off_script) text = SelectWdg(context_name) if my.sobjects: text.set_sobject(my.sobjects[0]) if context_expr_option: text.set_option('values_expr', context_expr_option) elif context_option: text.set_option('values', context_option) elif setting_option: text.set_option('setting', setting_option) td = table.add_cell(text) table.add_data(subcontext) elif pipeline_option: from pyasm.biz import Pipeline sobject = my.sobjects[0] pipeline = Pipeline.get_by_sobject(sobject) context_names = [] process_names = pipeline.get_process_names(recurse=True) for process in process_names: context_names.append(pipeline.get_output_contexts(process)) text = SelectWdg(context_name) text.set_option('values', process_names) table.add_cell(text) else: text = TextWdg(context_name) table.add_cell(text) hint = HintWdg('If not specified, the default is [publish]') table.add_data(hint) revision_cb = CheckboxWdg('%s|is_revision' %my.get_input_name(),\ label='is revision', css='med') table.add_data(revision_cb) table.add_row() table.add_cell("Comment") textarea = TextAreaWdg("%s|description"% my.get_input_name()) table.add_cell(textarea) widget.add(table) return widget