Updating from 1.11.x, ckeditor plugins

pull/2881/head
Julio Montoya 6 years ago
parent e65d7f8e83
commit 2e1607c206
  1. 2
      main/inc/lib/javascript/ckeditor/plugins/image2_chamilo/dialogs/image2_chamilo.js
  2. 4
      main/inc/lib/javascript/ckeditor/plugins/image2_chamilo/plugin.js
  3. 388
      main/inc/lib/javascript/ckeditor/plugins/qmarkersrolls/dialogs/qmarkersrolls.js
  4. BIN
      main/inc/lib/javascript/ckeditor/plugins/qmarkersrolls/images/icon.png
  5. 19
      main/inc/lib/javascript/ckeditor/plugins/qmarkersrolls/lang/en.js
  6. 20
      main/inc/lib/javascript/ckeditor/plugins/qmarkersrolls/lang/es.js
  7. 51
      main/inc/lib/javascript/ckeditor/plugins/qmarkersrolls/plugin.js
  8. 2
      main/inc/lib/javascript/ckeditor/plugins/video/dialogs/video.js
  9. 2
      main/inc/lib/javascript/ckeditor/plugins/video/plugin.js
  10. 3
      main/inc/lib/javascript/ckeditor/plugins/wordcount/css/wordcount.css
  11. 11
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/ca.js
  12. 11
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/de.js
  13. 11
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/en.js
  14. 11
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/es.js
  15. 9
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/fr.js
  16. 12
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/it.js
  17. 10
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/jp.js
  18. 8
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/no.js
  19. 11
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/pl.js
  20. 10
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/pt-BR.js
  21. 11
      main/inc/lib/javascript/ckeditor/plugins/wordcount/lang/ru.js
  22. 211
      main/inc/lib/javascript/ckeditor/plugins/wordcount/plugin.js
  23. BIN
      main/inc/lib/javascript/ckeditor/plugins/youtube/images/icon-hdpi.png
  24. BIN
      main/inc/lib/javascript/ckeditor/plugins/youtube/images/icon.png
  25. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/ar.js
  26. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/cs.js
  27. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/de.js
  28. 23
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/el.js
  29. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/en.js
  30. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/es.js
  31. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/et.js
  32. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/eu.js
  33. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/fi.js
  34. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/fr.js
  35. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/he.js
  36. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/hu.js
  37. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/it.js
  38. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/ja.js
  39. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/ko.js
  40. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/nb.js
  41. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/nl.js
  42. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/nn.js
  43. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/pl.js
  44. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/pt-br.js
  45. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/pt.js
  46. 25
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/ru.js
  47. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/sk.js
  48. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/tr.js
  49. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/vi.js
  50. 24
      main/inc/lib/javascript/ckeditor/plugins/youtube/lang/zh.js
  51. 448
      main/inc/lib/javascript/ckeditor/plugins/youtube/plugin.js
  52. 1
      src/ThemeBundle/Resources/views/Layout/legacy_js.html.twig
  53. 201
      tests/datafiller/users_import_big_example.csv

@ -551,7 +551,7 @@ CKEDITOR.dialog.add( 'image2_chamilo', function( editor ) {
img = widget.element.$.firstChild;
}
img.className += ' img-fluid ';
img.className += ' img-responsive ';
widget.setData( 'isResponsive', this.getValue() );
}
}

@ -347,7 +347,7 @@
this.parts.image.setAttributes( {
src: this.data.src,
class: this.data.isResponsive ? 'img-fluid' : '',
class: this.data.isResponsive ? 'img-responsive' : '',
// This internal is required by the editor.
'data-cke-saved-src': this.data.src,
@ -394,7 +394,7 @@
alt: image.getAttribute( 'alt' ) || '',
width: image.getAttribute( 'width' ) || '',
height: image.getAttribute( 'height' ) || '',
isResponsive: !!image.$.className.match(/img-fluid/i),
isResponsive: !!image.$.className.match(/img-responsive/i),
// Lock ratio is on by default (#10833).
lock: this.ready ? helpers.checkHasNaturalRatio( image ) : true,
borderWidth: !this.parts.caption ? image.getStyle('border-width') : '',

@ -0,0 +1,388 @@
/**
* Plugin created by BeezNest Latino S.A.C
*
* For licensing terms, see /license.txt
*
* This plugin allows set quizzes markers in video with mediaelement.
*/
CKEDITOR.dialog.add('qMarkersrollsDialog', function (editor) {
var lang = editor.lang.qmarkersrolls,
player = null,
pgbProgress = null,
fakeImage = null,
videoNode = null,
quizzesList = [],
currentMarkers = [],
colorDialog = editor.plugins.colordialog;
function initPlayer(selectedElement) {
fakeImage = selectedElement;
if (!fakeImage ||
!fakeImage.data( 'cke-real-element-type' ) ||
fakeImage.data( 'cke-real-element-type' ) != 'video'
) {
return;
}
videoNode = editor.restoreRealElement(fakeImage);
var sourcesList = videoNode.getElementsByTag('source', '');
if (sourcesList.count() === 0) {
sourcesList = videoNode.getElementsByTag('source', 'cke');
}
if (sourcesList.count() === 0) {
return;
}
var sourceNode = sourcesList.getItem(0);
if (!sourceNode) {
return;
}
pgbProgress = document.getElementById('ck-qmr-progress');
pgbProgress.value = 0;
pgbProgress.min = 0;
pgbProgress.step = 1;
pgbProgress.onchange = function () {
player.currentTime = this.value;
document.getElementById('ck-qmr-current-time').textContent = encodeTime(this.value);
};
var playerContainer = document.getElementById('ck-qmr-player-container');
playerContainer.innerHTML = '';
player = document.createElement('video');
player.className = 'skip';
player.controls = false;
player.style.maxWidth = '100%';
player.style.minWidth = '100%';
player.onloadedmetadata = function () {
pgbProgress.max = Math.floor(player.duration);
playerContainer.appendChild(player);
};
player.src = sourceNode.getAttribute('src');
}
function decodeTime(time) {
var parts = time.split(':');
if (parts.length != 3) {
return 0;
}
var hours = parseInt(parts[0]),
minutes = parseInt(parts[1]),
seconds = parseInt(parts[2]);
if (seconds > 59 || minutes > 59) {
return 0;
}
hours *= 60 * 60;
minutes *= 60;
return hours + minutes + seconds;
}
function encodeTime(time) {
if (time < 60) {
if (time < 10) {
time = '0' + time;
}
return '00:00:' + time;
}
var hours = 0,
minutes = Math.floor(time / 60),
seconds = Math.floor(time % 60);
if (minutes > 60) {
hours = Math.floor(minutes / 60);
minutes = minutes - (hours * 60);
}
return (hours < 10 ? '0' + hours : hours) + ':'
+ (minutes < 10 ? '0' + minutes : minutes) + ':'
+ (seconds < 10 ? '0' + seconds : seconds);
}
function displayQuizzes() {
var container = document.getElementById('ck-qmr-quizzes-container');
container.innerHTML = '';
quizzesList.forEach(function (quiz) {
var alreadyAdded = false;
currentMarkers.forEach(function (markerRoll) {
if (quiz.id == markerRoll[1]) {
alreadyAdded = true;
}
});
if (alreadyAdded) {
return;
}
var label = document.createElement('label');
label.textContent = quiz.title;
label.htmlFor = 'ck-qmr-quiz-' + quiz.id;
label.style.verticalAlign = 'super';
var radio = document.createElement('input');
radio.type = 'radio';
radio.name = 'ck_qmr_quiz';
radio.id = 'ck-qmr-quiz-' + quiz.id;
radio.value = quiz.id;
var row = document.createElement('div');
row.appendChild(radio);
row.appendChild(label);
container.appendChild(row);
});
}
function displayCurrentMarkersList() {
var quizzesAddedContainer = document.getElementById('ck-qmr-quizzes-added-container');
quizzesAddedContainer.innerHTML = '';
currentMarkers.forEach(function (markerRoll) {
var makerForQuiz = null;
quizzesList.forEach(function (quiz) {
if (markerRoll[1] == quiz.id) {
makerForQuiz = quiz;
}
});
if (!makerForQuiz) {
return;
}
var btnRemove = document.createElement('a');
btnRemove.className = 'cke_dialog_ui_button';
btnRemove.type = 'button';
btnRemove.innerHTML = '<span class="cke_dialog_ui_button">' + lang.delete + '</span>';
btnRemove.setAttribute('role', 'button');
btnRemove.addEventListener('click', function (e) {
e.preventDefault();
e.stopPropagation();
for (var i = 0; i < currentMarkers.length; i++) {
if (currentMarkers[i][1] == markerRoll[1]) {
currentMarkers.splice(i, 1);
i--;
}
}
displayQuizzes();
displayCurrentMarkersList();
}, false);
var divMarker = document.createElement('span');
divMarker.innerHTML = ' <strong>' + encodeTime(markerRoll[0]) + '</strong> &mdash; '
+ makerForQuiz.title;
var pMarker = document.createElement('p');
pMarker.appendChild(btnRemove);
pMarker.appendChild(divMarker);
quizzesAddedContainer.appendChild(pMarker);
});
}
return {
title: lang.dialogTitle,
minWidth: 400,
minHeight: 500,
resizable: CKEDITOR.DIALOG_RESIZE_NONE,
contents: [
{
id: 'tab-markers',
label: lang.markers,
elements: [
{
type: 'vbox',
width: '100%',
children: [
{
type: 'html',
id: 'html',
html: '<div id="ck-qmr-player-container"></div>'
},
{
type: 'hbox',
widths: ['100%', '200px'],
children: [
{
type: 'html',
html: '<input type="range" min="0" step="1" id="ck-qmr-progress">'
},
{
type: 'html',
title: 'Current Time',
html: '<span id="ck-qmr-current-time">00:00:00</span>'
},
]
},
{
type: 'hbox',
widths: ['100%', '200px'],
children: [
{
type: 'html',
html: lang.embeddableQuizzes + ' '
+ '<div id="ck-qmr-quizzes-container" '
+ 'style="max-height: 110px; overflow: hidden auto;"></div>'
},
{
type: 'button',
id: 'btn-assign',
label: lang.assignQuiz,
title: lang.assignQuiz,
onClick: function () {
var radioQuizzes = document.getElementsByName('ck_qmr_quiz'),
selected = null;
radioQuizzes.forEach(function (radio) {
if (!radio.checked) {
return;
}
selected = radio;
});
if (!selected) {
return;
}
currentMarkers.push([
parseInt(pgbProgress.value),
parseInt(selected.value)
]);
displayCurrentMarkersList();
selected.parentElement.remove();
}
}
]
},
{
type: 'html',
html: lang.currentMarkers + ' '
+ '<div id="ck-qmr-quizzes-added-container" '
+ 'style="max-height: 140px; overflow: hidden auto;"></div>'
}
]
},
]
},
{
id: 'tab-settings',
label: lang.settings,
elements: [
{
type: 'hbox',
widths: ['200px', '100%'],
children: [
{
type: 'text',
id: 'markerColor',
label: lang.markerColor,
'default': '',
setup: function (widget) {
this.setValue(widget.getAttribute('data-q-markersrolls-color'));
},
commit: function (widget) {
widget.setAttribute('data-q-markersrolls-color', this.getValue());
}
},
colorDialog ? {
type: 'button',
id: 'markerColorChoose',
'class': 'colorChooser',
label: lang.choose,
onLoad: function() {
// Stick the element to the bottom
this.getElement()
.getParent()
.setStyle('vertical-align', 'bottom');
},
onClick: function () {
editor.getColorFromDialog(function (color) {
if (color) {
this.getDialog()
.getContentElement('tab-settings', 'markerColor')
.setValue(color);
}
this.focus();
}, this)
}
} : {
type: 'html',
html: '&nbsp;'
}
]
},
]
},
],
onShow: function () {
var dialog = this;
document.getElementById('ck-qmr-quizzes-container').innerHTML = '';
initPlayer(
dialog.getSelectedElement()
);
currentMarkers = JSON.parse(
videoNode.getAttribute('data-q-markersrolls') || '[]'
);
CKEDITOR.ajax.load(
editor.config.qMarkersRollsUrl,
function (response) {
quizzesList = JSON.parse(response);
displayQuizzes();
displayCurrentMarkersList();
dialog.setupContent(videoNode);
}
);
},
onHide: function () {
player = null;
pgbProgress = null;
},
onOk: function () {
if (!fakeImage) {
return;
}
this.commitContent(videoNode);
videoNode.setAttribute('data-q-markersrolls', JSON.stringify(currentMarkers));
var newFakeImage = editor.createFakeElement(videoNode, 'cke_video', 'video', false);
newFakeImage.setStyles({
width: fakeImage.getStyle('width'),
height: fakeImage.getStyle('height')
});
newFakeImage.replace(fakeImage);
editor.getSelection().selectElement(newFakeImage);
}
};
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,19 @@
/**
* Plugin created by BeezNest Latino S.A.C
*
* For licensing terms, see /license.txt
*
* This plugin allows set quizzes markers in video with mediaelement.
*/
CKEDITOR.plugins.setLang('qmarkersrolls', 'en', {
dialogTitle: 'Quizzes Marker Rolls',
setQuizMarkersRolls: 'Set Quiz Markers Rolls',
delete: 'Delete',
markers: 'Markers',
settings: 'Settings',
embeddableQuizzes: 'Embeddable quizzes',
assignQuiz: 'Assign quiz',
currentMarkers: 'Current Markers',
markerColor: 'Marker color',
choose: 'Choose'
});

@ -0,0 +1,20 @@
/**
* Plugin created by BeezNest Latino S.A.C
*
* For licensing terms, see /license.txt
*
* This plugin allows set quizzes markers in video with mediaelement.
*/
CKEDITOR.plugins.setLang('qmarkersrolls', 'es', {
dialogTitle: 'Marcadores de exámenes',
setQuizMarkersRolls: 'Agregar marcadores de exámenes',
delete: 'Eliminar',
markers: 'Marcadores',
settings: 'Configuración',
embeddableQuizzes: 'Exámenes integrables',
assignQuiz: 'Asignar examen',
currentMarkers: 'Marcadores actuales',
markerColor: 'Color del marcador',
choose: 'Elegir'
});

@ -0,0 +1,51 @@
/**
* Plugin created by BeezNest Latino S.A.C
*
* For licensing terms, see /license.txt
*
* This plugin allows set quizzes markers in video with mediaelement.
*/
(function () {
CKEDITOR.plugins.add('qmarkersrolls', {
lang: [
'en',
'es',
],
requires: ['video'],
init: function (editor) {
var lang = editor.lang.qmarkersrolls;
editor
.addCommand(
'qmarkersrolls',
new CKEDITOR.dialogCommand('qMarkersrollsDialog')
);
if (editor.contextMenu) {
editor.addMenuGroup('qMarkersRollsGroup');
editor.addMenuItem('qMarkersRollsItem', {
label: lang.setQuizMarkersRolls,
icon: this.path + 'images/icon.png',
command: 'qmarkersrolls',
group: 'qMarkersRollsGroup'
});
editor.contextMenu.addListener(function (element) {
if (element &&
element.is('img') &&
!element.isReadOnly() &&
element.data('cke-real-element-type') == 'video'
) {
return {
qMarkersRollsItem: CKEDITOR.TRISTATE_OFF
};
}
});
}
CKEDITOR.dialog.add('qMarkersrollsDialog', this.path + 'dialogs/qmarkersrolls.js');
}
});
})();

@ -406,4 +406,4 @@ CKEDITOR.dialog.add( 'video', function ( editor )
]
};
} );
} );

