mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-11 12:29:24 +00:00
Apply standard formater and linter on js files
This commit is contained in:
@ -1,59 +1,60 @@
|
||||
$( function() {
|
||||
buttons = $(".choose_file_button");
|
||||
popups = $(".choose_file_widget");
|
||||
popups.dialog({
|
||||
autoOpen: false,
|
||||
modal: true,
|
||||
width: "90%",
|
||||
create: function (event) {
|
||||
target = $(event.target);
|
||||
target.parent().css({
|
||||
'position': 'fixed',
|
||||
'top': '5%',
|
||||
'bottom': '5%',
|
||||
});
|
||||
target.css("height", "300px");
|
||||
console.log(target);
|
||||
/* eslint-disable camelcase */
|
||||
$(function () {
|
||||
// const buttons = $('.choose_file_button')
|
||||
const popups = $('.choose_file_widget')
|
||||
popups.dialog({
|
||||
autoOpen: false,
|
||||
modal: true,
|
||||
width: '90%',
|
||||
create: function (event) {
|
||||
const target = $(event.target)
|
||||
target.parent().css({
|
||||
position: 'fixed',
|
||||
top: '5%',
|
||||
bottom: '5%'
|
||||
})
|
||||
target.css('height', '300px')
|
||||
console.log(target)
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
text: 'Choose',
|
||||
click: function () {
|
||||
console.log($('#file_id'))
|
||||
$('input[name=' + $(this).attr('name') + ']').attr('value', $('#file_id').attr('value'))
|
||||
$(this).dialog('close')
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
text: "Choose",
|
||||
click: function() {
|
||||
console.log($("#file_id"));
|
||||
$("input[name="+$(this).attr('name')+"]").attr('value', $("#file_id").attr('value'));
|
||||
$( this ).dialog( "close" );
|
||||
},
|
||||
disabled: true,
|
||||
}
|
||||
],
|
||||
});
|
||||
$( ".choose_file_button" ).button().on( "click", function() {
|
||||
popup = popups.filter("[name="+$(this).attr('name')+"]");
|
||||
console.log(popup);
|
||||
popup.html('<iframe src="/file/popup" width="100%" height="95%"></iframe><div id="file_id" value="null" />');
|
||||
popup.dialog({title: $(this).text()}).dialog( "open" );
|
||||
});
|
||||
$("#quick_notif li").click(function () {
|
||||
$(this).hide();
|
||||
})
|
||||
});
|
||||
disabled: true
|
||||
}
|
||||
]
|
||||
})
|
||||
$('.choose_file_button').button().on('click', function () {
|
||||
const popup = popups.filter('[name=' + $(this).attr('name') + ']')
|
||||
console.log(popup)
|
||||
popup.html('<iframe src="/file/popup" width="100%" height="95%"></iframe><div id="file_id" value="null" />')
|
||||
popup.dialog({ title: $(this).text() }).dialog('open')
|
||||
})
|
||||
$('#quick_notif li').click(function () {
|
||||
$(this).hide()
|
||||
})
|
||||
})
|
||||
|
||||
function createQuickNotif(msg) {
|
||||
const el = document.createElement('li')
|
||||
el.textContent = msg
|
||||
el.addEventListener('click', () => el.parentNode.removeChild(el))
|
||||
document.getElementById('quick_notif').appendChild(el)
|
||||
function createQuickNotif (msg) { // eslint-disable-line no-unused-vars
|
||||
const el = document.createElement('li')
|
||||
el.textContent = msg
|
||||
el.addEventListener('click', () => el.parentNode.removeChild(el))
|
||||
document.getElementById('quick_notif').appendChild(el)
|
||||
}
|
||||
|
||||
function deleteQuickNotifs() {
|
||||
const el = document.getElementById('quick_notif')
|
||||
while (el.firstChild) {
|
||||
el.removeChild(el.firstChild)
|
||||
}
|
||||
function deleteQuickNotifs () { // eslint-disable-line no-unused-vars
|
||||
const el = document.getElementById('quick_notif')
|
||||
while (el.firstChild) {
|
||||
el.removeChild(el.firstChild)
|
||||
}
|
||||
}
|
||||
|
||||
function display_notif() {
|
||||
$('#header_notif').toggle().parent().toggleClass("white");
|
||||
function display_notif () { // eslint-disable-line no-unused-vars
|
||||
$('#header_notif').toggle().parent().toggleClass('white')
|
||||
}
|
||||
|
||||
// You can't get the csrf token from the template in a widget
|
||||
@ -62,22 +63,21 @@ function display_notif() {
|
||||
// Sadly, getting the cookie is not possible with CSRF_COOKIE_HTTPONLY or CSRF_USE_SESSIONS is True
|
||||
// So, the true workaround is to get the token from the dom
|
||||
// https://docs.djangoproject.com/en/2.0/ref/csrf/#acquiring-the-token-if-csrf-use-sessions-is-true
|
||||
function getCSRFToken() {
|
||||
return $("[name=csrfmiddlewaretoken]").val();
|
||||
function getCSRFToken () { // eslint-disable-line no-unused-vars
|
||||
return $('[name=csrfmiddlewaretoken]').val()
|
||||
}
|
||||
|
||||
|
||||
const initialUrlParams = new URLSearchParams(window.location.search);
|
||||
const initialUrlParams = new URLSearchParams(window.location.search) // eslint-disable-line no-unused-vars
|
||||
|
||||
/**
|
||||
* @readonly
|
||||
* @enum {number}
|
||||
*/
|
||||
const History = {
|
||||
NONE: 0,
|
||||
PUSH: 1,
|
||||
REPLACE: 2,
|
||||
};
|
||||
NONE: 0,
|
||||
PUSH: 1,
|
||||
REPLACE: 2
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} key
|
||||
@ -85,27 +85,27 @@ const History = {
|
||||
* @param {History} action
|
||||
* @param {URL | null} url
|
||||
*/
|
||||
function update_query_string(key, value, action = History.REPLACE, url = null) {
|
||||
if (!url){
|
||||
url = new URL(window.location.href);
|
||||
}
|
||||
if (value === undefined || value === null || value === "") {
|
||||
// If the value is null, undefined or empty => delete it
|
||||
url.searchParams.delete(key)
|
||||
} else if (Array.isArray(value)) {
|
||||
url.searchParams.delete(key)
|
||||
value.forEach((v) => url.searchParams.append(key, v))
|
||||
} else {
|
||||
url.searchParams.set(key, value);
|
||||
}
|
||||
function update_query_string (key, value, action = History.REPLACE, url = null) { // eslint-disable-line no-unused-vars
|
||||
if (!url) {
|
||||
url = new URL(window.location.href)
|
||||
}
|
||||
if (value === undefined || value === null || value === '') {
|
||||
// If the value is null, undefined or empty => delete it
|
||||
url.searchParams.delete(key)
|
||||
} else if (Array.isArray(value)) {
|
||||
url.searchParams.delete(key)
|
||||
value.forEach((v) => url.searchParams.append(key, v))
|
||||
} else {
|
||||
url.searchParams.set(key, value)
|
||||
}
|
||||
|
||||
if (action === History.PUSH) {
|
||||
history.pushState(null, "", url.toString());
|
||||
} else if (action === History.REPLACE) {
|
||||
history.replaceState(null, "", url.toString());
|
||||
}
|
||||
if (action === History.PUSH) {
|
||||
window.history.pushState(null, '', url.toString())
|
||||
} else if (action === History.REPLACE) {
|
||||
window.history.replaceState(null, '', url.toString())
|
||||
}
|
||||
|
||||
return url;
|
||||
return url
|
||||
}
|
||||
|
||||
// TODO : If one day a test workflow is made for JS in this project
|
||||
@ -116,27 +116,27 @@ function update_query_string(key, value, action = History.REPLACE, url = null) {
|
||||
* @param {string} url The paginated endpoint to fetch
|
||||
* @return {Promise<Object[]>}
|
||||
*/
|
||||
async function fetch_paginated(url) {
|
||||
const max_per_page = 199;
|
||||
const paginated_url = new URL(url, document.location.origin);
|
||||
paginated_url.searchParams.set("page_size", max_per_page.toString());
|
||||
paginated_url.searchParams.set("page", "1");
|
||||
async function fetch_paginated (url) { // eslint-disable-line no-unused-vars
|
||||
const max_per_page = 199
|
||||
const paginated_url = new URL(url, document.location.origin)
|
||||
paginated_url.searchParams.set('page_size', max_per_page.toString())
|
||||
paginated_url.searchParams.set('page', '1')
|
||||
|
||||
let first_page = (await ( await fetch(paginated_url)).json());
|
||||
let results = first_page.results;
|
||||
const first_page = (await (await fetch(paginated_url)).json())
|
||||
const results = first_page.results
|
||||
|
||||
const nb_pictures = first_page.count
|
||||
const nb_pages = Math.ceil(nb_pictures / max_per_page);
|
||||
const nb_pages = Math.ceil(nb_pictures / max_per_page)
|
||||
|
||||
if (nb_pages > 1) {
|
||||
let promises = [];
|
||||
for (let i = 2; i <= nb_pages; i++) {
|
||||
paginated_url.searchParams.set("page", i.toString());
|
||||
promises.push(
|
||||
fetch(paginated_url).then(res => res.json().then(json => json.results))
|
||||
);
|
||||
}
|
||||
results.push(...(await Promise.all(promises)).flat())
|
||||
const promises = []
|
||||
for (let i = 2; i <= nb_pages; i++) {
|
||||
paginated_url.searchParams.set('page', i.toString())
|
||||
promises.push(
|
||||
fetch(paginated_url).then(res => res.json().then(json => json.results))
|
||||
)
|
||||
}
|
||||
results.push(...(await Promise.all(promises)).flat())
|
||||
}
|
||||
return results;
|
||||
return results
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* eslint-disable camelcase */
|
||||
/**
|
||||
* Builders to use Select2 in our templates.
|
||||
*
|
||||
@ -157,15 +158,15 @@
|
||||
/**
|
||||
* @param {Select2Options} options
|
||||
*/
|
||||
function sithSelect2(options) {
|
||||
const elem = $(options.element);
|
||||
function sithSelect2 (options) { // eslint-disable-line no-unused-vars
|
||||
const elem = $(options.element)
|
||||
return elem.select2({
|
||||
theme: elem[0].multiple ? "classic" : "default",
|
||||
theme: elem[0].multiple ? 'classic' : 'default',
|
||||
minimumInputLength: 2,
|
||||
templateResult: select_item_builder(options.picture_getter),
|
||||
...options.data_source,
|
||||
...(options.overrides || {}),
|
||||
});
|
||||
...(options.overrides || {})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@ -179,12 +180,12 @@ function sithSelect2(options) {
|
||||
* @param {Select2Object[]} source The array containing the data
|
||||
* @param {RemoteSourceOptions} options
|
||||
*/
|
||||
function local_data_source(source, options) {
|
||||
if (!!options.excluded) {
|
||||
const ids = options.excluded();
|
||||
return { data: source.filter((i) => !ids.includes(i.id)) };
|
||||
function local_data_source (source, options) { // eslint-disable-line no-unused-vars
|
||||
if (options.excluded) {
|
||||
const ids = options.excluded()
|
||||
return { data: source.filter((i) => !ids.includes(i.id)) }
|
||||
}
|
||||
return { data: source };
|
||||
return { data: source }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -202,11 +203,11 @@ function local_data_source(source, options) {
|
||||
* @param {string} source The url of the endpoint
|
||||
* @param {RemoteSourceOptions} options
|
||||
*/
|
||||
function remote_data_source(source, options) {
|
||||
jQuery.ajaxSettings.traditional = true;
|
||||
let params = {
|
||||
function remote_data_source (source, options) { // eslint-disable-line no-unused-vars
|
||||
jQuery.ajaxSettings.traditional = true
|
||||
const params = {
|
||||
url: source,
|
||||
dataType: "json",
|
||||
dataType: 'json',
|
||||
cache: true,
|
||||
delay: 250,
|
||||
data: function (params) {
|
||||
@ -214,25 +215,25 @@ function remote_data_source(source, options) {
|
||||
search: params.term,
|
||||
exclude: [
|
||||
...(this.val() || []).map((i) => parseInt(i)),
|
||||
...(options.excluded ? options.excluded() : []),
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
if (!!options.result_converter) {
|
||||
params["processResults"] = function (data) {
|
||||
return { results: data.results.map(options.result_converter) };
|
||||
};
|
||||
...(options.excluded ? options.excluded() : [])
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!!options.overrides) {
|
||||
Object.assign(params, options.overrides);
|
||||
if (options.result_converter) {
|
||||
params.processResults = function (data) {
|
||||
return { results: data.results.map(options.result_converter) }
|
||||
}
|
||||
}
|
||||
return { ajax: params };
|
||||
if (options.overrides) {
|
||||
Object.assign(params, options.overrides)
|
||||
}
|
||||
return { ajax: params }
|
||||
}
|
||||
|
||||
function item_formatter(user) {
|
||||
function item_formatter (user) { // eslint-disable-line no-unused-vars
|
||||
if (user.loading) {
|
||||
return user.text;
|
||||
return user.text
|
||||
}
|
||||
}
|
||||
|
||||
@ -241,21 +242,21 @@ function item_formatter(user) {
|
||||
* @param {null | function(Object):string} picture_getter
|
||||
* @return {function(string): jQuery|HTMLElement}
|
||||
*/
|
||||
function select_item_builder(picture_getter) {
|
||||
function select_item_builder (picture_getter) {
|
||||
return (item) => {
|
||||
const picture =
|
||||
typeof picture_getter === "function" ? picture_getter(item) : null;
|
||||
typeof picture_getter === 'function' ? picture_getter(item) : null
|
||||
const img_html = picture
|
||||
? `<img
|
||||
src="${picture_getter(item)}"
|
||||
alt="${item.text}"
|
||||
onerror="this.src = '/static/core/img/unknown.jpg'"
|
||||
/>`
|
||||
: "";
|
||||
: ''
|
||||
|
||||
return $(`<div class="select-item">
|
||||
${img_html}
|
||||
<span class="select-item-text">${item.text}</span>
|
||||
</div>`);
|
||||
};
|
||||
</div>`)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user