'));
var $useritems_tbody = $('').appendTo($useritems_table);
for (var i = 0; i < params.user_typeList.length; i++) {
var type_id = params.user_typeList[i];
var $row = $('
').appendTo($useritems_tbody);
$row.addClass("loaded_item");
$row.attr('id', type_id);
var item_icon = params.icons[type_id] || "";
var $icon_td = $('
' + item_icon + '
').appendTo($row);
$icon_td.data('target_type', 'icon');
var item_text = params.infotexts[type_id] || "";
var $text_td = $('
' + item_text + '
').appendTo($row);
$text_td.data('target_type', 'infotext');
//Ajout d'un bouton pour la supression
var $last_td = $('
').appendTo($row);
var $itemdel_btn = $('').appendTo($last_td);
$itemdel_btn.data('type_ID', type_id);
$itemdel_btn.text('Supprimer');
$itemdel_btn.css({
height: '15px',
margin: '5px 15px',
});
//Handler clic sur le bouton "Supprimer" d'une ligne du tableau
$itemdel_btn.click(function () {
if ($(this).data('confirmed')) {
//Suppression des valeurs de la ligne
var type_id = $(this).data('type_ID');
$('#' + type_id + ' > td.editable').text("");
//Suppression des données "utilisateur"
//Suppresion en RAM
var index = params.typeList.indexOf(type_id);
if (index !== -1) {
params.typeList.splice(index, 1);
}
delete params.icons[type_id];
delete params.infotexts[type_id];
//Suppresion en mémoire locale
GM_deleteValue(type_id);
GM_deleteValue(type_id + '_icon');
GM_deleteValue(type_id + '_text');
//Suppression dans le menu déroulant de la fenêtre de configuration
if ($listconfig_default_picker.val() === type_id) { //l'item à supprimer est sélectionné
//On sélectionne le type NONE d'office
$listconfig_default_picker.val('NONE').trigger('change');
}
$('option#opt_' + type_id).remove();
//Remise à zéro du bouton
$(this).text('Supprimer');
$(this).data('confirmed', false);
} else {
//Besoin d'un second clic, pour confirmation
$(this).text('Confirmer');
$(this).data('confirmed', true);
}
});
$itemdel_btn.mouseleave(function () {
//Annulation de la confirmation de suppression
$(this).text('Supprimer');
$(this).data('confirmed', false);
});
}
//Css des éléments du tableau
$useritems_table.find('td').css({
border: '1px solid white',
height: '15px'
});
//Handler double-clic sur une cellule éditable
$('td.editable', $useritems_table).dblclick(function () {
var type_id = $(this).parent().attr('id');
var target_type = $(this).data('target_type');
editCellContent($(this), function (changes) {
if (changes) {
//Sauvegarde en ram et en mémoire locale
if (target_type === 'icon') {
params.icons[type_id] = changes;
GM_setValue(type_id + '_icon', changes);
} else if (target_type === 'infotext') {
params.infotexts[type_id] = changes;
GM_setValue(type_id + '_text', changes);
}
//Ajout à la liste des types disponibles (si non déjà présent)
var item_title = params.icons[type_id] + ' - ' + params.infotexts[type_id];
if (params.typeList.indexOf(type_id) === -1) {
//Ajout à la liste des types disponibles
params.typeList.push(type_id);
//Ajout d'un flag en mémoire locale
GM_setValue(type_id, true);
//Ajout au menu déroulant de la fenêtre de configuration
var $option = $('').appendTo($listconfig_default_picker);
$option.val(type_id).html(item_title);
} else { //modification dans le menu déroulant si déjà présent
var $option = $('option#opt_' + type_id);
$option.val(type_id).html(item_title);
}
}
});
});
//----------------------------------------
//Configuration des boutons disponibles
//----------------------------------------
var $buttonsconfig_title = $('').appendTo($config_interface);
$buttonsconfig_title.text('Types d\'indications personalisés (boutons)');
$buttonsconfig_title.css({
"margin-bottom": '5px',
"border-bottom": '1px solid',
display: 'block',
"font-size": '17px',
"-webkit-margin-before": '0.83em',
"-webkit-margin-after": '0.83em',
"-webkit-margin-start": '0px',
"-webkit-margin-end": '0px',
"font-weight": 'bold',
});
//Gestion des boutons "utilisateur"
var $listconfig_actions = $('').appendTo($config_interface);
$listconfig_actions.text('Boutons personnalisés : ');
var $useractions_table = $('
'));
var $useractions_tbody = $('').appendTo($useractions_table);
for (var i = 0; i < params.user_actionList.length; i++) {
var type_id = params.user_actionList[i];
var $row = $('
').appendTo($useractions_tbody);
$row.addClass("loaded_action");
$row.attr('id', type_id);
var action_icon = params.icons[type_id] || "";
var $icon_td = $('
' + action_icon + '
').appendTo($row);
$icon_td.data('target_type', 'icon');
var action_text = params.infotexts[type_id] || "";
var $text_td = $('
' + action_text + '
').appendTo($row);
$text_td.data('target_type', 'infotext');
//Ajout d'un bouton pour la supression
var $last_td = $('
').appendTo($row);
var $actiondel_btn = $('').appendTo($last_td);
$actiondel_btn.data('type_ID', type_id);
$actiondel_btn.text('Supprimer');
$actiondel_btn.css({
height: '15px',
margin: '5px 15px',
});
//Handler clic sur le bouton "Supprimer" d'une ligne du tableau
$actiondel_btn.click(function () {
if ($(this).data('confirmed')) {
//Suppression des valeurs de la ligne
var type_id = $(this).data('type_ID');
$('#' + type_id + ' > td.editable').text("");
//Suppression des données "utilisateur"
//Suppresion en RAM
var index = params.actionList.indexOf(type_id);
if (index !== -1) {
params.actionList.splice(index, 1);
}
params.carousel_facesnumber = carouselFacesNumber();
delete params.icons[type_id];
delete params.infotexts[type_id];
//Suppresion en mémoire locale
GM_deleteValue(type_id);
GM_deleteValue(type_id + '_icon');
GM_deleteValue(type_id + '_text');
//Remise à zéro du bouton
$(this).text('Supprimer');
$(this).data('confirmed', false);
} else {
//Besoin d'un second clic, pour confirmation
$(this).text('Confirmer');
$(this).data('confirmed', true);
}
});
$actiondel_btn.mouseleave(function () {
//Annulation de la confirmation de suppression
$(this).text('Supprimer');
$(this).data('confirmed', false);
});
}
//Css des éléments du tableau
$useractions_table.find('td').css({
border: '1px solid white',
height: '15px'
});
//Handler double-clic sur une cellule éditable
$('td.editable', $useractions_table).dblclick(function () {
var type_id = $(this).parent().attr('id');
var target_type = $(this).data('target_type');
editCellContent($(this), function (changes) {
if (changes) {
//Sauvegarde en ram et en mémoire locale
if (target_type === 'icon') {
params.icons[type_id] = changes;
GM_setValue(type_id + '_icon', changes);
} else if (target_type === 'infotext') {
params.infotexts[type_id] = changes;
GM_setValue(type_id + '_text', changes);
}
//Ajout à la liste des actions disponibles (si non déjà présent)
if (params.actionList.indexOf(type_id) === -1) {
//Ajout à la liste des types disponibles
params.actionList.push(type_id);
params.carousel_facesnumber = carouselFacesNumber();
//Ajout d'un flag en mémoire locale
GM_setValue(type_id, true);
}
}
});
});
//----------------------------------------
//Bouton de remise à zéro des paramètres
//----------------------------------------
var $buttons_div = $('').appendTo($config_interface);
$buttons_div.css({
//position: 'absolute',
width: '100%',
bottom: '0px',
});
var $reinit_btn = $('').appendTo($buttons_div);
$reinit_btn.text('Remettre à zéro');
$reinit_btn.attr('title','Réinitialisation des variables et fermeture de la fenêtre');
$reinit_btn.click(function(){
//Ecrasement des paramètres par les paramètres par défaut
params = $.extend(true, {}, default_params);
//Fermeture forcée de la fenêtre de configuration
engine.closeDataBox('dccb_configwindow');
//Suppression des variables enregistrées en mémoire
var stored_values = GM_listValues();
for (var i=0;i .parametres > ul');
var $dccb_config = $('').appendTo($params_menu);
$dccb_config.text("Configuration Com'Back");
$dccb_config.addClass('link couleur2 separator');
$dccb_config.click(function () {
//Fermeture des autres instances de paramétrage ouvertes
engine.closeDataBox('dccb_configwindow');
var $config_window = new DCCB_ConfigurationWindow();
$databox.append($config_window.$window);
});
//**********************************************
// FIN INTERFACE DE CONFIGURATION UTILISATEUR
//**********************************************
//**********************************************
// FONCTIONS UTILITAIRES
//**********************************************
//Calcul du nombre de faces de carrousel
function carouselFacesNumber() {
var integer_part = Math.floor(params.actionList.length / params.carousel_facesize);
var modulo_part = params.actionList.length % params.carousel_facesize;
if (modulo_part > 0) {
return integer_part + 1;
}
return integer_part;
}
//Calcul de l'index de rattachement d'un bouton au carousel
function carouselDedicatedFaceIdx(btn_idx) {
return Math.floor(btn_idx / params.carousel_facesize);
}
//Obtention de la longueur d'un texte en pixels
function getTextWidth(text, font) {
// re-use canvas object for better performance
var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas"));
var context = canvas.getContext("2d");
context.font = font;
var metrics = context.measureText(text);
return metrics.width;
}
//Mise en forme |n * \n|[icône + texte]|n * \n|
function makeBanner(CR_before, id, CR_after, isHeader) {
var banner = params.icons.ININ + ' ' + params.icons[id] + ' - ' + params.infotexts[id] + ' ' + params.icons.INOU;
if (!isHeader) return Array(CR_before + 1).join("\n") + banner + Array(CR_after + 1).join("\n"); //Si ce n'est pas un en-tête, on ne se préoccupe pas de centrer le texte et on applique directement les retours à la ligne.
var bannerWidth = Math.round(getTextWidth(banner, "12px Trebuchet MS")); //Largeur de la bannière
var spaceWidth = Math.round(getTextWidth(" ", "12px Trebuchet MS")); //Largeur d'un espace insécable (alt+255, différent de l'espace normal)
var windowsWidth = 300; //Largeur de la fenêtre à l'endroit de l'en-tête dans laquelle on peut écrire (avec avatar et marges soustraits)
var nbrSpace = Math.floor(((windowsWidth - bannerWidth) / 2) / spaceWidth); //Déduction du nombre d'espaces à ajouter
var space = " ";
return Array(CR_before + 1).join("\n") + space.repeat(nbrSpace) + banner + Array(CR_after + 1).join("\n");
}
//Troncature de chaînes de caractères
function truncateString(string, nb_char) {
return $.trim(string).substring(0, nb_char).split(" ").slice(0, -1).join(" ") + "...";
}
//Vérification des données, actuellement désactivé
function checkData() {
/*if (params.list_defaultID === undefined) return false;
if (params.list_lastID === undefined) return false;
if (params.b_alwaysDefault === undefined) return false;
if (params.icons === undefined) return false;
if (params.infotexts === undefined) return false;
for (var i = 0; i < params.actionList.length; i++) {
if (params.icons[params.actionList[i]] === undefined) return false;
if (params.infotexts[params.actionList[i]] === undefined) return false;
}
for (var i = 0; i < params.typeList.length; i++) {
if (params.icons[params.typeList[i]] === undefined) return false;
if (params.infotexts[params.typeList[i]] === undefined) return false;
}*/
return true;
}
//Edition d'une cellule de tableau
function editCellContent(cell, cb) {
var init_value = cell.text();
cell.html('');
cell.children().first().focus();
cell.children().first().keypress(function (e) {
if (e.which == 13) { //Touche entrée appuyée
var new_value = cell.find('input').val();
cell.text(new_value);
if (new_value !== init_value) { //la nouvelle valeur est différente de l'ancienne
return cb(new_value);
} else { //pas de changement de valeur
return cb(false);
}
}
});
//Le champ d'édition n'a plus le focus = un clic a été donné sur un autre élément
cell.children().first().blur(function () {
cell.text(init_value);
return cb(false);
});
}
//Formatage des liens et des contenus de message
function format_liens(html) {
//URLs starting with http://, https://, or ftp://
var replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+\/%?=~_|!:,.;]*[-A-Z0-9+\/%=~_|])/gim;
html = html.replace(replacePattern1, '$1');
//URLs starting with "www." (without // before it, or it'd re-link the ones done above).
var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
html = html.replace(replacePattern2, '$1$2');
html = html.replace(/( <\/a>)|( <\/a>)/gim, '<\/a> '); //Problème des liens www dont la fin peut être tronquée avec une balise
html = html.replace(/( \" target)|( \" target)/gim, '" target'); //Pareil, correction dans le href
/*HARLINDE COURTESY*/
//Ta mère youtube
html = html.replace(/[\S]+<\/a>/gim, '
');
//Tranforme le texte entre * en italique
html = html.replace(/\*([^\*]+)\*/gim, '$1');
return html;
}
//**********************************************
// FIN FONCTIONS UTILITAIRES
//**********************************************
//**********************************************
// FONCTIONS DES INTERFACES MESSAGES
//**********************************************
//Pour un nouveau message
function mainf() {
var old_id = "#db_new_message";
var $databox = $(old_id);
var new_id = 'db_message_' + new Date().getTime().toString();
$databox.attr('id', new_id);
var db_id = '#'+new_id;
var class_name = ".message_nouveau";
var toContent = db_id + " > div.content";
var $msg_content = $(toContent);
var $msg_textarea = $(toContent + " > " + class_name + " > #nm_texte > textarea");
//Menu déroulant
//*********************
//Création du conteneur
var $types_div = $('').appendTo($msg_content);
$types_div.css({
"z-index": '999999',
position: 'absolute',
top: '25px',
left: '320px',
"background-color": '#ACABAB',
});
//Création de la liste
var $types_selection = $('').appendTo($types_div);
$types_selection.css({ //TODO : vérifier que ellipsis fonctionne
display: 'block',
width: '165px',
"white-space": 'nowrap',
overflow: 'hidden',
"text-overflow": 'ellipsis',
"-o-text-overflow": 'ellipsis',
"-ms-text-overflow": 'ellipsis',
"-web-text-overflow": 'ellipsis',
"font-family": "Arial,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif",
});
$types_selection.change(function () {
var type_id = $(this).val();
//Changement de dernier item choisi
params.list_lastID = type_id;
//Ajout d'une infobulle
if (type_id !== 'NONE') {
$(this).attr('title', makeBanner(0, type_id, 0, false));
} else {
$(this).attr('title', "");
}
//Sauvegarde locale
GM_setValue("list_lastID", type_id);
});
//Ajout d'un élément neutre
$types_selection.append('');
//Ajout des éléments en fonction de 'typeList'
for (var i = 0; i < params.typeList.length; i++) {
var $option = $('').appendTo($types_selection);
var type_id = params.typeList[i];
var item_title = params.icons[type_id] + ' - ' + params.infotexts[type_id];
$option.val(type_id).html(item_title);
}
//Application du choix par défaut
var type_id = (params.b_alwaysDefault) ? params.list_defaultID : params.list_lastID;
$types_selection.val(type_id);
if (type_id !== 'NONE') {
$types_selection.attr('title', makeBanner(0, type_id, 0, false));
} else {
$types_selection.attr('title', "");
}
//Boutons
//*********************
//Bouton d'envoi cloné imitant le bouton d'envoi. Il a les mêmes propriétés que le bouton d'envoi classique.
var $sendbtnclone = $('').appendTo($msg_content);
$sendbtnclone.css({
position: 'absolute',
left: '50%',
bottom: '-13px',
"margin-left": '-72px',
width: '133px',
height: '26px',
background: 'url(../../../images/fr/design/boutons/btn_message.png) -399px 0 no-repeat',
cursor: 'pointer',
});
$sendbtnclone.attr('onmouseover', 'this.style.backgroundPosition="-399px -26px";');
$sendbtnclone.attr('onmouseout', 'this.style.backgroundPosition="-399px 0px";');
$sendbtnclone.click(function () {
//Ajout d'un en-tête au message avant l'envoi
if ($types_selection.val() !== 'NONE') {
var header = makeBanner(1, $types_selection.val(), 3, true);
var new_msg = header + $msg_textarea.val();
$msg_textarea.val(new_msg);
}
nav.getMessagerie().sendMessage($(db_id));
$sendbtnclone.off("click"); //Empêche un envoi multiple du message.
});
//Cacher le bouton original #db_message_1467310704360 > div.content > form > div.envoyer.link
$(db_id + " > .content > .message_nouveau > .envoyer.link").css({
visibility: 'hidden', //Contrairement à display:none, le CSS prend en compte l'objet.
});
//Boutons annexes pour ajouter des bouts de texte (pièce jointe, etc).
var $actions_div = $('').appendTo($msg_content);
$actions_div.css({
"z-index": '999999',
position: 'absolute',
top: '57px',
left: '492px',
width: '30px',
height: (params.carousel_facesize * 30).toString() + 'px',
overflow: 'hidden',
border: '1px solid rgba(0, 0, 0,0.1)',
"box-shadow": '0',
});
$actions_div.on('contextmenu', function (e) {
e.stopPropagation();
e.preventDefault();
//On extrait le premier élément de la pile (sans remise)
var fifo = carousel_stockpile.shift();
//On cache cet élément
$('.' + fifo, $actions_div).hide();
//On montre le nouvel élément de tête
$('.' + carousel_stockpile[0], $actions_div).show();
//On ajoute l'ancien premier élément en fin de pile
carousel_stockpile.push(fifo);
return false;
});
//Initialisation d'une pile de gestion des faces du carrousel
var carousel_stockpile = []
for (var idx_carousel = 0; idx_carousel < params.carousel_facesnumber; idx_carousel++) {
carousel_stockpile.push('carousel_' + idx_carousel.toString());
}
//Création des boutons rattachés à une face du carrousel
for (var idx_btn = 0; idx_btn < params.actionList.length; idx_btn++) {
var dedicatedCarousel_id = "carousel_" + carouselDedicatedFaceIdx(idx_btn);
var action_id = params.actionList[idx_btn];
var $button = $('').appendTo($actions_div);
//On range le bouton sur une face du carrousel via une classe CSS
$button.addClass(dedicatedCarousel_id);
$button.val(action_id);
//On cache tous les boutons à l'initialisation
$button.hide();
$button.click(function () {
var innerBanner = makeBanner(0, $(this).val(), 1, false);
var new_msg = $msg_textarea.val() + innerBanner;
$msg_textarea.val(new_msg);
});
}
//On montre les membres de la première face du carrousel
$('.carousel_0', $actions_div).show();
$(".cb_annexes").css({
"background-color": "#ACABAB",
"height": "30px",
"width": "30px",
"font-size": "20px",
"font-family": "Arial,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif",
}); //Ajout du CSS des boutons.
console.log("Com'back started: nouveau message"); //Debug
}
//Pour un film de discussion existant
function filcomf() {
$("#liste_messages").ajaxComplete(function () { //Naugriim, je t'aime. <3 (Attendre le chargement de la fenêtre avant d'envoyer la sauce)
$("#liste_messages").unbind('ajaxComplete'); //Evite de renvoyer à chaque nouvelle requête ajax du jeu et donc de dupliquer la fonction
var message_id = $("input.id_conversation").attr('value'); //Récupère l'id du message
var db_id = "#db_message_" + message_id;
//Transformation des liens en liens cliquables
//*********************
var $message_content = $(db_id + " > .content > .message > .contenu > .texte");
var content_orig = $message_content.html();
$message_content.html(format_liens(content_orig));
var last_clicked_id = $(db_id + " .link.conversation.selected").attr('id');
$(db_id + " .link.conversation").click(function () {
var $cheminTexte = $(db_id + " > .content > .message > .contenu > .texte");
$cheminTexte.ajaxComplete(function () {
$(this).unbind('ajaxComplete');
var this_clicked_id = $(db_id + " .link.conversation.selected").attr('id');
if (this_clicked_id !== last_clicked_id) {
last_clicked_id = this_clicked_id; //Eviter de repasser la fonction qui sinon nique les liens.
$(this).html(format_liens($(this).html()));
}
});
});
$(db_id + " > .content > div.message > div.btnTxt").click(function () { //Création et affichage lors du clic sur l'un des boutons en bas de la fenêtre
if (document.getElementById("dccb_div_fc_" + message_id) === null) { //Ne recrée pas l'interface du script si elle existe déjà: REND IMPOSSIBLE L'OUVERTURE DE PLUSIEURS COMS SANS BUGS.
var $msg_content = $(db_id + " > .content > .message");
var $msg_textarea = $(db_id + " > .content > .message > .zone_reponse > .texte > #nm_texte > textarea");
//Augmentation de la taille de la zone_conversation
//$('.zone_conversation').css('height', '340px');
//Version animée
$('.zone_conversation').animate({
height: '340px'
}, 500);
//Menu déroulant
//*********************
//Création du conteneur
var $types_div = $('').appendTo($msg_content);
$types_div.addClass('dccb_div_fc');
$types_div.css({
"z-index": '999999',
position: 'absolute',
top: '348px',
left: '105px',
"background-color": '#FFFFFF',
"-webkit-box-shadow": '0 0 1px 0px #329bc2',
"border-color": '#207695',
"border-style": 'solid',
"border-width": 'thin',
});
//Création de la liste
var $types_selection = $('').appendTo($types_div);
$types_selection.addClass('listeTypesfc');
$types_selection.css({ //TODO : vérifier que ellipsis fonctionne
height: '27px',
color: '#397d94',
display: 'block',
width: '250px',
"white-space": 'nowrap',
overflow: 'hidden',
"text-overflow": 'ellipsis',
"-o-text-overflow": 'ellipsis',
"-ms-text-overflow": 'ellipsis',
"-web-text-overflow": 'ellipsis',
"font-family": 'Arial,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif',
});
$types_selection.change(function () {
var type_id = $(this).val();
//Changement de dernier item choisi
params.list_lastID = type_id;
//Ajout d'une infobulle
if (type_id !== 'NONE') {
$(this).attr('title', makeBanner(0, type_id, 0, false));
} else {
$(this).attr('title', "");
}
//Sauvegarde locale
GM_setValue("list_lastID", type_id);
});
//Ajout d'un élément neutre
$types_selection.append('');
//Ajout des éléments en fonction de 'typeList'
for (var i = 0; i < params.typeList.length; i++) {
var $option = $('').appendTo($types_selection);
var type_id = params.typeList[i];
var item_title = params.icons[type_id] + ' - ' + params.infotexts[type_id];
$option.val(type_id).html(item_title);
}
//Application du choix par défaut
var type_id = (params.b_alwaysDefault) ? params.list_defaultID : params.list_lastID;
$types_selection.val(type_id);
if (type_id !== 'NONE') {
$types_selection.attr('title', makeBanner(0, type_id, 0, false));
} else {
$types_selection.attr('title', "");
}
//Boutons
//*********************
//Bouton d'envoi cloné imitant le bouton d'envoi. Il a les mêmes propriétés que le bouton d'envoi classique.
var $sendbtnclone = $('').appendTo($msg_content);
$sendbtnclone.html("Envoyer");
$sendbtnclone.addClass('button_listeTypesfc');
$sendbtnclone.css({
position: 'absolute',
left: '2px',
top: '343px',
float: 'left',
padding: '4px 20px 3px',
"text-transform": 'uppercase',
"font-size": '12px',
"margin-right": '10px',
"font-weight": '700',
"text-align": 'center',
margin: '6px 0',
cursor: 'pointer',
background: "#fff",
border: '1px solid #fff',
color: '#397d94',
"box-shadow": '0 0 4px 1px #329bc2',
"font-family": 'Trebuchet MS,Verdana,Arial,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif',
"line-height": '18px',
});
$sendbtnclone.attr('onmouseover', 'this.style.backgroundColor=\"#053D50\";this.style.color=\"#FFFFFF\";');
$sendbtnclone.attr('onmouseout', 'this.style.backgroundColor=\"#FFFFFF\";this.style.color=\"#397d94\";');
$sendbtnclone.click(function () {
//Ajout d'un en-tête au message avant l'envoi
if ($types_selection.val() !== 'NONE') {
var header = makeBanner(1, $types_selection.val(), 3, true);
var new_msg = header + $msg_textarea.val();
$msg_textarea.val(new_msg);
}
nav.getMessagerie().sendMessage($(db_id));
$sendbtnclone.off("click"); //Empêche d'envoyer un message en double.
});
//Cacher le bouton original
$(db_id + " > .content > .message > .zone_reponse > .btnTxt").css({
visibility: 'hidden', //Contrairement à display:none, le CSS prend en compte l'objet.
});
//Boutons annexes pour ajouter des bouts de texte (pièce jointe, etc).
var $actions_div = $('').appendTo($msg_content);
$actions_div.css({
"z-index": '999999',
position: 'absolute',
top: '347px',
left: '365px',
height: '29px',
width: (params.carousel_facesize * 30).toString() + 'px',
overflow: 'hidden',
border: '1px solid rgba(0, 0, 0,0.1)',
"box-shadow": '0',
});
$actions_div.on('contextmenu', function (e) {
e.stopPropagation();
e.preventDefault();
//On extrait le premier élément de la pile (sans remise)
var fifo = carousel_stockpile.shift();
//On cache cet élément
$('.' + fifo, $actions_div).hide();
//On montre le nouvel élément de tête
$('.' + carousel_stockpile[0], $actions_div).show();
//On ajoute l'ancien premier élément en fin de pile
carousel_stockpile.push(fifo);
return false;
});
//Initialisation d'une pile de gestion des faces du carrousel
var carousel_stockpile = []
for (var idx_carousel = 0; idx_carousel < params.carousel_facesnumber; idx_carousel++) {
carousel_stockpile.push('carousel_' + idx_carousel.toString());
}
for (var idx_btn = 0; idx_btn < params.actionList.length; idx_btn++) {
var dedicatedCarousel_id = "carousel_" + carouselDedicatedFaceIdx(idx_btn);
var action_id = params.actionList[idx_btn];
var $button = $('').appendTo($actions_div);
$button.val(action_id);
$button.addClass(dedicatedCarousel_id);
//On cache tous les boutons à l'initialisation
$button.hide();
$button.click(function () {
var innerBanner = makeBanner(0, $(this).val(), 1, false);
var new_msg = $msg_textarea.val() + innerBanner;
$msg_textarea.val(new_msg);
});
}
$('.carousel_0', $actions_div).show();
$(".cb_annexesfc_" + message_id).css({
"color": "#397D94",
"background-color": "#FFFFFF",
"height": "29px",
"width": "29px",
"font-size": "15px",
"border-color": "#207695",
"font-family": "Arial,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif",
}); //Ajout du CSS des boutons.
$msg_textarea.css({
"font-family": "Verdana,Courier,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif",
}); //CSS Unicode pour la zone d'écriture d'un fil de com'. Nécessite d'être placé ici parce que nique AJAX et jQuery.
}
});
});
console.log("Com'back started: fil de discussion"); //Debug
}
//**********************************************
// FIN FONCTIONS DES INTERFACES MESSAGES
//**********************************************
//**********************************************
// MAIN
//**********************************************
if (!checkData()) {
console.log("DCCB - Com'back : Erreur dans les données");
} else {
$("#zone_messagerie > div.btnTxt.link").click(mainf); //Nouveaux messages
$("li.message").click(filcomf); //1ère initialisation
$("#folder_list > .folder").click(function () { //Actualiser les events sur les li.message lors d'un changement de dossier (ceux-ci semblent être effacés)
$("#liste_messages").ajaxComplete(function () {
$("#liste_messages").unbind('ajaxComplete');
$("li.message").click(filcomf); //Pas besoin de .off() puisque le site a recréé la liste
console.log("DCCB - Changement de dossier: Actualisation des events");
});
});
var lastList = $("#liste_messages > div.content > ul").html();
setInterval(function () { //Fix dégueulasse pour le bug des messages anciens qui n'affichent pas l'interface. + Fix du bug d'actualisation (tentative)
if ($("#liste_messages > div.content > ul").html() != lastList) {
lastList = $("#liste_messages > div.content > ul").html();
$("li.message").off("click", filcomf); //Eviter un doublon d'event
$("li.message").click(filcomf);
console.log("DCCB - Changement HTML de la liste de messages: Actualisation des events");
}
}, 1000);
setInterval(function () { //Fix bien crade pour contacter l'auteur d'une annonce AITL.
$(".annonce > .texte > span:contains(Contacter l'auteur)").click(mainf);
}, 1000);
//Affichage du Unicode via la police Unifont
$("body").css({
"font-family": "Trebuchet MS,Verdana,Arial,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif",
});
$("textarea").css({
"font-family": "Verdana,Courier,Segoe UI Symbol,Unifont,Unifont Upper CSUR,sans-serif",
}); //Ne fonctionne que pour les nouveaux messages à cause d'AJAX. Sera sûrement à adapter si Remedy règle le bug de fermeture des nouveaux messages.
console.log("DCCB - Com'back initialisé!");
}