@ -235,4 +235,4 @@ CKEDITOR.plugins.setLang( 'video', 'en', en );
CKEDITOR.plugins.setLang( 'video', 'es', es );
CKEDITOR.plugins.setLang( 'video', 'fr', fr );
})();
})();

@ -0,0 +1,3 @@
.cke_wordcount {display:block;float:right;margin-top:-2px;margin-right:3px;color:black;}
.cke_wordcountLimitReached span {color:red! important}

@ -0,0 +1,11 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'ca', {
WordCount: 'Paraules:',
CharCount: 'Caràcters:',
CharCountWithHTML: 'Caràcters (including HTML):',
limit: 'Límit:',
title: 'Estadístiques'
});

@ -0,0 +1,11 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'de', {
WordCount: 'Wörter:',
CharCount: 'Zeichen:',
CharCountWithHTML: 'Zeichen (inkl. HTML):',
limit: 'Limit:',
title: 'Statistik'
});

@ -0,0 +1,11 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'en', {
WordCount: 'Words:',
CharCount: 'Characters:',
CharCountWithHTML: 'Characters (including HTML):',
limit: 'Limit:',
title: 'Statistics'
});

@ -0,0 +1,11 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'es', {
WordCount: 'Palabras:',
CharCount: 'Caràcteres:',
CharCountWithHTML: 'Caràcteres (con HTML):',
limit: 'Límite:',
title: 'Estadísticas'
});

@ -0,0 +1,9 @@
// French Translation by Nicolas M.
CKEDITOR.plugins.setLang('wordcount', 'fr', {
WordCount: 'Mots:',
CharCount: 'Caractères:',
CharCountWithHTML: 'Caractères (including HTML):',
limit: 'Limite:',
title: 'Statistiques'
});

@ -0,0 +1,12 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
@author translation: Davide Montorio
*/
CKEDITOR.plugins.setLang('wordcount', 'it', {
WordCount: 'Parole:',
CharCount: 'Caratteri:',
CharCountWithHTML: 'Caratteri (HTML incluso):',
limit: 'Limite:',
title: 'Statistiche'
});

@ -0,0 +1,10 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'jp', {
WordCount: '単語数:',
CharCount: '文字数:',
limit: '上限:',
title: 'ワードカウント'
});

@ -0,0 +1,8 @@
// Norwegian translation by Vegard S.
CKEDITOR.plugins.setLang('wordcount', 'no', {
WordCount: 'Ord:',
CharCount: 'Tegn:',
CharCountWithHTML: 'Tegn (including HTML):',
limit: 'Grense:',
title: 'Statistikk'
});

@ -0,0 +1,11 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'pl', {
WordCount: 'Słów:',
CharCount: 'Znaków:',
CharCountWithHTML: 'Znaków (wraz z kodem HTML):',
limit: 'Limit:',
title: 'Statystyka'
});

@ -0,0 +1,10 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'pt-BR', {
WordCount: 'Contagem de palavras:',
CharCount: 'Contagem de caracteres:',
limit: 'Limit:',
title: 'Estatísticas'
});

