Skip to content
Permalink
Browse files

- WIP : Ajout d'autres types d'options pour les modules

  • Loading branch information...
dorian-marchal committed Aug 22, 2014
1 parent 58ce176 commit b2c868ca6e5d54a8b037777f7a7ae5b1866996e1
@@ -0,0 +1,42 @@
"use strict";
/* jshint multistr: true */
/* jshint newcap: false */

/**
* Représente une dropdownlist de SpawnKill, options possibles :
* value (string) : valeur par défaut
* values Object : Liste de valeurs de la forme { value: "Label", value2: "Label 2" }
* select : Options jQuery du select
* + options habituelles d'un objet jQuery
*/
SK.DropdownList = function(options) {

options = options || {};
var defaultValue = options.value || false;
delete options.value;
var values = options.values || {};
delete options.values;
var selectOptions = options.select || {};
delete options.select;

var $dropdown = $("<span>", options);
$dropdown.addClass("sk-dropdown");

var $select = $("<select>", selectOptions);

$select
.addClass("sk-dropdown-select")
.prop("checked", defaultValue);

for(var value in values) {
$select.append($("<option>", {
value: value,
text: values[value]
}));
}

$dropdown.append($select);

return $dropdown;

};
@@ -4,7 +4,7 @@

/**
* Représente un toggle ON/OFF de SpawnKill, options possibles :
* value : valeur par défaut
* value (boolean) : valeur par défaut
* options d'un objet jQuery
*/
SK.SlideToggle = function(options) {

Large diffs are not rendered by default.

@@ -14,6 +14,7 @@
// @require Button.js?v1.11.4
// @require SlideToggle.js?v1.11.4
// @require Modal.js?v1.11.4
// @require DropdownList.js?v1.11.4
// @require modules/Module.js?v1.11.4
// @require modules/StartSpawnKill.js?v1.11.4
// @require modules/Settings.js?v1.11.4
@@ -178,6 +178,7 @@ SK.moduleConstructors.AutoUpdate.prototype.settings = {
enableBugFixAlert: {
title: "Notification pour les corrections de bug",
description: "Quand cette option est activée, une notification apparait si une correction de bug est en ligne.",
type: "boolean",
default: false,
}
};
@@ -538,31 +538,37 @@ SK.moduleConstructors.EmbedMedia.prototype.settings = {
optinEmbed: {
title: "Masquer les contenus par défaut",
description: "Cache le contenu par défaut, il faut d'abord cliquer sur le bouton pour le faire apparaître.",
type: "boolean",
default: false,
},
embedVideos: {
title: "Intégration des vidéos",
description: "Intégre les vidéos Youtube, DailyMotion et Vimeo aux posts.",
type: "boolean",
default: true,
},
embedImages: {
title: "Intégration des images",
description: "Intégre les images PNG, JPG et GIF aux posts.",
type: "boolean",
default: true,
},
embedSurveys: {
title: "Intégration des sondages",
description: "Intégre les sondages Pixule et Sondage.io aux posts.",
type: "boolean",
default: true,
},
embedRecords: {
title: "Intégration des Vocaroos",
description: "Intégre les enregistrements Vocaroo aux posts.",
type: "boolean",
default: true,
},
embedSpawnKill: {
title: "Bouton de téléchargement SpawnKill",
description: "Affiche un bouton à la place du lien de téléchargement SpawnKill",
type: "boolean",
default: true,
}
};
@@ -400,41 +400,49 @@ SK.moduleConstructors.InfosPseudo.prototype.settings = {
enableAvatar: {
title: "Affichage des avatars",
description: "Affiche les avatars à gauche des posts à la lecture d'un topic.",
type: "boolean",
default: true,
},
enableRank: {
title: "Affichage des rangs",
description: "Affiche le rang de l'auteur sur les posts à la lecture d'un topic.",
type: "boolean",
default: true,
},
enableMP: {
title: "Bouton de MP",
description: "Permet d'envoyer un MP à un utilisateur directement depuis un post.",
type: "boolean",
default: true,
},
enableSex: {
title: "Affichage du sexe de l'auteur",
description: "Affiche une photo de la... Hmm...Pardon. Change le style du bouton de CDV d'un auteur en fonction de son sexe.",
type: "boolean",
default: true,
},
enablePermalink: {
title: "Bouton Permalien",
description: "Ajoute un bouton permettant de copier directement le permalien d'un post.",
type: "boolean",
default: true,
},
enableAlert: {
title: "Bouton d'avertissement",
description: "Ajoute un bouton permettant d'avertir un administrateur.",
type: "boolean",
default: true,
},
enablePermalinkAnchor: {
title: "Bouton ancre Permalien",
description: "Ajoute un bouton ancre du permalien d'un post.",
type: "boolean",
default: false,
},
modalProfile: {
title: "Charger la CDV dans une modale",
description: "Affiche le profil de l'auteur dans une fenêtre modale au clic.",
type: "boolean",
default: true,
}
};
@@ -111,6 +111,7 @@ SK.moduleConstructors.LastPage.prototype.settings = {
showIndicator: {
title: "Ajout d'un indicateur",
description: "Ajout d'une flèche à droite de l'image du topic pour indiquer l'intéractivité.",
type: "boolean",
default: true,
}
};
@@ -383,12 +383,21 @@ SK.moduleConstructors.Quote.prototype.settings = {
htmlQuote: {
title: "Formatage des citations",
description: "Améliore le style des citations pour qu'elles se détachent plus du message.",
type: "boolean",
default: true,
},
quoteButton: {
title: "Bouton de citation",
description: "Ajoute un bouton de citation permettant de répondre à un post.",
type: "boolean",
default: true,
},
quoteType: {
title: "Type de citation",
description: "Chopix du type de citation en mode texte (citations que verront ceux qui n'ont pas SpawnKill).",
type: "select",
options: { spawnkill: "SpawnKill", turboforum: "JVC TurboForum", jvcmaster: "JVC Master" },
default: "spawnkill",
}
};

@@ -97,6 +97,13 @@ SK.moduleConstructors.Settings.prototype.getModal = function() {

SK.moduleConstructors.Settings.prototype.getSettingsUI = function() {

var getOptionStringValue = function(option) {
if(option.type === "boolean") {
return option.value ? "1" : "0";
}
return option.value;
};

var ui = "";
ui += "<span class='settings-spawnkill-version' >" + SK.VERSION + "</span>";
ui += "<ul id='settings-form' >";
@@ -110,7 +117,7 @@ SK.moduleConstructors.Settings.prototype.getSettingsUI = function() {
ui += "<ul class='options fold' >";
for(var settingKey in module.settings) {
var setting = module.settings[settingKey];
ui += "<li class='option' title='" + SK.Util.htmlEncode(setting.description) + "' data-value='" + (setting.value ? "1" : "0") + "' data-id='" + settingKey + "' >";
ui += "<li class='option' title='" + SK.Util.htmlEncode(setting.description) + "' data-type='" + setting.type + "' data-value='" + getOptionStringValue(setting) + "' data-id='" + settingKey + "' >";
ui += SK.Util.htmlEncode(module.settings[settingKey].title);
ui += "</li>";
}
@@ -162,9 +169,20 @@ SK.moduleConstructors.Settings.prototype.getSettingsUI = function() {
//Slide-toggles Options
$setting.find(".option").each(function() {
var $option = $(this);
$option.append(new SK.SlideToggle({
value: $option.attr("data-value") === "1",
}));
var value = $option.attr("data-value");
var type = $option.attr("data-type");

if(type === "boolean") {
$option.append(new SK.SlideToggle({
value: value === "1",
}));
}
else if(type === "select") {
$option.append(new SK.DropdownList({
values: { test: "Test", toast: "Toast", otherItem: "Autre choix" },
value: value
}));
}
});
});

@@ -264,7 +282,15 @@ SK.moduleConstructors.Settings.prototype.getCss = function() {
#settings-form .slide-toggle {\
position: absolute;\
right: 34px;\
top: 5px; \
top: 5px;\
}\
#settings-form .option .slide-toggle {\
right: 6px;\
}\
#settings-form .option .sk-dropdown {\
position: absolute;\
top: 6px;\
right: 6px;\
}\
.subsettings-button {\
position: absolute !important;\
@@ -471,6 +471,69 @@ SK.moduleConstructors.StartSpawnKill.prototype.correctSplitPost = function() {
.slide-toggle :disabled + .slide-toggle-style:after {\
background-color: #D1D1D1;\
}\
.sk-dropdown-select:-moz-focusring {\
color: transparent;\
text-shadow: 0 0 0 #FFF;\
}\
.sk-dropdown-select:focus {\
outline: 0;\
}\
.sk-dropdown-select {\
font-size: 12px;\
padding: 2px;\
margin: 0;\
box-shadow: 0px 0px 2px 0px #BC3800 inset;\
}\
.sk-dropdown-select {\
background-color: #FF7B3B;\
color: #fff;\
}\
.sk-dropdown {\
position: relative;\
display: inline-block;\
vertical-align: middle;\
}\
.sk-dropdown-select {\
padding-right: 30px;\
border: 0;\
border-radius: 3px;\
-webkit-appearance: none;\
-moz-appearance: none;\
appearance: none; \
}\
.sk-dropdown::before,\
.sk-dropdown::after {\
content: \"\";\
position: absolute;\
pointer-events: none;\
}\
.sk-dropdown::after {\
content: \"\";\
right: 7px;\
top: 9px;\
border: solid 4px transparent;\
border-top-color: rgba(0, 0, 0, 0.3);\
}\
.sk-dropdown::before {\
width: 22px;\
right: 0;\
top: 0;\
bottom: 0;\
border-radius: 0 3px 3px 0;\
}\
.sk-dropdown.disabled {\
opacity: 0.8;\
}\
.sk-dropdown::before {\
background-color: #FFF;\
box-shadow: -2px 0px 2px -2px rgba(0, 0, 0, 0.3);\
}\
.sk-dropdown:hover::before {\
background-color: #EEE;\
}\
.sk-dropdown::after {\
color: rgba(0, 0, 0, .4);\
}\
";

return css;
@@ -145,6 +145,7 @@ SK.moduleConstructors.WarnOnNewPost.prototype.settings = {
playSoundOnNewPost: {
title: "Jouer un son quand un nouveau post est ajouté",
description: "Joue un son de notification quand un post est ajouté au topic après le chargement de la page.",
type: "boolean",
default: true,
}
};
@@ -1,4 +1,10 @@
### v1.11.4
- Affichage des plugins dans la preview du message
- Ajouter d'autres types de paramètres dans la config
- Mettre à juor la doc
- getSetting
- Panneau de paramètrage
- Sauvegarde des paramètres
- Valeurs par défaut
- Ajouter une option de choix pour la position du rang
- Choix du type de citations
@@ -10,6 +10,8 @@ ln -sv /media/data/www/spawnkill/Author.js /home/dorian/.mozilla/firefox/8ned6ue
ln -sv /media/data/www/spawnkill/Button.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/SlideToggle.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/Modal.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/DropdownList.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/

ln -sv /media/data/www/spawnkill/modules/Module.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/modules/StartSpawnKill.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/modules/QuickResponse.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
@@ -23,6 +25,7 @@ ln -sv /media/data/www/spawnkill/modules/EmbedMedia.js /home/dorian/.mozilla/fir
ln -sv /media/data/www/spawnkill/modules/WarnOnNewPost.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/modules/AutoUpdate.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/modules/Test.js /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/

ln -sv /media/data/www/spawnkill/images/ban.png /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/images/close.png /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/
ln -sv /media/data/www/spawnkill/images/topic_new.gif /home/dorian/.mozilla/firefox/8ned6ue0.default/gm_scripts/JVC_SpawnKill/

0 comments on commit b2c868c

Please sign in to comment.
You can’t perform that action at this time.