From 99bd737a41429cb34b4fffc53c8d7980ca3d33ab Mon Sep 17 00:00:00 2001 From: Yoan Le Clanche Date: Tue, 4 Jun 2024 15:31:33 +0200 Subject: [PATCH] Add select all button to postman folders --- teleforma/static/teleforma/js/application.js | 174 ++++++++++--------- 1 file changed, 91 insertions(+), 83 deletions(-) diff --git a/teleforma/static/teleforma/js/application.js b/teleforma/static/teleforma/js/application.js index 84a3c2dd..1c37dcf0 100644 --- a/teleforma/static/teleforma/js/application.js +++ b/teleforma/static/teleforma/js/application.js @@ -25,21 +25,21 @@ * Requires jQuery */ -$(document).ready(function(){ - if($('.home').size()){ - $('.course').each(function(){ - var $course = $(this); - var course_url = $course.find('.course_title a').attr('href'); - $course.find('.course_content .listing tbody').each(function(){ - var $tbody = $(this); - if($tbody.find('tr').size()>=2) { - $tbody.find('tr:not(:first)').remove(); - $tbody.append('Voir la suite') - } - }); - }) - } - if($('.tabs').size()) +$(document).ready(function () { + if ($('.home').size()) { + $('.course').each(function () { + var $course = $(this); + var course_url = $course.find('.course_title a').attr('href'); + $course.find('.course_content .listing tbody').each(function () { + var $tbody = $(this); + if ($tbody.find('tr').size() >= 2) { + $tbody.find('tr:not(:first)').remove(); + $tbody.append('Voir la suite') + } + }); + }) + } + if ($('.tabs').size()) $('.tabs').tabs(); }); @@ -77,15 +77,15 @@ $(document).ready(function(){ */ //returns the full path of the current url location removing the last slash '/' followed by one or more '#', if any -function urlNormalized(){ +function urlNormalized() { var sPath = window.location.href; - sPath = sPath.replace(/\/#*$/,""); + sPath = sPath.replace(/\/#*$/, ""); return sPath; } /** *sets up few stuff when the page is ready (see functions below it) */ -jQuery(document).ready(function() { +jQuery(document).ready(function () { foldInfoBlocks(); setSelectedMenu(); }); @@ -97,7 +97,7 @@ function foldInfoBlocks() { var $J = jQuery; var extra = $J('.extraInfos'); extra.find('.folded dl, .folded table').css('display', 'none'); - extra.find('h4').click(function() { + extra.find('h4').click(function () { $J(this).parents('.extraInfos').children().toggleClass('folded').find('dl, table').toggle(100); //toggle toggles the visibility of elements return false; @@ -107,57 +107,57 @@ function foldInfoBlocks() { /** * Global teleforma function which sets the current selected menu according to the current url */ -function setSelectedMenu(){ +function setSelectedMenu() { var $J = jQuery; var menus = $J('#menu a'); //build collections/items from http:/site/collections/items, //being http:/site/ = window.location.origin - + //function for normalizing paths (removes last n occurrences of the slash) - var normalize = function(str){ - return str.replace(/\/+#*$/,""); + var normalize = function (str) { + return str.replace(/\/+#*$/, ""); } - + var host = window.location.host; var protocol = window.location.protocol var href = normalize(window.location.href); - - if(!(host) || !(protocol) || !(href)){ + + if (!(host) || !(protocol) || !(href)) { return; } //var pageOrigin = normalize(window.location.origin); //does not exist in FF, so: - var pageOrigin = normalize(protocol+"//"+host); + var pageOrigin = normalize(protocol + "//" + host); var pageHref = normalize(href); - menus.each(function(){ + menus.each(function () { ///if we are at home, the window location href corresponds to window location origin, //so we select only links whose link points EXACTLY to the origin (home link) var linkHref = normalize(this.href); var elm = $J(this); - if(linkHref.indexOf("#") != -1){ + if (linkHref.indexOf("#") != -1) { var reg = new RegExp("[#]+", "g"); var baseHref = linkHref.split(reg); linkHref = pageOrigin + "/" + baseHref[1] } - if(pageOrigin===pageHref){ - if(pageHref == linkHref){ + if (pageOrigin === pageHref) { + if (pageHref == linkHref) { elm.addClass('active'); - }else{ + } else { elm.removeClass('active'); } - }else{ + } else { //here, on the other hand, we select if a link points to a page or super page //of the current page - if(linkHref!=pageOrigin && pageHref.match("^"+linkHref+".*")){ + if (linkHref != pageOrigin && pageHref.match("^" + linkHref + ".*")) { elm.addClass('active'); - }else{ + } else { elm.removeClass('active'); } } - + }) } @@ -192,46 +192,46 @@ function setSelectedMenu(){ * Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror". * ****************************************************************************/ -var json = function(param,method,onSuccessFcn,onErrorFcn){ +var json = function (param, method, onSuccessFcn, onErrorFcn) { //this function converts a javascript object to a string - var toString_ = function(string){ - if(typeof string == "string"){ + var toString_ = function (string) { + if (typeof string == "string") { //escapes newlines quotes and backslashes - string = string.replace(/\\/g,"\\\\") - .replace(/\n/g,"\\n") - .replace(/"/g,"\\\""); + string = string.replace(/\\/g, "\\\\") + .replace(/\n/g, "\\n") + .replace(/"/g, "\\\""); } var array; //used for arrays and objects (see below) - if(typeof string == "boolean" || typeof string== "number" || typeof string == "string"){ - string = '"'+string+'"'; - }else if(string instanceof Array){ + if (typeof string == "boolean" || typeof string == "number" || typeof string == "string") { + string = '"' + string + '"'; + } else if (string instanceof Array) { array = []; - for(var i = 0;i ') - var button = $('Voir les vidéos plus anciennes').bind('click', function(){ + var buttonRow = $('') + var button = $('Voir les vidéos plus anciennes').bind('click', function () { $this.find('tr:not(:first)').show('fast'); buttonRow.hide(); }); @@ -312,5 +312,13 @@ $(document).ready(function () { $this.find('tr:not(:first)').hide(); buttonRow.find('td').append(button) buttonRow.insertAfter($this.find('tr:first')) - }) + }) + + + $('.select_all').bind('change', function () { + var $this = $(this); + var isChecked = $this.is(':checked'); + var $form = $this.closest('form'); + $form.find('input[type=checkbox]').prop('checked', isChecked); + }) }); \ No newline at end of file -- 2.39.5