CINXE.COM
cncf-tag-env-sustainability@lists.cncf.io | Messages
<!DOCTYPE html> <html lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="pinterest" content="nopin" /> <meta name="pinterest" content="nohover" /> <meta name="3778517eb4810dfb5d143ed8f1b359b3b5a82923" content="0f56257c3db4a222e91b11bc6871c4df2e263b28" /> <link rel="apple-touch-icon" sizes="57x57" href="/img/org.10/favicons/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/img/org.10/favicons/apple-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/img/org.10/favicons/apple-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/img/org.10/favicons/apple-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/img/org.10/favicons/apple-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/img/org.10/favicons/apple-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/img/org.10/favicons/apple-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/img/org.10/favicons/apple-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/img/org.10/favicons/apple-icon-180x180.png"> <link rel="icon" type="image/png" sizes="192x192" href="/img/org.10/favicons/android-icon-192x192.png"> <link rel="icon" type="image/png" sizes="32x32" href="/img/org.10/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="96x96" href="/img/org.10/favicons/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="16x16" href="/img/org.10/favicons/favicon-16x16.png"> <link rel="manifest" href="/img/org.10/favicons/manifest.json"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> <script> /* stubs */ const hapticsImpactHeavy = async () => { }; const hapticsImpactMedium = async () => { }; const hapticsImpactLight = async () => { }; const hapticsVibrate = async () => { }; const hapticsSelectionStart = async () => { }; const hapticsSelectionChanged = async () => { }; const hapticsSelectionEnd = async () => { }; </script> <script> function setPullToRefresh() {} function gotoURL(inurl) { window.location.href = inurl; return; } function contentLoaded(isHTMX, f, caller = "") { console.log("contentLoaded: " + isHTMX + " " + caller); if (isHTMX == true) { document.body.addEventListener('htmx:afterSettle', f, {once: true}); } else { if (document.readyState !== 'loading') { console.log('document is already ready, just execute code here'); f(); } else { console.log('document was not ready, place code here'); document.addEventListener('DOMContentLoaded', f, {once: true}); } } } function HideAppSidebarOnKeyboard() { console.log("In HideAppSidebarOnKeyboard"); } // stub function logError(data, url, linenumber) { console.log(data) return; } var pushSubToken; var ignoreErrors = false; var lastError = ""; window.onerror = function(errorMessage, errorUrl, errorLine, errorColumn, errorObj) { let column; let stack; if (console && console.log) { console.log("msg:", errorMessage); console.log("url:", errorUrl); console.log("line:", errorLine); if (errorColumn !== undefined && errorObj != null) { console.log("column:", errorColumn); column = errorColumn; } if (errorObj !== undefined && errorObj != null) { console.log("stack:", errorObj.stack); stack = errorObj.stack; } console.log("client_id:", "web.web08.15606481.1732732467856159125"); console.log("last_error:", lastError); console.log("stack:", stack); } if (errorUrl == "" || errorUrl === null) { errorUrl = window.location.href; } if (errorMessage.includes("SecurityError:") == true) { ignoreErrors = true; } if (ignoreErrors == true) { console.log("cookies, disabled, ignoring"); lastError = errorMessage; return; } jQuery.ajax({ type: 'POST', url: '/jsclienterror', data: { msg: errorMessage, url: errorUrl, line: errorLine, column: column, stack: stack, last_error: lastError, client_id: "web.web08.15606481.1732732467856159125" }, success: function() { if (console && console.log) { console.log('JS error report successful.'); } lastError = errorMessage; }, error: function() { if (console && console.error) { console.error('JS error report submission failed!'); } lastError = errorMessage; } }); return true; } </script> <script src="/tinymce-5.10.9/tinymce.min.js"></script> <script src="/js/browser-image-compression-2.0.2.min.js"></script> <link href="/css/application-6630163a3be19b6cee26ce35342d0d92.css" rel="stylesheet" id="groupsio-css"> <script src="/js/application-9b2c27b802a13063cf8a712fe566f004.js" id="groupsio-js"></script> <script src="/js/run_prettify.js"></script> <title> cncf-tag-env-sustainability@lists.cncf.io | Messages </title> <script> htmx.config.scrollBehavior = "instant"; htmx.config.historyCacheSize = 0; htmx.config.defaultSettleDelay = 0; console.log("FULL PAGE LOAD"); </script> </head> <body id="body" class="" hx-headers='{"Accept-Version": "ab77eb5706920326b8462b4e8eb5f3645a02f625"}' hx-ext="preload" hx-boost="false"> <script> if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { document.body.classList.add('dark-mode'); } </script> <div class="navbar navbar-head navbar-fixed-top" role="navigation" id="headerbar"> <div class="container-fluid" style="padding-left:0px;"> <a href="https://lists.cncf.io" class="navbar-left" hx-boost="false" hx-disinherit="*"> <img src="https://lists.cncf.io/img/org.10/mainlogo.png?cachebust" height="50" alt="Groups.io"> </a> <ul class="nav navbar-nav pull-right visible-xs" style="margin-top:5px;margin-bottom:5px;"> <li> <a href="#" data-toggle="modal" data-target="#mobileAccount"> <i class="fa-fw fa fa-bars fa-lg"></i> </a> </li> </ul> <ul class="nav navbar-nav pull-right hidden-xs"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa-fw fa-regular fa-globe"></i> EN <b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="https://lists.cncf.io/unsetlang"> EN </a> </li> <li> <a href="https://lists.cncf.io/setlang/de"> DE </a> </li> <li> <a href="https://lists.cncf.io/setlang/es"> ES </a> </li> <li> <a href="https://lists.cncf.io/setlang/fr"> FR </a> </li> <li> <a href="https://lists.cncf.io/setlang/it"> IT </a> </li> <li> <a href="https://lists.cncf.io/setlang/pt"> PT </a> </li> <li> <a href="https://lists.cncf.io/setlang/uk"> UK </a> </li> </ul> </li> <li> <a href="https://lists.cncf.io/helpcenter" target="_blank"> Help </a> </li> <li> <a href="https://lists.cncf.io/login" hx-boost="false" hx-disinherit="*"> <i class="fa fa-sign-in-alt"></i> Log In </a> </li> </ul> </div> </div> <div class="modal fade" id="mobileAccount" role="dialog"> <div class="modal-dialog" style="margin-top:50px;"> <div class="modal-content"> <div class="modal-body"> <ul class="list-group noborderlist"> <li class="noborderitem list-group-item"> <a href="https://lists.cncf.io/login" hx-boost="false" hx-disinherit="*"> <i class="fa fa-sign-in-alt"></i> Log In </a> </li> <li class="noborderitem list-group-item"> <a href="https://lists.cncf.io/helpcenter" target="_blank"> <i class="fa-fw fa fa-question-circle"></i> Help </a> </li> <li class="dropdown noborderitem list-group-item"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa-fw fa-regular fa-globe"></i> EN <b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="https://lists.cncf.io/unsetlang"> EN </a> </li> <li> <a href="https://lists.cncf.io/setlang/de"> DE </a> </li> <li> <a href="https://lists.cncf.io/setlang/es"> ES </a> </li> <li> <a href="https://lists.cncf.io/setlang/fr"> FR </a> </li> <li> <a href="https://lists.cncf.io/setlang/it"> IT </a> </li> <li> <a href="https://lists.cncf.io/setlang/pt"> PT </a> </li> <li> <a href="https://lists.cncf.io/setlang/uk"> UK </a> </li> </ul> </li> </ul> </div> </div> </div> </div> <script> var groupnavigatorData = [ ]; </script> <!-- Modal Dialog for Autocomplete --> <div class="modal fade" id="groupnavigatorModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <input type="text" class="form-control" id="groupnavigatorInput" placeholder="Go to group..." style="margin-bottom:10px"> <div id="groupnavigatorContainer" class="autocompleteResults" style="max-height:250px; overflow-y: auto;"></div> <div class="text-center" style="margin-top:10px; font-size:12px;"><i class="fa-sharp fa-arrow-up-arrow-down"></i> to navigate <i class="fa-sharp fa-arrow-turn-down-left"></i> to use <strong>esc</strong> to dismiss</div> </div> </div> </div> </div> <script> // Keep track of the currently selected index var selectedIndex = -1; // Function to highlight the matched substring function highlightSubstring(str, substring) { var index = str.toLowerCase().indexOf(substring.toLowerCase()); if (index !== -1) { var before = str.substring(0, index); var middle = str.substring(index, index + substring.length); var after = str.substring(index + substring.length); return before + '<span class="autocomplete-highlight">' + middle + '</span>' + after; } return str; } // Function to highlight the selected item and ensure it is visible in the scrollable list function highlightSelectedItem(modalName) { var listContainer = document.getElementById(modalName + 'Container'); var items = document.getElementsByClassName(modalName + '-list-item'); Array.from(items).forEach(function(item, idx) { item.className = idx === selectedIndex ? modalName + '-list-item autocomplete-list-item btn-primary no-hover' : modalName + '-list-item autocomplete-list-item no-hover'; // Apply btn-primary class to the selected item }); if (items.length > 0 && selectedIndex >= 0) { var selectedItem = items[selectedIndex]; var containerTop = listContainer.scrollTop; var containerBottom = containerTop + listContainer.clientHeight; var itemTop = selectedItem.offsetTop; var itemBottom = itemTop + selectedItem.offsetHeight; const fudge = 59; if (selectedIndex > 0 && itemTop > containerBottom) { // If there are items below the selected item and the selected item is not fully visible, scroll down listContainer.scrollTop = itemTop - listContainer.clientHeight + items[selectedIndex - 1].offsetHeight; } else if (selectedIndex < items.length - 1 && (itemTop - fudge) < containerTop) { // If there are items above the selected item and the selected item is not fully visible, scroll up listContainer.scrollTop = itemTop - fudge - items[selectedIndex + 1].offsetHeight; } } } // function to populate the list based on the input function populateList(modalName, data) { var input = document.getElementById(modalName+'Input').value; var listContainer = document.getElementById(modalName+'Container'); listContainer.innerHTML = ''; data.forEach(function(item) { if (item.name.toLowerCase().includes(input.toLowerCase())) { var div = document.createElement('div'); div.innerHTML = highlightSubstring(item.name, input); div.className = modalName+'-list-item autocomplete-list-item no-hover'; // Apply no-hover class div.addEventListener('click', function() { // Navigate to the specified URL when a list item is clicked window.location.href = item.url; }); div.addEventListener('mousemove', function() { // Remove no-hover class from all items when the mouse is moved over any item console.log("mouse move"); var items = document.getElementsByClassName(modalName+'-list-item'); Array.from(items).forEach(function(item) { item.classList.remove('no-hover'); }); }); listContainer.appendChild(div); } }); highlightSelectedItem(modalName); } function InitAutocomplete(modalName, data) { // Focus the input field when the modal is shown and populate the list $('#' + modalName + 'Modal').on('shown.bs.modal', function () { $('#' + modalName + 'Input').focus().val(''); populateList(modalName, data); selectedIndex = 0; highlightSelectedItem(modalName); }); // Event listener for input field typing document.getElementById(modalName + 'Input').addEventListener('input', function() { populateList(modalName, data); selectedIndex = 0; }); // Event listener for arrow keys and enter key document.getElementById(modalName + 'Input').addEventListener('keydown', function(event) { var items = document.getElementsByClassName(modalName + '-list-item'); if (event.key === 'ArrowDown') { event.preventDefault(); if (selectedIndex < items.length - 1) selectedIndex++; highlightSelectedItem(modalName); } else if (event.key === 'ArrowUp') { event.preventDefault(); if (selectedIndex > 0) selectedIndex--; highlightSelectedItem(modalName); } else if (event.key === 'Enter' && selectedIndex >= 0 && selectedIndex < items.length) { event.preventDefault(); items[selectedIndex].click(); } }); } function showAutocompleteModal(modalName) { $('#' + modalName + 'Modal').modal('show'); selectedIndex = -1; } </script> <div id="content" class="container-fluid"> <script> InitAutocomplete("groupnavigator", groupnavigatorData); document.body.addEventListener("showReloadPageDialog", function(evt) { console.log("Forced reload"); location.reload(); }); function ShowBackButton(label) { var logoElement = document.getElementById("logo"); if (logoElement) { html = ` <span style="color:#fff;margin-top:14px;margin-left:12px;float:left !important; height:36px;"> <a onclick="goBack()" style="color:#fff"> <i class="fa-fw fa-solid fa-chevron-left fa-lg"></i> </a></span>`; if (label != "") { html += `<div style="position:absolute;left:50%;transform:translateX(-50%);text-align:center;color:#ecf0f1;margin-top:5px;"><h4>` + label + `</h4></div>`; } logoElement.innerHTML = html; } } function HideBackButton() { var logoElement = document.getElementById("logo"); if (logoElement) { logoElement.innerHTML = ` <a href="https://lists.cncf.io" class="navbar-left"> <img src="https://lists.cncf.io/img/org.10/mainlogo.png?cachebust" height="50" alt="Groups.io"> </a>`; } } function goBack() { history.back(); } // submitEvent acts like .submit(), except it is compatible with the app, by using events instead. function submitEvent(ele) { console.log("in submitEvent"); if (ele.startsWith('#')) { ele = ele.slice(1); } document.getElementById(ele).submit(); return; /* const theEvent = new CustomEvent('submit', { bubbles: true, cancelable: true }); if (typeof ele === 'string' || ele instanceof String) { if (ele.startsWith("#") == true) { ele = ele.slice(1); } if (document.getElementById(ele).dispatchEvent(theEvent) == true) { // if not cancelled, do normal submit console.log("calling submit"); document.getElementById(ele).submit(); } return; } // assume ele is the element if (ele.dispatchEvent(theEvent) == true) { // if not cancelled, do normal submit console.log("calling submit"); ele.submit(); } */ } // gioDestroy is a convenience function for destroy callbacks function gioDestroy(eventCB) { let internalGioDestroy = function(evt) { // do not activate on infinite scroll events if (evt.detail.target !== undefined && evt.detail.target.id != "maincontent-refresh") { console.log("Ignoring infinite scroll event"); return; } console.log("Calling destroy callback"); eventCB(evt); } document.body.addEventListener("htmx:beforeSwap", internalGioDestroy, {once: true}); document.body.addEventListener("htmx:historyCacheMiss", internalGioDestroy, {once: true}); } var drawerCloseFunc = function(evt) { console.log("in drawerCloseFunc"); // Find all elements with the class 'drawer' var drawers = document.querySelectorAll('.drawer'); // Iterate over each element and call closeDrawer() on each drawers.forEach(function(obj) { drawerObj.closeDrawer(obj); }); $('.modal').modal('hide'); } document.body.addEventListener('htmx:beforeSwap', drawerCloseFunc); document.body.addEventListener('htmx:historyCacheMiss', drawerCloseFunc); var keydownFunc = function(event) { var tagName = event.target.tagName.toLowerCase(); if (tagName === 'input' || tagName === 'textarea' || event.target.isContentEditable) { if (event.key === 'Escape') { event.target.blur(); } return; } // check if the viewimages viewer is up let element = document.getElementById('overlay'); if (element && element.classList.contains('visible')) { return; } console.log("HERE: " + event.key + " " + event.ctrlKey + " " + event.shiftKey + " " + event.metaKey); if (event.ctrlKey && event.shiftKey && (event.key === '?' || event.key === '/')) { event.preventDefault(); // Prevent the default action // Show the modal dialog for keyboard shortcuts $('#shortcutModal').modal('show'); return; } $('#shortcutModal').modal('hide'); if (event.key.toLowerCase() === 'g') { // For Windows and Linux if (event.ctrlKey) { event.preventDefault(); showAutocompleteModal("groupnavigator"); return; } } // Check if the pressed key is '/' if ((event.key === 'f' || event.key === 'F') && event.shiftKey) { if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { if (event.metaKey) { event.preventDefault(); // Prevent the default action // Focus on the search box let box = document.getElementById('searchbox') if (box != null) { document.getElementById('searchbox').focus(); } } } else { // For Windows and Linux if (event.ctrlKey) { event.preventDefault(); // Prevent the default action // Focus on the search box let box = document.getElementById('searchbox') if (box != null) { document.getElementById('searchbox').focus(); } } } } } document.addEventListener('keydown', keydownFunc); var removeDrawerCloseFunc = function(evt) { document.body.removeEventListener('htmx:beforeSwap', drawerCloseFunc); document.body.removeEventListener('htmx:historyCacheMiss', drawerCloseFunc); document.removeEventListener('keydown', keydownFunc); } document.body.addEventListener("htmx:historyCacheMiss", removeDrawerCloseFunc, {once: true}); </script> <!-- Modal Dialog for Keyboard Shortcuts --> <div class="modal fade" id="shortcutModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">Keyboard Shortcuts</h4> </div> <div class="modal-body"> <div class="row"> <div class="col-xs-3 text-right"><strong>ctrl</strong> + <strong>shift</strong> + <strong>?</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Show all keyboard shortcuts</div> </div> <div class="row"> <div class="col-xs-3 text-right"><strong>ctrl</strong> + <strong>g</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Navigate to a group</div> </div> <div class="row"> <div class="col-xs-3 text-right"><strong class="ctrlmeta">ctrl</strong> + <strong>shift</strong> + <strong>f</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Find</div> </div> <div class="row"> <div class="col-xs-3 text-right"><strong class="ctrlmeta">ctrl</strong> + <strong>/</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Quick actions</div> </div> </div> <div class="text-center" style="margin-top:10px; margin-bottom:10px; font-size:12px;"><strong>esc</strong> to dismiss</div> </div> </div> </div> <div id="mainrow" class="row" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <div id="groupsidebar" class="scrollbar hidden-print"> <div class="scrollbar-content"> <div id="accordion" role="tablist" aria-multiselectable="true" style="margin-bottom:20px;"> <div class="list-group noborderlist" style="border:0;margin-bottom:0px"> <a title="Group Home" href="https://lists.cncf.io/g/cncf-tag-env-sustainability" class="list-group-item sidebar-item"> <i class="fa-fw fa fa-home fa-lg"></i> Home </a> <a title="Messages" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?sidebar=true" id="sidebar-archives" class="noborderitem list-group-item sidebar-item sidebar-item-archives active"> <i class="fa-fw fa fa-comments fa-lg"></i> Messages <span id="sidebar-archives-badge" class="badge"></span> </a> <a title="Hashtags" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/hashtags" id="sidebar-hashtags" class="noborderitem list-group-item sidebar-item sidebar-item-hashtags"> <i class="fa-fw fa fa-hashtag fa-lg"></i> Hashtags <span id="sidebar-hashtags-badge" class="badge"></span> </a> <a title="Subgroups" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/subgroups" id="sidebar-subgroups" class="noborderitem list-group-item sidebar-item sidebar-item-subgroups"> <i class="fa-fw fa fa-chart-pie fa-lg"></i> Subgroups <span id="sidebar-subgroups-badge" class="badge"></span> </a> </div> </div> <div class="text-center" style="font-size:13px;margin-bottom:30px"> <div style="padding-bottom:10px;"> <strong>ctrl</strong> + <strong>shift</strong> + <strong>?</strong> for shortcuts </div> <div style="padding-bottom:5px;"> <a href="https://groups.io/static/about"> About </a> · <a href="https://groups.io/static/features"> Features </a> · <a href="https://groups.io/static/pricing"> Pricing </a> </div> <div style="padding-bottom:5px;"> <a rel="nofollow" href="https://groups.io/g/updates/messages?expanded=1"> Updates </a> · <a href="https://groups.io/static/tos"> Terms </a> · <a href="https://groups.io/helpcenter" target="_blank"> Help </a> </div> <div style="padding-bottom:5px;"> © 2024 Groups.io </div> </div> </div> </div> <div id="maincontent" class="groupmaincontent"> <div id="maincontent-refresh"> <div id="maincontent-column" class="col-xs-12 maincontent-column"> <div id="alertdiv"></div> <div class="noticetemplate template"> <div class="alert alert-success alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true"> × </span> </button> <span class="flashmsg"></span> </div> </div> <div class="alerttemplate template"> <div class="alert alert-danger alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true"> × </span> </button> <span class="flashmsg"></span> </div> </div> <div class="alertnoclosetemplate template"> <div class="alert alert-danger" role="alert"> <span class="flashmsg"></span> </div> </div> <script> function dismiss() { console.log("dismiss"); $.get( "/dismissalert"); } var $alerttemplate = $(".alerttemplate"); var $alertnoclosetemplate = $(".alertnoclosetemplate"); var $noticetemplate = $(".noticetemplate"); function createAlert(msg, isError, autoClose, noClose) { if (isError == false) { $newPanel = $noticetemplate.clone(); } else { if (noClose) { $newPanel = $alertnoclosetemplate.clone(); } else { $newPanel = $alerttemplate.clone(); } } $newPanel.find(".flashmsg").html(msg); if (autoClose == true) { $("#alertdiv").append($newPanel.fadeTo(2000, 500).slideUp(500, function(){ $newPanel.slideUp(500); $newPanel.remove(); })); } else { $("#alertdiv").append($newPanel.fadeIn()); } return $newPanel; } </script> <script> // doLike toggles a like for a person. function doLike(groupname, numlikes, msgid, like, csrf) { $.ajax({ url: groupname+"/like?msgid="+msgid+"&like="+like+"&csrf="+csrf, cache: false, }); if (like == true) { numlikes++ } else { numlikes-- } displayLikes(groupname, numlikes, msgid, like, csrf); displayLikeStats(groupname, numlikes, msgid, like); } // displayLikes displays the Like/Unlike link button. function displayLikes(groupname, numlikes, msgid, hasliked, csrf) { if (hasliked == true) { likedata = "<span id='likebutton"+msgid+"'><a href='#' onclick='doLike(\""+groupname+"\","+numlikes+","+msgid+", false, \""+csrf+"\");return false;'><i class=\"fa fa-thumbs-up\"></i> Unlike</a></span>" } else { likedata = "<span id='likebutton"+msgid+"'><a href='#' onclick='doLike(\""+groupname+"\","+numlikes+","+msgid+", true, \""+csrf+"\");return false;'><i class=\"fa fa-thumbs-up\"></i> Like</a></span>" } $("#likebutton"+msgid).html(likedata); } // displayLikeStats displays the line that shows how many people have liked this. function displayLikeStats(groupname, numlikes, msgid, hasliked) { if (hasliked == false && numlikes == 0) { $("#likestats"+msgid).html("<span id='likestats"+msgid+"'class='likestats'></span>"); return } likedata = "<span id='likestats" + msgid + "' class='likestats'><i class='fa fa-thumbs-up'></i> " if (hasliked == true) { likedata += "You" if (numlikes > 1) { likedata = likedata + " and <a href='#' onclick='showLikes(\"" + groupname + "\"," + msgid + ");return false;'>" + (numlikes-1) if (numlikes == 2) { likedata = likedata + " Other" } else { likedata = likedata + " Others" } } } else { likedata += "<a href='#' onclick='showLikes(\"" + groupname + "\"," + msgid + ");return false;'>" + numlikes if (numlikes == 1) { likedata = likedata + " Person" } else { likedata = likedata + " People" } } likedata = likedata + "</a> liked this</span>" $("#likestats"+msgid).html(likedata); } // showLikes fetches all the likes for a message and pops up the dialog box to show them. function showLikes(groupname, msgid) { console.log(groupname) $.getJSON(groupname+"/getlikes?msgid="+msgid, function( data ) { htmldata = '<ul class="list-group">' jQuery.each(data, function() { htmldata += '<li class="list-group-item" style="display: flex;align-items: center;">' + this.Icon + ' <span style="margin-left: 10px;">' + this.Profile + '</span></li>' }); htmldata += '</ul>' $("#showlikesbody").html(htmldata); $('#showlikesmodal').modal({show:true}) } ); } </script> <!-- show likes modal --> <div class="modal fade" id="showlikesmodal" tabindex="-1" role="dialog" aria-labelledby="showlikesmodalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="showlikesmodalLabel"> Likes </h4> </div> <div class="modal-body"> <div id="showlikesbody"></div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Close </button> </div> </div> </div> </div> <script> var editor; contentLoaded(false, function() { }, "groupmessages1"); </script> <div class="row breadcrumb-row" style="margin-bottom: 10px"> <div class="col-xs-12 col-sm-9"> <span class="hidden-sm hidden-md hidden-lg pull-right" style="padding:8px 15px;"><a data-toggle="modal" data-target="#searchModal"><i class="fa fa-search"></i></a></span> <div class="breadcrumb-container"> <ol class="breadcrumb scroll-breadcrumb"> <li><a href="https://lists.cncf.io/g/cncf-tag-env-sustainability"><i class="fa fa-home"></i> Cncf-Tag-Env-Sustainability</a></li> <li class="active"><i class="fa fa-comments"></i> Messages</li> </ol> </div> </div> <div class="col-sm-3 hidden-xs" style="padding-right:0px"> <form class="form-inline pull-right" method="get" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/search"> <input type="hidden" name="p" value="created,,,20,2,0,0"> <div class="input-group"> <input id="searchbox" type="text" class="form-control" placeholder="Search" title="Search" name="q" size="20" value="" style="height:37px"> <div class="input-group-btn"> <button class="btn btn-primary" type="submit" style="height:37px;" aria-label="Search"> <span class="fa fa-search"></span> </button> </div> </div> </form> </div> </div> <div class="modal fade" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="searchModalLabel"> Search </h4> </div> <form class="form-horizontal" method="get" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/search"> <div class="modal-body"> <div class="form-group"> <div class="col-sm-12"> <input type="text" class="form-control" placeholder="Search" title="Search" name="q" value=""> </div> </div> </div> <div class="modal-footer"> <button class="btn btn-primary btn-sm" aria-label="Search"> <i class="fa fa-search"></i> Search </button> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> </div> </form> </div> </div> </div> <div class="row"> <div class="col-xs-8 col-sm-6 col-md-6 narrow-padding" style="padding-right:0px;padding-top:5px;"> <form class="form-inline" id="searchForm" method="get" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/search"> <div class="form-group button-link-group"> <div class="btn-group" style="display:inline-block"> <button id="wide-messages" type="button" class="dropdown-wide btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-comments"></i> Messages <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu"> <li> <a title="Topics" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics"> <i class="fa fa-inbox"></i> Topics </a> </li> <li> <a title="Expanded" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?subsort=1"> <i class="fa fa-comments"></i> Expanded </a> </li> <li> <a title="Polls" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/polls"> <i class="fa fa-chart-bar"></i> Polls </a> </li> </ul> </div> <div class="btn-group"> <a id="narrow-messages" href="javascript:void(0)" class="dropdown-narrow btn btn-sm btn-default " style="margin-left:-4px;" data-drawer-trigger aria-controls="messages-drawer" aria-expanded="false"> <i class="fa fa-comments"></i> Messages <span class="caret"></span> </a> </div> <section class="drawer drawer-bottom" id="messages-drawer" data-drawer-target> <div class="drawer-overlay" data-drawer-close tabindex="-1"></div> <div class="drawer-wrapper"> <div class="drawer-content"> <div class="list-group"> <a href="#" class="list-group-item disabled" title="Messages"> <i class="fa fa-comments"></i> Messages </a> <a class="list-group-item" title="Topics" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics"> <i class="fa fa-inbox"></i> Topics </a> <a class="list-group-item" title="Expanded" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?subsort=1"> <i class="fa fa-comments"></i> Expanded </a> <a class="list-group-item" title="Polls" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/polls"> <i class="fa fa-chart-bar"></i> Polls </a> </div> </div> </div> </section> <script> function modalmessages(target) { drawer = document.getElementById('messages-drawer'); if (drawer != null) { drawerObj.closeDrawer(drawer); } $(target).modal('show'); } </script> <input type="hidden" name="d" id="dates" value=""> <input type="hidden" name="ct" id="ct" value="0"> <input type="hidden" name="ev" value=""> <div class="btn-group"> <button class="btn btn-sm btn-info" type="button" data-toggle="collapse" data-target="#advancedSearch" aria-expanded="false" aria-controls="advancedSearch"> Filter <i class="fa fa-filter"></i> </button> </div> <div class="collapse" id="advancedSearch" style="margin-top:10px;"> <div class="btn-group"> <button type="button" class="btn btn-info btn-sm dropdown-toggle bottom10" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Any Time <span class="caret"></span> </button> <ul class="dropdown-menu"> <li> <a href="javascript:void(0)" onclick="$('#dates').val('0'); submitEvent('#searchForm');"> Any Time </a> </li> <li> <a href="javascript:void(0)" onclick="$('#dates').val('1'); submitEvent('#searchForm');"> Past Hour </a> </li> <li> <a href="javascript:void(0)" onclick="$('#dates').val('2'); submitEvent('#searchForm');"> Past 24 Hours </a> </li> <li> <a href="javascript:void(0)" onclick="$('#dates').val('3'); submitEvent('#searchForm');"> Past Week </a> </li> <li> <a href="javascript:void(0)" onclick="$('#dates').val('4'); submitEvent('#searchForm');"> Past Month </a> </li> <li> <a href="javascript:void(0)" onclick="$('#dates').val('5'); submitEvent('#searchForm');"> Past Year </a> </li> <li role="separator" class="divider"></li> <li> <a href="javascript:void(0)" data-toggle="modal" data-target="#customRangeModal"> Custom range... </a> </li> </ul> </div> </div> <!-- Custom Range Modal --> <div class="modal fade" id="customRangeModal" tabindex="-1" role="dialog" aria-labelledby="customRangeModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="customRangeModalLabel"> Custom Range </h4> </div> <div class="modal-body"> Between <input name="startdate" id="startdate" class="form-control" type="text" size="10" placeholder="Start" /> and <input name="enddate" id="enddate" class="form-control" type="text" size="10" placeholder="End" /> </div> <div class="modal-footer"> <a class="btn btn-primary btn-sm" href="javascript:void(0);" onclick="$('#dates').val('6'); $('#searchForm').submit()"> <i class="fa fa-check"></i> Go </a> </div> </div> </div> </div> <script> flatpickr("#startdate", { onChange: function(selectedDates, dateStr, instance) { const enddateFp = document.querySelector("#enddate")._flatpickr; const startdate = moment($('#startdate').val(), 'MM/DD/YYYY h:mma'); const enddate = moment($('#enddate').val(), 'MM/DD/YYYY h:mma'); console.log("startdate:"+ startdate) if (enddate.isBefore(startdate) || $('#enddate').val() == "") { // send endTime to t + 1 hour u = moment(startdate).add(1, 'days'); var newenddate = u.format("MM/DD/YYYY"); console.log("newenddate:"+ newenddate) enddateFp.setDate(newenddate); } }, static: true }); flatpickr("#enddate", { onChange: function(selectedDates, dateStr, instance) { const startdateFp = document.querySelector("#startdate")._flatpickr; const startdate = moment($('#startdate').val(), 'MM/DD/YYYY h:mma'); const enddate = moment($('#enddate').val(), 'MM/DD/YYYY h:mma'); if (enddate.isBefore(startdate) || $('#startdate').val() == "") { // send endTime to t + 1 hour u = moment(enddate).add(-1, 'days'); var newstartdate = u.format("MM/DD/YYYY"); console.log("newstartdate:"+ newstartdate) startdateFp.setDate(newstartdate); } }, static: true }); </script> </div> </form> </div> <div class="col-xs-4 col-sm-6 col-md-6 narrow-padding"> <form class="form-inline" method="get" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages"> <input type="hidden" name="p" value="created,0,,0,1,0,0"> <div class="pull-right"> <span class="form-group hidden-xs pull-left" style="margin-bottom:10px"> <input type="text" class="form-control" size="6" style="height:37px" placeholder="Msg #" title="Msg #" name="msgnum" value=""> </span> <a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?dir=asc" class="button-link form-group"> Date <i class="fa fa-xs fa-sort-down"></i> </a> <span class="hidden-xs"> <span class="form-group"> 1 - 20 of 158 </span> <ul class="pagination form-group" style="margin: 0px !important;"> <li class="disabled"> <a href="#"> <i class="fa fa-chevron-left"> <span class="sr-only"> previous page </span> </i> </a> </li> <li> <a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?page=2&after=1684348150311877288"> <i class="fa fa-chevron-right"> <span class="sr-only"> next page </span> </i> </a> </li> </ul> </span> </div> </form> </div> </div> <table id="records" class="table table-condensed table-fixed" hx-disinherit="*"> <tr > <td id="158" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/158"> Eager to Contribute to TAG Environmental Sustainability! </a> </span> <div class="truncate-two-lines"> Dear TAG Environmental Sustainability Team, My name is Shahbaz Ali and I am writing to express my strong interest in contributing to the important work of your group. I am passionate about both open </div> <div class="likestats"> By your freedom <shahbazghafil@...> · #158 · <script id="timedispmsg234245351"> $('#timedispmsg234245351').replaceWith(DisplayShortTime(1708102600691133261, false )); </script> </div> <div id="likestats234245351"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 234245351, 0) }); </script> </td> </tr> <tr > <td id="157" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/157"> HELP WANTED | Finding friendly meeting time for Asia & India Time Zones </a> </span> <div class="truncate-two-lines"> Hello, The TAG leads are trying to find time that works for the Asia and India time zones to be included in the Env Sustainability TAG. This will be the first meeting and we can decide as a group the </div> <div class="likestats"> By Cara Delia · #157 · <script id="timedispmsg233634830"> $('#timedispmsg233634830').replaceWith(DisplayShortTime(1706896094162640556, false )); </script> </div> <div id="likestats233634830"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 233634830, 0) }); </script> </td> </tr> <tr > <td id="156" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/156"> Communications WG Charter Proposal Review </a> </span> <div class="truncate-two-lines"> Hi All! Please take a minute to review and give your feedback on the Communications WG Charter. Here is the issue: https://github.com/cncf/tag-env-sustainability/issues/206 ( </div> <div class="likestats"> By Cara Delia · #156 · <script id="timedispmsg227645117"> $('#timedispmsg227645117').replaceWith(DisplayShortTime(1694791551925983316, false )); </script> </div> <div id="likestats227645117"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 227645117, 0) }); </script> </td> </tr> <tr > <td id="155" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/155"> Re: CNCF TAG Environmental Sustainability - CFP for Cloud Native Sustainability Week is now live! </a> </span> <div class="truncate-two-lines"> Hello everyone, The CFP for Cloud Native Sustainability Week ends in about two weeks, so make sure to submit your presentation proposal by Friday, September 22. CFP: </div> <div class="likestats"> By Leonard Pahlke · #155 · <script id="timedispmsg227288445"> $('#timedispmsg227288445').replaceWith(DisplayShortTime(1694100267169821278, false )); </script> </div> <div id="likestats227288445"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 227288445, 0) }); </script> </td> </tr> <tr > <td id="154" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/154"> CNCF TAG Environmental Sustainability - CFP for Cloud Native Sustainability Week is now live! </a> </span> <div class="truncate-two-lines"> Hello everyone. We have some great news to share - CFP for Cloud Native Sustainability Week virtual meetup and local meetups is now open!馃コ This link can be shared with </div> <div class="likestats"> By Kristina D. <guidemetothemoon@...> · #154 · <script id="timedispmsg226636282"> $('#timedispmsg226636282').replaceWith(DisplayShortTime(1692800116729467508, false )); </script> </div> <div id="likestats226636282"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 226636282, 0) }); </script> </td> </tr> <tr > <td id="153" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/153"> Re: CNCF TAG Environmental Sustainability Green Reviews Working Group : YOUR input is needed! </a> </span> <div class="truncate-two-lines"> Thank you all for this effort and putting the WG proposal together, looking forward to see it in action! Max K枚rb盲cher Associate Partner Liquid Reply Luise-Ullrich-Stra脽e 14 80636 - M眉nchen - </div> <div class="likestats"> By Koerbaecher Max · #153 · <script id="timedispmsg225245029"> $('#timedispmsg225245029').replaceWith(DisplayShortTime(1689931755063143333, false )); </script> </div> <div id="likestats225245029"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 225245029, 0) }); </script> </td> </tr> <tr > <td id="152" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/152"> CNCF TAG Environmental Sustainability Green Reviews Working Group : YOUR input is needed! </a> </span> <div class="truncate-two-lines"> Hello everyone! For some time now we have been working on a proposal to establish Green Reviews Working Group under Environmental Sustainability TAG and the PR for this is now available for </div> <div class="likestats"> By Kristina D. <guidemetothemoon@...> · #152 · <script id="timedispmsg225041447"> $('#timedispmsg225041447').replaceWith(DisplayShortTime(1689531820217906392, false )); </script> </div> <div id="likestats225041447"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 225041447, 0) }); </script> </td> </tr> <tr > <td id="151" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/151"> 馃尡 CNCF Global Week of Cloud Native Sustainability </a> </span> <div class="truncate-two-lines"> Hi everyone, the CNCF TAG Environmental Sustainability <https://github.com/cncf/tag-env-sustainability/> is working on a Cloud Native Sustainability Week event to be held during the second week of </div> <div class="likestats"> By Leonard Pahlke · #151 · <script id="timedispmsg223619190"> $('#timedispmsg223619190').replaceWith(DisplayShortTime(1686746816578393441, false )); </script> </div> <div id="likestats223619190"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 223619190, 0) }); </script> </td> </tr> <tr > <td id="150" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/150"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> <i class="fa fa-paperclip"></i> </span> <div class="truncate-two-lines"> +1 Jochen Joswig (he/him) Senior Software Engineer Versmannstra脽e 2, 20457 Hamburg jochen.joswig@... +49 151 544 22 </div> <div class="likestats"> By Jochen Joswig · #150 · <script id="timedispmsg222735762"> $('#timedispmsg222735762').replaceWith(DisplayShortTime(1684951516867368818, false )); </script> </div> <div id="likestats222735762"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222735762, 0) }); </script> </td> </tr> <tr > <td id="149" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/149"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Benoit Faurie · #149 · <script id="timedispmsg222521315"> $('#timedispmsg222521315').replaceWith(DisplayShortTime(1684513153038032197, false )); </script> </div> <div id="likestats222521315"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222521315, 0) }); </script> </td> </tr> <tr > <td id="148" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/148"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Lu, Ken · #148 · <script id="timedispmsg222499749"> $('#timedispmsg222499749').replaceWith(DisplayShortTime(1684466013465319338, false )); </script> </div> <div id="likestats222499749"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222499749, 0) }); </script> </td> </tr> <tr > <td id="147" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/147"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Ying-Feng Hsu · #147 · <script id="timedispmsg222499677"> $('#timedispmsg222499677').replaceWith(DisplayShortTime(1684465934413661041, false )); </script> </div> <div id="likestats222499677"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222499677, 0) }); </script> </td> </tr> <tr > <td id="146" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/146"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Jie · #146 · <script id="timedispmsg222499325"> $('#timedispmsg222499325').replaceWith(DisplayShortTime(1684464871030467723, false )); </script> </div> <div id="likestats222499325"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222499325, 0) }); </script> </td> </tr> <tr > <td id="145" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/145"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Eun K Lee · #145 · <script id="timedispmsg222480787"> $('#timedispmsg222480787').replaceWith(DisplayShortTime(1684433621297990234, false )); </script> </div> <div id="likestats222480787"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222480787, 0) }); </script> </td> </tr> <tr > <td id="144" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/144"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 Great Initiative Cara. </div> <div class="likestats"> By Saim Safder · #144 · <script id="timedispmsg222480636"> $('#timedispmsg222480636').replaceWith(DisplayShortTime(1684433416165325023, false )); </script> </div> <div id="likestats222480636"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222480636, 0) }); </script> </td> </tr> <tr > <td id="143" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/143"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Fan Jing Meng · #143 · <script id="timedispmsg222472878"> $('#timedispmsg222472878').replaceWith(DisplayShortTime(1684423831359149605, false )); </script> </div> <div id="likestats222472878"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222472878, 0) }); </script> </td> </tr> <tr > <td id="142" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/142"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Sandro Mazziotta · #142 · <script id="timedispmsg222472509"> $('#timedispmsg222472509').replaceWith(DisplayShortTime(1684423374804561289, false )); </script> </div> <div id="likestats222472509"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222472509, 0) }); </script> </td> </tr> <tr > <td id="141" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/141"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 *Trent Broderick* *Cloud Alliance Manager, *Kubecost <http://www.kubecost.com/> Mobile - (732) 856-8606 Schedule time on my calendar - Here <https://calendly.com/trent-broderick/30min> </div> <div class="likestats"> By Trent Broderick · #141 · <script id="timedispmsg222471988"> $('#timedispmsg222471988').replaceWith(DisplayShortTime(1684422839232802933, false )); </script> </div> <div id="likestats222471988"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222471988, 0) }); </script> </td> </tr> <tr > <td id="140" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/140"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 ibm.com@...> wrote: </div> <div class="likestats"> By Parul Singh · #140 · <script id="timedispmsg222471713"> $('#timedispmsg222471713').replaceWith(DisplayShortTime(1684422500651439407, false )); </script> </div> <div id="likestats222471713"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222471713, 0) }); </script> </td> </tr> <tr > <td id="139" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <span class="subject"> <a class="showvisited" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/139"> Re: [VOTE] TAG Env Sustainability Communications Working Group </a> </span> <div class="truncate-two-lines"> +1 </div> <div class="likestats"> By Chen Wang · #139 · <script id="timedispmsg222393212"> $('#timedispmsg222393212').replaceWith(DisplayShortTime(1684348150311877288, false )); </script> </div> <div id="likestats222393212"></div> <script> contentLoaded(false, function() { displayLikeStats("https://lists.cncf.io/g/cncf-tag-env-sustainability", 0, 222393212, 0) }); </script> </td> </tr> </table> <!-- Modal --> <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="videoModalLabel"> <div class="modal-dialog" role="document" style="width:80vw; height:80vh;margin-left:auto;margin-right:auto;"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> </div> <div class="modal-body" id="videoModalBody"> </div> </div> </div> </div> <script> videojs.registerPlugin('orientationHandler', function() { this.on('loadedmetadata', function() { player = this; const video = this.tech().el(); console.log("In loadedmetadata"); // Get video orientation from metadata if available const transform = video.style.transform || ''; console.log("transform:"+transform); const rotation = transform.match(/rotate\((\d+)deg\)/); console.log("rotation:"+rotation); const currentRotation = rotation ? parseInt(rotation[1]) : 0; console.log("currentRotation:"+currentRotation); // Check if video dimensions suggest it needs rotation const videoRatio = video.videoWidth / video.videoHeight; console.log("videoRatio:"+videoRatio); if (videoRatio < 1 && currentRotation === 0) { console.log("rotating"); video.style.transform = 'rotate(180deg)'; //player.posterImage.el().style.transform = 'rotate(180deg)'; const posterEl = player.el().querySelector('.vjs-poster'); if (posterEl) { console.log("rotating poster"); posterEl.style.transform = 'rotate(180deg)'; } } }); }); contentLoaded(false, function() { let player; let videoLinks = document.getElementsByClassName('video-link'); for (var i = 0; i < videoLinks.length; i++) { videoLinks[i].addEventListener('click', function(event) { let videoSrc = event.currentTarget.getAttribute('data-video-src'); let videoName = event.currentTarget.getAttribute('data-video-name'); console.log("videoSrc: ", videoSrc); // Create a new video tag let videoTag = document.createElement('video'); videoTag.setAttribute('class', 'video-js vjs-fill center-block vjs-default-skin'); videoTag.setAttribute('controls', ''); videoTag.setAttribute('preload', 'auto'); videoTag.setAttribute('data-setup', '{}'); // Create a new source tag let sourceTag = document.createElement('source'); sourceTag.setAttribute('src', videoSrc); sourceTag.setAttribute('type', 'video/mp4'); // Append the source tag to the video tag videoTag.appendChild(sourceTag); // Get the modal body and clear its contents let modalBody = document.getElementById('videoModalBody'); modalBody.setAttribute('style', 'height:80vh;width:80vw'); modalBody.innerHTML = ''; // Append the video tag to the modal body modalBody.appendChild(videoTag); // Initialize the video player player = videojs(videoTag); player.orientationHandler(); // Create a new button component let Button = videojs.getComponent('Button'); class DownloadButton extends Button { constructor(player, options) { super(player, options); this.el().innerHTML = '<span class="sr-only">Download</span><i class="fas fa-download"></i>'; } handleClick() { window.open(videoSrc, '_blank'); } } // Register the custom Button class videojs.registerComponent('DownloadButton', DownloadButton); // Add the custom button to the control bar player.getChild('controlBar').addChild('DownloadButton', {}); }); } $('#videoModal').on('hide.bs.modal', function (e) { if (player) { player.pause(); } }); var checkboxes = document.querySelectorAll('.delete-checkbox'); // The forEach method will not execute if the NodeList is empty, // so there's no need for an explicit check for the existence of checkboxes. checkboxes.forEach(function(checkbox) { checkbox.addEventListener('click', function(event) { // Stop the event from bubbling up to the parent elements event.stopPropagation(); }); }); }, "attachment.qtpl"); </script> <form class="form" method="POST" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/editmessage"> <input type="hidden" name="mid" id="mid" value="0"> <input type="hidden" name="action_type" id="action_type" value="delete"> <!-- Verify Remove Modal --> <div class="modal fade" id="deleteMessageModal" tabindex="-1" role="dialog" aria-labelledby="deleteMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="deleteMessageModalLabel"> Verify Delete </h4> </div> <div class="modal-body"> Are you sure you wish to delete this message from the message archives of cncf-tag-env-sustainability@lists.cncf.io? <strong>This cannot be undone.</strong> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="delmessage" value="1"> <i class="fa fa-trash-alt"></i> Yes </button> </div> </div> </div> </div> </form> <form class="form" method="POST" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/repostmessage"> <input type="hidden" name="mid" id="repostmid" value="0"> <input type="hidden" name="r" value="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages"> <!-- Verify Repost Modal --> <div class="modal fade" id="repostMessageModal" tabindex="-1" role="dialog" aria-labelledby="repostMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="repostMessageModalLabel"> Verify Repost </h4> </div> <div class="modal-body"> Are you sure you wish to repost this message? </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="delmessage" value="1"> <i class="fa fa-retweet"></i> Yes </button> </div> </div> </div> </div> </form> <form class="form" id="reportform" hx-boost="false"> <input type="hidden" name="mid" id="reportmid" value="0"> <!-- Report Message Modal --> <div class="modal fade" id="reportMessageModal" tabindex="-1" role="dialog" aria-labelledby="reportMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="reportMessageModalLabel"> Report Message </h4> </div> <div class="modal-body"> <label for="reason"> Reason </label> <textarea id="reason" name="reason" class="form-control" rows="5"></textarea> <div class="radio"> <label> <input type="radio" name="reportto" value="mods" checked> Report to Moderators </label> <span class="help-block"> I think this message isn't appropriate for our group. The Group moderators are responsible for maintaining their community and can address these issues. </span> <label> <input type="radio" name="reportto" value="support"> Report to CNCF Support </label> <span class="help-block"> I think this violates the Terms of Service. This includes: harm to minors, violence or threats, harassment or privacy invasion, impersonation or misrepresentation, fraud or phishing. </span> </div> <p> <center> <strong> Note: </strong> Your email address is included with the abuse report. </center> </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="report" value="1"> <i class="fa fa-flag"></i> Report </button> </div> </div> </div> </div> </form> <script> $('#reportMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#reportmid').val(msgId); }); contentLoaded( false , function() { $('#reportform').on('submit', function(event) { event.preventDefault(); $('#reportMessageModal').modal('hide'); $.ajax({ url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/report", type: "POST", data: $(this).serialize(), success: function(html) { createAlert("Your report has been sent.", true); } }); return false; }); }); </script> <div class="row"> <div class="col-xs-12"> <div class="pull-right form-inline"> <span class="form-group"> 1 - 20 of 158 </span> <ul class="pagination form-group" style="margin: 0px !important;vertical-align:middle;"> <li class="disabled"> <a href="#"> <i class="fa fa-chevron-left"> <span class="sr-only"> previous page </span> </i> </a> </li> <li class="hidden-xs disabled"> <a class="currentpage" href="#"> 1 </a> </li> <li class="hidden-xs"> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?page=2"> 2 </a> </li> <li class="hidden-xs"> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?page=3"> 3 </a> </li> <li class="hidden-xs"> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?page=4"> 4 </a> </li> <li class="hidden-xs"> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?page=5"> 5 </a> </li> <li> <a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?page=2&after=1684348150311877288"> <i class="fa fa-chevron-right"> <span class="sr-only"> next page </span> </i> </a> </li> </ul> </div> </div> </div> <form class="form" method="POST" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/repostmessage"> <input type="hidden" name="mid" id="repostmid" value="0"> <input type="hidden" name="r" value="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages"> <!-- Verify Repost Modal --> <div class="modal fade" id="repostMessageModal" tabindex="-1" role="dialog" aria-labelledby="repostMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="repostMessageModalLabel"> Verify Repost </h4> </div> <div class="modal-body"> Are you sure you wish to repost this message? </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="delmessage" value="1"> <i class="fa fa-retweet"></i> Yes </button> </div> </div> </div> </div> </form> <script> contentLoaded(false, function() { UpdateSidebar("archives"); $('.hashtagcheckbox').change(function() { let el = $(this); switch(el.data('checked')) { // checked, going indeterminate case 0: console.log("case 0"); el.data('checked',1); el.prop('indeterminate',true); break; // indeterminate, going unchecked case 1: console.log("case 1"); el.data('checked',2); el.prop('indeterminate',false); el.prop('checked',false); break; // checked, going unchecked default: console.log("case default"); el.data('checked',0); el.prop('indeterminate',false); el.prop('checked',true); } }); // prevent dropdown closure on clicking checkbox labels $('#hashtagFilterMenu').on('click', function (e) { e.stopPropagation(); }); $('#filterdropdown').on('hide.bs.dropdown', function (e) { console.log("HIDE DROPDOWN!"); }); $('#deleteMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#mid').val(msgId); }); $('#repostMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#repostmid').val(msgId); }); $('[id^=cancel]').on('click', function() { msg_num = $(this).attr('id').split("-")[1] $("#window-"+msg_num).collapse('hide') }); $(".modal").on('shown.bs.modal', function () { $(this).find("input:visible:first").focus(); }); $("[data-toggle='tooltip']").tooltip(); setPullToRefresh(); }, "groupmessages2") function searchHashtags() { var cbs = document.getElementsByTagName('input'); for(var i=0; i < cbs.length; i++) { if(cbs[i].indeterminate == true) { $('<input>').attr({ type: 'hidden', name: 'exclude', value: cbs[i].value, }).appendTo('#searchForm'); } } submitEvent('#searchForm'); } </script> </div> </div> </div> </div> <div class="row hidden-print" id="mobileSidebar" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <div id="mobileSidebarSub" class="col-xs-12 hidden-md hidden-lg"> <div class="navbar navbar-default navbar-fixed-bottom"> <div class="container" style="display: flex; justify-content: space-around;"> <div id="mobilesidebar-archives" class="mobilesidebar-item" style="margin-top:10px; padding-bottom:20px; flex: 1; text-align: center;" hx-get="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?sidebar=true" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <div style="display: inline-block; position: relative;"> <div style="position: relative;display: inline-block;"> <i class="fa-fw fa-solid fa-comments fa-2x"></i> </div><br> <span style="font-size:12px;">Messages</span> </div> </div> <div style="flex: 1; text-align: center;margin-top:10px" data-drawer-trigger aria-controls="drawer-name" aria-expanded="false"> <i class="fa-fw fa-light fa-bars fa-2x"></i><br> <span style="font-size:12px;">More</span> </div> </div> </div> <section class="drawer drawer-left" id="drawer-name" data-drawer-target> <div class="drawer-overlay" data-drawer-close tabindex="-1"></div> <div class="drawer-wrapper drawer-wrapper-top"> <div class="drawer-header"> <div class="drawer-title"> <i class="fa-fw fa-regular fa-bars fa-3x"></i> <span class="sr-only"> More Options </span> More </div> <button class="drawer-close" data-drawer-close aria-label="Close Drawer"></button> </div> <div class="drawer-content"> <div class="list-group noborderlist"> <a title="Group Home" href="https://lists.cncf.io/g/cncf-tag-env-sustainability" class="list-group-item sidebar-item"> <i class="fa-fw fa fa-home fa-lg"></i> Home </a> <a title="Messages" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?sidebar=true" id="sidebar-archives-mobile" class="noborderitem list-group-item sidebar-item sidebar-item-archives active"> <i class="fa-fw fa fa-comments fa-lg"></i> Messages <span id="sidebar-archives-mobile-badge" class="badge"></span> </a> <a title="Hashtags" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/hashtags" id="sidebar-hashtags-mobile" class="noborderitem list-group-item sidebar-item sidebar-item-hashtags"> <i class="fa-fw fa fa-hashtag fa-lg"></i> Hashtags <span id="sidebar-hashtags-mobile-badge" class="badge"></span> </a> <a title="Subgroups" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/subgroups" id="sidebar-subgroups-mobile" class="noborderitem list-group-item sidebar-item sidebar-item-subgroups"> <i class="fa-fw fa fa-chart-pie fa-lg"></i> Subgroups <span id="sidebar-subgroups-mobile-badge" class="badge"></span> </a> <a class="noborderitem list-group-item sidebar-item" href="https://groups.io/static/tos" target="_blank"> <i class="fa-fw fal fa-newspaper fa-lg"></i> Terms </a> </div> </div> </div> </section> </div> </div> <!-- Modal Dialog for Autocomplete --> <div class="modal fade" id="quickActionsModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <input type="text" class="form-control" id="quickActionsInput" placeholder="Go to page..." style="margin-bottom:10px"> <div id="quickActionsContainer" class="autocompleteResults" style="max-height:250px; overflow-y: auto;"></div> <div class="text-center" style="margin-top:10px; font-size:12px;"><i class="fa-sharp fa-arrow-up-arrow-down"></i> to navigate <i class="fa-sharp fa-arrow-turn-down-left"></i> to use <strong>esc</strong> to dismiss</div> </div> </div> </div> </div> <script> var quickActionsData = [ {name: "Group Home", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability"}, {name: "Topics", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/topics"}, {name: "Messages", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/messages"}, {name: "Expanded Messages", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?expanded=1"}, {name: "Polls", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/polls"}, {name: "Hashtags", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/hashtags"}, {name: "Subgroups", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/subgroups"}, /* other pages */ {name: "Help", url: "/helpcenter"}, {name: "Feed", url: "/feed"}, {name: "Your Groups", url: "/groups"}, {name: "Your Calendar", url: "/calendar"}, {name: "Your Activity", url: "/activity"}, {name: "Your Pending Messages", url: "/pendingmsgs"}, {name: "Account Login", url: "/account"}, {name: "Account Preferences", url: "/account?page=prefs"}, {name: "Account Security", url: "/account?page=security"}, {name: "Account Identity", url: "/account?page=profile&member_info_id=0"}, {name: "Account Notifications", url: "/account?page=notifications"}, {name: "Account Other Services", url: "/account?page=oauth"}, {name: "Account Bounces", url: "/account?page=bounces"}, {name: "Account Billing", url: "/account?page=billing"}, {name: "Find a Group", url: "/search?p=SubsCount,,,20,2,0,0"}, ]; InitAutocomplete("quickActions", quickActionsData); document.addEventListener('keydown', function(event) { var tagName = event.target.tagName.toLowerCase(); if (tagName === 'input' || tagName === 'textarea' || event.target.isContentEditable) { return; } // check if the viewimages viewer is up let element = document.getElementById('overlay'); if (element && element.classList.contains('visible')) { return; } if (event.key.toLowerCase() === '/') { if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { // For Mac // Check if Command (event.metaKey) is pressed, and either Option (event.altKey) is pressed or not if (event.metaKey) { event.preventDefault(); showAutocompleteModal("quickActions"); return; } } else { // For Windows and Linux if (event.ctrlKey) { event.preventDefault(); showAutocompleteModal("quickActions"); return; } } } }); function UpdateSidebar(id) { console.log(id + " was clicked"); var sidebarItems = document.querySelectorAll('.mobilesidebar-item'); sidebarItems.forEach(function(item) { var iElement = item.getElementsByTagName('div')[0].getElementsByTagName('i')[0]; if (item.id == "mobilesidebar-" + id) { console.log("making solid " + id) iElement.classList.add('fa-solid'); iElement.classList.remove('fa-light'); } else { iElement.classList.remove('fa-solid'); iElement.classList.add('fa-light'); } }); var sidebarItems = document.querySelectorAll('.sidebar-item'); // remove 'active' class from all 'sidebar-item' elements sidebarItems.forEach(function(item) { if (item.id == "sidebar-" + id) { console.log("making active " + id) item.classList.add('active'); } else { item.classList.remove('active'); } }); } </script> </div> <div id="scroll-top-outer"> <div id="scroll-top" class="scroll-top-wrapper hidden-xs"> <span class="scroll-top-inner"> <i class="fa fa-arrow-circle-up fa-fw fa-2x"></i> </span> </div> </div> <script> $(function() { $(document).on('scroll', function() { if ($(window).scrollTop() > 100) { $('.scroll-top-wrapper').addClass('show'); } else { $('.scroll-top-wrapper').removeClass('show'); } }); $('.scroll-top-wrapper').on('click', scrollToTop); }); function scrollToTop() { verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0; element = $('body'); offset = element.offset(); offsetTop = offset.top; $('html, body').animate({ scrollTop: offsetTop }, 100, 'linear'); } if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { let elements = document.querySelectorAll('strong.ctrlmeta'); elements.forEach((element) => { // Check if the innerText is "ctrl" if (element.innerText === 'ctrl') { // Create a new "i" element let newElement = document.createElement('i'); newElement.classList.add('fa-solid', 'fa-command'); // Replace the old "strong" element with the new "i" element element.parentNode.replaceChild(newElement, element); } }); } </script> </body> </html>