VirtualBox

Changeset 83394 in vbox


Ignore:
Timestamp:
Mar 24, 2020 6:54:07 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
136611
Message:

TestManager/SchedGroups: WUI layout improvements. Links to testboxes. Testbox tooltip.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpform.py

    r83386 r83394  
    3434
    3535# Validation Kit imports.
    36 from common                         import utils;
    37 from common.webutils                import escapeAttr, escapeElem;
    38 from testmanager                    import config;
    39 from testmanager.core.schedgroup    import SchedGroupMemberData, SchedGroupDataEx;
    40 from testmanager.core.testcaseargs  import TestCaseArgsData;
    41 from testmanager.core.testgroup     import TestGroupMemberData, TestGroupDataEx;
    42 from testmanager.core.testbox       import TestBoxDataForSchedGroup;
     36from common                             import utils;
     37from common.webutils                    import escapeAttr, escapeElem;
     38from testmanager                        import config;
     39from testmanager.core.schedgroup        import SchedGroupMemberData, SchedGroupDataEx;
     40from testmanager.core.testcaseargs      import TestCaseArgsData;
     41from testmanager.core.testgroup         import TestGroupMemberData, TestGroupDataEx;
     42from testmanager.core.testbox           import TestBoxDataForSchedGroup;
    4343
    4444# Python 3 hacks:
     
    864864
    865865    def addListOfSchedGroupBoxes(self, sName, aoSchedGroupBoxes, # pylint: disable=too-many-locals
    866                                  aoAllRelevantTestBoxes, sLabel, idSchedGroup,
    867                                  fReadOnly = True): # (str, list[TestBoxDataEx], list[TestBoxDataEx], str, bool) -> str
     866                                 aoAllRelevantTestBoxes, sLabel, idSchedGroup, fReadOnly = True,
     867                                 fUseTable = False): # (str, list[TestBoxDataEx], list[TestBoxDataEx], str, bool, bool) -> str
    868868        """
    869869        For WuiAdminSchedGroup.
     
    880880                      ','.join([unicode(oTestBox.idTestBox) for oTestBox in aoAllRelevantTestBoxes]), ));
    881881
    882         ## @todo replace with tmform-field-list tricks.
     882        sCheckBoxAttr     = u' readonly onclick="return false" onkeydown="return false"' if fReadOnly else '';
     883        oDefMember        = TestBoxDataForSchedGroup();
     884        aoSchedGroupBoxes = list(aoSchedGroupBoxes); # Copy it so we can pop.
     885
     886        from testmanager.webui.wuiadmin         import WuiAdmin;
     887        from testmanager.webui.wuicontentbase   import WuiAdminLink;
     888
     889        if not fUseTable:
     890            #
     891            # Non-table version (see also addListOfOsArches).
     892            #
     893            self._add('          <div class="tmform-checkboxes-container">\n');
     894
     895            for iTestBox, oTestBox in enumerate(aoAllRelevantTestBoxes):
     896                # Is it a member?
     897                oMember = None;
     898                for i, _ in enumerate(aoSchedGroupBoxes):
     899                    if aoSchedGroupBoxes[i].oTestBox and aoSchedGroupBoxes[i].oTestBox.idTestBox == oTestBox.idTestBox:
     900                        oMember = aoSchedGroupBoxes.pop(i);
     901                        break;
     902
     903                # Start on the rows...
     904                sPrf = u'%s[%d]' % (sName, oTestBox.idTestBox,);
     905                self._add(u'  <div class="tmform-checkbox-holder">\n'
     906                          u'  <input name="%s[%s]" type="hidden" value="%s">\n' # idTestBox
     907                          u'  <input name="%s[%s]" type="hidden" value="%s">\n' # idSchedGroup
     908                          u'  <input name="%s[%s]" type="hidden" value="%s">\n' # tsExpire
     909                          u'  <input name="%s[%s]" type="hidden" value="%s">\n' # tsEffective
     910                          u'  <input name="%s[%s]" type="hidden" value="%s">\n' # uidAuthor
     911                          u'  <input name="%s" type="checkbox"%s%s value="%d" class="tmform-checkbox" title="#%d - %s">\n' #(list)
     912                          % ( #'tmodd' if iTestBox & 1 else 'tmeven',
     913                              sPrf, TestBoxDataForSchedGroup.ksParam_idTestBox,    oTestBox.idTestBox,
     914                              sPrf, TestBoxDataForSchedGroup.ksParam_idSchedGroup, idSchedGroup,
     915                              sPrf, TestBoxDataForSchedGroup.ksParam_tsExpire,     '' if oMember is None else oMember.tsExpire,
     916                              sPrf, TestBoxDataForSchedGroup.ksParam_tsEffective,  '' if oMember is None else oMember.tsEffective,
     917                              sPrf, TestBoxDataForSchedGroup.ksParam_uidAuthor,    '' if oMember is None else oMember.uidAuthor,
     918                              SchedGroupDataEx.ksParam_aoTestBoxes, '' if oMember is None else ' checked', sCheckBoxAttr,
     919                              oTestBox.idTestBox, oTestBox.idTestBox, escapeElem(oTestBox.sName),
     920                              ));
     921
     922                self._add(u'    <span class="tmform-priority tmform-testbox-priority">'
     923                          u'<input name="%s[%s]" type="text" value="%s" style="max-width:3em;" %s title="%s"></span>\n'
     924                          % ( sPrf, TestBoxDataForSchedGroup.ksParam_iSchedPriority,
     925                              (oMember if oMember is not None else oDefMember).iSchedPriority,
     926                              ' readonly class="tmform-input-readonly"' if fReadOnly else '',
     927                              escapeAttr("Priority [0..31].  Higher value means run more often.") ));
     928
     929                asFeatures = [];
     930                if oTestBox.fCpuHwVirt:
     931                    asFeatures.append('AMD-V' if oTestBox.sCpuVendor in ['AuthenticAMD',] else 'VT-x');
     932                if oTestBox.fCpuNestedPaging:
     933                    asFeatures.append('Nested-Paging');
     934                if oTestBox.fCpu64BitGuest:
     935                    asFeatures.append('64-bit-Guest');
     936                if oTestBox.fChipsetIoMmu:
     937                    asFeatures.append('IOMMU');
     938                self._add(u'    <span class="tmform-testbox-name">%s</span>\n'
     939                          % ( WuiAdminLink('%s (%s)' % (oTestBox.sName, oTestBox.sOs),
     940                                           WuiAdmin.ksActionTestBoxDetails, fBracketed = False,
     941                                           dParams = { oTestBox.ksParam_idGenTestBox: oTestBox.idGenTestBox},
     942                                           sTitle = 'CPU:     \t%s\n'
     943                                                    'Threads: \t%u - %s\n'
     944                                                    'Features:\t%s\n'
     945                                                    'RAM:     \t%u MiB\n'
     946                                                    'OpSys:   \t%s - %s\n'
     947                                                    'Arch:    \t%s\n'
     948                                                    'IP-Addr: \t%s\n'
     949                                                  % ( ' '.join(oTestBox.sCpuName.split()),
     950                                                      oTestBox.cCpus, oTestBox.sCpuVendor,
     951                                                      ', '.join(asFeatures),
     952                                                      oTestBox.cMbMemory,
     953                                                      oTestBox.sOs, oTestBox.sOsVersion,
     954                                                      oTestBox.sCpuArch,
     955                                                      oTestBox.ip
     956                                                      )), ));
     957                self._add(u'  </div>\n');
     958            return self._add(u'        </div></div></div>\n'
     959                             u'      </li>\n');
     960
     961        #
     962        # Table version.
     963        #
    883964        self._add(u'<table class="tmformtbl">\n'
    884965                  u' <thead>\n'
     
    892973                  );
    893974
    894         sCheckBoxAttr = u' readonly onclick="return false" onkeydown="return false"' if fReadOnly else '';
    895 
    896         oDefMember = TestBoxDataForSchedGroup();
    897         aoSchedGroupBoxes = list(aoSchedGroupBoxes); # Copy it so we can pop.
    898         for iTestBox, _ in enumerate(aoAllRelevantTestBoxes):
    899             oTestBox = aoAllRelevantTestBoxes[iTestBox];
    900 
     975        for iTestBox, oTestBox in enumerate(aoAllRelevantTestBoxes):
    901976            # Is it a member?
    902977            oMember = None;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette