Can't get the literal 'de' from dateFormat. Example: 8 de Enero de 2016 - jquery-ui-datepicker

I'm trying to get a date with the following format using the jquery ui datepicker: d de MM de yy. Example: 8 de Enero de 2016
I've try with:
dateFormat: 'd \de MM \de yy'
dateFormat: 'd 'de' MM 'de' yy'
but it's not working as I expected, it displays 8 8e Enero 8e 2016 instead of 8 de Enero de 2016.
I have the code in the folling fiddle: http://jsfiddle.net/yewnu9jL/1/
<input type="text" id="datepicker">
$(function(){
$.datepicker.regional["es"] = {
closeText: "Cerrar",
prevText: "<Ant",
nextText: "Sig>",
currentText: "Hoy",
monthNames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
monthNamesShort: ["Ene","Feb","Mar","Abr", "May","Jun","Jul","Ago","Sep", "Oct","Nov","Dic"],
dayNames: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
dayNamesShort: ["Dom","Lun","Mar","Mié","Juv","Vie","Sáb"],
dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","Sá"],
weekHeader: "Sm",
dateFormat: "dd/mm/yy",
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ""
};
$.datepicker.setDefaults($.datepicker.regional["es"]);
$('#datepicker').datepicker({
dateFormat: 'd de MM de yy',
maxDate: 0,
onSelect: function() {
$('#form-fecha').submit();
}
}).datepicker('setDate', new Date());
});
How can I do it?

The simplest approach is to quote the text with single quotes... but to do that as simply as possible, you should use double quotes for the overall value:
dateFormat: "d 'de' MM 'de' yy"

Finally I solved it with:
dateFormat: "d 'de' MM 'de' yy"

Related

flutter send list to another class

Is there a way to send list from class to another class without any button click ?
I tried
MesFavorisOn(arr: Items)
But it gives me error
thanks.
I have a list on class named Prochaines
List<Item> Items = [
Item(
nb: 0,
Vip: true,
Image: "assets/images/watch-gt2-listimage-Matte-Black.png",
TimeLeft: "04h 27m 03s",
ParticpantsPercent: "65%",
Title: "HUAWEI SMART WATCH GT2",
MagasinPrice: "899DT",
DepartPrice: "1 DT",
Remise: "279DT",
ButtonText: "Participez à 6 Dt",
),
Item(
nb: 1,
Vip: false,
Image: "assets/images/xiaomi-redmi-7a.png",
TimeLeft: "04h 27m 03s",
ParticpantsPercent: "20%",
Title: "REDMI 7A BLACK",
MagasinPrice: "4 999 DT",
DepartPrice: "1 DT",
Remise: "40DT",
ButtonText: "Participez gratuiment",
),
Item(
nb: 2,
Vip: false,
Image: "assets/images/xiaomi-redmi-7a.png",
TimeLeft: "04h 27m 03s",
ParticpantsPercent: "65%",
Title: "REDMI 7A BLACK",
MagasinPrice: "4 999 DT",
DepartPrice: "1 DT",
Remise: "40DT",
ButtonText: "Participez gratuiment",
),
];
i wanna send it to a class named MesFavorisOn which has a constructor
List<Item> arr = [];
MesFavorisOn({required this.arr});
You did it right but you have problem in your ui objects . I guess you didn't give fixed height to your ListView

How to use a regex to extract a URL from a JavaScript function?

