Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide eol distros #204

Merged
merged 17 commits into from
May 22, 2018
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
17 changes: 17 additions & 0 deletions custom/js/rosversion.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,16 @@ function getURLParameter(name) {
)[1].replace(/\+/g, '%20')) || null;
}

function showHiddenVersionSelector(val)
{
if (val) {
$("#rosversions_hidden").slideDown();
} else {
$("#rosversions_hidden").slideUp();
}
document.getElementById("rosversions_hidden_checkbox").checked=val
}

function toggleDocStatus()
{
if ($("#doc_status").is(":hidden")) {
Expand All @@ -59,6 +69,13 @@ $(document).ready(function() {
if (url_distro) {
activedistro=url_distro;
}

// There's a distro selector that is hidden by default (e.g. for EOL distros).
// Show it if one of those distros is active.
if ($("#rosversion_selector_hidden").has("#"+activedistro).length > 0) {
showHiddenVersionSelector(true);
}

// Make the $ROS_DISTRO replacement work by wrapping it in a span. This is
// necessary vs. MoinMoin macros because macros are not expanded inside of
// code blocks, where this replacement is most useful. Using a function for
Expand Down
33 changes: 17 additions & 16 deletions macro/PackageHeader.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
from MoinMoin.Page import Page
from MoinMoin.wikiutil import get_unicode

from macroutils import load_package_manifest, distro_names, CONTRIBUTE_TMPL, UtilException
from headers import get_nav, get_description, get_package_links, generate_package_header, distro_html, doc_html, get_loaded_distros
from macroutils import load_package_manifest, distro_names, distro_names_buildfarm, distro_names_eol, CONTRIBUTE_TMPL, UtilException
from headers import get_nav, get_description, get_package_links, generate_package_header, distro_selector_html, doc_html, get_loaded_distros

generates_headings = True
dependencies = []

if 'boxturtle' in distro_names:
distro_names.remove('boxturtle')
if 'cturtle' in distro_names:
distro_names.remove('cturtle')
if 'diamondback' in distro_names:
distro_names.remove('diamondback')
if 'unstable' in distro_names:
distro_names.remove('unstable')

def generate_old_package_header(macro, package_name, opt_distro=None):
if not package_name:
Expand All @@ -28,7 +20,7 @@ def generate_old_package_header(macro, package_name, opt_distro=None):

try:
data = load_package_manifest(package_name, opt_distro)
except UtilException, e:
except UtilException as e:
name = "name: %s, distro: %s" % (package_name, opt_distro)
return CONTRIBUTE_TMPL%locals()

Expand All @@ -45,17 +37,26 @@ def macro_PackageHeader(macro, arg1, arg2=None):
if not opt_distro:
headers_html = []
loaded_distros = get_loaded_distros(package_name, distro_names)
for distro in distro_names:
loaded_distros_eol = [distro for distro in loaded_distros if distro in distro_names_eol]
loaded_distros_buildfarm = [distro for distro in loaded_distros if distro in distro_names_buildfarm]
for distro in loaded_distros:
if distro in ['boxturtle', 'cturtle', 'diamondback']:
pkg_header_html = generate_old_package_header(macro, package_name, distro)
else:
pkg_header_html = generate_package_header(macro, package_name, distro)
headers_html.append('<div class="version %s">' % distro + pkg_header_html + '</div>')

html = '<span id="rosversion_selector" class="btn-group">\n'
html += "\n".join([distro_html(distro, loaded_distros) for distro in distro_names])
html += '\n</span>'
html += doc_html(distro_names, package_name)
distros_displayed_by_default = loaded_distros_buildfarm
distros_hidden_by_default = loaded_distros_eol
if not loaded_distros_buildfarm:
distros_displayed_by_default = loaded_distros_eol
distros_hidden_by_default = None
html = distro_selector_html(
distros_displayed_by_default,
distros_hidden_by_default,
distros_to_support_macros_for=distro_names
)
html += doc_html(loaded_distros, package_name)
return macro.formatter.rawHTML(html + "\n".join(headers_html))
else:
if opt_distro in ['boxturtle', 'cturtle', 'diamondback']:
Expand Down
37 changes: 18 additions & 19 deletions macro/StackHeader.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,17 @@
from MoinMoin.Page import Page
from MoinMoin.wikiutil import get_unicode

from macroutils import load_stack_manifest, load_package_manifest, distro_names, CONTRIBUTE_TMPL, UtilException
from headers import get_nav, get_description, get_package_links, generate_package_header, distro_html, get_stack_links, doc_html, get_loaded_distros
from macroutils import load_stack_manifest, load_package_manifest, distro_names, distro_names_buildfarm, distro_names_eol, CONTRIBUTE_TMPL, UtilException
from headers import get_nav, get_description, get_package_links, generate_package_header, distro_selector_html, get_stack_links, doc_html, get_loaded_distros

generates_headings = True
dependencies = []

if 'boxturtle' in distro_names:
distro_names.remove('boxturtle')
if 'cturtle' in distro_names:
distro_names.remove('cturtle')
if 'diamondback' in distro_names:
distro_names.remove('diamondback')
if 'unstable' in distro_names:
distro_names.remove('unstable')

def generate_old_stack_header(macro, stack_name, opt_distro=None):
try:
data = load_stack_manifest(stack_name, opt_distro)
except UtilException, e:
except UtilException as e:
name = "name: %s, distro: %s" % (stack_name, opt_distro)
return CONTRIBUTE_TMPL%locals()

Expand Down Expand Up @@ -54,23 +46,30 @@ def macro_StackHeader(macro, arg1, arg2=None):

if not opt_distro:
headers_html = []
loaded_distros = get_loaded_distros(stack_name, distro_names)
for distro in distro_names:
loaded_distros = get_loaded_distros(stack_name, distro_names_buildfarm)
loaded_distros_eol = [distro for distro in loaded_distros if distro in distro_names_eol]
loaded_distros_buildfarm = [distro for distro in loaded_distros if distro in distro_names_buildfarm]
for distro in loaded_distros:
if distro in ['boxturtle', 'cturtle', 'diamondback']:
stack_header_html = generate_old_stack_header(macro, stack_name, distro)
else:
stack_header_html = generate_package_header(macro, stack_name, distro)
headers_html.append('<div class="version %s">' % distro + stack_header_html + '</div>')

html = '<span id="rosversion_selector" class="btn-group">\n'
html += "\n".join([distro_html(distro, loaded_distros) for distro in distro_names])
html += '\n</span>'
html += doc_html(distro_names, stack_name)
distros_displayed_by_default = loaded_distros_buildfarm
distros_hidden_by_default = loaded_distros_eol
if not loaded_distros_buildfarm:
distros_displayed_by_default = loaded_distros_eol
distros_hidden_by_default = None
html = distro_selector_html(
distros_displayed_by_default,
distros_hidden_by_default,
distros_to_support_macros_for=distro_names
)
html += doc_html(loaded_distros, stack_name)
return macro.formatter.rawHTML(html + "\n".join(headers_html))
else:
if opt_distro in ['boxturtle', 'cturtle', 'diamondback']:
return generate_old_stack_header(macro, stack_name, opt_distro)
else:
return generate_package_header(macro, stack_name, opt_distro)


20 changes: 7 additions & 13 deletions macro/Version.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,11 @@

"""

from headers import distro_html
from headers import distro_selector_html
from macroutils import distro_names, distro_names_buildfarm, distro_names_eol

Dependencies = []

# configure the active set of distros
from macroutils import distro_names as distros

if 'boxturtle' in distros:
distros.remove('boxturtle')
if 'unstable' in distros:
distros.remove('unstable')


def execute(macro, args):
if args:
version = str(args)
Expand All @@ -56,7 +48,9 @@ def execute(macro, args):
'font-weight:bold; padding: 3px;">'
'New in %s</span>' % version)

html = '<span id="rosversion_selector" class="btn-group">\n'
html += "\n".join([distro_html(distro, distros) for distro in distros])
html += '\n</span>'
html = distro_selector_html(
distros_displayed_by_default=distro_names_buildfarm,
distros_hidden_by_default=distro_names_eol,
distros_to_support_macros_for=distro_names
)
return macro.formatter.rawHTML(html)
43 changes: 40 additions & 3 deletions macro/headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from macroutils import CONTRIBUTE_TMPL
from macroutils import distro_names
from macroutils import distro_names_buildfarm
from macroutils import distro_names_eol
from macroutils import get_bugtracker_li
from macroutils import GET_INVOLVED
from macroutils import get_maintainer_status_li
Expand Down Expand Up @@ -338,9 +339,12 @@ def distro_html(distro, distros):
):
continue
html += (
'''document.getElementById('%s').style.background='#e6e6e6';'''
'''document.getElementById('%s').style.color='#3e4f6e';''' %
(inactive_distro, inactive_distro)
'''var distro_button = document.getElementById('%s');'''
'''if (distro_button) {''' # Not all have selector buttons (some just macro support for content embedding)
''' distro_button.style.background='#e6e6e6';'''
''' distro_button.style.color='#3e4f6e';'''
'''}'''
% (inactive_distro)
)
html += '''return false"> %s </button>''' % (distro)
return html
Expand Down Expand Up @@ -653,3 +657,36 @@ def get_job_url(job_url, label):
if not job_url.startswith('http'):
job_url = 'http://jenkins.ros.org/job/%s/' % job_url
return '<a href="%s">%s</a>' % (job_url, label)

def distro_selector_html(distros_displayed_by_default, distros_hidden_by_default, distros_to_support_macros_for):
# Selector for distros displayed by default
html = '<span id="rosversion_selector" class="btn-group">\n'
html += "\n".join([distro_html(distro, distros_to_support_macros_for) for distro in distros_displayed_by_default])
html += '\n</span>'
if not distros_hidden_by_default:
return html

# Checkbox that allows the distros that are hidden by default to be seen
html += (
'<span style="text-align:left">'
'&nbsp;&nbsp;'
'<i>Show EOL distros</i>'
'&nbsp;'
'<input type="checkbox" id="rosversions_hidden_checkbox" onchange="showHiddenVersionSelector(this.checked)">'
'</span>'
)

# Div that gets displayed/hidden by the checkbox
html += (
'<div id="rosversions_hidden" '
'style="display:none">'
)

# Selector for distros hidden by default
html += '<span id="rosversion_selector_hidden" class="btn-group">\n'
html += "\n".join([distro_html(distro, distros_to_support_macros_for) for distro in distros_hidden_by_default])
html += '\n</span>'

html += '\n</div>'
return html

2 changes: 2 additions & 0 deletions macro/macroutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
distro_names = ['boxturtle', 'cturtle', 'diamondback', 'electric', 'fuerte', 'groovy', 'hydro', 'indigo', 'jade', 'kinetic', 'lunar', 'melodic', 'unstable']
distro_names_indexed = ['diamondback', 'electric', 'fuerte', 'groovy', 'hydro', 'indigo', 'jade', 'kinetic', 'lunar', 'melodic', 'unstable'] #boxturtle and cturtle not indexed
distro_names_buildfarm = ['indigo', 'jade', 'kinetic', 'lunar', 'melodic']
distro_names_never_on_buildfarm = ['boxturtle', 'cturtle', 'diamondback', 'unstable']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just took a guess at why these distros are being excluded from the macros, open to suggestions for a more appropriate variable name if there is one

distro_names_eol = [distro for distro in distro_names if distro not in distro_names_buildfarm and distro not in distro_names_never_on_buildfarm]

doc_url = "http://docs.ros.org/"

Expand Down