@ -0,0 +1,11 @@
/*
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang('wordcount', 'ru', {
WordCount: 'Слов:',
CharCount: 'Символов:',
CharCountWithHTML: 'Символов (включая HTML):',
limit: 'Лимит:',
title: 'Статистика'
});

@ -0,0 +1,211 @@
/**
* @license Copyright (c) CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.add('wordcount', {
lang: ['ca', 'de', 'en', 'es', 'fr', 'it', 'jp', 'no', 'pl', 'pt-BR'],
version : 1.08,
init: function (editor) {
if (editor.elementMode === CKEDITOR.ELEMENT_MODE_INLINE) {
return;
}
var defaultFormat = '<span class="cke_path_item">',
intervalId,
lastWordCount,
lastCharCount = 0,
limitReachedNotified = false,
limitRestoredNotified = false;
// Default Config
var defaultConfig = {
showWordCount: true,
showCharCount: false,
charLimit: 'unlimited',
wordLimit: 'unlimited',
countHTML: false
};
// Get Config & Lang
var config = CKEDITOR.tools.extend(defaultConfig, editor.config.wordcount || {}, true);
if (config.showCharCount) {
var charLabel = editor.lang.wordcount[config.countHTML ? 'CharCountWithHTML' : 'CharCount'];
defaultFormat += charLabel + '&nbsp;%charCount%';
if (config.charLimit != 'unlimited') {
defaultFormat += '&nbsp;(' + editor.lang.wordcount.limit + '&nbsp;' + config.charLimit + ')';
}
}
if (config.showCharCount && config.showWordCount) {
defaultFormat += ',&nbsp;';
}
if (config.showWordCount) {
defaultFormat += editor.lang.wordcount.WordCount + ' %wordCount%';
if (config.wordLimit != 'unlimited') {
defaultFormat += '&nbsp;(' + editor.lang.wordcount.limit + '&nbsp;' + config.wordLimit + ')';
}
}
defaultFormat += '</span>';
var format = defaultFormat;
CKEDITOR.document.appendStyleSheet(this.path + 'css/wordcount.css');
function counterId(editorInstance) {
return 'cke_wordcount_' + editorInstance.name;
}
function counterElement(editorInstance) {
return document.getElementById(counterId(editorInstance));
}
function strip(html) {
var tmp = document.createElement("div");
tmp.innerHTML = html;
if (tmp.textContent == '' && typeof tmp.innerText == 'undefined') {
return '0';
}
return tmp.textContent || tmp.innerText;
}
function updateCounter(editorInstance) {
var wordCount = 0,
charCount = 0,
normalizedText,
text;
if (text = editorInstance.getData()) {
if (config.showCharCount) {
if (config.countHTML) {
charCount = text.length;
} else {
normalizedText = text.
replace(/(\r\n|\n|\r)/gm, "").
replace(/^\s+|\s+$/g, "").
replace("&nbsp;", "").
replace(" ", "");
normalizedText = strip(normalizedText);
charCount = normalizedText.length;
}
}
if (config.showWordCount) {
normalizedText = text.
replace(/(\r\n|\n|\r)/gm, " ").
replace(/^\s+|\s+$/g, "").
replace("&nbsp;", " ");
normalizedText = strip(normalizedText);
wordCount = normalizedText.split(/\s+/).length;
}
}
var html = format.replace('%wordCount%', wordCount).replace('%charCount%', charCount);
counterElement(editorInstance).innerHTML = html;
if (charCount == lastCharCount) {
return true;
}
lastWordCount = wordCount;
lastCharCount = charCount;
// Check for word limit
if (config.showWordCount && wordCount > config.wordLimit) {
limitReached(editor, limitReachedNotified);
} else if (config.showWordCount && wordCount == config.wordLimit) {
// create snapshot to make sure only the content after the limit gets deleted
editorInstance.fire('saveSnapshot');
} else if (!limitRestoredNotified && wordCount < config.wordLimit) {
limitRestored(editor);
}
// Check for char limit
if (config.showCharCount && charCount > config.charLimit) {
limitReached(editor, limitReachedNotified);
} else if (config.showCharCount && charCount == config.charLimit) {
// create snapshot to make sure only the content after the limit gets deleted
editorInstance.fire('saveSnapshot');
} else if (!limitRestoredNotified && charCount < config.charLimit) {
limitRestored(editor);
}
return true;
}
function limitReached(editorInstance, notify) {
limitReachedNotified = true;
limitRestoredNotified = false;
editorInstance.execCommand('undo');
if (!notify) {
//counterElement(editorInstance).className = "cke_wordcount cke_wordcountLimitReached";
editorInstance.fire('limitReached', {}, editor);
}
// lock editor
editorInstance.config.Locked = 1;
}
function limitRestored(editorInstance) {
limitRestoredNotified = true;
limitReachedNotified = false;
editorInstance.config.Locked = 0;
counterElement(editorInstance).className = "cke_wordcount";
}
editor.on('key', function (event) {
updateCounter(event.editor);
}, editor, null, 100);
editor.on('uiSpace', function (event) {
if (event.data.space == 'bottom') {
event.data.html += '<div id="' + counterId(event.editor) + '" class="cke_wordcount" style=""' + ' title="' + editor.lang.wordcount.title + '"' + '>&nbsp;</div>';
}
}, editor, null, 100);
editor.on('dataReady', function (event) {
updateCounter(event.editor);
}, editor, null, 100);
/*editor.on('change', function (event) {
updateCounter(event.editor);
}, editor, null, 100);*/
editor.on('afterPaste', function (event) {
updateCounter(event.editor);
}, editor, null, 100);
/*editor.on('focus', function (event) {
editorHasFocus = true;
intervalId = window.setInterval(function () {
updateCounter(editor);
}, 300, event.editor);
}, editor, null, 300);*/
editor.on('blur', function () {
if (intervalId) {
window.clearInterval(intervalId);
}
}, editor, null, 300);
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, '');
};
}
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'ar', {
button : 'شيفرة تضمين اليوتيوب',
title : 'شيفرة تضمين اليوتيوب',
txtEmbed : 'الصق شيفرة التضمين هنا',
txtUrl : 'الصق رابط فيديو اليوتيوب',
txtWidth : 'العرض',
txtHeight : 'الطول',
chkRelated : 'اظهر الفيديوهات المقترحة في نهاية الفيديو',
txtStartAt : 'ابدأ عند (ss او mm:ss او hh:mm:ss)',
chkPrivacy : 'تفعيل وضع تحسين الخصوصية',
chkOlderCode : 'استخدم شيفرة التضمين القديمة',
chkAutoplay : 'Autoplay',
chkControls: 'إظهار عناصر التحكم بالمشغّل',
noCode : 'يجب عليك ادخال شيفرة التضمين او الرابط',
invalidEmbed : 'شيفرة التضمين التي قمت بإدخالها تبدو غير صحيحة',
invalidUrl : 'الرابط الذي قمت بإدخاله يبدو غير صحيح',
or : 'او',
noWidth : 'يجب عليك ادخال العرض',
invalidWidth : 'يجب عليك ادخال عرض صحيح',
noHeight : 'يجب عليك ادخال الطول',
invalidHeight : 'يجب عليك ادخال طول صحيح',
invalidTime : 'يجب عليك ادخال وقت بداية صحيح',
txtResponsive : 'Responsive video'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'cs', {
button : 'Vložit video YouTube',
title : 'Vložit video YouTube',
txtEmbed : 'Zde vložte kód pro vložení',
txtUrl : 'Vložte adresu URL videa YouTube',
txtWidth : 'Šířka',
txtHeight : 'Výška',
chkRelated : 'Po dohrání videa zobrazit navrhovaná videa',
txtStartAt : 'Začít přehrávat v čase (ss nebo mm:ss nebo hh:mm:ss)',
chkPrivacy : 'Povolit režim s rozšířeným soukromím',
chkOlderCode : 'Použít starý kód pro vložení',
chkAutoplay : 'Automatické spuštění přehrávání',
chkControls : 'Zobrazit ovladače přehrávání',
noCode : 'Musíte vložit kód pro vložení nebo adresu URL',
invalidEmbed : 'Vložený kód pro vložení zřejmě není platný',
invalidUrl : 'Zadaná adresa URL zřejmě není platná',
or : 'nebo',
noWidth : 'Musíte zadat šířku',
invalidWidth : 'Zadejte platnou šířku',
noHeight : 'Musíte zadat výšku',
invalidHeight : 'Zadejte platnou výšku',
invalidTime : 'Zadejte platný počáteční čas',
txtResponsive : 'Responzivní design (ignorovat výšku a šířku, uzpůsobit šířce)',
txtNoEmbed : 'Pouze obrázek videa s odkazem'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'de', {
button : 'YouTube Video einbinden',
title : 'YouTube Video einbinden',
txtEmbed : 'Embed Code hier einfügen',
txtUrl : 'YouTube Video URL hier einfügen',
txtWidth : 'Breite',
txtHeight : 'Höhe',
chkRelated : 'Vorschläge am Ende des Videos einblenden',
txtStartAt : 'Start bei Position (ss oder mm:ss oder hh:mm:ss)',
chkPrivacy : 'Erweiterten Datenschutzmodus aktivieren',
chkOlderCode : 'Benutze alten Embed Code',
chkAutoplay : 'Autoplay',
chkControls : 'Player-Steuerelemente anzeigen',
noCode : 'Sie müssen einen Embed Code oder URL angeben',
invalidEmbed : 'Der angegebene Embed Code scheint nicht gültig zu sein.',
invalidUrl : 'Die angegebene URL scheint nicht gültig zu sein.',
or : 'oder',
noWidth : 'Geben Sie eine Breite an',
invalidWidth : 'Geben Sie eine gültige Breite an',
noHeight : 'Geben Sie eine Höhe an',
invalidHeight : 'Geben Sie eine gültige Höhe an',
invalidTime : 'Geben Sie eine gültige Startzeit an',
txtResponsive : 'Automatische Größe (ignoriert Breite und Höhe)'
});

@ -0,0 +1,23 @@
CKEDITOR.plugins.setLang('youtube', 'el', {
button: 'Ενσωμάτωση Youtube βίντεο',
title: 'Ενσωμάτωση Youtube βίντεο',
txtEmbed: 'Επικόλλησε τον κώδικα ενσωμάτωσης',
txtUrl: 'Επικόλλησε το URL του βίντεο',
txtWidth: 'Πλάτος',
txtHeight: 'Ύψος',
chkRelated: 'Εμφάνιση προτεινόμενων βίντεο μόλις ολοκληρωθεί',
txtStartAt: 'Χρόνος εκκίνησης (ss or mm:ss or hh:mm:ss)',
chkPrivacy: 'Ενεργοποίηση λειτουργίας ενισχυμένου απορρήτου',
chkOlderCode: 'Χρήση παλαιού κώδικα ενσωμάτωσης',
chkAutoplay: 'Αυτόματη εκκίνηση',
chkControls: 'Εμφάνιση στοιχείων ελέγχου προγράμματος αναπαραγωγής',
noCode: 'Χρειάζεται κώδικας ενσωμάτωσης ή URL',
invalidEmbed: 'Ο κώδικας ενσωμάτωσης που εισήγατε δεν μοιάζει σωστός',
invalidUrl: 'Το URL που εισήγατε δεν μοιάζει σωστό',
or: 'ή',
noWidth: 'Συμπληρώστε το πλάτος',
invalidWidth: 'Λανθασμένο πλάτος',
noHeight: 'Συμπληρώστε το ύψος',
invalidHeight: 'Λανθασμένο ύψος',
invalidTime: 'Λανθασμένος χρόνος εκκίνησης'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'en', {
button : 'Embed YouTube Video',
title : 'Embed YouTube Video',
txtEmbed : 'Paste Embed Code Here',
txtUrl : 'Paste YouTube Video URL',
txtWidth : 'Width',
txtHeight : 'Height',
chkRelated : 'Show suggested videos at the video\'s end',
txtStartAt : 'Start at (ss or mm:ss or hh:mm:ss)',
chkPrivacy : 'Enable privacy-enhanced mode',
chkOlderCode : 'Use old embed code',
chkAutoplay: 'Autoplay',
chkControls: 'Show player controls',
noCode : 'You must input an embed code or URL',
invalidEmbed : 'The embed code you\'ve entered doesn\'t appear to be valid',
invalidUrl : 'The URL you\'ve entered doesn\'t appear to be valid',
or : 'or',
noWidth : 'You must inform the width',
invalidWidth : 'Inform a valid width',
noHeight : 'You must inform the height',
invalidHeight : 'Inform a valid height',
invalidTime : 'Inform a valid start time',
txtResponsive : 'Make Responsive (ignore width and height, fit to width)',
txtNoEmbed : 'Video image and link only'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'es', {
button : 'Embed YouTube video',
title : 'Embed YouTube video',
txtEmbed : 'Pegar el código embed',
txtUrl : 'Pegar la URL al video de Youtube',
txtWidth : 'Anchura',
txtHeight : 'Altura',
chkRelated : 'Mostrar videos sugeridos al final de este video',
txtStartAt : 'Comenzar en (ss or mm:ss or hh:mm:ss)',
chkPrivacy : 'Habilitar el modo privacy-enhanced',
chkOlderCode : 'Usar código embed viejo',
chkAutoplay: 'Autoplay',
chkControls: 'Mostrar controles del reproductor',
noCode : 'Debes de introducir un código embed o URL',
invalidEmbed : 'El código embed introducido parece no ser valido',
invalidUrl : 'La URL introducida parece no ser valida',
or : 'o',
noWidth : 'Debes de dar la anchura',
invalidWidth : 'Da una anchura valida',
noHeight : 'Debes dar una altura valida',
invalidHeight : 'Da una altura valida',
invalidTime : 'Da un tiempo de valido',
txtResponsive : 'Hacer responsivo (ignorar anchura y altura, ajustar a la anchura)'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'et', {
button : 'Lisa YouTube video',
title : 'YouTube video lisamine',
txtEmbed : 'Kleepige manustatud kood siia',
txtUrl : 'Kleepige YouTube video veebiaadress',
txtWidth : 'Laius',
txtHeight : 'Kõrgus',
chkRelated : 'Näita soovitatud videosi antud video lõppus',
txtStartAt : 'Alguskoht: (ss või mm:ss või hh:mm:ss)',
chkPrivacy : 'Aktiveerige privaatsust täiendav režiim',
chkOlderCode : 'Kasutage vana manuskoodi',
chkAutoplay: 'Automaatesitlus',
chkControls : 'Kuva pleieri nupud',
noCode : 'Te peate sisestama video manuskoodi või veebiaadressi',
invalidEmbed : 'Manuskood mille sisestasite ei paista olevat korrektne',
invalidUrl : 'Veebiaadress mille sisestasite ei paista olevat korrektne',
or : 'või',
noWidth : 'Te peate sisestama video laiuse',
invalidWidth : 'Sisestage korrektne laius',
noHeight : 'Te peate sisestama video kõrguse',
invalidHeight : 'Sisestage korrektne kõrgus',
invalidTime : 'Sisestage korrektne algusaeg',
txtResponsive : 'Aktiveerige ekraani laiusega ühilduv režiim'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'eu', {
button : 'Kapsulatu YouTube-ko bideoa',
title : 'Kapsulatu YouTube-ko bideoa',
txtEmbed : 'Itsatsi kapsulatzeko kodea hemen',
txtUrl : 'Itsatsi YouTube-ko bideoaren URLa',
txtWidth : 'Zabalera',
txtHeight : 'Altuera',
chkRelated : 'Erakutsi gomendatutako bideoak amaieran',
txtStartAt : 'Hasi hemendik (ss edo mm:ss edo hh:mm:ss)',
chkPrivacy : 'Gaitu pribatutasun hobetuko modua',
chkOlderCode : 'Erabili kapsulatzeko kode zaharra',
chkAutoplay: 'Erreproduzitu automatikoki',
chkControls: 'Erakutsi erreproduzigailuaren kontrolak',
noCode : 'Kapsulatzeko kode bat edo URL bat sartu behar duzu',
invalidEmbed : 'Sartu duzun kapsulatzeko kodea ez da baliozkoa',
invalidUrl : 'Sartu duzun URLa ez da baliozkoa',
or : 'edo',
noWidth : 'Zabalera sartu behar duzu',
invalidWidth : 'Sartu baliozko zabalera bat',
noHeight : 'Altuera sartu behar duzu',
invalidHeight : 'Sartu baliozko altuera bat',
invalidTime : 'Sartu baliozko hasierako denbora bat',
txtResponsive : 'Egin moldagarria (ez ikusia egin zabalera eta altuerari, zabalerara doitu)',
txtNoEmbed : 'Bideoaren irudia eta esteka soilik'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'fi', {
button : 'Upota YouTube-video',
title : 'Upota YouTube-video',
txtEmbed : 'Syötä YouTube-videon upotuskoodi',
txtUrl : 'Syötä YouTube-videon www-osoite',
txtWidth : 'Leveys',
txtHeight : 'Korkeus',
chkRelated : 'Näytä suositukset lopussa',
txtStartAt : 'Aloitusaika (ss tai mm:ss tai tt:mm:ss)',
chkPrivacy : 'Aktivoi yksityisyyttä parantava tila',
chkOlderCode : 'Käytä vanhaa upotuskoodia',
chkAutoplay: 'Soita automaattisesti',
chkControls : 'Näytä soittimen ohjaimet',
noCode : 'Sinun täytyy syötää upotuskoodi tai www-osoite',
invalidEmbed : 'Upotuskoodi on virheellinen',
invalidUrl : 'Www-osoite on virheellinen',
or : 'tai',
noWidth : 'Syötä leveys',
invalidWidth : 'Leveys on virheellinen',
noHeight : 'Syötä korkeus',
invalidHeight : 'Korkeus on virheellinen',
invalidTime : 'Aloitusaika on virheellinen',
txtResponsive : 'Responsiivinen leveys (sovita leveys)'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'fr', {
button : 'Insérer une vidéo Youtube',
title : 'Insérer une vidéo youtube',
txtEmbed : 'Coller le code embed ici',
txtUrl : 'Coller l\'url de la vidéo ici',
txtWidth : 'Largeur',
txtHeight : 'Hauteur',
chkRelated : 'Montrer les suggestions de vidéo à la fin',
txtStartAt : 'Commencer à (ss ou mm:ss ou hh:mm:ss)',
chkPrivacy : 'Activer la protection de la vie privée',
chkOlderCode : 'Utiliser l\'ancien code embed',
chkAutoplay : 'Autoplay',
chkControls : 'Afficher les commandes du lecteur',
noCode : 'Vous devez entrer un code embed ou une url',
invalidEmbed : 'Le code embed est invalide',
invalidUrl : 'L\'url est invalide',
or : 'ou',
noWidth : 'Vous devez saisir une largeur',
invalidWidth : 'La largeur saisie est invalide',
noHeight : 'Vous devez saisir une hauteur',
invalidHeight : 'La hauteur saisie est invalide',
invalidTime : 'Le temps de départ de la vidéo est invalide',
txtResponsive : 'Responsive video'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'he', {
button : 'שבץ וידאו של YouTube',
title : 'שבץ וידאו של YouTube',
txtEmbed : 'הדבק את קוד השיבוץ כאן',
txtUrl : 'הדבק כתובת וידאו YouTube',
txtWidth : 'אורך',
txtHeight : 'גובה',
chkRelated : 'הצג סרטונים מומלצים בסוף הודיאו',
txtStartAt : 'התחל ב (ss או mm:ss או hh:mm:ss)',
chkPrivacy : 'הפעל מצב פרטיות המשופרת',
chkOlderCode : 'השתמש בקוד הטמעה ישן',
chkAutoplay: 'הפעלה אוטומטית',
chkControls : 'הצג פקדי נגן',
noCode : 'אתה חייב להזין קוד embed כתובת וידאו אתר',
invalidEmbed : 'קוד ההטמעה שהוזן אינו נראה חוקי',
invalidUrl : 'כתובת הוידאו אינה נראת חוקית',
or : 'או',
noWidth : 'חובה להזין אורך',
invalidWidth : 'האורך שהוזן שגוי',
noHeight : 'חובה להזין גובה',
invalidHeight : 'הגובה שהוזן שגוי',
invalidTime : 'זמן התחלה שהוזן שגוי',
txtResponsive : 'הפוך לרספונסיבי (התעלם מרוחב וגובה, התאם לרוחב)'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'hu', {
button : 'Youtube videó beillesztése',
title : 'Youtube videó beillesztése',
txtEmbed : 'Illessze be a beágyazott kódot',
txtUrl : 'Illessze be a Youtube videó URL-jét',
txtWidth : 'Szélesség',
txtHeight : 'Magasság',
txtStartAt : 'Kezdő időpont (ss vagy mm:ss vagy hh:mm:ss)',
chkRelated : 'Ajánlott videók megjelenítése, amikor a videó befejeződik',
chkPrivacy : 'Fokozott adatvédelmi mód engedélyezése',
chkOlderCode : 'Régi beágyazott kód használata',
chkAutoplay : 'Automatikus lejátszás',
chkControls : 'Lejátszásvezérlők mutatása',
noCode : 'A beágyazott kód, vagy az URL megadása kötelező',
invalidEmbed : 'A beágyazott kód érvénytelen',
invalidUrl : 'A megadott URL érvénytelen',
or : 'vagy',
noWidth : 'A szélesség megadása kötelező',
invalidWidth : 'Érvényes szélességet adjon meg',
noHeight : 'A magasság megadása kötelező',
invalidHeight : 'Érvényes magasságot adjon meg',
invalidTime : 'Érvényes kezdő időpontot adjon meg',
txtResponsive : 'Responsive video'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'it', {
button : 'Incorpora video Youtube',
title : 'Incorpora video Youtube',
txtEmbed : 'Incolla qui il codice di incorporamento',
txtUrl : 'Incolla l\'URL del video Youtube',
txtWidth : 'Larghezza',
txtHeight : 'Altezza',
chkRelated : 'Mostra i video suggeriti dopo il video',
txtStartAt : 'Inizia a (ss o mm:ss o hh:mm:ss)',
chkPrivacy : 'Abilita la protezione della privacy',
chkOlderCode : 'Usa il vecchio codice di incorporamento',
chkAutoplay : 'Autoplay',
chkControls : 'Mostra i controlli del player',
noCode : 'Devi inserire un codice di incorporamento o un URL',
invalidEmbed : 'Il codice di incorporamento inserito non sembra valido',
invalidUrl : 'L\'URL inserito non sembra valido',
or : 'o',
noWidth : 'Devi indicare la larghezza',
invalidWidth : 'Indica una larghezza valida',
noHeight : 'Devi indicare l\'altezza',
invalidHeight : 'Indica un\'altezza valida',
invalidTime : 'Indica un tempo di inizio valido',
txtResponsive : 'Responsive video'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'ja', {
button : 'Youtube動画埋め込み',
title : 'Youtube動画埋め込み',
txtEmbed : '埋め込みコードを貼り付けてください',
txtUrl : 'URLを貼り付けてください',
txtWidth : '幅',
txtHeight : '高さ',
chkRelated : '動画が終わったら関連動画を表示する',
txtStartAt : '開始時間(秒)',
chkPrivacy : 'プライバシー強化モードを有効にする',
chkOlderCode : '以前の埋め込みコードを使用する',
chkAutoplay : '自動再生',
chkControls: 'プレーヤーのコントロールを表示する',
noCode : '埋め込みコードまたはURLを入力してください',
invalidEmbed : '不適切な埋め込みコードが入力されました',
invalidUrl : '不適切なURLが入力されました',
or : 'または',
noWidth : '幅を指定してください',
invalidWidth : '幅指定に誤りがあります',
noHeight : '高さを指定してください',
invalidHeight : '高さ指定に誤りがあります',
invalidTime : '開始時間を正の整数で入力してください',
txtResponsive : 'レスポンシブ表示'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'ko', {
button : '유투브 비디오 삽입',
title : '유투브 비디오 삽입',
txtEmbed : '여기 embed 코드를 붙여넣으세요',
txtUrl : '유투브 주소(URL)를 붙여넣으세요',
txtWidth : '너비',
txtHeight : '높이',
chkRelated : '비디오 마지막에 추천 영상 보이기',
txtStartAt : '시작 시점 (ss 또는 mm:ss 또는 hh:mm:ss)',
chkPrivacy : '개인정보 보호 모드 활성화',
chkOlderCode : '옛날 embed 코드 사용',
chkAutoplay: '자동 재생',
chkControls: '플레이어 컨트롤 표시',
noCode : 'embed 코드 또는 URL을 입력해야 합니다',
invalidEmbed : '입력하신 embed 코드가 유효하지 않습니다',
invalidUrl : '입력하신 주소(URL)가 유효하지 않습니다',
or : '또는',
noWidth : '너비를 알려주세요',
invalidWidth : '너비가 유효하지 않습니다',
noHeight : '높이를 알려주세요',
invalidHeight : '높이가 유효하지 않습니다',
invalidTime : '시작 시점이 유효하지 않습니다',
txtResponsive : '반응형 너비 (입력한 너비와 높이를 무시하고 창 너비에 맞춤)',
txtNoEmbed : '비디오 이미지와 링크만 달기'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'nb', {
button : 'Bygg inn YouTube-video',
title : 'Bygg inn YouTube-video',
txtEmbed : 'Lim inn embed-kode her',
txtUrl : 'Lim inn YouTube video-URL',
txtWidth : 'Bredde',
txtHeight : 'Høyde',
chkRelated : 'Vis foreslåtte videoer når videoen er ferdig',
txtStartAt : 'Start ved (ss eller mm:ss eller hh:mm:ss)',
chkPrivacy : 'Bruk personverntilpasset modus',
chkOlderCode : 'Bruk gammel embedkode',
chkAutoplay: 'Spill automatisk',
chkControls: 'Vis spillerkontrollene',
noCode : 'Du må legge inn en embed-kode eller URL',
invalidEmbed : 'Emded-koden du la inn ser ikke ut til å være gyldig',
invalidUrl : 'URLen du la inn ser ikke ut til å være gyldig',
or : 'eller',
noWidth : 'Du må legge inn bredde',
invalidWidth : 'Legg inn en gyldig bredde',
noHeight : 'Du må legge inn høyde',
invalidHeight : 'Legg inn en gyldig høyde',
invalidTime : 'Legg inn gyldig starttid',
txtResponsive : 'Gjør responsiv (ignorer bredde og høyde, tilpass bredde på sida)'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'nl', {
button : 'Youtube video insluiten',
title : 'Youtube video insluiten',
txtEmbed : 'Plak embedcode hier',
txtUrl : 'Plak video URL',
txtWidth : 'Breedte',
txtHeight : 'Hoogte',
chkRelated : 'Toon gesuggereerde video aan het einde van de video',
txtStartAt : 'Starten op (ss of mm:ss of hh:mm:ss)',
chkPrivacy : 'Privacy-enhanced mode inschakelen',
chkOlderCode : 'Gebruik oude embedcode',
chkAutoplay: 'Automatisch starten',
chkControls: 'Afspeelbediening weergeven',
noCode : 'U moet een embedcode of url ingeven',
invalidEmbed : 'De ingegeven embedcode lijkt niet geldig',
invalidUrl : 'De ingegeven url lijkt niet geldig',
or : 'of',
noWidth : 'U moet een breedte ingeven',
invalidWidth : 'U moet een geldige breedte ingeven',
noHeight : 'U moet een hoogte ingeven',
invalidHeight : 'U moet een geldige starttijd ingeven',
invalidTime : 'Inform a valid start time',
txtResponsive : 'Responsive video',
txtNoEmbed : 'Alleen video afbeelding en link'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'nn', {
button : 'Bygg inn YouTube-video',
title : 'Bygg inn YouTube-video',
txtEmbed : 'Lim inn embed-kode her',
txtUrl : 'Lim inn YouTube video-URL',
txtWidth : 'Breidde',
txtHeight : 'Høgde',
chkRelated : 'Vis foreslåtte videoar når videoen er ferdig',
txtStartAt : 'Start ved (ss eller mm:ss eller hh:mm:ss)',
chkPrivacy : 'Bruk personverntilpassa modus',
chkOlderCode : 'Bruk gamal embedkode',
chkAutoplay: 'Spel automatisk',
chkControls: 'Vis spillerkontrollene',
noCode : 'Du må leggja inn ein embed-kode eller URL',
invalidEmbed : 'Emded-koden du la inn ser ikkje ut til å vera gyldig',
invalidUrl : 'URLen du la inn ser ikkje ut til å vera gyldig',
or : 'eller',
noWidth : 'Du må leggja inn breidde',
invalidWidth : 'Legg inn ei gyldig breidde',
noHeight : 'Du må leggja inn høgde',
invalidHeight : 'Legg inn ei gyldig høgde',
invalidTime : 'Legg inn gyldig starttid',
txtResponsive : 'Gjer responsiv (ignorer breidde og høgde, tilpass breidda på sida)'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'pl', {
button : 'Załącznik wideo z YouTube',
title : 'Załącznik wideo z YouTube',
txtEmbed : 'Wklej kod do umieszczenia',
txtUrl : 'Wklej adres URL do wideo z YouTube',
txtWidth : 'Szerokość',
txtHeight : 'Wysokość',
chkRelated : 'Pokaż sugerowane filmy po zakończeniu odtwarzania',
txtStartAt : 'Rozpocznij od (ss lub mm:ss lub gg:mm:ss)',
chkPrivacy : 'Włącz rozszerzony tryb prywatności',
chkOlderCode : 'Użyj starego kodu',
chkAutoplay: 'Autoodtwarzanie',
chkControls: 'Pokaż elementy sterujące odtwarzacza',
noCode : 'Musisz wprowadzić kod lub adres URL',
invalidEmbed : 'Wprowadzony kod nie jest poprawny',
invalidUrl : 'Wprowadzony adres URL nie jest poprawny',
or : 'lub',
noWidth : 'Musisz wpisać szerokość',
invalidWidth : 'Wprowadzona szerokość nie jest poprawna',
noHeight : 'Musisz wprowadzić wysokość',
invalidHeight : 'Wprowadzona wysokość nie jest poprawna',
invalidTime : 'Musisz wprowadzić poprawny czas rozpoczęcia',
txtResponsive : 'El. responsywny (ignoruj szerokość i wysokość, dopasuj do szerokości)'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'pt-br', {
button : 'Inserir Vídeo do Youtube',
title : 'Inserir Vídeo do Youtube',
txtEmbed : 'Cole aqui o código embed de um vídeo do Youtube',
txtUrl : 'Cole aqui uma URL de um vídeo do Youtube',
txtWidth : 'Largura',
txtHeight : 'Altura',
chkRelated : 'Mostrar vídeos sugeridos ao final do vídeo',
txtStartAt : 'Iniciar em (ss ou mm:ss ou hh:mm:ss)',
chkPrivacy : 'Ativar o modo de privacidade aprimorada',
chkOlderCode : 'Usar código de incorporação antigo',
chkAutoplay : 'Reproduzir automaticamente',
chkControls: 'Mostrar controles do player',
noCode : 'Você precisa informar um código embed ou uma URL',
invalidEmbed : 'O código informado não parece ser válido',
invalidUrl : 'A URL informada não parece ser válida',
or : 'ou',
noWidth : 'Você deve informar a largura do vídeo',
invalidWidth : 'Informe uma largura válida',
noHeight : 'Você deve informar a altura do vídeo',
invalidHeight : 'Informe uma altura válida',
invalidTime : 'O tempo informado é inválido',
txtResponsive : 'Vídeo responsivo',
txtNoEmbed : 'Somente imagem e link para o vídeo'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'pt', {
button : 'Inserir Vídeo do Youtube',
title : 'Inserir Vídeo do Youtube',
txtEmbed : 'Cole aqui o código embed de um vídeo do Youtube',
txtUrl : 'Cole aqui uma URL de um vídeo do Youtube',
txtWidth : 'Largura',
txtHeight : 'Altura',
chkRelated : 'Mostrar vídeos sugeridos quando o vídeo terminar',
txtStartAt : 'Iniciar em (ss ou mm:ss ou hh:mm:ss)',
chkPrivacy : 'Ativar o modo de privacidade otimizada',
chkOlderCode : 'Usar código de incorporação antigo',
chkAutoplay : 'Reproduzir automaticamente',
chkControls: 'Mostrar controles do player',
noCode : 'Você precisa informar um código embed ou uma URL',
invalidEmbed : 'O código informado não parece ser válido',
invalidUrl : 'A URL informada não parece ser válida',
or : 'ou',
noWidth : 'Você deve informar a largura do vídeo',
invalidWidth : 'Informe uma largura válida',
noHeight : 'Você deve informar a altura do vídeo',
invalidHeight : 'Informe uma altura válida',
invalidTime : 'O tempo informado é inválido',
txtResponsive : 'Vídeo responsivo',
txtNoEmbed : 'Somente imagem e link para o vídeo'
});

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'ru', {
button : 'Вставить YouTube видео',
title : 'Вставить YouTube видео',
txtEmbed : 'Вставьте HTML-код сюда',
txtUrl : 'Вставьте адрес видео (URL)',
txtWidth : 'Ширина',
txtHeight : 'Высота',
chkRelated : 'Показать похожие видео после завершения просмотра',
txtStartAt : 'Начать с (сс или мм:сс или чч:мм:сс)',
chkPrivacy : 'Включить режим повышенной конфиденциальности',
chkOlderCode : 'Использовать старый код вставки',
chkAutoplay: 'Автозапуск',
chkControls: 'Показать панель управления',
noCode : 'Вы должны ввести HTML-код или адрес',
invalidEmbed : 'Ваш HTML-код не похож на правильный',
invalidUrl : 'Ваш адрес видео не похож на правильный',
or : 'или',
noWidth : 'Вы должны указать ширину',
invalidWidth : 'Укажите правильную ширину',
noHeight : 'Вы должны указать высоту',
invalidHeight : 'Укажите правильную высоту',
invalidTime : 'Укажите правильное время начала',
txtResponsive : 'Растягиваемое видео',
txtNoEmbed : 'Не встраивать видео (обложка-ссылка на YouTube)'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'sk', {
button : 'Vložiť YouTube video',
title : 'Vložiť YouTube video',
txtEmbed : 'Vložiť Youtube Embed Video kódu',
txtUrl : 'Vložiť pomocou YouTube video URL',
txtWidth : 'Šírka',
txtHeight : 'Výška',
chkRelated : 'Zobraziť odporúčané videá po prehratí',
txtStartAt : 'Začať prehrávanie videa (ss alebo mm:ss alebo hh:mm:ss)',
chkPrivacy : 'Povoliť pokročilý mód súkromia',
chkOlderCode : 'Použiť starú metódu vkladania',
chkAutoplay: 'Automatické prehrávanie',
chkControls: 'Zobraziť ovládacie prvky prehrávača',
noCode : 'Musíte vložiť Youtube Embed kód alebo URL',
invalidEmbed : 'Vložený kód nie je valídny',
invalidUrl : 'Vložená URL nie je platná',
or : 'alebo',
noWidth : 'Prosím, zadajte šírku videa',
invalidWidth : 'Zadajte valídnu šírku videa',
noHeight : 'Prosím, zadajte výšku videa',
invalidHeight : 'Zadajte valídnu výšku videa',
invalidTime : 'Zadajte valídny formát začiatku prehrávania videa',
txtResponsive : 'Prispôsobit rozmery videa rozmerom obrazovky (ignoruje šírku a výšku, prispôsobí sa šírke obrazovky)'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'tr', {
button : 'Youtube Video Gömün (Embed)',
title : 'Youtube Video',
txtEmbed : 'Youtube gömülü kodu (embed) buraya yapıştırınız',
txtUrl : 'Youtube linkinizi buraya yapıştırınız',
txtWidth : 'Genişlik',
txtHeight : 'Yükseklik',
chkRelated : 'Önerilen videoları video bitiminde göster',
txtStartAt : 'Video başlangıç anı (ss ya da dd:ss ya da ss:dd:ss)',
chkPrivacy : 'Gizlilik modunu etkinleştir',
chkOlderCode : 'Eski gömülü kodu (embed) kullan',
chkAutoplay: 'Otomatik',
chkControls: 'Oynatıcı kontrollerini göster',
noCode : 'Gömülü kod (embed) veya url yapıştırmak zorundasınız',
invalidEmbed : 'Verdiğiniz gömülü kod (embed) ile video bulunamadı',
invalidUrl : 'Verdiğiniz linkte video bulunamadı',
or : 'ya da',
noWidth : 'Genişliği belirtmek zorundasınız',
invalidWidth : 'Bir genişlik belirtin',
noHeight : 'Yükseliği belirtmek zorundasınız',
invalidHeight : 'Yükseklik belirtin',
invalidTime : 'Başlangıç anını doğru girin, örneğin: 13 (13. saniye) ya da 12:25 (12. dakika 25. saniye) ya da 01.25.33 (1 saat 25 dakika 33 saniye)',
txtResponsive : 'Responsive video'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'vi', {
button : 'Embed Youtube Video',
title : 'Nhúng Video Youtube',
txtEmbed : 'Dãn mã nhúng Embed vào đây',
txtUrl : 'Dãn đường dẫn video Youtube',
txtWidth : 'Rộng',
txtHeight : 'Cao',
chkRelated : 'Hiển thị các video được đề xuất khi video kết thúc',
txtStartAt : 'Bắt đầu (ss hoặc mm:ss hoặc hh:mm:ss)',
chkPrivacy : 'Kích hoạt chế độ bảo mật nâng cao',
chkOlderCode : 'Sử dụng mã nhúng cũ',
chkAutoplay: 'Tự động chạy video',
chkControls: 'Hiển thị các điều khiển trình phát',
noCode : 'Bạn phải nhập mã nhúng hoặc URL',
invalidEmbed : 'Mã nhúng bạn đã nhập không đúng',
invalidUrl : 'URL bạn đã nhập không đúng',
or : 'hoặc',
noWidth : 'Bạn phải chiều rộng',
invalidWidth : 'Chiều rộng hợp lệ',
noHeight : 'Bạn phải chiều cao',
invalidHeight : 'Chiều cao hợp lệ',
invalidTime : 'Thời gian bắt đầu không đúng',
txtResponsive : 'Responsive video'
});

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'zh', {
button: '嵌入 Youtube 影片',
title: '嵌入 Youtube 影片',
txtEmbed: '貼上嵌入碼',
txtUrl: '貼上 Youtube 影片 URL',
txtWidth: '寬',
txtHeight: '高',
txtResponsive: '使用自適應縮放模式 (忽略設定的長寬, 以寬為基準縮放)',
chkRelated: '影片結束時顯示建議影片',
txtStartAt: '開始時間 (ss or mm:ss or hh:mm:ss)',
chkPrivacy: '啟用加強隱私模式',
chkOlderCode: '使用舊的嵌入碼',
chkAutoplay: '自動播放',
chkControls: '显示播放器控件',
noCode: '必須輸入嵌入碼',
invalidEmbed: '錯誤的嵌入碼',
invalidUrl: '錯誤的URL',
or: '或',
noWidth: '必須設定寬',
invalidWidth: '寬設定錯誤',
noHeight: '必須設定高',
invalidHeight: '高設定錯誤',
invalidTime: '開始時間設定錯誤'
});

@ -0,0 +1,448 @@
/*
* Youtube Embed Plugin
*
* @author Jonnas Fonini <jonnasfonini@gmail.com>
* @version 2.1.8
*/
(function () {
CKEDITOR.plugins.add('youtube', {
lang: [ 'en', 'pt', 'pt-br', 'ja', 'hu', 'it', 'fr', 'tr', 'ru', 'de', 'ar', 'nl', 'pl', 'vi', 'zh', 'el', 'he', 'es', 'nb', 'nn', 'fi', 'et', 'sk', 'cs', 'ko', 'eu' ],
init: function (editor) {
editor.addCommand('youtube', new CKEDITOR.dialogCommand('youtube', {
allowedContent: 'div{*}(*); iframe{*}[!width,!height,!src,!frameborder,!allowfullscreen]; object param[*]; a[*]; img[*]'
}));
editor.ui.addButton('Youtube', {
label : editor.lang.youtube.button,
toolbar : 'insert',
command : 'youtube',
icon : this.path + 'images/icon.png'
});
CKEDITOR.dialog.add('youtube', function (instance) {
var video,
disabled = editor.config.youtube_disabled_fields || [];
return {
title : editor.lang.youtube.title,
minWidth : 510,
minHeight : 200,
onShow: function () {
for (var i = 0; i < disabled.length; i++) {
this.getContentElement('youtubePlugin', disabled[i]).disable();
}
},
contents :
[{
id : 'youtubePlugin',
expand : true,
elements :
[{
id : 'txtEmbed',
type : 'textarea',
label : editor.lang.youtube.txtEmbed,
onChange : function (api) {
handleEmbedChange(this, api);
},
onKeyUp : function (api) {
handleEmbedChange(this, api);
},
validate : function () {
if (this.isEnabled()) {
if (!this.getValue()) {
alert(editor.lang.youtube.noCode);
return false;
}
else
if (this.getValue().length === 0 || this.getValue().indexOf('//') === -1) {
alert(editor.lang.youtube.invalidEmbed);
return false;
}
}
}
},
{
type : 'html',
html : editor.lang.youtube.or + '<hr>'
},
{
type : 'hbox',
widths : [ '70%', '15%', '15%' ],
children :
[
{
id : 'txtUrl',
type : 'text',
label : editor.lang.youtube.txtUrl,
onChange : function (api) {
handleLinkChange(this, api);
},
onKeyUp : function (api) {
handleLinkChange(this, api);
},
validate : function () {
if (this.isEnabled()) {
if (!this.getValue()) {
alert(editor.lang.youtube.noCode);
return false;
}
else{
video = ytVidId(this.getValue());
if (this.getValue().length === 0 || video === false)
{
alert(editor.lang.youtube.invalidUrl);
return false;
}
}
}
}
},
{
type : 'text',
id : 'txtWidth',
width : '60px',
label : editor.lang.youtube.txtWidth,
'default' : editor.config.youtube_width != null ? editor.config.youtube_width : '640',
validate : function () {
if (this.getValue()) {
var width = parseInt (this.getValue()) || 0;
if (width === 0) {
alert(editor.lang.youtube.invalidWidth);
return false;
}
}
else {
alert(editor.lang.youtube.noWidth);
return false;
}
}
},
{
type : 'text',
id : 'txtHeight',
width : '60px',
label : editor.lang.youtube.txtHeight,
'default' : editor.config.youtube_height != null ? editor.config.youtube_height : '360',
validate : function () {
if (this.getValue()) {
var height = parseInt(this.getValue()) || 0;
if (height === 0) {
alert(editor.lang.youtube.invalidHeight);
return false;
}
}
else {
alert(editor.lang.youtube.noHeight);
return false;
}
}
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%' ],
children :
[
{
id : 'chkResponsive',
type : 'checkbox',
label : editor.lang.youtube.txtResponsive,
'default' : editor.config.youtube_responsive != null ? editor.config.youtube_responsive : false
},
{
id : 'chkNoEmbed',
type : 'checkbox',
label : editor.lang.youtube.txtNoEmbed,
'default' : editor.config.youtube_noembed != null ? editor.config.youtube_noembed : false
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%' ],
children :
[
{
id : 'chkRelated',
type : 'checkbox',
'default' : editor.config.youtube_related != null ? editor.config.youtube_related : true,
label : editor.lang.youtube.chkRelated
},
{
id : 'chkOlderCode',
type : 'checkbox',
'default' : editor.config.youtube_older != null ? editor.config.youtube_older : false,
label : editor.lang.youtube.chkOlderCode
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%' ],
children :
[
{
id : 'chkPrivacy',
type : 'checkbox',
label : editor.lang.youtube.chkPrivacy,
'default' : editor.config.youtube_privacy != null ? editor.config.youtube_privacy : false
},
{
id : 'chkAutoplay',
type : 'checkbox',
'default' : editor.config.youtube_autoplay != null ? editor.config.youtube_autoplay : false,
label : editor.lang.youtube.chkAutoplay
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%'],
children :
[
{
id : 'txtStartAt',
type : 'text',
label : editor.lang.youtube.txtStartAt,
validate : function () {
if (this.getValue()) {
var str = this.getValue();
if (!/^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$/i.test(str)) {
alert(editor.lang.youtube.invalidTime);
return false;
}
}
}
},
{
id : 'chkControls',
type : 'checkbox',
'default' : editor.config.youtube_controls != null ? editor.config.youtube_controls : true,
label : editor.lang.youtube.chkControls
}
]
}
]
}
],
onOk: function()
{
var content = '';
var responsiveStyle = '';
if (this.getContentElement('youtubePlugin', 'txtEmbed').isEnabled()) {
content = this.getValueOf('youtubePlugin', 'txtEmbed');
}
else {
var url = 'https://', params = [], startSecs;
var width = this.getValueOf('youtubePlugin', 'txtWidth');
var height = this.getValueOf('youtubePlugin', 'txtHeight');
if (this.getContentElement('youtubePlugin', 'chkPrivacy').getValue() === true) {
url += 'www.youtube-nocookie.com/';
}
else {
url += 'www.youtube.com/';
}
url += 'embed/' + video;
if (this.getContentElement('youtubePlugin', 'chkRelated').getValue() === false) {
params.push('rel=0');
}
if (this.getContentElement('youtubePlugin', 'chkAutoplay').getValue() === true) {
params.push('autoplay=1');
}
if (this.getContentElement('youtubePlugin', 'chkControls').getValue() === false) {
params.push('controls=0');
}
startSecs = this.getValueOf('youtubePlugin', 'txtStartAt');
if (startSecs) {
var seconds = hmsToSeconds(startSecs);
params.push('start=' + seconds);
}
if (params.length > 0) {
url = url + '?' + params.join('&');
}
if (this.getContentElement('youtubePlugin', 'chkResponsive').getValue() === true) {
content += '<div class="youtube-embed-wrapper" style="position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden">';
responsiveStyle = 'style="position:absolute;top:0;left:0;width:100%;height:100%"';
}
if (this.getContentElement('youtubePlugin', 'chkOlderCode').getValue() === true) {
url = url.replace('embed/', 'v/');
url = url.replace(/&/g, '&amp;');
if (url.indexOf('?') === -1) {
url += '?';
}
else {
url += '&amp;';
}
url += 'hl=' + (this.getParentEditor().config.language ? this.getParentEditor().config.language : 'en') + '&amp;version=3';
content += '<object width="' + width + '" height="' + height + '" ' + responsiveStyle + '>';
content += '<param name="movie" value="' + url + '"></param>';
content += '<param name="allowFullScreen" value="true"></param>';
content += '<param name="allowscriptaccess" value="always"></param>';
content += '<embed src="' + url + '" type="application/x-shockwave-flash" ';
content += 'width="' + width + '" height="' + height + '" '+ responsiveStyle + ' allowscriptaccess="always" ';
content += 'allowfullscreen="true"></embed>';
content += '</object>';
}
else
if (this.getContentElement('youtubePlugin', 'chkNoEmbed').getValue() === true) {
var imgSrc = '//img.youtube.com/vi/' + video + '/sddefault.jpg';
content += '<a href="' + url + '" ><img width="' + width + '" height="' + height + '" src="' + imgSrc + '" ' + responsiveStyle + '/></a>';
}
else {
content += '<iframe width="' + width + '" height="' + height + '" src="' + url + '" ' + responsiveStyle;
content += 'frameborder="0" allowfullscreen></iframe>';
}
if (this.getContentElement('youtubePlugin', 'chkResponsive').getValue() === true) {
content += '</div>';
}
}
var element = CKEDITOR.dom.element.createFromHtml(content);
var instance = this.getParentEditor();
instance.insertElement(element);
}
};
});
}
});
})();
function handleLinkChange(el, api) {
var video = ytVidId(el.getValue());
var time = ytVidTime(el.getValue());
if (el.getValue().length > 0) {
el.getDialog().getContentElement('youtubePlugin', 'txtEmbed').disable();
}
else {
el.getDialog().getContentElement('youtubePlugin', 'txtEmbed').enable();
}
if (video && time) {
var seconds = timeParamToSeconds(time);
var hms = secondsToHms(seconds);
el.getDialog().getContentElement('youtubePlugin', 'txtStartAt').setValue(hms);
}
}
function handleEmbedChange(el, api) {
if (el.getValue().length > 0) {
el.getDialog().getContentElement('youtubePlugin', 'txtUrl').disable();
}
else {
el.getDialog().getContentElement('youtubePlugin', 'txtUrl').enable();
}
}
/**
* JavaScript function to match (and return) the video Id
* of any valid Youtube Url, given as input string.
* @author: Stephan Schmitz <eyecatchup@gmail.com>
* @url: http://stackoverflow.com/a/10315969/624466
*/
function ytVidId(url) {
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
/**
* Matches and returns time param in YouTube Urls.
*/
function ytVidTime(url) {
var p = /t=([0-9hms]+)/;
return (url.match(p)) ? RegExp.$1 : false;
}
/**
* Converts time in hms format to seconds only
*/
function hmsToSeconds(time) {
var arr = time.split(':'), s = 0, m = 1;
while (arr.length > 0) {
s += m * parseInt(arr.pop(), 10);
m *= 60;
}
return s;
}
/**
* Converts seconds to hms format
*/
function secondsToHms(seconds) {
var h = Math.floor(seconds / 3600);
var m = Math.floor((seconds / 60) % 60);
var s = seconds % 60;
var pad = function (n) {
n = String(n);
return n.length >= 2 ? n : "0" + n;
};
if (h > 0) {
return pad(h) + ':' + pad(m) + ':' + pad(s);
}
else {
return pad(m) + ':' + pad(s);
}
}
/**
* Converts time in youtube t-param format to seconds
*/
function timeParamToSeconds(param) {
var componentValue = function (si) {
var regex = new RegExp('(\\d+)' + si);
return param.match(regex) ? parseInt(RegExp.$1, 10) : 0;
};
return componentValue('h') * 3600
+ componentValue('m') * 60
+ componentValue('s');
}
/**
* Converts seconds into youtube t-param value, e.g. 1h4m30s
*/
function secondsToTimeParam(seconds) {
var h = Math.floor(seconds / 3600);
var m = Math.floor((seconds / 60) % 60);
var s = seconds % 60;
var param = '';
if (h > 0) {
param += h + 'h';
}
if (m > 0) {
param += m + 'm';
}
if (s > 0) {
param += s + 's';
}
return param;
}

@ -3,4 +3,3 @@
<script src="{{ url('legacy_public') ~ 'libs/ckeditor/ckeditor.js' }}"></script>
{#<script src="{{ asset('libs/readmore-js/readmore.js') }}"></script>#}
<script src="{{ url('legacy_public') ~ 'libs/js-cookie/src/js.cookie.js' }}"></script>

@ -0,0 +1,201 @@
LastName;FirstName;Email;UserName;Password;AuthSource;OfficialCode;PhoneNumber;Status;Courses
student1;student1;student1@example.com;student1;student1;platform;12345678;001-123-456-789;user;TEMP
student2;student2;student2@example.com;student2;student2;platform;;;user;TEMP
student3;student3;student3@example.com;student3;student3;platform;;;user;TEMP
student4;student4;student4@example.com;student4;student4;platform;;;user;TEMP
student5;student5;student5@example.com;student5;student5;platform;;;user;TEMP
student6;student6;student6@example.com;student6;student6;platform;;;user;TEMP
student7;student7;student7@example.com;student7;student7;platform;;;user;TEMP
student8;student8;student8@example.com;student8;student8;platform;;;user;TEMP
student9;student9;student9@example.com;student9;student9;platform;;;user;TEMP
student10;student10;student10@example.com;student10;student10;platform;;;user;TEMP
student11;student11;student11@example.com;student11;student11;platform;;;user;TEMP
student12;student12;student12@example.com;student12;student12;platform;;;user;TEMP
student13;student13;student13@example.com;student13;student13;platform;;;user;TEMP
student14;student14;student14@example.com;student14;student14;platform;;;user;TEMP
student15;student15;student15@example.com;student15;student15;platform;;;user;TEMP
student16;student16;student16@example.com;student16;student16;platform;;;user;TEMP
student17;student17;student17@example.com;student17;student17;platform;;;user;TEMP
student18;student18;student18@example.com;student18;student18;platform;;;user;TEMP
student19;student19;student19@example.com;student19;student19;platform;;;user;TEMP
student20;student20;student20@example.com;student20;student20;platform;;;user;TEMP
student21;student21;student21@example.com;student21;student21;platform;;;user;TEMP
student22;student22;student22@example.com;student22;student22;platform;;;user;TEMP
student23;student23;student23@example.com;student23;student23;platform;;;user;TEMP
student24;student24;student24@example.com;student24;student24;platform;;;user;TEMP
student25;student25;student25@example.com;student25;student25;platform;;;user;TEMP
student26;student26;student26@example.com;student26;student26;platform;;;user;TEMP
student27;student27;student27@example.com;student27;student27;platform;;;user;TEMP
student28;student28;student28@example.com;student28;student28;platform;;;user;TEMP
student29;student29;student29@example.com;student29;student29;platform;;;user;TEMP
student30;student30;student30@example.com;student30;student30;platform;;;user;TEMP
student31;student31;student31@example.com;student31;student31;platform;;;user;TEMP
student32;student32;student32@example.com;student32;student32;platform;;;user;TEMP
student33;student33;student33@example.com;student33;student33;platform;;;user;TEMP
student34;student34;student34@example.com;student34;student34;platform;;;user;TEMP
student35;student35;student35@example.com;student35;student35;platform;;;user;TEMP
student36;student36;student36@example.com;student36;student36;platform;;;user;TEMP
student37;student37;student37@example.com;student37;student37;platform;;;user;TEMP
student38;student38;student38@example.com;student38;student38;platform;;;user;TEMP
student39;student39;student39@example.com;student39;student39;platform;;;user;TEMP
student40;student40;student40@example.com;student40;student40;platform;;;user;TEMP
student41;student41;student41@example.com;student41;student41;platform;;;user;TEMP
student42;student42;student42@example.com;student42;student42;platform;;;user;TEMP
student43;student43;student43@example.com;student43;student43;platform;;;user;TEMP
student44;student44;student44@example.com;student44;student44;platform;;;user;TEMP
student45;student45;student45@example.com;student45;student45;platform;;;user;TEMP
student46;student46;student46@example.com;student46;student46;platform;;;user;TEMP
student47;student47;student47@example.com;student47;student47;platform;;;user;TEMP
student48;student48;student48@example.com;student48;student48;platform;;;user;TEMP
student49;student49;student49@example.com;student49;student49;platform;;;user;TEMP
student50;student50;student50@example.com;student50;student50;platform;;;user;TEMP
student51;student51;student51@example.com;student51;student51;platform;;;user;TEMP
student52;student52;student52@example.com;student52;student52;platform;;;user;TEMP
student53;student53;student53@example.com;student53;student53;platform;;;user;TEMP
student54;student54;student54@example.com;student54;student54;platform;;;user;TEMP
student55;student55;student55@example.com;student55;student55;platform;;;user;TEMP
student56;student56;student56@example.com;student56;student56;platform;;;user;TEMP
student57;student57;student57@example.com;student57;student57;platform;;;user;TEMP
student58;student58;student58@example.com;student58;student58;platform;;;user;TEMP
student59;student59;student59@example.com;student59;student59;platform;;;user;TEMP
student60;student60;student60@example.com;student60;student60;platform;;;user;TEMP
student61;student61;student61@example.com;student61;student61;platform;;;user;TEMP
student62;student62;student62@example.com;student62;student62;platform;;;user;TEMP
student63;student63;student63@example.com;student63;student63;platform;;;user;TEMP
student64;student64;student64@example.com;student64;student64;platform;;;user;TEMP
student65;student65;student65@example.com;student65;student65;platform;;;user;TEMP
student66;student66;student66@example.com;student66;student66;platform;;;user;TEMP
student67;student67;student67@example.com;student67;student67;platform;;;user;TEMP
student68;student68;student68@example.com;student68;student68;platform;;;user;TEMP
student69;student69;student69@example.com;student69;student69;platform;;;user;TEMP
student70;student70;student70@example.com;student70;student70;platform;;;user;TEMP
student71;student71;student71@example.com;student71;student71;platform;;;user;TEMP
student72;student72;student72@example.com;student72;student72;platform;;;user;TEMP
student73;student73;student73@example.com;student73;student73;platform;;;user;TEMP
student74;student74;student74@example.com;student74;student74;platform;;;user;TEMP
student75;student75;student75@example.com;student75;student75;platform;;;user;TEMP
student76;student76;student76@example.com;student76;student76;platform;;;user;TEMP
student77;student77;student77@example.com;student77;student77;platform;;;user;TEMP
student78;student78;student78@example.com;student78;student78;platform;;;user;TEMP
student79;student79;student79@example.com;student79;student79;platform;;;user;TEMP
student80;student80;student80@example.com;student80;student80;platform;;;user;TEMP
student81;student81;student81@example.com;student81;student81;platform;;;user;TEMP
student82;student82;student82@example.com;student82;student82;platform;;;user;TEMP
student83;student83;student83@example.com;student83;student83;platform;;;user;TEMP
student84;student84;student84@example.com;student84;student84;platform;;;user;TEMP
student85;student85;student85@example.com;student85;student85;platform;;;user;TEMP
student86;student86;student86@example.com;student86;student86;platform;;;user;TEMP
student87;student87;student87@example.com;student87;student87;platform;;;user;TEMP
student88;student88;student88@example.com;student88;student88;platform;;;user;TEMP
student89;student89;student89@example.com;student89;student89;platform;;;user;TEMP
student90;student90;student90@example.com;student90;student90;platform;;;user;TEMP
student91;student91;student91@example.com;student91;student91;platform;;;user;TEMP
student92;student92;student92@example.com;student92;student92;platform;;;user;TEMP
student93;student93;student93@example.com;student93;student93;platform;;;user;TEMP
student94;student94;student94@example.com;student94;student94;platform;;;user;TEMP
student95;student95;student95@example.com;student95;student95;platform;;;user;TEMP
student96;student96;student96@example.com;student96;student96;platform;;;user;TEMP
student97;student97;student97@example.com;student97;student97;platform;;;user;TEMP
student98;student98;student98@example.com;student98;student98;platform;;;user;TEMP
student99;student99;student99@example.com;student99;student99;platform;;;user;TEMP
student100;student100;student100@example.com;student100;student100;platform;;;user;TEMP
student101;student101;student101@example.com;student101;student101;platform;;;user;TEMP
student102;student102;student102@example.com;student102;student102;platform;;;user;TEMP
student103;student103;student103@example.com;student103;student103;platform;;;user;TEMP
student104;student104;student104@example.com;student104;student104;platform;;;user;TEMP
student105;student105;student105@example.com;student105;student105;platform;;;user;TEMP
student106;student106;student106@example.com;student106;student106;platform;;;user;TEMP
student107;student107;student107@example.com;student107;student107;platform;;;user;TEMP
student108;student108;student108@example.com;student108;student108;platform;;;user;TEMP
student109;student109;student109@example.com;student109;student109;platform;;;user;TEMP
student110;student110;student110@example.com;student110;student110;platform;;;user;TEMP
student111;student111;student111@example.com;student111;student111;platform;;;user;TEMP
student112;student112;student112@example.com;student112;student112;platform;;;user;TEMP
student113;student113;student113@example.com;student113;student113;platform;;;user;TEMP
student114;student114;student114@example.com;student114;student114;platform;;;user;TEMP
student115;student115;student115@example.com;student115;student115;platform;;;user;TEMP
student116;student116;student116@example.com;student116;student116;platform;;;user;TEMP
student117;student117;student117@example.com;student117;student117;platform;;;user;TEMP
student118;student118;student118@example.com;student118;student118;platform;;;user;TEMP
student119;student119;student119@example.com;student119;student119;platform;;;user;TEMP
student120;student120;student120@example.com;student120;student120;platform;;;user;TEMP
student121;student121;student121@example.com;student121;student121;platform;;;user;TEMP
student122;student122;student122@example.com;student122;student122;platform;;;user;TEMP
student123;student123;student123@example.com;student123;student123;platform;;;user;TEMP
student124;student124;student124@example.com;student124;student124;platform;;;user;TEMP
student125;student125;student125@example.com;student125;student125;platform;;;user;TEMP
student126;student126;student126@example.com;student126;student126;platform;;;user;TEMP
student127;student127;student127@example.com;student127;student127;platform;;;user;TEMP
student128;student128;student128@example.com;student128;student128;platform;;;user;TEMP
student129;student129;student129@example.com;student129;student129;platform;;;user;TEMP
student130;student130;student130@example.com;student130;student130;platform;;;user;TEMP
student131;student131;student131@example.com;student131;student131;platform;;;user;TEMP
student132;student132;student132@example.com;student132;student132;platform;;;user;TEMP
student133;student133;student133@example.com;student133;student133;platform;;;user;TEMP
student134;student134;student134@example.com;student134;student134;platform;;;user;TEMP
student135;student135;student135@example.com;student135;student135;platform;;;user;TEMP
student136;student136;student136@example.com;student136;student136;platform;;;user;TEMP
student137;student137;student137@example.com;student137;student137;platform;;;user;TEMP
student138;student138;student138@example.com;student138;student138;platform;;;user;TEMP
student139;student139;student139@example.com;student139;student139;platform;;;user;TEMP
student140;student140;student140@example.com;student140;student140;platform;;;user;TEMP
student141;student141;student141@example.com;student141;student141;platform;;;user;TEMP
student142;student142;student142@example.com;student142;student142;platform;;;user;TEMP
student143;student143;student143@example.com;student143;student143;platform;;;user;TEMP
student144;student144;student144@example.com;student144;student144;platform;;;user;TEMP
student145;student145;student145@example.com;student145;student145;platform;;;user;TEMP
student146;student146;student146@example.com;student146;student146;platform;;;user;TEMP
student147;student147;student147@example.com;student147;student147;platform;;;user;TEMP
student148;student148;student148@example.com;student148;student148;platform;;;user;TEMP
student149;student149;student149@example.com;student149;student149;platform;;;user;TEMP
student150;student150;student150@example.com;student150;student150;platform;;;user;TEMP
student151;student151;student151@example.com;student151;student151;platform;;;user;TEMP
student152;student152;student152@example.com;student152;student152;platform;;;user;TEMP
student153;student153;student153@example.com;student153;student153;platform;;;user;TEMP
student154;student154;student154@example.com;student154;student154;platform;;;user;TEMP
student155;student155;student155@example.com;student155;student155;platform;;;user;TEMP
student156;student156;student156@example.com;student156;student156;platform;;;user;TEMP
student157;student157;student157@example.com;student157;student157;platform;;;user;TEMP
student158;student158;student158@example.com;student158;student158;platform;;;user;TEMP
student159;student159;student159@example.com;student159;student159;platform;;;user;TEMP
student160;student160;student160@example.com;student160;student160;platform;;;user;TEMP
student161;student161;student161@example.com;student161;student161;platform;;;user;TEMP
student162;student162;student162@example.com;student162;student162;platform;;;user;TEMP
student163;student163;student163@example.com;student163;student163;platform;;;user;TEMP
student164;student164;student164@example.com;student164;student164;platform;;;user;TEMP
student165;student165;student165@example.com;student165;student165;platform;;;user;TEMP
student166;student166;student166@example.com;student166;student166;platform;;;user;TEMP
student167;student167;student167@example.com;student167;student167;platform;;;user;TEMP
student168;student168;student168@example.com;student168;student168;platform;;;user;TEMP
student169;student169;student169@example.com;student169;student169;platform;;;user;TEMP
student170;student170;student170@example.com;student170;student170;platform;;;user;TEMP
student171;student171;student171@example.com;student171;student171;platform;;;user;TEMP
student172;student172;student172@example.com;student172;student172;platform;;;user;TEMP
student173;student173;student173@example.com;student173;student173;platform;;;user;TEMP
student174;student174;student174@example.com;student174;student174;platform;;;user;TEMP
student175;student175;student175@example.com;student175;student175;platform;;;user;TEMP
student176;student176;student176@example.com;student176;student176;platform;;;user;TEMP
student177;student177;student177@example.com;student177;student177;platform;;;user;TEMP
student178;student178;student178@example.com;student178;student178;platform;;;user;TEMP
student179;student179;student179@example.com;student179;student179;platform;;;user;TEMP
student180;student180;student180@example.com;student180;student180;platform;;;user;TEMP
student181;student181;student181@example.com;student181;student181;platform;;;user;TEMP
student182;student182;student182@example.com;student182;student182;platform;;;user;TEMP
student183;student183;student183@example.com;student183;student183;platform;;;user;TEMP
student184;student184;student184@example.com;student184;student184;platform;;;user;TEMP
student185;student185;student185@example.com;student185;student185;platform;;;user;TEMP
student186;student186;student186@example.com;student186;student186;platform;;;user;TEMP
student187;student187;student187@example.com;student187;student187;platform;;;user;TEMP
student188;student188;student188@example.com;student188;student188;platform;;;user;TEMP
student189;student189;student189@example.com;student189;student189;platform;;;user;TEMP
student190;student190;student190@example.com;student190;student190;platform;;;user;TEMP
student191;student191;student191@example.com;student191;student191;platform;;;user;TEMP
student192;student192;student192@example.com;student192;student192;platform;;;user;TEMP
student193;student193;student193@example.com;student193;student193;platform;;;user;TEMP
student194;student194;student194@example.com;student194;student194;platform;;;user;TEMP
student195;student195;student195@example.com;student195;student195;platform;;;user;TEMP
student196;student196;student196@example.com;student196;student196;platform;;;user;TEMP
student197;student197;student197@example.com;student197;student197;platform;;;user;TEMP
student198;student198;student198@example.com;student198;student198;platform;;;user;TEMP
student199;student199;student199@example.com;student199;student199;platform;;;user;TEMP
student200;student200;student200@example.com;student200;student200;platform;;;user;TEMP
1 LastName FirstName Email UserName Password AuthSource OfficialCode PhoneNumber Status Courses
2 student1 student1 student1@example.com student1 student1 platform 12345678 001-123-456-789 user TEMP
3 student2 student2 student2@example.com student2 student2 platform user TEMP
4 student3 student3 student3@example.com student3 student3 platform user TEMP
5 student4 student4 student4@example.com student4 student4 platform user TEMP
6 student5 student5 student5@example.com student5 student5 platform user TEMP
7 student6 student6 student6@example.com student6 student6 platform user TEMP
8 student7 student7 student7@example.com student7 student7 platform user TEMP
9 student8 student8 student8@example.com student8 student8 platform user TEMP
10 student9 student9 student9@example.com student9 student9 platform user TEMP
11 student10 student10 student10@example.com student10 student10 platform user TEMP
12 student11 student11 student11@example.com student11 student11 platform user TEMP
13 student12 student12 student12@example.com student12 student12 platform user TEMP
14 student13 student13 student13@example.com student13 student13 platform user TEMP
15 student14 student14 student14@example.com student14 student14 platform user TEMP
16 student15 student15 student15@example.com student15 student15 platform user TEMP
17 student16 student16 student16@example.com student16 student16 platform user TEMP
18 student17 student17 student17@example.com student17 student17 platform user TEMP
19 student18 student18 student18@example.com student18 student18 platform user TEMP
20 student19 student19 student19@example.com student19 student19 platform user TEMP
21 student20 student20 student20@example.com student20 student20 platform user TEMP
22 student21 student21 student21@example.com student21 student21 platform user TEMP
23 student22 student22 student22@example.com student22 student22 platform user TEMP
24 student23 student23 student23@example.com student23 student23 platform user TEMP
25 student24 student24 student24@example.com student24 student24 platform user TEMP
26 student25 student25 student25@example.com student25 student25 platform user TEMP
27 student26 student26 student26@example.com student26 student26 platform user TEMP
28 student27 student27 student27@example.com student27 student27 platform user TEMP
29 student28 student28 student28@example.com student28 student28 platform user TEMP
30 student29 student29 student29@example.com student29 student29 platform user TEMP
31 student30 student30 student30@example.com student30 student30 platform user TEMP
32 student31 student31 student31@example.com student31 student31 platform user TEMP
33 student32 student32 student32@example.com student32 student32 platform user TEMP
34 student33 student33 student33@example.com student33 student33 platform user TEMP
35 student34 student34 student34@example.com student34 student34 platform user TEMP
36 student35 student35 student35@example.com student35 student35 platform user TEMP
37 student36 student36 student36@example.com student36 student36 platform user TEMP
38 student37 student37 student37@example.com student37 student37 platform user TEMP
39 student38 student38 student38@example.com student38 student38 platform user TEMP
40 student39 student39 student39@example.com student39 student39 platform user TEMP
41 student40 student40 student40@example.com student40 student40 platform user TEMP
42 student41 student41 student41@example.com student41 student41 platform user TEMP
43 student42 student42 student42@example.com student42 student42 platform user TEMP
44 student43 student43 student43@example.com student43 student43 platform user TEMP
45 student44 student44 student44@example.com student44 student44 platform user TEMP
46 student45 student45 student45@example.com student45 student45 platform user TEMP
47 student46 student46 student46@example.com student46 student46 platform user TEMP
48 student47 student47 student47@example.com student47 student47 platform user TEMP
49 student48 student48 student48@example.com student48 student48 platform user TEMP
50 student49 student49 student49@example.com student49 student49 platform user TEMP
51 student50 student50 student50@example.com student50 student50 platform user TEMP
52 student51 student51 student51@example.com student51 student51 platform user TEMP
53 student52 student52 student52@example.com student52 student52 platform user TEMP
54 student53 student53 student53@example.com student53 student53 platform user TEMP
55 student54 student54 student54@example.com student54 student54 platform user TEMP
56 student55 student55 student55@example.com student55 student55 platform user TEMP
57 student56 student56 student56@example.com student56 student56 platform user TEMP
58 student57 student57 student57@example.com student57 student57 platform user TEMP
59 student58 student58 student58@example.com student58 student58 platform user TEMP
60 student59 student59 student59@example.com student59 student59 platform user TEMP
61 student60 student60 student60@example.com student60 student60 platform user TEMP
62 student61 student61 student61@example.com student61 student61 platform user TEMP
63 student62 student62 student62@example.com student62 student62 platform user TEMP
64 student63 student63 student63@example.com student63 student63 platform user TEMP
65 student64 student64 student64@example.com student64 student64 platform user TEMP
66 student65 student65 student65@example.com student65 student65 platform user TEMP
67 student66 student66 student66@example.com student66 student66 platform user TEMP
68 student67 student67 student67@example.com student67 student67 platform user TEMP
69 student68 student68 student68@example.com student68 student68 platform user TEMP
70 student69 student69 student69@example.com student69 student69 platform user TEMP
71 student70 student70 student70@example.com student70 student70 platform user TEMP
72 student71 student71 student71@example.com student71 student71 platform user TEMP
73 student72 student72 student72@example.com student72 student72 platform user TEMP
74 student73 student73 student73@example.com student73 student73 platform user TEMP
75 student74 student74 student74@example.com student74 student74 platform user TEMP
76 student75 student75 student75@example.com student75 student75 platform user TEMP
77 student76 student76 student76@example.com student76 student76 platform user TEMP
78 student77 student77 student77@example.com student77 student77 platform user TEMP
79 student78 student78 student78@example.com student78 student78 platform user TEMP
80 student79 student79 student79@example.com student79 student79 platform user TEMP
81 student80 student80 student80@example.com student80 student80 platform user TEMP
82 student81 student81 student81@example.com student81 student81 platform user TEMP
83 student82 student82 student82@example.com student82 student82 platform user TEMP
84 student83 student83 student83@example.com student83 student83 platform user TEMP
85 student84 student84 student84@example.com student84 student84 platform user TEMP
86 student85 student85 student85@example.com student85 student85 platform user TEMP
87 student86 student86 student86@example.com student86 student86 platform user TEMP
88 student87 student87 student87@example.com student87 student87 platform user TEMP
89 student88 student88 student88@example.com student88 student88 platform user TEMP
90 student89 student89 student89@example.com student89 student89 platform user TEMP
91 student90 student90 student90@example.com student90 student90 platform user TEMP
92 student91 student91 student91@example.com student91 student91 platform user TEMP
93 student92 student92 student92@example.com student92 student92 platform user TEMP
94 student93 student93 student93@example.com student93 student93 platform user TEMP
95 student94 student94 student94@example.com student94 student94 platform user TEMP
96 student95 student95 student95@example.com student95 student95 platform user TEMP
97 student96 student96 student96@example.com student96 student96 platform user TEMP
98 student97 student97 student97@example.com student97 student97 platform user TEMP
99 student98 student98 student98@example.com student98 student98 platform user TEMP
100 student99 student99 student99@example.com student99 student99 platform user TEMP
101 student100 student100 student100@example.com student100 student100 platform user TEMP
102 student101 student101 student101@example.com student101 student101 platform user TEMP
103 student102 student102 student102@example.com student102 student102 platform user TEMP
104 student103 student103 student103@example.com student103 student103 platform user TEMP
105 student104 student104 student104@example.com student104 student104 platform user TEMP
106 student105 student105 student105@example.com student105 student105 platform user TEMP
107 student106 student106 student106@example.com student106 student106 platform user TEMP
108 student107 student107 student107@example.com student107 student107 platform user TEMP
109 student108 student108 student108@example.com student108 student108 platform user TEMP
110 student109 student109 student109@example.com student109 student109 platform user TEMP
111 student110 student110 student110@example.com student110 student110 platform user TEMP
112 student111 student111 student111@example.com student111 student111 platform user TEMP
113 student112 student112 student112@example.com student112 student112 platform user TEMP
114 student113 student113 student113@example.com student113 student113 platform user TEMP
115 student114 student114 student114@example.com student114 student114 platform user TEMP
116 student115 student115 student115@example.com student115 student115 platform user TEMP
117 student116 student116 student116@example.com student116 student116 platform user TEMP
118 student117 student117 student117@example.com student117 student117 platform user TEMP
119 student118 student118 student118@example.com student118 student118 platform user TEMP
120 student119 student119 student119@example.com student119 student119 platform user TEMP
121 student120 student120 student120@example.com student120 student120 platform user TEMP
122 student121 student121 student121@example.com student121 student121 platform user TEMP
123 student122 student122 student122@example.com student122 student122 platform user TEMP
124 student123 student123 student123@example.com student123 student123 platform user TEMP
125 student124 student124 student124@example.com student124 student124 platform user TEMP
126 student125 student125 student125@example.com student125 student125 platform user TEMP
127 student126 student126 student126@example.com student126 student126 platform user TEMP
128 student127 student127 student127@example.com student127 student127 platform user TEMP
129 student128 student128 student128@example.com student128 student128 platform user TEMP
130 student129 student129 student129@example.com student129 student129 platform user TEMP
131 student130 student130 student130@example.com student130 student130 platform user TEMP
132 student131 student131 student131@example.com student131 student131 platform user TEMP
133 student132 student132 student132@example.com student132 student132 platform user TEMP
134 student133 student133 student133@example.com student133 student133 platform user TEMP
135 student134 student134 student134@example.com student134 student134 platform user TEMP
136 student135 student135 student135@example.com student135 student135 platform user TEMP
137 student136 student136 student136@example.com student136 student136 platform user TEMP
138 student137 student137 student137@example.com student137 student137 platform user TEMP
139 student138 student138 student138@example.com student138 student138 platform user TEMP
140 student139 student139 student139@example.com student139 student139 platform user TEMP
141 student140 student140 student140@example.com student140 student140 platform user TEMP
142 student141 student141 student141@example.com student141 student141 platform user TEMP
143 student142 student142 student142@example.com student142 student142 platform user TEMP
144 student143 student143 student143@example.com student143 student143 platform user TEMP
145 student144 student144 student144@example.com student144 student144 platform user TEMP
146 student145 student145 student145@example.com student145 student145 platform user TEMP
147 student146 student146 student146@example.com student146 student146 platform user TEMP
148 student147 student147 student147@example.com student147 student147 platform user TEMP
149 student148 student148 student148@example.com student148 student148 platform user TEMP
150 student149 student149 student149@example.com student149 student149 platform user TEMP
151 student150 student150 student150@example.com student150 student150 platform user TEMP
152 student151 student151 student151@example.com student151 student151 platform user TEMP
153 student152 student152 student152@example.com student152 student152 platform user TEMP
154 student153 student153 student153@example.com student153 student153 platform user TEMP
155 student154 student154 student154@example.com student154 student154 platform user TEMP
156 student155 student155 student155@example.com student155 student155 platform user TEMP
157 student156 student156 student156@example.com student156 student156 platform user TEMP
158 student157 student157 student157@example.com student157 student157 platform user TEMP
159 student158 student158 student158@example.com student158 student158 platform user TEMP
160 student159 student159 student159@example.com student159 student159 platform user TEMP
161 student160 student160 student160@example.com student160 student160 platform user TEMP
162 student161 student161 student161@example.com student161 student161 platform user TEMP
163 student162 student162 student162@example.com student162 student162 platform user TEMP
164 student163 student163 student163@example.com student163 student163 platform user TEMP
165 student164 student164 student164@example.com student164 student164 platform user TEMP
166 student165 student165 student165@example.com student165 student165 platform user TEMP
167 student166 student166 student166@example.com student166 student166 platform user TEMP
168 student167 student167 student167@example.com student167 student167 platform user TEMP
169 student168 student168 student168@example.com student168 student168 platform user TEMP
170 student169 student169 student169@example.com student169 student169 platform user TEMP
171 student170 student170 student170@example.com student170 student170 platform user TEMP
172 student171 student171 student171@example.com student171 student171 platform user TEMP
173 student172 student172 student172@example.com student172 student172 platform user TEMP
174 student173 student173 student173@example.com student173 student173 platform user TEMP
175 student174 student174 student174@example.com student174 student174 platform user TEMP
176 student175 student175 student175@example.com student175 student175 platform user TEMP
177 student176 student176 student176@example.com student176 student176 platform user TEMP
178 student177 student177 student177@example.com student177 student177 platform user TEMP
179 student178 student178 student178@example.com student178 student178 platform user TEMP
180 student179 student179 student179@example.com student179 student179 platform user TEMP
181 student180 student180 student180@example.com student180 student180 platform user TEMP
182 student181 student181 student181@example.com student181 student181 platform user TEMP
183 student182 student182 student182@example.com student182 student182 platform user TEMP
184 student183 student183 student183@example.com student183 student183 platform user TEMP
185 student184 student184 student184@example.com student184 student184 platform user TEMP
186 student185 student185 student185@example.com student185 student185 platform user TEMP
187 student186 student186 student186@example.com student186 student186 platform user TEMP
188 student187 student187 student187@example.com student187 student187 platform user TEMP
189 student188 student188 student188@example.com student188 student188 platform user TEMP
190 student189 student189 student189@example.com student189 student189 platform user TEMP
191 student190 student190 student190@example.com student190 student190 platform user TEMP
192 student191 student191 student191@example.com student191 student191 platform user TEMP
193 student192 student192 student192@example.com student192 student192 platform user TEMP
194 student193 student193 student193@example.com student193 student193 platform user TEMP
195 student194 student194 student194@example.com student194 student194 platform user TEMP
196 student195 student195 student195@example.com student195 student195 platform user TEMP
197 student196 student196 student196@example.com student196 student196 platform user TEMP
198 student197 student197 student197@example.com student197 student197 platform user TEMP
199 student198 student198 student198@example.com student198 student198 platform user TEMP
200 student199 student199 student199@example.com student199 student199 platform user TEMP
201 student200 student200 student200@example.com student200 student200 platform user TEMP
Loading…
Cancel
Save