I tried to learn regex to do this simple task, I tested may patterns using regex101.com editor but with no success.
I want to extract this link (http://mp3lg4.tdf-cdn.com/9243/lag_164753.mp3) from this javascript text, please note that the links doesn't always end with mp3, it could end with anything.
JavaScript Text:
function reqListener () {
var div = document.createElement("div");
div.innerHTML = new XMLSerializer().serializeToString(this.responseXML.documentElement);
document.body.insertBefore(div, document.body.childNodes[0]);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "//static.radio.fr/inc/v2/images/icons/icon-sprites.svg?_=93cbcb9ebf4e2d5276480a0d9c06c653056f0d85");
oReq.send();
var environment = {
develop: false,
production: true,
debug: false
};
if (window.environment && window.environment.production) {
window.console.debug = function() {};
window.console.log = function() {};
}
var require = {
baseUrl: "/inc/v2/js",
config: {
'logger': {
enabled: false,
filter: (window.environment && window.environment.develop) && (window.location.search.indexOf('test_production=') === -1) ? 'debug' : 'info'
},
'components/station/stationService': {
station: {"continent":"Europe","country":"France","logo300x300":"http://static.radio.fr/images/broadcasts/15/43/8275/1/c300.png","city":"Paris","stationType":"radio_station","description":"Virgin Radio est une station de radio musicale privée Française. Elle a été créée en 2008, suite au changement de nom de la radio Europe 2, et fait partie du groupe Lagardère SCA. La radio cible une audience de jeunes adultes grâce aux hits Electro-Rock et Pop qu’elle propose. L’audience de la chaîne dépasse les 2,7 millions d’auditeurs quotidiens.\r\nCette radio FM est disponible dorénavant par internet grâce à ses flux de diffusion MP3 de 64 et 128 kbps.\r\nAprès son passage à vide du début des années 2010, Virgin Radio revient en force avec son son “Pop - Rock - Electro”.","language":["Français"],"logo100x100":"http://static.radio.fr/images/broadcasts/15/43/8275/1/c100.png","streamUrls":[{"streamUrl":"http://mp3lg4.tdf-cdn.com/9243/lag_164753.mp3","loadbalanced":false,"metaDataAvailable":false,"playingMode":"STEREO","type":"STREAM","sampleRate":44100,"streamContentFormat":"MP3","bitRate":128,"idBroadcast":8275,"sortOrder":0,"streamFormat":"ICECAST","id":47609,"streamStatus":"VALID","contentType":"audio/mpeg"},{"streamUrl":"http://mp3lg3.scdn.arkena.com/10490/virginradio.mp3","loadbalanced":false,"metaDataAvailable":false,"playingMode":"STEREO","type":"STREAM","sampleRate":44100,"streamContentFormat":"MP3","bitRate":64,"idBroadcast":8275,"sortOrder":1,"streamFormat":"ICECAST","id":57003,"streamStatus":"VALID","contentType":"audio/mpeg"}],"playable":"PLAYABLE","genres":["Pop","Rock"],"logo175x175":"http://static.radio.fr/images/broadcasts/15/43/8275/1/c175.png","adParams":{"st_city":["Paris"],"languages":["Français"],"genres":["Pop","Rock"],"topics":[],"st_cont":["Europe"],"station":["virginradio"],"family":["Virgin"],"st_region":[],"type":["radio_station"],"st_country":["France"]},"alias":"Virgin;;Virgin Radio;;103.5;;103,5;Pop Rock Electro","rank":8,"id":8275,"types":["Radio FM"],"website":"http://www.virginradio.fr/","topics":[],"shortDescription":"Virgin Radio propose d'écouter le meilleur des sons “Pop - Rock - Electro”","logo44x44":"http://static.radio.fr/images/broadcasts/15/43/8275/1/c44.png","numberEpisodes":0,"podcastUrls":[],"hideReferer":false,"name":"Virgin Radio Officiel","subdomain":"virginradio","lastModified":"2018-05-10T03:18:17.000Z","family":["Virgin"],"region":"","frequencies":[{"area":"Abbeville","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2299,"frequency":99.6},{"area":"Agen","broadcastId":8275,"frequencyType":"FM","cityId":4416,"id":2317,"frequency":89.8},{"area":"Ajaccio","broadcastId":8275,"frequencyType":"FM","cityId":165,"id":2370,"frequency":99.8},{"area":"Alençon","broadcastId":8275,"frequencyType":"FM","cityId":2956,"id":2424,"frequency":100.9},{"area":"Allos","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2465,"frequency":105.4},{"area":"Amiens","broadcastId":8275,"frequencyType":"FM","cityId":185,"id":2502,"frequency":93.6},{"area":"Angers","broadcastId":8275,"frequencyType":"FM","cityId":193,"id":2542,"frequency":94.8},{"area":"Angoulême","broadcastId":8275,"frequencyType":"FM","cityId":1975,"id":2564,"frequency":100.3},{"area":"Annecy","broadcastId":8275,"frequencyType":"FM","cityId":198,"id":2587,"frequency":100.5},{"area":"Annemasse","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2594,"frequency":90.1},{"area":"Arcachon","broadcastId":8275,"frequencyType":"FM","cityId":5789,"id":2644,"frequency":94.1},{"area":"Argentan","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2668,"frequency":96.1},{"area":"Arras","broadcastId":8275,"frequencyType":"FM","cityId":2721,"id":2708,"frequency":91.9},{"area":"Aubenas","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2759,"frequency":106.9},{"area":"Aubusson","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2783,"frequency":101.8},{"area":"Auch","broadcastId":8275,"frequencyType":"FM","cityId":230,"id":2799,"frequency":100.2},{"area":"Aurillac","broadcastId":8275,"frequencyType":"FM","cityId":237,"id":2845,"frequency":89},{"area":"Autun","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2861,"frequency":87.6},{"area":"Auxerre","broadcastId":8275,"frequencyType":"FM","cityId":240,"id":2881,"frequency":98.9},{"area":"Avallon","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2904,"frequency":90.8},{"area":"Avignon","broadcastId":8275,"frequencyType":"FM","cityId":241,"id":2927,"frequency":89},{"area":"Avranches","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":2938,"frequency":89},{"area":"Bar-le-Duc","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3007,"frequency":102},{"area":"Barcelonnette","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3027,"frequency":94},{"area":"Bastia","broadcastId":8275,"frequencyType":"FM","cityId":1962,"id":3066,"frequency":107.2},{"area":"Bayeux","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3078,"frequency":101.7},{"area":"Bayonne","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3095,"frequency":97.7},{"area":"Beauvais","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3129,"frequency":103.5},{"area":"Belfort","broadcastId":8275,"frequencyType":"FM","cityId":303,"id":3163,"frequency":98.4},{"area":"Bellegarde-sur-Valserine","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3186,"frequency":103.1},{"area":"Belley","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3199,"frequency":96.1},{"area":"Bergerac","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3217,"frequency":93.2},{"area":"Besançon","broadcastId":8275,"frequencyType":"FM","cityId":324,"id":3261,"frequency":100.4},{"area":"Béthune","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3276,"frequency":90.1},{"area":"Blois","broadcastId":8275,"frequencyType":"FM","cityId":344,"id":3325,"frequency":97.2},{"area":"Bonnières-sur-Seine","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3358,"frequency":88.8},{"area":"Bordeaux","broadcastId":8275,"frequencyType":"FM","cityId":360,"id":3387,"frequency":94.3},{"area":"Boulogne-sur-Mer","broadcastId":8275,"frequencyType":"FM","cityId":365,"id":3419,"frequency":91.5},{"area":"Bourg-en-Bresse","broadcastId":8275,"frequencyType":"FM","cityId":1991,"id":3442,"frequency":96.3},{"area":"Bourges","broadcastId":8275,"frequencyType":"FM","cityId":366,"id":3475,"frequency":99.6},{"area":"Brest","broadcastId":8275,"frequencyType":"FM","cityId":379,"id":3526,"frequency":96.5},{"area":"Briançon","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3554,"frequency":96},{"area":"Brioude","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3577,"frequency":89.8},{"area":"Brive-la-Gaillarde","broadcastId":8275,"frequencyType":"FM","cityId":1996,"id":3600,"frequency":88.1},{"area":"Caen","broadcastId":8275,"frequencyType":"FM","cityId":413,"id":3628,"frequency":96.8},{"area":"Cahors","broadcastId":8275,"frequencyType":"FM","cityId":10713,"id":3647,"frequency":96.8},{"area":"Calvi","broadcastId":8275,"frequencyType":"FM","cityId":10711,"id":3686,"frequency":106.7},{"area":"Cannes","broadcastId":8275,"frequencyType":"FM","cityId":423,"id":3717,"frequency":88.1},{"area":"Carcassonne","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3753,"frequency":96},{"area":"Carhaix-Plouguer","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3756,"frequency":106.8},{"area":"Carpentras","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3766,"frequency":103.3},{"area":"Castelnaudary","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3789,"frequency":102.3},{"area":"Castres","broadcastId":8275,"frequencyType":"FM","cityId":440,"id":3804,"frequency":102.4},{"area":"Cauterets","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3810,"frequency":94.1},{"area":"Chalon-sur-Saône","broadcastId":8275,"frequencyType":"FM","cityId":8551,"id":3872,"frequency":97.8},{"area":"Châlons-en-Champagne","broadcastId":8275,"frequencyType":"FM","cityId":11051,"id":3893,"frequency":95.5},{"area":"Chamonix","broadcastId":8275,"frequencyType":"FM","cityId":1986,"id":3939,"frequency":98.3},{"area":"Charleville-Mézières","broadcastId":8275,"frequencyType":"FM","cityId":459,"id":3962,"frequency":99.9},{"area":"Charolles","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3969,"frequency":95.1},{"area":"Chartres","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":3987,"frequency":103.3},{"area":"Château-du-Loir","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":4002,"frequency":103.7},{"area":"Château-Thierry","broadcastId":8275,"frequencyType":"FM","cityId":0,"id":4021,"frequency":102.4},{"area":"Châteaubriant","broadcastId":8275,"frequencyType":"FM","cityId":6200,"id":4030,"frequency":88.6},{"area":"…
I want to apply this regex pattern in this code:
Public Function regExInput(myPatern As String, myInput As String) As String
Dim strPattern As String: strPattern = myPatern
Dim strReplace As String: strReplace = ""
Dim regEx As New RegExp
regExInput = myInput
If strPattern <> "" Then
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.Test(regExInput) Then
MsgBox (regEx.Replace(regExInput, strReplace))
Else
MsgBox ("Not matched")
End If
End If
End Function
Here is a regex that should do what you want:
/{\s*["']\s*streamUrl\s*["']\s*:\s*["']\s*(http[^"']+)/
Try it out here:
https://regex101.com/r/sAXaOE/1
The match is in Group 1 (look under match info on the right).
And in VBA it might be something like this:
Dim myRegExp, myMatches, myMatch
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = "{\s*[""']\s*streamUrl\s*[""']\s*:\s*[""']\s*(http[^""']+)"
Set myMatches = myRegExp.Execute(SubjectString)
For Each myMatch In myMatches
For I = 1 To myMatch.SubMatches.Count
'backreference text: myMatch.SubMatches(I-1)
Next
Next

Removing tabs and newlines with regular expressions issue

Regex: remove TAB \t tab var regex = /\s[A-Za-z]+/g do not work
selectFirstEmptyRow function () {
var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/---ID-----edit#gid=395019283");
var date = Utilities.formatDate(new Date() ss.getSpreadsheetTimeZone(), "d" + "- 0" + "M" + "-" + "y");
var sheet = ss.getSheetByName(date);
var regex = /[^0-9]*/g; // extract the string before digital channel
var doc = DocumentApp.getActiveDocument().getText()
var result = RegExp.exec(doc);
// * Extract white \ s match any white space character [\ r \ n \ t \ f]
var regex = /\s[A-Za-z]+/g; // extract the spaces in front of and behind "Name Surname"
RegExp.exec var result = (result);
sheet.setActiveSelection(sheet getRange ("B" + getFirstEmptyRowWholeRow())).setValue(result);
Logger.log(result.getText);
I can not remove a tab \t and newlines \n with the syntax
var regex = /\s[A-Za-z]+/g;
There remains a line preceding the string "Name Surname" when I insert it into the Spreadsheet.
After analysis it appears that the concerns are the tabs \t, it is not deleted.
I try to extract from a "text document" a string (which is always at the top of the document until the first numerical chain) and put in a "spreadsheet document 'Spreadsheet at the site of the first box vacuum column "B".
The handling of this string in the same "text document" did not cause me any problem for the update of age with the syntax
var regex = /[^0-9]*/g; // extract the string before a digit
The string from the document:
var str = '\n\n\n\Surname NAME\n34 Years\n\n......... .. "
Here is the complete script:
/// var result = result.replace(/^[\r\n]+|.|[\r\n]+$/g, "");// extrait les espaces devant et derriere Nom Prenom GAS D'ONT WORK
///// Facturer Acte ////
function FacturerActe() {
var regexp = /[^0-9]*/g ;// extrait la chaine de caractère avant la chaine numérique
var doc = DocumentApp.getActiveDocument().getText();
var result = regexp.exec(doc);
var PrenomNom = new RegExp(result,"gm");
Logger.log(PrenomNom.getText);
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/19rWt8JEGbYM29-W4tI2gj6peXR3hjvj51FxDFt2gFkU/edit#gid=395019283");
var date = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone() , "d"+"-"+"mm"+"-"+"y");
var sheet = ss.getSheetByName(date);
ss.setActiveSheet(sheet);
var cell = sheet.getRange("A40");
cell.setNote("Aujourd'hui est un nouveau jour ! Nous sommes le :"+date);
selectFirstEmptyRow(); // Place le curseur sur la premiere ligne Vide de la Colonne "B"
}
//* Placez le curseur de l'utilisateur actuel dans la première cellule de la première ligne vide.
//*
function selectFirstEmptyRow() {
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/19rWt8JEGbYM29-W4tI2gj6peXR3hjvj51FxDFt2gFkU/edit#gid=395019283");
var date = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone() , "d"+"-"+"mm"+"-"+"y");
var sheet = ss.getSheetByName(date);
var regexp = /[^0-9]*/g ;// extrait la chaine de caractère avant la chaine numérique
var doc = DocumentApp.getActiveDocument().getText();
var result = regexp.exec(doc);
var regexp = /\s[A-Z a-z]+/g ;// extrait les espaces devant et derriere Nom Prenom
//* Extrait les blancs
var result = regexp.exec(result);
/// var result = result.replace(/^[\r\n]+|\.|[\r\n]+$/g, "");// extrait les espaces devant et derriere Nom Prenom GAS D'ONT WORK
sheet . setActiveSelection (sheet.getRange("B" + getFirstEmptyRowWholeRow())).setValue(result);
Logger.log(result.getText);
}
/**
* " Trouve la première ligne vide la Colonne "B" " de checker de Mogsdad.
*/
function getFirstEmptyRowWholeRow () {
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/19rWt8JEGbYM29-W4tI2gj6peXR3hjvj51FxDFt2gFkU/edit#gid=395019283");
var date = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), "d"+"-"+"mm"+"-"+"y");
var sheet = ss.getSheetByName(date);
var range = sheet.getDataRange();
var values = range.getValues();
var row = 1 ;
for (var row = 1; row < values.length; row ++) {
if (!values[ row ].join("")) break ;
}
return (row + 1);
}
///// Fin Facturer Acte ////
As per Using regular expressions to search for data in your spreadsheet, you can match any newline and tab using [\t\r\n] pattern. Since you have more than one at a stretch, you should add a quantificator +. Also, since you are looking to capture 2 lines, you should add the [\t\r\n]+ to the pattern, too.
This will let you capture the 2 lines with Name and Age in between the newlines:
[\r\n\t]+(.+[\r\n\t]+.+)[\t\r\n]+
And you can later remove the newline characters:
var result = str.replace(/[\r\n\t]+(.+[\r\n\t]+.+)[\t\r\n]+/, '$1');
Here is what it looks like on regex101.com.
alert("'" + "\n\t\n\nNew line\n\t\nSecond 34 line\n\t\n....".replace(/[\r\n\t]+(.+[\r\n\t]+.+)[\t\r\n]+/, '$1') + "'")

bootstrap3 datetimepicker cannot load the locale

(Using Rails 4 ) I am trying to display the bootstrap3 datetimepicker in the current locale , it's working fine in english , but when I try to insert the require locale file in the application.js ( as stated in the doc) , I get an error :
[Error] TypeError: undefined is not an object (evaluating '$.fn.datetimepicker.dates')
(anonymous function) (application.js, line 15026)
in my assets, the application.js , I have :
//= require jquery
//= require jquery_ujs
//= require bootstrap.min
//= require moment
//= require bootstrap-datetimepicker
//= require pickers
// You may include any languages (optional)
//= require locales/bootstrap-datetimepicker.fr
the bootstrap-datetimepicker.fr.js file is the following :
;(function($){
$.fn.datetimepicker.dates['fr'] = {
days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"],
daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"],
daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"],
months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"],
today: "Aujourd'hui"
};
}(jQuery));
maybe this javascript content is not right... but why ? or is there another issue ?
problem is not with the datetimepicker as it's displayed correctly in english ( default)
withe this latest version, using moments.js ... I SHOUDL use the moments locales !!!
so my bootstrap-datetimepicker.fr.js should be :
// moment.js locale configuration
// locale : french (fr)
// author : John Fischer : https://github.com/jfroffice
(function (factory) {
if (typeof define === 'function' && define.amd) {
define(['moment'], factory); // AMD
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
factory(window.moment); // Browser global
}
}(function (moment) {
return moment.defineLocale('fr', {
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
LLLL : 'dddd D MMMM YYYY LT'
},
calendar : {
sameDay: '[Aujourd\'hui à] LT',
nextDay: '[Demain à] LT',
nextWeek: 'dddd [à] LT',
lastDay: '[Hier à] LT',
lastWeek: 'dddd [dernier à] LT',
sameElse: 'L'
},
relativeTime : {
future : 'dans %s',
past : 'il y a %s',
s : 'quelques secondes',
m : 'une minute',
mm : '%d minutes',
h : 'une heure',
hh : '%d heures',
d : 'un jour',
dd : '%d jours',
M : 'un mois',
MM : '%d mois',
y : 'un an',
yy : '%d ans'
},
ordinal : function (number) {
return number + (number === 1 ? 'er' : '');
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
}));

Rails params[:id] in external coffee script

I try to use params[:id] in an external coffee like that :
url: <%= params[:id] %> + "/events/" + event._id
But I have an error :
SyntaxError: [stdin]:145:22: unexpected newline
My file is named clubs.js.coffee.erb
I translate my code from js to coffee from the website js2coffee.com so maybe there is some mistake.
$(document).ready ->
# Fonction d'envoi d'une requête de mise à jour d'un évènement
update_function = (event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) ->
$.ajax
url: <% #club_id %> + "/events/" + event._id # prb d'url à modifier
dataType: "json"
type: "PUT"
data:
event: # re-use event's data
title: event.title
start: event.start
end: event.end
allDay: event.allDay
club_id: 1
return
#fin update_function
# Gestion du dialogue modal d'édition d'un évènement
edit_pop_up = (data) ->
$("#event-dlg").html(data).dialog
height: 400 # Taille du dialogue
width: 500
resizable: false # Pas de redimensionnement
title: "Informations" # Un titre
modal: true # Dialogue modal => interrompt les autres interractions
buttons: # Le bouton de validation
Enregistrer: ->
$("#event_form").submit() # Envoi les données du formulaire
$(this).dialog "close" # Ferme le dialogue
$("#calendar").fullCalendar "unselect" # efface le helper de sélection du créneau horaire
$("#calendar").fullCalendar "refetchEvents" # Réaffiche le calendrier
return
Supprimer: ->
if confirm("Etes vous certain de vouloir supprimer cet évènement?") # Demande de confirmation
$.ajax #Envoi de la requête de suppression
url: <% #club_id %> + "/events/" + selected_event._id # prb d'url à modifier
dataType: "json"
type: "DELETE"
$(this).dialog "close" # Ferme le dialogue
$("#calendar").fullCalendar "unselect" # efface le helper de sélection du créneau horaire
$("#calendar").fullCalendar "refetchEvents" # Réaffiche le calendrier
return
$(".ui-dialog-titlebar-close").html "X"
return
calendar = $("#calendar").fullCalendar(
# paramètres de base
# Parlons Français
monthNames: [
"Janvier"
"Février"
"Mars"
"Avril"
"Mai"
"Juin"
"Juillet"
"Août"
"Septembre"
"Octobre"
"Novembre"
"Décembre"
]
monthNamesShort: [
"janv."
"févr."
"mars"
"avr."
"mai"
"juin"
"juil."
"août"
"sept."
"oct."
"nov."
"déc."
]
dayNames: [
"Dimanche"
"Lundi"
"Mardi"
"Mercredi"
"Jeudi"
"Vendredi"
"Samedi"
]
dayNamesShort: [
"Dim"
"Lun"
"Mar"
"Mer"
"Jeu"
"Ven"
"Sam"
]
titleFormat:
month: "MMMM yyyy"
week: "d[ MMMM][ yyyy]{ - d MMMM yyyy}"
day: "dddd dd MMM yyyy"
columnFormat:
month: "ddd"
week: "ddd dd/M"
day: "dddd dd/M"
axisFormat: "HH:mm"
timeFormat:
"": "HH:mm"
agenda: "HH:mm{ - HH:mm}"
allDayText: "Journée entière"
buttonText:
today: "aujourd'hui"
day: "jour"
week: "semaine"
month: "mois"
firstDay: 1 #premier jour de la semaine => Lundi
defaultView: "agendaWeek" # par défaut on affiche un agenda semaine
header: # Mise en forme de l entete
left: "prevYear,prev,next,nextYear,today" # à gauche: les boutons de navigation
center: "title" # au milieu: le titre
right: "month,agendaWeek,agendaDay" # à droite: les boutons de type de vue
editable: true #permettre de modifier les évenements déjà créés
selectable: true #permettre de sélectionner des évenements
events: (<% #club_id %> + "/events.json") # source de données
#callbacks
selectHelper: true
select: (start, end, allDay) -> #création évenement
title = prompt("Titre:")
if title
$.post (<% #club_id %> + "/events.json"), # your url
event:
title: title
start: start
end: end
allDay: allDay
club_id: <% #club_id %>
editable: true
calendar.fullCalendar "unselect"
calendar.fullCalendar "refetchEvents"
return
#Déplacement d'un evenement par glisser/déposer
eventDrop: update_function
#Redimensionnement d'un evenement
eventResize: update_function
# Gestion double click
eventRender: (event, element) ->
element.bind "dblclick", ->
$.ajax
url: <% #club_id %> + "/events/" + event._id + "/edit.js" # prb d'url à modifier
dataType: "html" # récupère le code html du formulaire
type: "GET"
success: edit_pop_up # ouverture du dialogue modal
error: (xhRequest, ErrorText, thrownError) ->
alert "Error... " + ErrorText + " " + thrownError
return
return
return
)
return
#End FullCalendar